{"version":3,"sources":["../../shared/contracts/QuoteCalculateModel.js","../../shared/contracts/customMessage.js","../../shared/contracts/QuoteSubscribeModel.js","../../shared/contracts/schemas/GoodHealthDeclaration.js","../../shared/contracts/data.js","../../shared/contracts/common/country-codes.js","../../shared/contracts/rules.js","../../shared/contracts/QuoteSubscribeModel.files.js","context/SubscribeContext.js","utils/AuthenticationUtil.js","context/LocaleSwitchContext.js","utils/Authenticate.js","i18n.js","utils/history.js","components/common/LocaleSwitch.js","components/frontend/common/Header.js","components/frontend/common/Footer.js","components/frontend/common/AppLayout.js","utils/publicRoute.js","components/backend/common/Header.js","components/backend/common/AppLayout.js","utils/privateRoute.js","components/frontend/common/PageCTA.js","components/frontend/views/HomePage.js","components/frontend/views/FiscalityPage.js","components/frontend/views/FAQPage.js","utils/ApiCall.js","components/frontend/common/ErrorMessage.js","components/frontend/common/CodeHighlight.js","components/frontend/forms/QuoteForm.js","components/frontend/forms/SendQuoteByEmailForm.js","components/frontend/views/QuotePage.js","components/frontend/views/QuoteResultPage.js","components/frontend/views/ContactPage.js","utils/subscribeFieldsModel.js","components/frontend/forms/SubscriptionRecap.js","components/frontend/forms/CountrySelect.js","components/frontend/forms/GoogleAddress.js","components/frontend/forms/PhonePrefixSelect.js","components/frontend/forms/SubscriptionPersonalDetails.js","components/frontend/forms/SubscriptionPersonalDetailsBis.js","components/frontend/forms/SubscriptionLoanDetails.js","components/frontend/forms/SubscriptionMedicalDeclaration.js","components/frontend/forms/SubscriptionMedicalDeclarationBis.js","components/frontend/forms/SubscriptionGoodHealthDeclaration.js","components/frontend/common/VerificationCode.js","components/frontend/forms/SubscriptionLastStep.js","components/frontend/views/SubscribePage.js","components/frontend/views/NotFoundPage.js","components/frontend/views/legal/LegalPage.js","components/frontend/views/legal/TermsPage.js","components/frontend/views/legal/PrivacyPage.js","components/frontend/views/legal/MandatePage.js","components/frontend/views/legal/CookiesPage.js","components/backend/views/AdminDashboardPage.js","utils/Api.js","utils/table-helpers.js","utils/string-utils.js","components/backend/subscription-status-tag.js","components/backend/views/AdminSubscriptionsPage.js","components/backend/common/ShowMore.js","components/backend/views/AdminSubscriptionPage.js","components/backend/views/AdminNotFoundPage.js","components/backend/views/AdminOffersPage.js","components/frontend/common/ScrollToTop.js","services/TelemetryService.js","context/TelemetryProvider.js","routes.js","App.js","components/common/Loader.js","serviceWorker.js","index.js","utils/validation.js","utils/helpers.js","utils/phonePrefixes.js","../../shared/contracts/model.js","images/simplomus.svg","images/hero.svg","../node_modules/i18n-iso-countries/langs sync /^/.//.*/.json$","../../shared/contracts/schemas/MedicalDeclaration.js","../../shared/contracts/schemas/PersonalDetails.js","images/vrb_white.svg","images/cardif-white.svg","images/cardif_boxed.svg","images/vrb_boxed.svg","images/paper-free.svg","images/privacy.svg","images/trust.svg","images/fast.svg","images/price.svg","images/offer.svg","images/advices.svg","images/customize.svg","images/user.svg","../../shared/contracts/QuoteSaveModel.js","components/frontend/common/Seo.js","context/TrackerContext.js"],"names":["Model","yup","definition","dateOfBirth","date","required","isSmoker","bool","additionalInsuree","default","dateOfBirth2","label","when","g","schema","isSmoker2","capital","number","min","key","value","max","integer","interval","string","lowercase","oneOf","effectiveDate","duration","interestRate","module","exports","_objectSpread","generateMessage","field","arguments","length","undefined","customMessage","mixed","_ref","path","_ref2","_ref3","values","notOneOf","_ref4","typeError","_ref5","type","_ref6","_length","_ref7","_min","_ref8","_max","email","_ref9","url","_ref10","trim","_ref11","_ref12","uppercase","_ref13","_ref14","_min2","_ref15","_max2","lessThan","_ref16","less","moreThan","_ref17","more","notEqual","_ref18","_notEqual","positive","_ref19","negative","_ref20","_ref21","_ref22","_min3","_ref23","_max3","array","_ref24","_min4","_ref25","_max4","schemas","goodHealthDeclaration","medicalDeclaration","personal","Object","assign","offerId","ensure","code","dataVerifiedConsent","confirmedIpid","plan","insurees","of","minFormsCount","beneficiary","beneficiaryOther","v","s","existingContract","existingContractPolicyNumber","existingContract2","existingContract2PolicyNumber","benefitTransferInstitution","benefitTransferFileNumber","benefitTransferAddress","bankAccountHolder","bankAccountIban","bankAccountBic","cancelsOtherInsurerContract","guaranteesMortgageLoan","correctDataCheck","termsCheck","dataProtectionCheck","dataProcessingCheck","intermediaryMandateCheck","emailCommunicationCheck","height","weight","isNotUnderIncapacityOfWork","isNotUnderTreatment","hasNoSevereDisease","hasNoHospitalization","object","camelCase","civilStatus","freeze","single","married","partnered","divorced","widowed","gender","male","female","civilStatuses","keys","genders","countries","af","al","dz","as","ad","ao","ai","aq","ag","ar","am","aw","au","at","az","bs","bh","bd","bb","by","be","bz","bj","bm","bt","bo","ba","bw","bv","br","io","bn","bg","bf","bi","kh","cm","ca","cv","ky","cf","td","cl","cn","cx","cc","co","km","cg","cd","ck","cr","ci","hr","cu","cy","cz","dk","dj","dm","do","ec","eg","sv","gq","er","ee","et","fk","fo","fj","fi","fr","gf","pf","tf","ga","gm","ge","de","gh","gi","gr","gl","gd","gp","gu","gt","gn","gw","gy","ht","hm","va","hn","hk","hu","is","in","id","ir","iq","ie","il","it","jm","jp","jo","kz","ke","ki","kp","kr","kw","kg","la","lv","lb","ls","lr","ly","li","lt","lu","mo","mg","mw","my","mv","ml","mt","mh","mq","mr","mu","yt","mx","fm","md","mc","mn","ms","ma","mz","mm","na","nr","np","nl","nc","nz","ni","ne","ng","nu","nf","mk","mp","no","om","pk","pw","ps","pa","pg","py","pe","ph","pn","pl","pt","pr","qa","re","ro","ru","rw","sh","kn","lc","pm","vc","ws","sm","st","sa","sn","sc","sl","sg","sk","si","sb","so","za","gs","es","lk","sd","sr","sj","sz","se","ch","sy","tw","tj","tz","th","tl","tg","tk","to","tt","tn","tr","tm","tc","tv","ug","ua","ae","gb","us","um","uy","uz","vu","ve","vn","vg","vi","wf","eh","ye","zm","zw","ax","bq","cw","gg","im","je","me","bl","mf","rs","sx","ss","xk","getCountry","countryCode","toLowerCase","_require","mimetypes","fileSize","moment","_moment","today","hour","minute","seconds","isValidMinAge","diff","isValidMaxAge","isFuture","isTodayOrFuture","isValidEffectiveDate","isMaxDuration","start","end","add","dateOfBirthMoment","dateOfBirth2Moment","calculateFrom","isValid","isBefore","subtract","Math","floor","iban","_iban","isValidIban","replace","file","isValidFile","Array","isArray","File","isValidFileSize","fileSizeLimit","size","isValidMimeType","mimetypesArray","includes","extensions","constate","useState","subscribeFormData","setSubscribeFormData","SubscribeFormProvider","useSubscribeFormContext","currentStep","setCurrentStep","progress","setProgress","steps","setSteps","next","useCallback","previous","useEffect","reset","SubscribeStepProvider","useSubscribeStepContext","user","localeSwitching","setLocaleSwitching","LocaleSwitchProvider","useLocaleSwitchContext","options","domain","process","clientID","audience","responseType","client","auth0","WebAuth","authToken","expires","token","nonce","isAuthenticated","getToken","isAllowedUser","split","sub","Authenticate","returnUrl","state","setState","cb","err","window","location","search","slice","reduce","acc","m","val","shift","join","parseHash","hash","authResult","expiresIn","accessToken","idTokenPayload","userInfo","usr","availableLocales","i18n","use","initReactI18next","Backend","LanguageDetector","init","detection","order","load","whitelist","nonExplicitWhitelist","cleanCode","fallbackLng","debug","backend","loadPath","joinArrays","returnObjects","ns","defaultNS","keySeparator","nsSeparator","interpolation","escapeValue","formatSeparator","react","wait","createBrowserHistory","LocaleSwitch","props","history","useHistory","currentLocale","getCurrentLocale","trackEvent","useTrackerContext","localesOptions","map","locale","Item","menu","onClick","newUrl","pathname","originalLanguage","newLanguage","push","i18next","changeLanguage","selectedKeys","className","overlay","trigger","onVisibleChange","visibility","Header","minimalLayout","isDesktop","open","setOpen","target","handleMenuToggle","handleOnClick","name","handleResize","addEventListener","throttle","removeEventListener","align","xs","lg","xl","src","logo","alt","exact","t","ghost","icon","Footer","Date","getFullYear","VRB","Cardif","Content","AppLayout","children","browser","detect","classNames","showIcon","message","MarkupEscape","banner","PublicRoute","Component","component","rest","render","routeProps","languages","PrivateRoute","auth","authorize","redirectUri","origin","PageCTA","Title","level","Homepage","Text","Paragraph","icons","whySimplomus","paperLess","offer","price","fast","privacy","advices","customize","trust","getIcon","section","index","Seo","pageName","span","offset","style","position","zIndex","hero","justify","gutter","column","title","text","dangerouslySetInnerHTML","__html","flexDirection","flexWrap","vrb","cardif","FiscalityPage","getHeaderTitle","columns","dataIndex","amount","currencyFormat","format","separator","precision","data","age","noChildren","oneChild","twoChildren","threeChildren","extraChild","dataSource","pagination","scroll","x","FAQPage","query","setQuery","fuse","setFuse","Panel","Search","generateIndex","item","question","answerEscaped","answer","Fuse","includeScore","useExtendedSearch","threshold","SearchBar","results","count","result","header","RegExp","placeholder","allowClear","onSearch","postCall","Promise","resolve","reject","axios","post","headers","then","res","catch","generateError","error","status","response","request","content","setErrorMessage","exists","ErrorMessage","errors","parent","CodeHighlight","validationSchema","require","QuoteForm","setOffers","handleLoading","loading","generateWidth","fieldWidth","setFieldWidth","actions","defaultValues","utc","useForm","mode","reValidateMode","validateCriteriaMode","quoteValidation","submitFocusError","watch","handleSubmit","setValue","formState","setError","control","needsAdditionalFields","onSelectChange","e","newWidth","generateOptions","concat","Option","fields","MaskedInput","tabIndex","onChange","mask","inputMode","placeholderChar","width","defaultValue","showAction","NumberFormat","floatValue","onChangeName","thousandSeparator","decimalScale","decimalSeparator","maxLength","onSubmit","language","entries","validationState","finally","returnObject","htmlType","submitCount","SendQuoteByEmailForm","offers","showModal","setShowModal","hasConsent","setHasConsent","setLoading","firstName","firstName2","lastName","lastName2","QuoteSaveModel","register","formValues","handleModalToggle","action","propertyName","generateField","customOptions","visible","footer","onCancel","dataObj","success","setTimeout","forEach","checked","disabled","QuotePage","setData","paymentDuration","offerEl","useRef","handleGetOffers","newOffersObj","scrollToComponent","current","Plan","bordered","premium","premiumTotal","coverageEndDate","block","plans","ref","newLoadingState","QuoteResultPage","useParams","ContactPage","href","generateMedicalFields","property","hasExplanation","hasStartDate","medicalFields","addressFields","address","streetNumber","streetName","postalCode","city","global","personalIdFile","recap","personalDetails","isPolicyHolder","placeOfBirth","nationalityCode","personalIdCard","personalIdCardNumber","personalIdValidUntil","partnerName","profession","socialStatus","phoneNumber","prefix","isMoving","futureAddress","futureAddressAsOf","loanDetails","lastStep","generateStepData","step","dataContext","SubscriptionRecap","handleNextStep","fontSize","spin","stepValidationSchema","subscribeStep1Validation","nest","toggle","event","newValue","tagName","generateSwitch","customLabel","display","alignItems","defaultChecked","checkedChildren","unCheckedChildren","valueName","cursor","indicator","tip","durationInYears","product","filter","fileUrl","CountrySelect","priority","registerLocale","countryList","getNames","sort","a","b","showSearch","filterOption","option","indexOf","GoogleAddress","onAddressUpdate","manualMode","restrictions","displayGoogleAddress","setDisplayGoogleAddress","suggestions","setSuggestions","defaultData","country","getCountryName","addressModel","street_number","route","locality","postal_code","onInputChange","newData","handleSwitchGoogleAddress","autocomplete","google","maps","places","AutocompleteService","Error","input","types","componentRestrictions","getPlacePredictions","onSelect","geocoder","Geocoder","geocode","placeId","address_components","addressElement","long_name","short_name","formatted_address","suggestion","place_id","description","marginRight","PhonePrefixSelect","sortedPrefixes","phonePrefixes","optionFilterProp","SubscriptionPersonalDetails","insuree","handlePreviousStep","hasAddressError","setHasAddressError","hasFutureAddressError","setHasFutureAddressError","insureeIndex","Dragger","subscribeStep3Validation","subscribeStep3BisValidation","unregister","addFile","removeFile","files","toISOString","Group","Button","buttonStyle","itemLayout","renderItem","Meta","multiple","showUploadList","showDownloadIcon","showPreviewIcon","customRequest","onError","onSuccess","onRemove","accept","compact","marginLeft","SubscriptionPersonalDetailsBis","SubscriptionLoanDetails","subscribeStep4Validation","source","bank","radioStyle","marginBottom","selectedBank","SubscriptionMedicalDeclaration","subscibeStep6Validation","handleRadioChange","startDate","hint","justifyContent","keyExists","TextArea","autoSize","minRows","isSubmitting","SubscriptionMedicalDeclarationBis","SubscriptionGoodHealthDeclaration","consent","setConsent","hasAdditionalInsuree","subscribeStep5Validation","questionSize","answerSize","radioSize","addonAfter","VerificationCode","isVerified","setVerified","isFormValidated","onComplete","counter","setCounter","requestCounter","setRequestCounter","hasCodeError","setHasCodeError","retryLeft","setRetryLeft","needsToRetry","setNeedsToRetry","confirmLoading","modal","setModal","codeInputRef","getCountryPrefix","isCancelled","intervalId","setInterval","clearInterval","sendCode","handleToggleModal","secondsToCountDown","theme","color","retryCount","toString","match","__clearvalues__","autoFocus","lineHeight","SubscriptionLastStep","handleProceedSubscription","verified","subscibeStep7Validation","radios","switches","generateRadio","productName","Subscription","selectedPlan","setOffer","submited","setSubmited","callError","setCallError","lastCurrentStep","setLastCurrentStep","topEl","FormData","append","objectToFormData","cleanDeep","indices","generateSteps","medicalDeclarations","policyHolder","generateSubscribeData","resetForm","onBeforeUnload","preventDefault","returnValue","unblock","unlisten","listen","percent","showInfo","NotFoundPage","LegalPage","substeps","subcontent","TermsPage","PrivacyPage","MandatePage","CookiesPage","AdminDashboardPage","Api","get","put","method","getBearerToken","Authorization","startsWith","body","JSON","stringify","fetch","endsWith","ok","isBlob","blob","json","searchableColumn","searchInput","handleSearch","_selectedKeys","confirm","handleReset","clearFilters","searchValue","filterDropdown","setSelectedKeys","padding","node","onPressEnter","filterIcon","filtered","onFilter","record","parts","i","recordValue","hasOwnProperty","onFilterDropdownVisibleChange","select","truncate","str","startCharactersCound","endCharactersCount","substr","SubscriptionStatusTag","AdminSubscriptionsPage","isLoading","setIsLoading","subscriptions","setSubscriptions","curr","toLower","toUpperCase","filters","subscription","findIndex","char","defaultSortOrder","sorter","createdAt","d","rowKey","rowClassName","onRow","_id","ShowMore","previewLength","expanded","setExpanded","intro","AdminSubscriptionPage","setSubscription","hasMedicalData","setHasMedicalData","setValues","subscriptionId","policyNumber","SubscriptionDetails","handleFieldUpdate","handleChangeStatus","prevStatus","Loading","NotFound","onBack","extra","copyable","referenceNumber","paddingLeft","editable","opacity","SubscriptionChangeStatus","setStatus","SubscriptionActions","animated","TabPane","tab","OverviewTab","InsureeDetailsTab","DocumentsTab","logs","reverse","l","setVisible","StatusList","defaultSelectedKeys","placement","medicalConfirmVisible","setMedicalConfirmVisible","isAllowed","hide","URL","createObjectURL","document","createElement","download","appendChild","click","remove","console","log","backgroundColor","borderColor","textShadow","meta","cancelOtherContract","SendContract","send","contract","hideLoadingMessage","tooltip","onOk","okText","cancelText","shape","ViewContract","setFileUrl","fetchUrl","didCancel","rel","UploadContract","onUploadComplete","uploading","isUploading","setIsUploading","uid","filename","fileList","setFileList","uploadProps","beforeUpload","msg","defaultFileList","setFile","hasFile","setHasFile","handleOnComplete","updatedAt","InsureeMedicalDocumentsTable","exams","medicalExams","exam","MedicalExamStatusTag","isCompleted","isRequired","InsureeDetails","idCardFileUrl","setIdCardFileUrl","isCanceled","nationality","GoodHealthDeclaration","questions","MedicalDeclaration","MedicalTab","activeKeys","defaultActiveKey","AdminNotFoundPage","AdminOffersPage","selectedOffer","setSelectedOffer","model","StatusTag","closable","destroyOnClose","onClose","DrawerHeadline","codes","spinning","subscribed","calculated","saved","withRouter","scrollTo","reactPlugin","appInsights","initialize","instrumentationKey","browserHistory","ReactPlugin","ApplicationInsights","config","maxBatchInterval","disableFetchTracking","extensionConfig","identifier","loadAppInsights","TelemetryProvider","initialized","this","AppInsightsInstrumentationKey","Boolean","after","withAITracking","SubscribeSuccessPage","lazy","Routes","initTracker","from","HomePage","SubscribePage","k","logout","returnTo","withTranslation","script","async","defer","head","Helmet","htmlAttributes","lang","Loader","textAlign","hostname","rootElement","getElementById","hasChildNodes","ReactDOM","hydrate","fallback","navigator","serviceWorker","ready","registration","QuoteCalculateModel","QuoteSubscribeModel","QuoteSubscribePersonalModel","QuoteSubscribeMedicalDeclarationModel","rules","quoteDefinition","transform","_value","originalValue","isType","toDate","test","subscribeRecapDefinition","subscribePersonalDetailsDefinition","subscribePersonalDetailsBisDefinition","subscribeLoanDetailsDefinition","subscribeGoodHealthDeclarationDefinition","subscribeMedicalDeclarationDefinition","subscribeLastStepDefinition","getFixedT","translationKey","markup","createMarkup","getBreakpoint","breakpoints","filterdBreakpoint","currentBreakpoint","clientWidth","getCurrentBreakpoint","repeat","fakeText","whiteSpace","innerHTML","ceil","removeChild","sec","parseInt","hours","minutes","timer","getName","decimal","currency","raw","_classCallCheck","_createClass","setLocale","validatorInstance","obj","validate","webpackContext","req","webpackContextResolve","__webpack_require__","o","requireIfTrue","builder","isPastDate","vDate","isNaN","now","getMonth","getDate","nullable","countryCodes","useLocation","hreflang","hrefLang","tracker","setTracker","trackException","properties","severityLevel","SeverityLevel","trackTrace","Information","TrackerProvider"],"mappings":"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,OACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,mBACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,SACN,GAAM,OACN,GAAM,WACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,MACN,GAAM,KACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,KACN,GAAM,SACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,mBACN,GAAM,SACN,GAAM,OACN,GAAM,MACN,GAAM,SACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,KACN,GAAM,OACN,GAAM,OACN,GAAM,KACN,GAAM,OACN,GAAM,SACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,MACN,GAAM,SACN,GAAM,SACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,OACN,GAAM,SACN,GAAM,MACN,GAAM,MACN,GAAM,MACN,GAAM,OACN,GAAM,MACN,GAAM,UACN,GAAM,OACN,GAAM,OACN,GAAM,MACN,GAAM,OACN,GAAM,OACN,GAAM,S,oBCpPR,IAAI+a,EAAkB,EAAQ,MAE1BC,EAAe,EAAQ,MAEvB9zC,EAAgB,EAAQ,MAExBrC,EAAM,EAAQ,KAElBA,EAAIo2C,UAAU/zC,GAEdR,EAAOC,QAAuB,WAC5B,aAEA,SAAS/B,EAAME,GACbi2C,EAAgBhF,KAAMnxC,GAEtBmxC,KAAKjxC,WAAa8F,OAAO0C,OAAOxI,GAChCixC,KAAKmF,kBAAoBr2C,EAAIsI,OAAOrI,GAAYsI,YAkBlD,OAfA4tC,EAAap2C,EAAO,CAAC,CACnBmB,IAAK,WACLC,MAAO,SAAkBm1C,EAAKh5B,GAC5B,OAAO4zB,KAAKmF,kBAAkBE,SAASD,EAAKh5B,KAE7C,CACDpc,IAAK,SACLC,MAAO,SAAgB44B,GACrB,OAAOh0B,OAAOoD,KAAK+nC,KAAKjxC,YAAYif,QAAO,SAAUC,EAAKkoB,GAExD,OADAloB,EAAIkoB,IAAStN,GAAS,IAAIsN,GACnBloB,IACN,QAIApf,EAzBqB,I,oBCV9B8B,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,kC,oBCA3C,IAAIwgB,EAAM,CACT,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,IACb,YAAa,KAId,SAASk0B,EAAeC,GACvB,IAAIhnC,EAAKinC,EAAsBD,GAC/B,OAAOE,EAAoBlnC,GAE5B,SAASinC,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAEt0B,EAAKm0B,GAAM,CACpC,IAAI3nB,EAAI,IAAIgL,MAAM,uBAAyB2c,EAAM,KAEjD,MADA3nB,EAAE3oB,KAAO,mBACH2oB,EAEP,OAAOxM,EAAIm0B,GAEZD,EAAertC,KAAO,WACrB,OAAOpD,OAAOoD,KAAKmZ,IAEpBk0B,EAAexqB,QAAU0qB,EACzB70C,EAAOC,QAAU00C,EACjBA,EAAe/mC,GAAK,K,oBCtEpB,IAAIzP,EAAM,EAAQ,KAEdC,EAAa,GACR,CAAC,qBAAsB,kBAAmB,eAAgB,wBAAyB,yBAA0B,uBACnHoyB,SAAQ,SAAUvH,GACnB7qB,EAAW6qB,GAAY9qB,EAAIM,OAAOF,WAClCH,EAAW,GAAGgvB,OAAOnE,EAAU,gBAAkB9qB,EAAIuB,OAAO,CAC1DL,IAAK,+BACLe,MAAO,GAAGgtB,OAAOnE,EAAU,iBAC1BnqB,KAAK,GAAGsuB,OAAOnE,GAAW+rB,MAmB/B,SAASA,EAAc11C,EAAON,EAAQi2C,GACpC,OAAO31C,EAAQN,EAAOqF,SAAS9F,SAAS,CACtCc,IAAK,2BACFL,EAAOL,QAAQ,IAGtB,SAASu2C,EAAWnwC,EAAG/F,GACrB,OAAQ+F,EAAa/F,EAAOozC,KAAK,WAAY,YAAY,SAAU50B,GACjE,QAAYjd,IAARid,EACF,OAAO,EAGT,IAAI23B,EAAQ,IAAI/xB,KAAK5F,GACrB,OAAO23B,aAAiB/xB,OAASgyB,MAAMD,IAASA,EAIpD,WACE,IAAIE,EAAM,IAAIjyB,KACd,OAAO,IAAIA,KAAKiyB,EAAIhyB,cAAegyB,EAAIC,WAAYD,EAAIE,WANG59B,MAN9C3Y,EAxBL,CAAC,2BAA4B,uBAAwB,qBAAsB,mBAAoB,0BAA2B,wBAAyB,4BAA6B,0BAA2B,kBAAmB,oBAAqB,sBAAuB,iBAAkB,oBAAqB,qBAAsB,gBAAiB,iBAAkB,mBAEhXwxB,SAAQ,SAAUvH,GACnB7qB,EAAW6qB,GAAY9qB,EAAIM,OAAOF,WAClCH,EAAW,GAAGgvB,OAAOnE,EAAU,cAAgB9qB,EAAIG,OAAOQ,KAAKmqB,GAAU,SAAUlkB,EAAGC,GACpF,OAAOD,EAAIC,EAAEzG,SAAS,CACpBc,IAAK,uBACLe,MAAO,GAAGgtB,OAAOnE,EAAU,eACxBjkB,EAAEwwC,WAAW72C,QAAQ,SACzBG,KAAKmqB,EAAUisB,GAClB92C,EAAW,GAAGgvB,OAAOnE,EAAU,gBAAkB9qB,EAAIuB,SAASH,IAAI,KAAMT,KAAKmqB,EAAU+rB,MAEzFh1C,EAAOC,QAAU,CACf7B,WAAYA,EACZY,OAAQb,EAAIsI,OAAOrI,GAAYsI,c,oBCzBjC,IAAIvI,EAAM,EAAQ,KAEd0pB,EAAO,EAAQ,MAGfrgB,EADW,EAAQ,MACEA,UAErBiuC,EAAevxC,OAAOoD,KAAKE,GAC3BpJ,EAAa,CACf40B,eAAgB70B,EAAIM,OAAOF,WAE3BqoB,MAAOzoB,EAAIuB,SAASnB,WAAWqB,MAAM,CAAC,KAAM,MAAO,OACnD0vB,UAAWnxB,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WAC1CixB,SAAUrxB,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WACzC00B,aAAc90B,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WAC7C20B,gBAAiB/0B,EAAIuB,SAASnB,WAAWoB,YAAYC,MAAM61C,GAC3DriB,qBAAsBj1B,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WACrD80B,qBAAsBl1B,EAAIG,OAAOC,WACjCoI,YAAaxI,EAAIuB,SAASnB,WAAWoB,YAAYC,MAAMioB,EAAKxgB,eAC5DisB,YAAan1B,EAAIuB,SAASH,IAAI,KAAKT,KAAK,eAsC1C,SAA6B0e,EAAKxe,GAChC,GAAIwe,IAAQqK,EAAKlhB,YAAYG,SAAW0W,IAAQqK,EAAKlhB,YAAYI,UAC/D,OAAO/H,EAAOqF,SAAS9F,WAGzB,OAAOS,KA1CPu0B,WAAYp1B,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WAC3Ci1B,aAAcr1B,EAAIuB,SAASnB,WAAWoB,YAAYC,MAAM,CAAC,WAAY,kBACrE8B,MAAOvD,EAAIuB,SAASH,IAAI,KAAK8E,SAAS3C,QAAQ/B,YAAYmC,OAAOhD,KAAK,kBAAkB,SAAUiG,EAAGC,GACnG,OAAOD,EAAIC,EAAEzG,WAAayG,KAE5ByuB,YAAat1B,EAAIsI,OAAO,CACtBitB,OAAQv1B,EAAIuB,SAASnB,WACrBY,OAAQhB,EAAIgB,SAASZ,aACpBI,aAAQ4B,GAAWhC,WACtBg0B,QAASp0B,EAAIsI,OAAO,CAClB+rB,aAAcr0B,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WAC7Ck0B,WAAYt0B,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WAC3Cm0B,WAAYv0B,EAAIuB,SAAS2E,SAAS9F,WAClCo0B,KAAMx0B,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WACrC6Y,YAAajZ,EAAIuB,SAAS2E,SAAS9F,WAAWoB,YAAYC,MAAM,CAAC,KAAM,KAAM,KAAM,SAClFjB,aAAQ4B,GAAWhC,WACtBo1B,SAAUx1B,EAAIM,OAAOE,SAAQ,GAAOG,KAAK,kBAAkB,SAAUiG,EAAGC,GACtE,OAAOD,EAAIC,EAAEzG,WAAayG,KAE5B6uB,kBAAmB11B,EAAIG,OAAOQ,KAAK,YAAY,SAAUiG,EAAGC,GAC1D,OAAOD,EAAIC,EAAEzG,WAAayG,KAE5B4uB,cAAez1B,EAAIsI,OAAO,CACxB+rB,aAAcr0B,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WAC7Ck0B,WAAYt0B,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WAC3Cm0B,WAAYv0B,EAAIuB,SAAS2E,SAAS9F,WAClCo0B,KAAMx0B,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WACrC6Y,YAAajZ,EAAIuB,SAASC,YAAYC,MAAM,CAAC,KAAM,KAAM,KAAM,OAAOyE,SAAS9F,aAC9EI,aAAQ4B,GAAWzB,KAAK,YAAY,SAAUq3B,EAAGnxB,GAClD,OAAOmxB,EAAInxB,EAAEzG,WAAayG,MAG9BhF,EAAOC,QAAU,CACf7B,WAAYA,EACZY,OAAQb,EAAIsI,OAAOrI,GAAYsI,c,oBCtDjC1G,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,kC,oBCA3CD,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,kC,oBCA3C,IAAI/B,EAAQ,EAAQ,KAEhBC,EAAM,EAAQ,KAEdC,EAAa,CACfgG,QAASjG,EAAIuB,SAAS2E,SAAS9F,WAC/B+wB,UAAWnxB,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WAC1CixB,SAAUrxB,EAAIuB,SAASH,IAAI,KAAK8E,SAAS9F,WACzCmD,MAAOvD,EAAIuB,SAASH,IAAI,KAAK8E,SAAS3C,QAAQnD,WAC9CG,kBAAmBP,EAAIM,OAAOE,SAAQ,GACtC4wB,WAAYpxB,EAAIuB,SAASH,IAAI,KAAKV,MAAM,aAAaC,KAAK,qBAAqB,SAAUC,EAAGC,GAC1F,OAAOD,EAAIC,EAAOqF,SAAS9F,WAAaS,KAE1CywB,UAAWtxB,EAAIuB,SAASH,IAAI,KAAKV,MAAM,YAAYC,KAAK,qBAAqB,SAAUC,EAAGC,GACxF,OAAOD,EAAIC,EAAOqF,SAAS9F,WAAaS,MAG5CgB,EAAOC,QAAU,IAAI/B,EAAME,I,gCCjB3B,qDAoCe6nB,IA/BH,SAAChG,GACX,IAAM/C,EAAWw4B,cACb9uB,EAAQ,YAYZ,OAVI3G,EAAMiG,WACJqW,YAAU,GAAD,OAAItc,EAAMiG,SAAV,eACXU,GAAK,aAAU5D,YAAE,GAAD,OAAI/C,EAAMiG,SAAV,gBAEZqW,YAAU,GAAD,OAAItc,EAAMiG,SAAV,aACXU,GAAK,aAAU5D,YAAE,GAAD,OAAI/C,EAAMiG,SAAV,WAA4B9M,QAAQ,gBAAiB,OAMzE,kBAAC,IAAD,KACE,+BAAQwN,GACR,0BAAMokB,IAAI,YAAYhZ,KAAI,UAAKrW,2BAAL,KAAmCg6B,SAAS,cACrE,CAAC,KAAM,MAAMl1B,KAAI,SAACC,GACjB,IAAM9e,EAAMsb,EAAWA,EAAS6D,SAAS3H,QAAQ,cAA1B,WAA6CsH,IAAhD,WAAgEA,GACpF,OACE,0BAAMsqB,IAAI,YAAYhZ,KAAI,UAAKrW,4BAAL,OAAiC/Z,GAAOg0C,SAAUl1B,EAAQrhB,IAAKqhB,OAG5FxD,GACC,0BAAM8tB,IAAI,YAAYhZ,KAAI,UAAKrW,4BAAL,OAAiCuB,EAAS6D,e,4LCGxB9G,aA7BpD,WAAwB,IAAD,EACSC,mBAAS,MADlB,mBACd27B,EADc,KACLC,EADK,KA0BrB,MAAO,CAAEjG,YAvBW,SAACtB,GACnBuH,EAAWvH,IAsBSwH,eAnBC,SAACnrB,GAA4B,IAArBorB,EAAoB,uDAAP,GACtCH,IACFjrB,EAAQA,aAAiBqN,MAAQrN,EAAQ,IAAIqN,MAAMrN,GACnDirB,EAAQE,eAAe,CAAEnrB,MAAOA,EAAOqrB,cAAeC,IAAcje,OAApE,eAAkF+d,MAgBhDG,WAZnB,SAACpyB,GAA8B,IAArBiyB,EAAoB,uDAAP,GACpCH,GACFA,EAAQM,WAAW,CAAEpyB,QAASA,EAASkyB,cAAeC,IAAcE,aAApE,eAAwFJ,KAU1C11B,WAN/B,SAACqU,GAA4B,IAArBqhB,EAAoB,uDAAP,GAClCH,GACFA,EAAQv1B,WAAW,CAAE6B,KAAMwS,GAA3B,eAAyCqhB,S,mBAOjCK,E,KAAiB91B,E","file":"static/js/main.eca08ace.chunk.js","sourcesContent":["// const data = require('./data')\nvar Model = require('./model');\n\nvar yup = require('yup');\n\nvar loanIntervals = ['annual', 'twice-yearly', 'quarterly', 'monthly'];\nvar definition = {\n dateOfBirth: yup.date().required(),\n // gender: yup.string().required().lowercase().oneOf(data.genders),\n isSmoker: yup.bool().required(),\n additionalInsuree: yup.bool().default(false),\n dateOfBirth2: yup.date().label('dateOfBirth').when('additionalInsuree', function (g, schema) {\n return g ? schema.required() : schema;\n }),\n // gender2: yup.string().label('gender').when('additionalInsuree', (g, schema) => g ? schema.required() : schema).lowercase().oneOf(data.genders),\n isSmoker2: yup.bool().label('isSmoker').when('additionalInsuree', function (g, schema) {\n return g ? schema.required() : schema;\n }),\n capital: yup.number().min(10000, {\n key: 'capital.min',\n value: 10000\n }).max(1000000, {\n key: 'capital.max',\n value: 1000000\n }).integer().required(),\n interval: yup.string().required().lowercase().oneOf(loanIntervals),\n effectiveDate: yup.date().required(),\n duration: yup.number().min(12, {\n key: 'loan.minInitial'\n }).max(480, {\n key: 'loan.maxInitial',\n value: 480 / 12\n }).required(),\n // max: update models/quotecalculatemodel.js\n interestRate: yup.number().required().min(0, {\n key: 'interestRate.min',\n value: 0\n }).max(15, {\n key: 'interestRate.max',\n value: 15\n }) // dataProcessingCheck: yup.bool().required().oneOf([true])\n\n};\nmodule.exports = new Model(definition);","var _objectSpread = require(\"/home/vsts/work/1/s/app/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/objectSpread2\");\n\nvar generateMessage = function generateMessage(key, field) {\n var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n return _objectSpread({\n key: key,\n field: field\n }, value && {\n value: value\n });\n};\n\nvar customMessage = {\n mixed: {\n default: function _default(_ref) {\n var path = _ref.path;\n return generateMessage('default', path);\n },\n required: function required(_ref2) {\n var path = _ref2.path;\n return generateMessage('required', path);\n },\n oneOf: function oneOf(_ref3) {\n var path = _ref3.path,\n values = _ref3.values;\n return generateMessage('oneOf', path, values);\n },\n notOneOf: function notOneOf(_ref4) {\n var path = _ref4.path,\n values = _ref4.values;\n return generateMessage('notOneOf', path, values);\n },\n typeError: function typeError(_ref5) {\n var path = _ref5.path,\n type = _ref5.type;\n return generateMessage('typeError', path, type);\n }\n },\n string: {\n length: function length(_ref6) {\n var path = _ref6.path,\n _length = _ref6.length;\n return generateMessage('string.length', path, _length);\n },\n min: function min(_ref7) {\n var path = _ref7.path,\n _min = _ref7.min;\n return generateMessage('string.min', path, _min);\n },\n max: function max(_ref8) {\n var path = _ref8.path,\n _max = _ref8.max;\n return generateMessage('string.max', path, _max);\n },\n email: function email(_ref9) {\n var path = _ref9.path;\n return generateMessage('string.email', path);\n },\n url: function url(_ref10) {\n var path = _ref10.path;\n return generateMessage('string.url', path);\n },\n trim: function trim(_ref11) {\n var path = _ref11.path;\n return generateMessage('string.trim', path);\n },\n lowercase: function lowercase(_ref12) {\n var path = _ref12.path;\n return generateMessage('string.lowercase', path);\n },\n uppercase: function uppercase(_ref13) {\n var path = _ref13.path;\n return generateMessage('string.uppercase', path);\n }\n },\n number: {\n min: function min(_ref14) {\n var path = _ref14.path,\n _min2 = _ref14.min;\n return generateMessage('number.min', path, _min2);\n },\n max: function max(_ref15) {\n var path = _ref15.path,\n _max2 = _ref15.max;\n return generateMessage('number.max', path, _max2);\n },\n lessThan: function lessThan(_ref16) {\n var path = _ref16.path,\n less = _ref16.less;\n return generateMessage('number.lessThan', path, less);\n },\n moreThan: function moreThan(_ref17) {\n var path = _ref17.path,\n more = _ref17.more;\n return generateMessage('number.moreThan', path, more);\n },\n notEqual: function notEqual(_ref18) {\n var path = _ref18.path,\n _notEqual = _ref18.notEqual;\n return generateMessage('number.notEqual', path, _notEqual);\n },\n positive: function positive(_ref19) {\n var path = _ref19.path;\n return generateMessage('number.positive', path);\n },\n negative: function negative(_ref20) {\n var path = _ref20.path;\n return generateMessage('number.negative', path);\n },\n integer: function integer(_ref21) {\n var path = _ref21.path;\n return generateMessage('number.integer', path);\n }\n },\n date: {\n min: function min(_ref22) {\n var path = _ref22.path,\n _min3 = _ref22.min;\n return generateMessage('date.min', path, _min3);\n },\n max: function max(_ref23) {\n var path = _ref23.path,\n _max3 = _ref23.max;\n return generateMessage('date.max', path, _max3);\n }\n },\n array: {\n min: function min(_ref24) {\n var path = _ref24.path,\n _min4 = _ref24.min;\n return generateMessage('array.min', path, _min4);\n },\n max: function max(_ref25) {\n var path = _ref25.path,\n _max4 = _ref25.max;\n return generateMessage('array.max', path, _max4);\n }\n }\n};\nmodule.exports = customMessage;","var Model = require('./model');\n\nvar yup = require('yup');\n\nvar schemas = {\n goodHealthDeclaration: require('./schemas/GoodHealthDeclaration').schema,\n medicalDeclaration: require('./schemas/MedicalDeclaration').schema,\n personal: require('./schemas/PersonalDetails').schema\n};\nvar definition = Object.assign({\n offerId: yup.string().ensure().required(),\n code: yup.string().ensure().required(),\n dataVerifiedConsent: yup.bool().required().default(false).oneOf([true]),\n confirmedIpid: yup.bool().required().default(false).oneOf([true]),\n plan: yup.string().ensure().required().lowercase().oneOf(['once', 'monthly', 'yearly']),\n additionalInsuree: yup.bool().required(),\n insurees: yup.array().required().of(schemas.personal).when('additionalInsuree', minFormsCount),\n // beneficiary\n beneficiary: yup.string().required().lowercase().oneOf(['by-law', 'other']),\n beneficiaryOther: yup.string().max(100).when('beneficiary', function (v, s) {\n return v === 'other' ? s.required() : s;\n }),\n existingContract: yup.bool().required(),\n existingContractPolicyNumber: yup.string().max(100).when('existingContract', function (v, s) {\n return v ? s.required() : s;\n }),\n existingContract2: yup.bool().when('insurees', function (v, s) {\n return v && v.length === 2 ? s.required() : s;\n }),\n existingContract2PolicyNumber: yup.string().max(100).when('existingContract2', function (v, s) {\n return v ? s.required() : s;\n }),\n // benefit\n benefitTransferInstitution: yup.string().max(100).ensure().required(),\n benefitTransferFileNumber: yup.string().max(100).ensure().required(),\n benefitTransferAddress: yup.string().max(200).ensure().required(),\n // bank account details\n bankAccountHolder: yup.string().max(100).ensure().required(),\n bankAccountIban: yup.string().max(34).ensure().required(),\n bankAccountBic: yup.string().min(8).max(11).ensure().required(),\n goodHealthDeclaration: yup.array().required().of(schemas.goodHealthDeclaration).when('additionalInsuree', minFormsCount),\n // medicalDeclaration: yup.array().required().of(schemas.medicalDeclaration).when('additionalInsuree', minFormsCount),\n medicalDeclaration: yup.array().default([]).of(schemas.medicalDeclaration),\n cancelsOtherInsurerContract: yup.bool().required().default(false),\n guaranteesMortgageLoan: yup.bool().required().default(false),\n correctDataCheck: yup.bool().required().default(false).oneOf([true]),\n termsCheck: yup.bool().required().default(false).oneOf([true]),\n dataProtectionCheck: yup.bool().required().default(false).oneOf([true]),\n dataProcessingCheck: yup.bool().required().default(false).oneOf([true]),\n intermediaryMandateCheck: yup.bool().required().default(false).oneOf([true]),\n emailCommunicationCheck: yup.bool().required().default(false).oneOf([true])\n});\nmodule.exports = new Model(definition);\n\nfunction minFormsCount(v, s) {\n return v ? s.min(2).max(2) : s.min(1).max(1);\n}","var yup = require('yup');\n\nvar definition = {\n height: yup.number().required().min(100).max(225),\n weight: yup.number().required().min(40).max(150),\n isNotUnderIncapacityOfWork: yup.bool().required({\n key: 'consent'\n }),\n isNotUnderTreatment: yup.bool().required({\n key: 'consent'\n }),\n hasNoSevereDisease: yup.bool().required({\n key: 'consent'\n }),\n hasNoHospitalization: yup.bool().required({\n key: 'consent'\n })\n};\nmodule.exports = {\n definition: definition,\n schema: yup.object(definition).camelCase()\n};","var civilStatus = Object.freeze({\n single: 'single',\n married: 'married',\n partnered: 'partnered',\n divorced: 'divorced',\n widowed: 'widowed'\n});\nvar gender = {\n male: 'male',\n female: 'female'\n};\nmodule.exports = {\n civilStatus: civilStatus,\n civilStatuses: Object.freeze(Object.keys(civilStatus)),\n gender: gender,\n genders: Object.freeze(Object.keys(gender))\n};","var countries = getCountries();\nmodule.exports = {\n // https://raw.githubusercontent.com/michaelwittig/node-i18n-iso-countries/master/langs/en.json\n getCountry: function getCountry(countryCode) {\n return countries[(countryCode || '').toLowerCase()];\n },\n countries: countries\n};\n\nfunction getCountries() {\n return {\n af: 'Afghanistan',\n al: 'Albania',\n dz: 'Algeria',\n as: 'American Samoa',\n ad: 'Andorra',\n ao: 'Angola',\n ai: 'Anguilla',\n aq: 'Antarctica',\n ag: 'Antigua and Barbuda',\n ar: 'Argentina',\n am: 'Armenia',\n aw: 'Aruba',\n au: 'Australia',\n at: 'Austria',\n az: 'Azerbaijan',\n bs: 'Bahamas',\n bh: 'Bahrain',\n bd: 'Bangladesh',\n bb: 'Barbados',\n by: 'Belarus',\n be: 'Belgium',\n bz: 'Belize',\n bj: 'Benin',\n bm: 'Bermuda',\n bt: 'Bhutan',\n bo: 'Bolivia',\n ba: 'Bosnia and Herzegovina',\n bw: 'Botswana',\n bv: 'Bouvet Island',\n br: 'Brazil',\n io: 'British Indian Ocean Territory',\n bn: 'Brunei Darussalam',\n bg: 'Bulgaria',\n bf: 'Burkina Faso',\n bi: 'Burundi',\n kh: 'Cambodia',\n cm: 'Cameroon',\n ca: 'Canada',\n cv: 'Cape Verde',\n ky: 'Cayman Islands',\n cf: 'Central African Republic',\n td: 'Chad',\n cl: 'Chile',\n cn: 'China',\n cx: 'Christmas Island',\n cc: 'Cocos (Keeling) Islands',\n co: 'Colombia',\n km: 'Comoros',\n cg: 'Congo',\n cd: 'Congo, the Democratic Republic of the',\n ck: 'Cook Islands',\n cr: 'Costa Rica',\n ci: 'Cote D\\'Ivoire',\n hr: 'Croatia',\n cu: 'Cuba',\n cy: 'Cyprus',\n cz: 'Czech Republic',\n dk: 'Denmark',\n dj: 'Djibouti',\n dm: 'Dominica',\n do: 'Dominican Republic',\n ec: 'Ecuador',\n eg: 'Egypt',\n sv: 'El Salvador',\n gq: 'Equatorial Guinea',\n er: 'Eritrea',\n ee: 'Estonia',\n et: 'Ethiopia',\n fk: 'Falkland Islands (Malvinas)',\n fo: 'Faroe Islands',\n fj: 'Fiji',\n fi: 'Finland',\n fr: 'France',\n gf: 'French Guiana',\n pf: 'French Polynesia',\n tf: 'French Southern Territories',\n ga: 'Gabon',\n gm: 'Gambia',\n ge: 'Georgia',\n de: 'Germany',\n gh: 'Ghana',\n gi: 'Gibraltar',\n gr: 'Greece',\n gl: 'Greenland',\n gd: 'Grenada',\n gp: 'Guadeloupe',\n gu: 'Guam',\n gt: 'Guatemala',\n gn: 'Guinea',\n gw: 'Guinea-Bissau',\n gy: 'Guyana',\n ht: 'Haiti',\n hm: 'Heard Island and Mcdonald Islands',\n va: 'Holy See (Vatican City State)',\n hn: 'Honduras',\n hk: 'Hong Kong',\n hu: 'Hungary',\n is: 'Iceland',\n in: 'India',\n id: 'Indonesia',\n ir: 'Iran, Islamic Republic of',\n iq: 'Iraq',\n ie: 'Ireland',\n il: 'Israel',\n it: 'Italy',\n jm: 'Jamaica',\n jp: 'Japan',\n jo: 'Jordan',\n kz: 'Kazakhstan',\n ke: 'Kenya',\n ki: 'Kiribati',\n kp: 'North Korea',\n kr: 'South Korea',\n kw: 'Kuwait',\n kg: 'Kyrgyzstan',\n la: 'Lao People\\'s Democratic Republic',\n lv: 'Latvia',\n lb: 'Lebanon',\n ls: 'Lesotho',\n lr: 'Liberia',\n ly: 'Libya',\n li: 'Liechtenstein',\n lt: 'Lithuania',\n lu: 'Luxembourg',\n mo: 'Macao',\n mg: 'Madagascar',\n mw: 'Malawi',\n my: 'Malaysia',\n mv: 'Maldives',\n ml: 'Mali',\n mt: 'Malta',\n mh: 'Marshall Islands',\n mq: 'Martinique',\n mr: 'Mauritania',\n mu: 'Mauritius',\n yt: 'Mayotte',\n mx: 'Mexico',\n fm: 'Micronesia, Federated States of',\n md: 'Moldova, Republic of',\n mc: 'Monaco',\n mn: 'Mongolia',\n ms: 'Montserrat',\n ma: 'Morocco',\n mz: 'Mozambique',\n mm: 'Myanmar',\n na: 'Namibia',\n nr: 'Nauru',\n np: 'Nepal',\n nl: 'Netherlands',\n nc: 'New Caledonia',\n nz: 'New Zealand',\n ni: 'Nicaragua',\n ne: 'Niger',\n ng: 'Nigeria',\n nu: 'Niue',\n nf: 'Norfolk Island',\n mk: 'North Macedonia, Republic of',\n mp: 'Northern Mariana Islands',\n no: 'Norway',\n om: 'Oman',\n pk: 'Pakistan',\n pw: 'Palau',\n ps: 'Palestinian Territory, Occupied',\n pa: 'Panama',\n pg: 'Papua New Guinea',\n py: 'Paraguay',\n pe: 'Peru',\n ph: 'Philippines',\n pn: 'Pitcairn',\n pl: 'Poland',\n pt: 'Portugal',\n pr: 'Puerto Rico',\n qa: 'Qatar',\n re: 'Reunion',\n ro: 'Romania',\n ru: 'Russian Federation',\n rw: 'Rwanda',\n sh: 'Saint Helena',\n kn: 'Saint Kitts and Nevis',\n lc: 'Saint Lucia',\n pm: 'Saint Pierre and Miquelon',\n vc: 'Saint Vincent and the Grenadines',\n ws: 'Samoa',\n sm: 'San Marino',\n st: 'Sao Tome and Principe',\n sa: 'Saudi Arabia',\n sn: 'Senegal',\n sc: 'Seychelles',\n sl: 'Sierra Leone',\n sg: 'Singapore',\n sk: 'Slovakia',\n si: 'Slovenia',\n sb: 'Solomon Islands',\n so: 'Somalia',\n za: 'South Africa',\n gs: 'South Georgia and the South Sandwich Islands',\n es: 'Spain',\n lk: 'Sri Lanka',\n sd: 'Sudan',\n sr: 'Suriname',\n sj: 'Svalbard and Jan Mayen',\n sz: 'Swaziland',\n se: 'Sweden',\n ch: 'Switzerland',\n sy: 'Syrian Arab Republic',\n tw: 'Taiwan',\n tj: 'Tajikistan',\n tz: 'Tanzania, United Republic of',\n th: 'Thailand',\n tl: 'Timor-Leste',\n tg: 'Togo',\n tk: 'Tokelau',\n to: 'Tonga',\n tt: 'Trinidad and Tobago',\n tn: 'Tunisia',\n tr: 'Turkey',\n tm: 'Turkmenistan',\n tc: 'Turks and Caicos Islands',\n tv: 'Tuvalu',\n ug: 'Uganda',\n ua: 'Ukraine',\n ae: 'United Arab Emirates',\n gb: 'United Kingdom',\n us: 'United States of America',\n um: 'United States Minor Outlying Islands',\n uy: 'Uruguay',\n uz: 'Uzbekistan',\n vu: 'Vanuatu',\n ve: 'Venezuela',\n vn: 'Vietnam',\n vg: 'Virgin Islands, British',\n vi: 'Virgin Islands, U.S.',\n wf: 'Wallis and Futuna',\n eh: 'Western Sahara',\n ye: 'Yemen',\n zm: 'Zambia',\n zw: 'Zimbabwe',\n ax: 'Åland Islands',\n bq: 'Bonaire, Sint Eustatius and Saba',\n cw: 'Curaçao',\n gg: 'Guernsey',\n im: 'Isle of Man',\n je: 'Jersey',\n me: 'Montenegro',\n bl: 'Saint Barthélemy',\n mf: 'Saint Martin (French part)',\n rs: 'Serbia',\n sx: 'Sint Maarten (Dutch part)',\n ss: 'South Sudan',\n xk: 'Kosovo'\n };\n}","var _require = require('./QuoteSubscribeModel.files'),\n mimetypes = _require.mimetypes,\n fileSize = _require.fileSize;\n\nvar minAge = 18;\nvar maxAge = 75;\nvar maxDuration = 480;\n\nvar moment = function moment(_moment) {\n if (!_moment) {\n return;\n }\n\n var today = function today() {\n return _moment({\n hour: 0,\n minute: 0,\n seconds: 0\n });\n };\n\n var isValidMinAge = function isValidMinAge(value) {\n return value === undefined ? true : _moment().diff(_moment(value), 'year') >= minAge;\n };\n\n var isValidMaxAge = function isValidMaxAge(value) {\n return value === undefined ? true : _moment().diff(_moment(value), 'year') < maxAge;\n };\n\n var isFuture = function isFuture(value) {\n return _moment(value) > today();\n };\n\n var isTodayOrFuture = function isTodayOrFuture(value) {\n return _moment(value) >= today();\n };\n\n var isValidEffectiveDate = function isValidEffectiveDate(value) {\n return _moment().diff(_moment(value), 'month', true) <= 18; // max 18 month ahead today\n };\n\n var isMaxDuration = function isMaxDuration(dateOfBirth, dateOfBirth2, effectiveDate, schema) {\n var start = _moment(effectiveDate);\n\n var end = _moment(start).add(maxDuration, 'month');\n\n var dateOfBirthMoment = _moment(dateOfBirth);\n\n var dateOfBirth2Moment = _moment(dateOfBirth2);\n\n var calculateFrom = dateOfBirth2Moment.isValid() && dateOfBirth2Moment.isBefore(dateOfBirthMoment) ? dateOfBirth2Moment : dateOfBirthMoment;\n var diff = end.diff(calculateFrom, 'year', true);\n\n if (diff >= maxAge) {\n var max = end.subtract(diff - maxAge, 'year').diff(start, 'month');\n return schema.max(max, {\n key: 'loan.max',\n value: max / 12 < 0 ? 0 : Math.floor(max / 12)\n });\n }\n\n return schema;\n };\n\n return {\n today: today,\n isValidMinAge: isValidMinAge,\n isValidMaxAge: isValidMaxAge,\n isFuture: isFuture,\n isTodayOrFuture: isTodayOrFuture,\n isValidEffectiveDate: isValidEffectiveDate,\n isMaxDuration: isMaxDuration\n };\n};\n\nvar iban = function iban(_iban) {\n if (!_iban) {\n return;\n }\n\n var isValidIban = function isValidIban(value) {\n return _iban.isValid(value.replace(/\\s/g, ''));\n };\n\n return {\n isValidIban: isValidIban\n };\n};\n\nvar file = function file() {\n var isValidFile = function isValidFile(file) {\n if (Array.isArray(file)) {\n file = file[0];\n }\n\n return file instanceof File;\n };\n\n var isValidFileSize = function isValidFileSize(file) {\n var fileSizeLimit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : fileSize;\n\n if (Array.isArray(file)) {\n file = file[0];\n }\n\n return file.size < fileSizeLimit;\n };\n\n var isValidMimeType = function isValidMimeType(file) {\n var mimetypesArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : mimetypes;\n\n if (Array.isArray(file)) {\n file = file[0];\n }\n\n return mimetypesArray.includes(file.type);\n };\n\n return {\n isValidFile: isValidFile,\n isValidFileSize: isValidFileSize,\n isValidMimeType: isValidMimeType\n };\n};\n\nmodule.exports = {\n moment: moment,\n iban: iban,\n file: file\n};","module.exports = {\n extensions: ['.png', '.jpg', '.jpeg', '.pdf'],\n mimetypes: ['application/pdf', 'application/x-pdf', 'image/jpeg', 'image/pjpeg', 'image/x-citrix-jpeg', 'image/png'],\n fileSize: 4194304 // 4 MB\n\n};","import { useState, useEffect, useCallback } from 'react'\nimport constate from 'constate'\n\nfunction useSubscribeFormData () {\n const [subscribeFormData, setSubscribeFormData] = useState({})\n\n return { subscribeFormData, setSubscribeFormData }\n}\n\nexport const [SubscribeFormProvider, useSubscribeFormContext] = constate(useSubscribeFormData)\n\nfunction useSubscribeStep () {\n const [currentStep, setCurrentStep] = useState(0)\n const [progress, setProgress] = useState(0)\n const [steps, setSteps] = useState([])\n\n const next = useCallback(() => {\n setCurrentStep((currentStep) => currentStep + 1)\n }, [])\n\n const previous = useCallback(() => {\n setCurrentStep((currentStep) => currentStep - 1)\n }, [])\n\n const reset = () => {\n setCurrentStep(0)\n setProgress(0)\n setSteps([])\n }\n\n useEffect(() => {\n if (steps.length) {\n setProgress((currentStep) * (100 / (steps.length)))\n }\n }, [\n steps,\n currentStep,\n next,\n previous\n ])\n\n return { currentStep, steps, setSteps, progress, next, previous, reset }\n}\n\nexport const [SubscribeStepProvider, useSubscribeStepContext] = constate(useSubscribeStep)\n","import auth0 from 'auth0-js'\nimport moment from 'moment'\n\nconst options = Object.freeze({\n domain: process.env.REACT_APP_AUTH0_DOMAIN,\n clientID: process.env.REACT_APP_AUTH0_CLIENT_ID,\n audience: process.env.REACT_APP_AUTH0_AUDIENCE_URL,\n responseType: 'id_token token'\n})\n\nconst client = new auth0.WebAuth(Object.assign({}, options))\n\nlet user\nconst authToken = {\n expires: undefined,\n token: undefined,\n nonce: undefined\n}\n\nexport function isAuthenticated () {\n return !!user\n}\n\nexport function getUser () {\n return Object.freeze(Object.assign({}, user))\n}\n\nexport function getToken () {\n return Object.freeze(Object.assign({}, authToken))\n}\n\nexport function signIn () {\n client.authorize({\n redirectUri: getRedirectUri()\n })\n}\n\nexport function signOut () {\n user = undefined\n Object.keys(authToken).forEach(k => {\n authToken[k] = undefined\n })\n\n client.logout({\n returnTo: process.env.REACT_APP_URL\n })\n}\n\nexport function isAllowedUser () {\n let allowedUsers = []\n if (process.env.REACT_APP_ALLOWED_USERS) {\n allowedUsers = process.env.REACT_APP_ALLOWED_USERS.trim().split(',')\n }\n return allowedUsers.includes(user.sub)\n}\n\n// window.refreshToken = refreshToken\n\n// export function refreshToken (cb) {\n\n// if (!user) {\n// cb('requires login')\n// }\n\n// client.checkSession(\n// Object.assign({ nonce: authToken.nonce, redirectUri: window.location.origin + '/authenticate', prompt: 'none' }, options),\n// function (err, authResult) {\n// console.log('refresh token', err, authResult)\n// })\n// }\n\nexport function authenticate (cb) {\n client.parseHash({ hash: window.location.hash }, function (err, authResult) {\n if (err) {\n cb(err)\n return\n }\n\n Object.assign(authToken, {\n expires: moment().add(authResult.expiresIn, 'seconds'),\n token: authResult.accessToken,\n nonce: (authResult.idTokenPayload || {}).nonce\n })\n\n // console.log(authToken)\n // The contents of authResult depend on which authentication parameters were used.\n // It can include the following:\n // authResult.accessToken - access token for the API specified by `audience`\n // authResult.expiresIn - string with the access token's expiration time in seconds\n // authResult.idToken - ID token JWT containing user profile information\n\n client.client.userInfo(authResult.accessToken, function (err, usr) {\n if (!err) {\n user = usr\n }\n\n cb(err)\n })\n })\n}\n\nfunction getRedirectUri () {\n return `${window.location.origin}/authenticate?returnUrl=${window.location.pathname}${window.location.search}${window.location.hash}`\n}\n","import { useState } from 'react'\nimport constate from 'constate'\n\nfunction useLocaleSwitch () {\n const [localeSwitching, setLocaleSwitching] = useState(false)\n\n return { localeSwitching, setLocaleSwitching }\n}\n\nexport const [LocaleSwitchProvider, useLocaleSwitchContext] = constate(useLocaleSwitch)\n","import React, { useState, useEffect } from 'react'\nimport { Redirect } from 'react-router-dom'\nimport * as auth from './AuthenticationUtil'\n\nexport default function Authenticate () {\n const [state, setState] = useState({\n isAuthenticated: undefined,\n returnUrl: undefined\n })\n\n useEffect(() => {\n auth.authenticate(function (err) {\n const returnUrl = getReturnUrl()\n if (err || !returnUrl) {\n setState({\n isAuthenticated: false\n })\n return\n }\n\n setState({\n isAuthenticated: true,\n returnUrl\n })\n })\n }, [])\n\n switch (state.isAuthenticated) {\n case true:\n return \n case false:\n return \n default:\n return <>\n }\n\n}\n\nfunction getReturnUrl () {\n return window.location.search.slice(1).split('&').reduce((acc, m) => {\n let val = `${m}`.split('=')\n acc[val.shift()] = val.join('=')\n return acc\n }, {})['returnUrl']\n}\n","import i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport Backend from 'i18next-xhr-backend'\nimport LanguageDetector from 'i18next-browser-languagedetector'\n\nexport const availableLocales = ['en', 'fr']\n\ni18n\n .use(initReactI18next)\n .use(Backend)\n .use(LanguageDetector)\n .init({\n // Set language from path first\n detection: {\n order: ['path', 'querystring', 'cookie', 'localStorage', 'navigator', 'htmlTag', 'subdomain']\n },\n load: 'languageOnly',\n whitelist: availableLocales,\n nonExplicitWhitelist: true,\n cleanCode: true,\n fallbackLng: availableLocales,\n debug: process.env.NODE_ENV === 'development',\n backend: {\n loadPath: '/locales/{{lng}}.json'\n },\n joinArrays: true,\n returnObjects: true,\n // have a common namespace used around the full app\n ns: ['translations'],\n defaultNS: 'translations',\n keySeparator: '.',\n nsSeparator: '.',\n interpolation: {\n escapeValue: false, // not needed for react!!\n formatSeparator: ','\n },\n\n react: {\n wait: true\n }\n })\n\nexport default i18n\n","import { createBrowserHistory } from 'history'\n\nexport default createBrowserHistory()\n","import React from 'react'\nimport { useHistory } from 'react-router-dom'\nimport { availableLocales } from '../../i18n'\nimport i18next from 'i18next'\n\nimport { Menu, Dropdown, Button, Icon } from 'antd'\nimport { getCurrentLocale } from 'src/utils/helpers'\nimport { useLocaleSwitchContext } from '../../context/LocaleSwitchContext'\nimport { useTrackerContext } from '../../context/TrackerContext'\n\nconst LocaleSwitch = ({ ...props }) => {\n const history = useHistory()\n const currentLocale = getCurrentLocale()\n const { setLocaleSwitching } = useLocaleSwitchContext()\n const { trackEvent } = useTrackerContext()\n\n const handleLocaleChange = ({ key }) => {\n if (key === currentLocale) {\n return\n }\n\n const url = history.location.pathname\n const newUrl = url.replace(currentLocale, key)\n\n trackEvent('Language changed', { originalLanguage: currentLocale, newLanguage: key })\n history.push(newUrl)\n i18next.changeLanguage(key)\n setLocaleSwitching(false)\n }\n\n const handleVisibleChange = (visibility) => {\n setLocaleSwitching(visibility)\n }\n\n const localesOptions = availableLocales.map((locale) => {\n return {locale === 'fr' ? 'Français' : 'English'}\n })\n\n const menu = (\n \n {localesOptions}\n \n )\n\n return (\n \n \n \n )\n}\n\nexport default LocaleSwitch\n","import React, { useState, useEffect } from 'react'\nimport { NavLink } from 'react-router-dom'\nimport logo from './../../../images/simplomus.svg'\nimport { Row, Col, Button } from 'antd'\nimport { t, isDesktop, getCurrentLocale } from './../../../utils/helpers'\nimport throttle from 'lodash.throttle'\n\nimport { useTrackerContext } from './../../../context/TrackerContext'\n\nimport LocaleSwitch from './../../common/LocaleSwitch'\n\nconst Header = ({ minimalLayout }) => {\n const [open, setOpen] = useState(isDesktop())\n const currentLocale = getCurrentLocale()\n const target = minimalLayout ? '_blank' : '_self'\n const { trackEvent } = useTrackerContext()\n\n const handleMenuToggle = () => {\n setOpen(!open)\n }\n\n const handleOnClick = (name = null) => {\n if (minimalLayout && name) {\n trackEvent(`Clicked: ${name}`)\n }\n if (!isDesktop()) {\n handleMenuToggle()\n }\n }\n\n useEffect(() => {\n const handleResize = () => {\n if ((isDesktop() === false) && open) {\n setOpen(false)\n }\n if ((isDesktop() === true)) {\n setOpen(true)\n }\n }\n\n window.addEventListener('resize', throttle(handleResize, 300))\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [open])\n\n return (\n
\n
\n \n \n \n \n \n \n {open && (\n \n \n \n )}\n \n
\n
\n )\n}\n\nexport default Header\n","import React from 'react'\nimport { NavLink } from 'react-router-dom'\nimport { t, getCurrentLocale } from './../../../utils/helpers'\n\nimport LocaleSwitch from './../../common/LocaleSwitch'\nimport { Row, Col } from 'antd'\n\nimport VRB from './../../../images/vrb_white.svg'\nimport Cardif from './../../../images/cardif-white.svg'\n\nconst Footer = ({ minimalLayout }) => {\n const currentLocale = getCurrentLocale()\n const target = minimalLayout ? '_blank' : '_self'\n\n return (\n
\n {!minimalLayout && (\n
\n
\n \n \n \n \n \n \n \n \n
\n
\n )}\n
\n
\n \n \n

© {new Date().getFullYear()} Vanbreda Risk & Benefits S.A.

\n \n \n \n
\n Vanbreda Risk & Benefits S.A. Logo\n Cardif Logo\n
\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","import React from 'react'\nimport HeaderContent from './Header'\nimport FooterContent from './Footer'\nimport { Layout, Alert } from 'antd'\nimport { detect } from 'detect-browser'\nimport { MarkupEscape } from 'src/utils/helpers'\n\nconst { Header, Footer, Content } = Layout\n\nconst AppLayout = ({ children, minimalLayout, ...props }) => {\n const browser = detect()\n\n const classNames = [\n 'AppLayout',\n 'PublicLayout',\n browser && browser.name === 'ie' ? 'ie' : ''\n ]\n\n return (\n \n
\n {browser && browser.name === 'ie' && (\n \n )}\n \n
\n \n {children}\n \n
\n \n
\n
\n )\n}\n\nexport default AppLayout\n","import React from 'react'\nimport { Route } from 'react-router-dom'\nimport PublicLayout from '../components/frontend/common/AppLayout'\n\nconst PublicRoute = ({ component: Component, minimalLayout, ...rest }) => {\n return (\n (\n \n \n \n )}\n />\n )\n}\n\nexport default PublicRoute\n","import React, { useState, useEffect } from 'react'\nimport { NavLink } from 'react-router-dom'\nimport logo from './../../../images/simplomus.svg'\nimport { Row, Col, Button } from 'antd'\nimport { t, isDesktop, getCurrentLocale } from './../../../utils/helpers'\nimport throttle from 'lodash.throttle'\n\nconst Header = () => {\n const [open, setOpen] = useState(isDesktop())\n const currentLocale = getCurrentLocale()\n\n const handleMenuToggle = () => {\n setOpen(!open)\n }\n\n const handleOnClick = () => {\n if (!isDesktop()) {\n handleMenuToggle()\n }\n }\n\n useEffect(() => {\n const handleResize = () => {\n if ((isDesktop() === false) && open) {\n setOpen(false)\n }\n if ((isDesktop() === true)) {\n setOpen(true)\n }\n }\n\n window.addEventListener('resize', throttle(handleResize, 300))\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [open])\n\n return (\n
\n
\n \n \n \n Simplomus Logo\n \n \n {open && (\n \n \n \n )}\n \n
\n
\n )\n}\n\nexport default Header\n","import React from 'react'\nimport HeaderContent from './Header'\nimport { Layout } from 'antd'\nimport i18next from 'i18next'\n\nconst { Header, Content } = Layout\n\nconst AppLayout = ({ i18n, children, ...rest }) => {\n\n // Force English for backend\n if (i18next.languages[0] !== 'en') {\n i18next.changeLanguage('en')\n }\n\n return (\n \n
\n
\n \n
\n
\n \n
\n {children}\n
\n
\n
\n )\n}\n\nexport default AppLayout\n","import * as auth from '../utils/AuthenticationUtil'\nimport React from 'react'\nimport { Route } from 'react-router-dom'\nimport PrivateLayout from '../components/backend/common/AppLayout'\n\n/*\n\n domain={process.env.REACT_APP_AUTH0_DOMAIN}\n client_id={process.env.REACT_APP_AUTH0_CLIENT_ID}\n redirect_uri={process.env.REACT_APP_AUTH0_REDIRECT_URL + `?returnUrl=${window.location.pathname}`}\n audience={process.env.REACT_APP_AUTH0_AUDIENCE_URL}\n responseType='id_token token'\n onRedirectCallback={onRedirectCallback}\n*/\n\nconst PrivateRoute = ({ component: Component, path, ...rest }) => {\n if (!auth.isAuthenticated()) {\n auth.signIn()\n return (<>)\n }\n\n const render = props => ()\n\n return (\n \n )\n}\n\nexport default PrivateRoute\n","import React from 'react'\nimport { Link } from 'react-router-dom'\nimport { Button, Typography } from 'antd'\nimport { t, getCurrentLocale } from './../../../utils/helpers'\n\nconst PageCTA = () => {\n const { Title } = Typography\n const currentLocale = getCurrentLocale()\n return (\n
\n
\n {t('commons.pageCTA.title')}\n \n \n \n
\n
\n )\n}\n\nexport default PageCTA\n","import React from 'react'\nimport Seo from '../common/Seo'\nimport { Link } from 'react-router-dom'\nimport { Row, Col, Typography, Button } from 'antd'\nimport PageCTA from './../common/PageCTA'\nimport { t, MarkupEscape, getCurrentLocale } from '../../../utils/helpers'\nimport hero from './../../../images/hero.svg'\nimport cardif from './../../../images/cardif_boxed.svg'\nimport vrb from './../../../images/vrb_boxed.svg'\nimport paperLess from './../../../images/paper-free.svg'\nimport privacy from './../../../images/privacy.svg'\nimport trust from './../../../images/trust.svg'\nimport fast from './../../../images/fast.svg'\nimport price from './../../../images/price.svg'\nimport offer from './../../../images/offer.svg'\nimport advices from './../../../images/advices.svg'\nimport customize from './../../../images/customize.svg'\nimport user from './../../../images/user.svg'\n\nconst Homepage = () => {\n const { Title, Text, Paragraph } = Typography\n const currentLocale = getCurrentLocale()\n\n const icons = {\n whySimplomus: [\n paperLess,\n offer,\n price,\n fast,\n privacy,\n advices,\n user,\n customize,\n trust\n ]\n }\n\n const getIcon = (section, index) => {\n return icons[section][index] ? icons[section][index] : null\n }\n\n return (\n <>\n \n
\n
\n \n \n {MarkupEscape('home.title')}\n \n {t('home.subtitle')}\n \n \n \n \n \n\n \n Illustration\n
\n \n \n
\n
\n
\n
\n \n \n {t('home.sections.0.title')}\n \n {t('home.sections.0.columns', { returnObjects: true }).map((column, index) => (\n \n {column.title && (\n
{column.title}
\n )}\n {column.text && (\n \n \n \n )}\n \n ))}\n
\n \n
\n
\n
\n
\n
\n {t('home.sections.1.title')}\n \n {t('home.sections.1.columns', { returnObjects: true }).map((column, index) => (\n \n {getIcon('whySimplomus', index) && (\n {column.title\n )}\n {column.title && (\n
{column.title}
\n )}\n {column.text && (\n \n \n \n )}\n \n ))}\n
\n
\n
\n
\n
\n {t('home.sections.2.title')}\n \n \n \n \n
{t('home.sections.2.columns.0.title')}
\n {MarkupEscape('home.sections.2.columns.0.text', { returnObjects: true })}\n \n \n Vanbreda Risk & Benefits Logo\n \n
\n \n
\n \n \n \n \n
{t('home.sections.2.columns.1.title')}
\n {MarkupEscape('home.sections.2.columns.1.text', { returnObjects: true })}\n \n \n Cardif Logo\n \n
\n \n
\n
\n
\n\n \n \n )\n}\n\nexport default Homepage\n","import React from 'react'\nimport Seo from '../common/Seo'\nimport { Row, Col, Typography, Table } from 'antd'\nimport { t, MarkupEscape, currencyFormat } from 'src/utils/helpers'\n\nconst FiscalityPage = () => {\n const { Title } = Typography\n\n const getHeaderTitle = (key) => t(`fiscality.table.header.${key}`, { returnObjects: true })\n\n const columns = [\n {\n title: getHeaderTitle(0),\n dataIndex: 'age',\n key: 'age',\n align: 'left',\n render: index => ({t(`fiscality.table.body.${index}`, { returnObjects: true })})\n },\n {\n title: getHeaderTitle(1),\n dataIndex: 'noChildren',\n key: 'noChildren',\n align: 'center',\n render: amount => `${currencyFormat.format(amount, { separator: ' ', precision: 0 })} €`\n },\n {\n title: getHeaderTitle(2),\n dataIndex: 'oneChild',\n key: 'oneChild',\n align: 'center',\n render: amount => `${currencyFormat.format(amount, { separator: ' ', precision: 0 })} €`\n },\n {\n title: getHeaderTitle(3),\n dataIndex: 'twoChildren',\n key: 'twoChildren',\n align: 'center',\n render: amount => `${currencyFormat.format(amount, { separator: ' ', precision: 0 })} €`\n },\n {\n title: getHeaderTitle(4),\n dataIndex: 'threeChildren',\n key: 'threeChildren',\n align: 'center',\n render: amount => `${currencyFormat.format(amount, { separator: ' ', precision: 0 })} €`\n },\n {\n title: getHeaderTitle(5),\n dataIndex: 'extraChild',\n key: 'extraChild',\n align: 'center',\n render: amount => `+ ${currencyFormat.format(amount, { separator: ' ', precision: 0 })} €`\n }\n ]\n\n const generateData = (key) => ({\n key: key,\n age: key,\n noChildren: 6000 + (key * 480),\n oneChild: 7200 + (key * 576),\n twoChildren: 8400 + (key * 672),\n threeChildren: 9600 + (key * 768),\n extraChild: 1200 + (key * 96)\n })\n\n const data = [...Array(21).keys()].map(index => generateData(index))\n\n return (\n <>\n \n
\n
\n \n \n {t('fiscality.title')}\n\n
\n
\n
\n {MarkupEscape('fiscality.text', { joinArrays: true })}\n
{t('fiscality.table.title')}
\n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default FiscalityPage\n","import React, { useState, useEffect } from 'react'\nimport Seo from '../common/Seo'\nimport { Typography, Row, Col, Collapse, Button, Input } from 'antd'\nimport { t, MarkupEscape, getCurrentLocale } from '../../../utils/helpers'\nimport { Link } from 'react-router-dom'\nimport Fuse from 'fuse.js'\n\nconst FAQPage = () => {\n const [query, setQuery] = useState(null)\n const [fuse, setFuse] = useState()\n const { Title } = Typography\n const { Panel } = Collapse\n const { Search } = Input\n const currentLocale = getCurrentLocale()\n\n const generateIndex = (array, section) => {\n return array.map((item, index) => {\n return {\n question: item.question,\n answerEscaped: item.answer.join('').replace(/(<([^>]+)>)/ig, ''),\n answer: item.answer,\n index: index,\n section: section\n }\n })\n }\n\n useEffect(() => {\n const index = [\n ...generateIndex(t('faq.sections.1.questions'), 1),\n ...generateIndex(t('faq.sections.2.questions'), 2),\n ...generateIndex(t('faq.sections.3.questions'), 3)\n ]\n\n setFuse(new Fuse(index, {\n includeScore: true,\n useExtendedSearch: true,\n threshold: 0.3,\n keys: [{\n name: 'question',\n weight: 0.8\n }, {\n name: 'answer',\n weight: 0.8\n }]\n }))\n }, [\n currentLocale,\n setFuse\n ])\n\n const SearchBar = ({ query, children }) => {\n let results = []\n\n if (query) {\n results = fuse.search(`'${query}`)\n }\n\n return (\n
\n {query\n ? (\n <>\n {t('faq.search.title', { count: results.length })}\n {results.length\n ? (\n \n {results.map((result, key) => {\n return (\n \n ${query}`)) }} />\n \n )\n })}\n \n )\n : (\n

{t('faq.search.noResult', { query: query })}

\n )}\n \n ) : (\n children\n )}\n
\n )\n }\n\n return (\n <>\n \n
\n
\n \n
\n {MarkupEscape('faq.title')}\n setQuery(value === '' ? null : value)}\n />\n
\n
\n
\n \n <>\n
\n {t('faq.sections.1.title')}\n \n {t('faq.sections.1.questions').map((item, key) => {\n return (\n \n \n \n )\n })}\n \n
\n\n
\n {t('faq.sections.2.title')}\n \n {t('faq.sections.2.questions').map((item, key) => {\n return (\n \n \n \n )\n })}\n \n
\n\n
\n {t('faq.sections.3.title')}\n \n {t('faq.sections.3.questions').map((item, key) => {\n return (\n \n \n \n )\n })}\n \n
\n \n
\n
\n
\n
\n {t('faq.sections.contact.title')}\n \n
\n
\n
\n
\n \n \n \n \n \n )\n}\n\nexport default FAQPage\n","import axios from 'axios'\nimport { t, getCurrentLocale } from './helpers'\nimport { Modal } from 'antd'\n\nexport const getCall = (url, data) => {\n return new Promise((resolve, reject) => {\n axios.get(url, data, {\n headers: {\n 'Accept-Language': getCurrentLocale()\n }\n }).then(res => {\n return resolve(res.data)\n }).catch(err => {\n generateError(err)\n return reject(err)\n })\n })\n}\n\nexport const postCall = (url, data) => {\n return new Promise((resolve, reject) => {\n axios.post(url, data, {\n headers: {\n 'Accept-Language': getCurrentLocale()\n }\n }).then(res => {\n return resolve(res.data)\n }).catch(err => {\n generateError(err)\n return reject(err)\n })\n })\n}\n\nconst generateError = (error) => {\n const status = null || error.response?.status || error.request?.status\n if (status === 0) {\n Modal.error({\n title: t(`errors.status.0.title`),\n content: t(`errors.status.0.text`)\n })\n }\n else if (status >= 400) {\n Modal.error({\n title: t(`errors.status.400.title`),\n content: t(`errors.status.400.text`)\n })\n }\n else if (status >= 500) {\n Modal.error({\n title: t(`errors.status.500.title`),\n content: t(`errors.status.500.text`)\n })\n }\n}\n","import React from 'react'\nimport i18next from 'i18next'\nimport { t, MarkupEscape } from './../../../utils/helpers'\n\nconst setErrorMessage = (error) => {\n if (error === 'default') {\n return t('forms.errors.mixed.default')\n }\n\n const options = {}\n if (error.message.field) {\n options.field = i18next.exists(`forms.fields.${error.message.field}.label`) ? t(`forms.fields.${error.message.field}.label`) : error.message.field\n }\n if (error.message.value) {\n if (error.message.value === \"true\") {\n options.value = t('global.true')\n } else if (error.message.value === \"false\") {\n options.value = t('global.no')\n } else {\n options.value = error.message.value\n }\n }\n return i18next.exists(`forms.errors.${error.message.key}`) ? MarkupEscape(`forms.errors.${error.message.key}`, options) : t('forms.errors.mixed.default')\n}\n\nconst ErrorMessage = ({ errors, name, parent = null, className = '' }) => {\n const error = parent && errors[parent] ? errors[parent][name] : errors[name]\n\n if (!error) {\n return null\n }\n\n let message = setErrorMessage('default')\n\n if (typeof error.message === 'object') {\n if (!error.message.field) {\n error.message.field = name\n }\n message = setErrorMessage(error)\n }\n return (\n

{message}

\n )\n}\n\nexport default ErrorMessage\n","import React, { useState } from 'react'\nimport JSONPretty from 'react-json-prettify'\nimport { github } from 'react-json-prettify/dist/themes'\nimport { Button, Drawer } from 'antd'\n\nfunction CodeHighlight (code) {\n const [showOutput, setShowOutput] = useState(false)\n if (!code) {\n return false\n }\n\n return (\n <>\n \n setShowOutput(false)}\n visible={showOutput}\n >\n \n \n \n )\n}\n\nexport default CodeHighlight\n","import React, { useState } from 'react'\nimport { Button, Select } from 'antd'\nimport { useForm, Controller } from 'react-hook-form'\nimport { t, getCurrentLocale, generateWidth, isDesktop } from './../../../utils/helpers'\nimport { postCall } from './../../../utils/ApiCall'\nimport moment from 'moment'\nimport MaskedInput from 'antd-mask-input'\nimport NumberFormat from 'react-number-format'\nimport ErrorMessage from './../../frontend/common/ErrorMessage'\nimport CodeHighlight from './../../frontend/common/CodeHighlight'\nimport { useTrackerContext } from './../../../context/TrackerContext'\nconst validationSchema = require('./../../../utils/validation')\n\nconst dateFormat = 'DD/MM/YYYY'\nconst QuoteForm = ({ setOffers, handleLoading, loading }) => {\n const { trackEvent } = useTrackerContext()\n const currentLocale = getCurrentLocale()\n const [fieldWidth, setFieldWidth] = useState({\n dateOfBirth: generateWidth(8),\n dateOfBirth2: generateWidth(8),\n isSmoker: generateWidth(6),\n isSmoker2: generateWidth(6),\n additionalInsuree: generateWidth(6),\n capital: generateWidth(8),\n interestRate: generateWidth(4),\n duration: generateWidth(2),\n interval: generateWidth(5),\n effectiveDate: generateWidth(8)\n })\n\n const actions = isDesktop() ? ['focus', 'click'] : ['click']\n\n const defaultValues = {\n dateOfBirth: '',\n dateOfBirth2: '',\n isSmoker: '',\n isSmoker2: '',\n additionalInsuree: '',\n capital: '',\n interestRate: '',\n duration: '',\n interval: '',\n effectiveDate: moment().utc(true).add(1, 'days').format(dateFormat)\n }\n\n const { watch, setValue, handleSubmit, errors, formState, setError, control } = useForm({\n mode: 'onSubmit',\n reValidateMode: 'onChange',\n validateCriteriaMode: 'firstErrorDetected',\n validationSchema: validationSchema.quoteValidation,\n submitFocusError: true,\n defaultValues: defaultValues\n })\n const values = watch()\n\n const needsAdditionalFields = watch('additionalInsuree') === 'true'\n\n const options = {\n additionalInsuree: [\n {\n value: 'false',\n label: t('forms.fields.additionalInsuree.options.false')\n },\n {\n value: 'true',\n label: t('forms.fields.additionalInsuree.options.true')\n }\n ],\n isSmoker: [\n {\n value: 'false',\n label: t('forms.fields.isSmoker.options.false')\n },\n {\n value: 'true',\n label: t('forms.fields.isSmoker.options.true')\n }\n ],\n isSmoker2: [\n {\n value: 'false',\n label: t('forms.fields.isSmoker2.options.false')\n },\n {\n value: 'true',\n label: t('forms.fields.isSmoker2.options.true')\n }\n ],\n interval: [\n {\n value: 'annual',\n label: t('forms.fields.interval.options.annual').toLowerCase()\n },\n {\n value: 'twice-yearly',\n label: t('forms.fields.interval.options.twice-yearly').toLowerCase()\n },\n {\n value: 'quarterly',\n label: t('forms.fields.interval.options.quarterly').toLowerCase()\n },\n {\n value: 'monthly',\n label: t('forms.fields.interval.options.monthly').toLowerCase()\n }\n ]\n }\n\n const setFormNumberValue = (name, values, limit = null) => {\n setValue(name, values.floatValue, false)\n\n if (limit) {\n if (limit.min) {\n checkMin(name, values, limit.min)\n }\n\n if (limit.max) {\n checkMax(name, values, limit.max)\n }\n }\n }\n\n const checkMax = (name, values, max) => {\n if (values.floatValue > max) {\n values.floatValue = Number(max)\n setFormNumberValue(name, values)\n }\n }\n\n const checkMin = (name, values, min) => {\n if (values.floatValue < min) {\n values.floatValue = min\n setFormNumberValue(name, values)\n }\n }\n\n const onSelectChange = (name, e) => {\n const newWidth = generateWidth(e.props.children)\n setFieldWidth({\n ...fieldWidth,\n [name]: newWidth\n })\n }\n\n const onSubmit = data => {\n handleLoading(true)\n const value = { ...data }\n\n postCall(`${process.env.REACT_APP_API_URL}/quote/calculate`, value)\n .then(response => {\n setOffers(value, response)\n trackEvent('Quote calculated', { ...value, language: currentLocale })\n }).catch(error => {\n if (error.response) {\n if (error.response.status === 400) {\n for (const [key, value] of Object.entries(error.response.data.validationState)) {\n setError(key, value.message)\n }\n }\n }\n }).finally(() => {\n handleLoading(false)\n })\n }\n\n const generateOptions = (name) => {\n return options[name].reduce((acc, item) => {\n return acc.concat({item.label})\n }, [])\n }\n\n const fields = {\n dateOfBirth: (\n e.target.value}\n mask='11/11/1111'\n inputMode='numeric'\n placeholderChar=' '\n placeholder=' / / '\n style={{ width: fieldWidth.dateOfBirth }}\n className='narative-input'\n defaultValue={defaultValues.dateOfBirth}\n value={values.dateOfBirth}\n />\n ),\n dateOfBirth2: (\n e.target.value}\n mask='11/11/1111'\n inputMode='numeric'\n placeholderChar=' '\n placeholder=' / / '\n style={{ width: fieldWidth.dateOfBirth2 }}\n className='narative-input'\n defaultValue={defaultValues.dateOfBirth2}\n value={values.dateOfBirth2}\n />\n ),\n isSmoker: (\n {generateOptions('isSmoker')})}\n name='isSmoker'\n control={control}\n onChange={([e, target]) => {\n onSelectChange('isSmoker', target)\n return e\n }}\n style={{ width: fieldWidth.isSmoker }}\n className='narative-input'\n defaultValue={defaultValues.isSmoker}\n value={values.isSmoker}\n showAction={actions}\n />\n ),\n isSmoker2: (\n {generateOptions('isSmoker2')})}\n name='isSmoker2'\n control={control}\n onChange={([e, target]) => {\n onSelectChange('isSmoker2', target)\n return e\n }}\n style={{ width: fieldWidth.isSmoker2 }}\n className='narative-input'\n defaultValue={defaultValues.isSmoker2}\n value={values.isSmoker2}\n showAction={actions}\n />\n ),\n additionalInsuree: (\n {generateOptions('additionalInsuree')})}\n name='additionalInsuree'\n control={control}\n onChange={([e, target]) => {\n onSelectChange('additionalInsuree', target)\n return e\n }}\n style={{ width: fieldWidth.additionalInsuree }}\n className='narative-input'\n defaultValue={defaultValues.additionalInsuree}\n value={values.additionalInsuree}\n showAction={actions}\n />\n ),\n capital: (\n e.floatValue}\n onChangeName='onValueChange'\n style={{ width: fieldWidth.capital }}\n className='narative-input'\n defaultValue={defaultValues.capital}\n value={values.capital}\n inputMode='numeric'\n thousandSeparator=' '\n decimalScale={2}\n decimalSeparator=','\n />\n ),\n interestRate: (\n e.floatValue}\n onChangeName='onValueChange'\n style={{ width: fieldWidth.interestRate }}\n className='narative-input'\n defaultValue={defaultValues.interestRate}\n value={values.interestRate}\n inputMode='numeric'\n decimalScale={2}\n decimalSeparator=','\n maxLength={5}\n />\n ),\n duration: (\n e.floatValue}\n onChangeName='onValueChange'\n style={{ width: fieldWidth.duration }}\n className='narative-input'\n defaultValue={defaultValues.duration}\n value={values.duration}\n inputMode='numeric'\n decimalScale={0}\n maxLength={2}\n />\n ),\n interval: (\n {generateOptions('interval')})}\n name='interval'\n control={control}\n onChange={([e, target]) => {\n onSelectChange('interval', target)\n return e\n }}\n style={{ width: fieldWidth.interval }}\n className='narative-input'\n defaultValue={defaultValues.interval}\n value={values.interval}\n showAction={actions}\n />\n ),\n effectiveDate: (\n e.target.value}\n mask='11/11/1111'\n inputMode='numeric'\n placeholderChar=' '\n placeholder=' / / '\n style={{ width: fieldWidth.effectiveDate }}\n className='narative-input'\n defaultValue={defaultValues.effectiveDate}\n value={values.effectiveDate}\n />\n )\n }\n\n return (\n <>\n
\n
\n
{t('forms.quote.policyHolder', { returnObject: true })[0]} {fields.dateOfBirth} {t('forms.quote.policyHolder', { returnObject: true })[1]} {fields.isSmoker}.
\n {(errors.dateOfBirth || errors.isSmoker) && (\n
    \n {errors.dateOfBirth && (
  • )}\n {errors.isSmoker && (
  • )}\n
\n )}\n
{t('forms.quote.forWhom', { returnObject: true })[0]} {fields.additionalInsuree}.
\n {errors.additionalInsuree && (\n
    \n
  • \n
\n )}\n
\n {needsAdditionalFields && (\n
\n
{t('forms.quote.additionalInsuree', { returnObject: true })[0]} {fields.dateOfBirth2} {t('forms.quote.additionalInsuree', { returnObject: true })[1]} {fields.isSmoker2}.
\n {(errors.dateOfBirth2 || errors.isSmoker2) && (\n
    \n {errors.dateOfBirth2 && (
  • )}\n {errors.isSmoker2 && (
  • )}\n
\n )}\n
\n )}\n
\n
{t('forms.quote.loan', { returnObject: true })[0]} {fields.capital} {t('forms.quote.loan', { returnObject: true })[1]} {fields.interestRate} {t('forms.quote.loan', { returnObject: true })[2]} {fields.duration} {t('forms.quote.loan')[3]}
\n {(errors.capital || errors.interestRate || errors.duration) && (\n
    \n {errors.capital && (
  • )}\n {errors.interestRate && (
  • )}\n {errors.duration && (
  • )}\n
\n )}\n
\n
\n
{t('forms.quote.reimbursment', { returnObject: true })[0]} {fields.interval}{currentLocale === 'en' ? (<>{t('forms.quote.reimbursment', { returnObject: true })[1]}) : '.'}
\n {errors.interval && (\n
    \n
  • \n
\n )}\n
\n
\n
{t('forms.quote.effectiveDate', { returnObject: true })[0]} {fields.effectiveDate}.
\n {errors.effectiveDate && (\n
    \n
  • \n
\n )}\n
\n \n \n {process.env.NODE_ENV === 'development' && (\n \n )}\n \n )\n}\n\nexport default QuoteForm\n","import React, { useState, useEffect } from 'react'\nimport * as QuoteSaveModel from 'simplomus.contracts/QuoteSaveModel'\nimport { Checkbox, Form, Button, Input, Modal, message } from 'antd'\nimport { useForm, Controller } from 'react-hook-form'\nimport { postCall } from './../../../utils/ApiCall'\nimport { t, MarkupEscape } from './../../../utils/helpers'\nimport ErrorMessage from './../common/ErrorMessage'\nimport { useTrackerContext } from './../../../context/TrackerContext'\n\nconst SendQuoteByEmailForm = ({ values, offers }) => {\n const { trackEvent } = useTrackerContext()\n const [showModal, setShowModal] = useState(false)\n const [hasConsent, setHasConsent] = useState(false)\n const [loading, setLoading] = useState(false)\n const defaultValues = {\n firstName: '',\n firstName2: '',\n lastName: '',\n lastName2: '',\n email: '',\n dataProcessingCheck: false\n }\n\n const { register, setValue, handleSubmit, errors, setError, reset, watch, control } = useForm({\n validateCriteriaMode: 'firstErrorDetected',\n mode: 'onSubmit',\n reValidateMode: 'onBlur',\n validationSchema: QuoteSaveModel,\n defaultValues: defaultValues\n })\n\n const needsAdditionalFields = values.additionalInsuree\n const formValues = watch()\n\n const onSubmit = data => {\n if (!loading) {\n setLoading(true)\n const dataObj = {\n offerId: offers.offerId,\n firstName: data.firstName,\n lastName: data.lastName,\n email: data.email,\n additionalInsuree: needsAdditionalFields,\n dataProcessingCheck: data.dataProcessingCheck\n }\n\n if (needsAdditionalFields) {\n dataObj.firstName2 = data.firstName2\n dataObj.lastName2 = data.lastName2\n }\n postCall(`${process.env.REACT_APP_API_URL}/quote/save`, dataObj)\n .then(() => {\n message.success(t('modals.sendByEmail.notifications.success'))\n trackEvent('Offer requested')\n setTimeout(() => {\n handleModalToggle(false)\n }, 1000)\n }).catch(error => {\n if (error.response.status === 400) {\n if (error.response.data.validationState !== undefined && error.response.data.validationState !== null) {\n Object.entries(error.response.data.validationState).forEach(([key, value]) => {\n setError(key, value.message)\n })\n }\n }\n }).finally(() => {\n setLoading(false)\n })\n }\n }\n\n const handleShowModal = () => {\n setShowModal(true)\n }\n\n const handleModalToggle = (action) => {\n if (action === 'show' || action === true) {\n setShowModal(true)\n } else if (action === 'hide' || action === false) {\n reset()\n setShowModal(false)\n }\n }\n\n useEffect(() => {\n // Set validation dependency fields\n register({ name: 'offerId' })\n setValue('offerId', offers.offerId, false)\n }, [\n offers.offerId,\n register,\n setValue\n ])\n\n useEffect(() => {\n setHasConsent(formValues.dataProcessingCheck)\n }, [formValues.dataProcessingCheck])\n\n const generateField = (propertyName, customOptions = {}) => {\n const options = {\n label: customOptions.label || true,\n type: customOptions.type || 'text'\n }\n\n return (\n <>\n \n \n \n \n \n )\n }\n\n const generateCheckboxField = (propertyName) => {\n return (\n <>\n \n {\n return e.target.checked\n }}\n required\n >\n {MarkupEscape(`forms.fields.${propertyName}.label`)}\n \n \n \n \n )\n }\n\n return (\n <>\n \n handleModalToggle('hide')}\n >\n
\n {generateField('firstName')}\n {generateField('lastName')}\n {generateField('email', { type: 'email' })}\n {needsAdditionalFields && (\n <>\n {generateField('firstName2')}\n {generateField('lastName2')}\n \n )}\n {generateCheckboxField('dataProcessingCheck')}\n \n \n \n \n )\n}\n\nexport default SendQuoteByEmailForm\n","import React, { useState, useRef } from 'react'\nimport Seo from '../common/Seo'\nimport { Link } from 'react-router-dom'\nimport { Typography, Row, Col, Card, Button } from 'antd'\nimport { t, MarkupEscape, getCurrentLocale, currencyFormat } from '../../../utils/helpers'\nimport QuoteForm from '../forms/QuoteForm'\nimport SendQuoteByEmailForm from './../../frontend/forms/SendQuoteByEmailForm'\nimport scrollToComponent from 'react-scroll-to-component'\nimport * as moment from 'moment'\nimport 'moment/locale/fr'\n\nconst QuotePage = () => {\n const [loading, setLoading] = useState(false)\n const [data, setData] = useState()\n const [offers, setOffers] = useState({\n offerId: '',\n paymentDuration: '',\n offers: []\n })\n const offerEl = useRef(null)\n const { Title } = Typography\n const currentLocale = getCurrentLocale()\n moment.locale(currentLocale)\n\n const handleLoading = (newLoadingState) => {\n setLoading(newLoadingState)\n }\n\n const handleGetOffers = (data, response) => {\n const newOffersObj = {\n offerId: response.offerId,\n paymentDuration: response.paymentDuration,\n offers: []\n }\n\n response.offers.forEach(offer => {\n newOffersObj.offers.push(offer)\n })\n setOffers(newOffersObj)\n setData(data)\n setLoading(false)\n scrollToComponent(offerEl.current, { offset: 0, align: 'top', duration: 800 })\n }\n\n const Plan = ({ plan, offerId, paymentDuration }, props) => {\n return (\n
\n
{t(`plans.${plan.label}.plus`)}
\n \n {MarkupEscape(`plans.${plan.label}.name`)}\n {plan.isValid && (\n <>\n {plan.premium && (\n

{MarkupEscape(`plans.${plan.label}.price`, { price: currencyFormat.format(plan.premium) })}

\n )}\n
\n {plan.label === 'once'\n ? (\n

{MarkupEscape(`plans.${plan.label}.reimbursment`)}

\n )\n : (\n

{MarkupEscape(`plans.${plan.label}.reimbursment`, { premium: currencyFormat.format(plan.premiumTotal), paymentDuration: paymentDuration })}

\n )}\n

{MarkupEscape(`plans.${plan.label}.coverPeriod`, { coverageEndDate: moment(plan.coverageEndDate).format('MMMM YYYY') })}

\n {plan.label === 'once' && (\n

{MarkupEscape(`plans.${plan.label}.fiscality`)}

\n )}\n
\n \n )}\n {plan.isValid\n ? (\n \n \n \n ) : (\n {t(`plans.${plan.label}.notAvailable`)}\n )}\n
\n
\n )\n }\n\n let plans = null\n if (offers.offers.length > 0) {\n plans = (\n
\n
\n {MarkupEscape('quote.offers.title')}\n \n
\n \n {offers.offers.map((plan, index) => {\n return (\n
0 ? 'mt-5 mt-md-0' : null} key={index} xs={12} md={4}>\n \n \n )\n })}\n \n \n )\n }\n\n return (\n <>\n \n
\n
\n \n
\n {t('menu.quote')}\n {MarkupEscape('quote.title')}\n\n { handleGetOffers(data, response) }} />\n \n \n \n \n {!loading && offers.offers.length > 0 && (\n
\n
\n \n
\n {plans}\n \n \n \n \n )}\n \n )\n}\n\nexport default QuotePage\n","import React from 'react'\nimport { useParams } from 'react-router-dom'\nimport { Typography } from 'antd'\nimport QuoteForm from './../forms/QuoteForm'\nimport { MarkupEscape } from '../../../utils/helpers'\n\nconst QuoteResultPage = () => {\n const { Title } = Typography\n const { offerId } = useParams()\n\n return (\n
\n {MarkupEscape('plans.title')}\n\n \n
\n )\n}\n\nexport default QuoteResultPage\n","import React from 'react'\nimport Seo from '../common/Seo'\nimport { Typography, Row, Col, Button } from 'antd'\nimport { t, MarkupEscape, getCurrentLocale } from '../../../utils/helpers'\nimport { Link } from 'react-router-dom'\n\nconst ContactPage = () => {\n const { Title } = Typography\n const currentLocale = getCurrentLocale()\n\n return (\n <>\n \n
\n
\n \n
\n {MarkupEscape('contact.title')}\n\n
\n
\n
\n
\n {t('contact.sections.address.title')}\n

{MarkupEscape('contact.sections.address.value')}

\n
\n
\n {t('contact.sections.contactInformation.title')}\n

\n {t('contact.sections.contactInformation.value.phone.label')}: {t('contact.sections.contactInformation.value.phone.value')}
\n {t('contact.sections.contactInformation.value.fax.label')}: {t('contact.sections.contactInformation.value.fax.value')}
\n {t('contact.sections.contactInformation.value.email.label')}: {t('contact.sections.contactInformation.value.email.value')}
\n

\n
\n\n
\n {t('contact.sections.openingHours.title')}\n

{t('contact.sections.openingHours.value')}

\n
\n
\n
\n
\n {t('contact.sections.faq.title')}\n \n
\n
\n
\n
\n \n \n \n \n \n )\n}\n\nexport default ContactPage\n","const generateMedicalFields = (property, hasExplanation = false, hasStartDate = false) => {\n return {\n [property]: '',\n ...hasExplanation && {\n [`${property}Explanation`]: ''\n },\n ...hasStartDate && {\n [`${property}StartDate`]: null\n }\n }\n}\n\nconst medicalFields = {\n ...generateMedicalFields('alcoholConsumption', true),\n ...generateMedicalFields('drugConsumption', true),\n ...generateMedicalFields('hasTreatment', true),\n ...generateMedicalFields('hasMedicalAppointment', true),\n ...generateMedicalFields('hasHospitalAppointment', true),\n ...generateMedicalFields('hasIncapacityOfWork', true),\n ...generateMedicalFields('hasCardiovascularDisease', true, true),\n ...generateMedicalFields('hasMetabolismDisease', true, true),\n ...generateMedicalFields('hasDiabetesDisease', true, true),\n ...generateMedicalFields('hasCancerDisease', true, true),\n ...generateMedicalFields('hasPsychologicalDisease', true, true),\n ...generateMedicalFields('hasRespiratoryDisease', true, true),\n ...generateMedicalFields('hasDigestiveSystemDisease', true, true),\n ...generateMedicalFields('hasNervousSystemDisease', true, true),\n ...generateMedicalFields('hasBloodDisease', true, true),\n ...generateMedicalFields('hasMusclesDisease', true, true),\n ...generateMedicalFields('hasInfectionDisease', true, true),\n ...generateMedicalFields('hasSkinDisease', true, true),\n ...generateMedicalFields('hasKidneysDisease', true, true),\n ...generateMedicalFields('hasGenitalsDisease', true, true),\n ...generateMedicalFields('hasEntDisease', true, true),\n ...generateMedicalFields('hasEyesDisease', true, true),\n ...generateMedicalFields('hasOtherDisease', true, true)\n}\n\nconst addressFields = {\n address: '',\n streetNumber: '',\n streetName: '',\n postalCode: '',\n city: '',\n countryCode: 'lu'\n}\n\nconst phoneFields = {\n prefix: 'lu',\n number: ''\n}\n\nconst goodHealthFields = {\n height: '',\n weight: '',\n isNotUnderIncapacityOfWork: '',\n isNotUnderTreatment: '',\n hasNoSevereDisease: '',\n hasNoHospitalization: ''\n}\n\nconst fields = {\n global: {\n offerId: '',\n plan: '',\n additionalInsuree: false,\n personalIdFile: []\n },\n recap: {\n dataVerifiedConsent: false,\n confirmedIpid: false\n },\n // stepsToFollow: {\n // confirmedIpid: false\n // },\n personalDetails: {\n isPolicyHolder: false,\n title: '',\n firstName: '',\n lastName: '',\n placeOfBirth: '',\n nationalityCode: 'lu',\n personalIdCard: '',\n personalIdCardNumber: '',\n personalIdValidUntil: '',\n civilStatus: '',\n partnerName: '',\n profession: '',\n socialStatus: '',\n email: '',\n phoneNumber: {\n ...phoneFields\n },\n address: {\n ...addressFields\n },\n isMoving: false,\n futureAddress: {\n ...addressFields\n },\n futureAddressAsOf: ''\n },\n loanDetails: {\n beneficiary: '',\n beneficiaryOther: '',\n benefitTransferInstitution: '',\n benefitTransferFileNumber: '',\n benefitTransferAddress: '',\n bankAccountHolder: '',\n bankAccountIban: '',\n bankAccountBic: '',\n existingContract: false,\n existingContractPolicyNumber: '',\n existingContract2: false,\n existingContract2PolicyNumber: ''\n },\n goodHealthDeclaration: {\n ...goodHealthFields\n },\n medicalDeclaration: {\n ...medicalFields\n },\n lastStep: {\n code: '',\n cancelsOtherInsurerContract: '',\n guaranteesMortgageLoan: '',\n correctDataCheck: false,\n termsCheck: false,\n dataProtectionCheck: false,\n dataProcessingCheck: false,\n intermediaryMandateCheck: false,\n emailCommunicationCheck: false\n }\n}\n\nexport const generateStepData = (step, dataContext) => {\n const data = {\n // ...fields.global,\n ...fields[step]\n }\n Object.keys(data).forEach(key => {\n if (dataContext[key] !== undefined) {\n data[key] = dataContext[key]\n }\n })\n return data\n}\n\nexport const generateSubscribeData = (offer) => {\n const additionalInsuree = offer.additionalInsuree\n\n return {\n ...generateStepData('global', offer),\n ...fields.recap,\n // ...fields.stepsToFollow,\n insurees: [\n {\n ...fields.personalDetails,\n isPolicyHolder: true\n },\n ...(additionalInsuree ? [\n fields.personalDetails\n ] : [])\n ],\n ...fields.loanDetails,\n goodHealthDeclaration: [\n fields.goodHealthDeclaration,\n ...(additionalInsuree ? [\n fields.goodHealthDeclaration\n ] : [{}])\n ],\n medicalDeclaration: [\n ...(offer.medicalDeclarations.policyHolder ? [\n fields.medicalDeclaration\n ] : [{}]),\n ...(additionalInsuree && offer.medicalDeclarations.additionalInsuree ? [\n fields.medicalDeclaration\n ] : [{}])\n ],\n ...fields.lastStep\n }\n}\n","import React, { useState, useEffect } from 'react'\nimport { Button, Typography, Row, Col, Switch, Icon, Spin } from 'antd'\nimport { useForm, Controller } from 'react-hook-form'\nimport moment from 'moment'\nimport { t, MarkupEscape, getCurrentLocale } from './../../../utils/helpers'\nimport ErrorMessage from './../common/ErrorMessage'\nimport { useSubscribeFormContext } from '../../../context/SubscribeContext'\nimport { generateStepData } from '../../../utils/subscribeFieldsModel'\nconst validationSchema = require('./../../../utils/validation')\n\nconst SubscriptionRecap = ({ offer, plan, handleNextStep }) => {\n const { subscribeFormData, setSubscribeFormData } = useSubscribeFormContext()\n const { Title } = Typography\n const [loading, setLoading] = useState(true)\n const [hasConsent, setHasConsent] = useState(false)\n const defaultValues = generateStepData('recap', subscribeFormData)\n const icon = \n const currentLocale = getCurrentLocale()\n\n const stepValidationSchema = validationSchema.subscribeStep1Validation\n\n const { watch, control, setValue, handleSubmit, errors } = useForm({\n validateCriteriaMode: 'firstErrorDetected',\n mode: 'onSubmit',\n reValidateMode: 'onSubmit',\n validationSchema: stepValidationSchema,\n defaultValues: defaultValues\n })\n\n const values = watch({ nest: true })\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false)\n }, 1000)\n\n return () => {\n setLoading(true)\n }\n }, [])\n\n const toggle = (field, value = null, event = null) => {\n const newValue = value !== null ? value : !values[field]\n\n if (event && event.target.tagName !== 'A') {\n setValue(field, newValue, false)\n }\n }\n\n const onSubmit = (data) => {\n setSubscribeFormData({\n ...subscribeFormData,\n ...data\n })\n handleNextStep()\n }\n\n useEffect(() => {\n if (!Object.values(values).includes(false)) {\n setHasConsent(true)\n } else {\n setHasConsent(false)\n }\n }, [values])\n\n const generateSwitch = (propertyName, options = null) => {\n if (!options) {\n options = {\n customLabel: null\n }\n }\n return (\n \n \n }\n unCheckedChildren={}\n valueName='checked'\n />\n

toggle(propertyName, null, e)} style={{ cursor: 'pointer' }}>{options.customLabel ? options.customLabel : MarkupEscape(`forms.steps.subscribe.recap.sections.disclaimer.${propertyName}`)}

\n \n \n \n )\n }\n\n return (\n
\n
\n {loading ? (\n
\n \n \n \n
\n ) : (\n <>\n
\n {t('forms.steps.subscribe.recap.sections.aboutMortgage')}\n \n
\n
{t('forms.fields.capital.label')}
\n

{offer.recap.capital} €

\n \n \n
{t('forms.fields.interestRate.label')}
\n

{offer.recap.interestRate}%

\n \n \n
{t('forms.fields.duration.label')}
\n

{offer.recap.durationInYears} {t('global.year', { count: offer.recap.durationInYears })}

\n \n \n
{t('forms.fields.interval.label')}
\n

{t(`forms.fields.interval.options.${offer.recap.interval}`)}

\n \n \n \n\n
\n {t('forms.steps.subscribe.recap.sections.aboutFirstInsuree')}\n \n
\n
{t('forms.fields.dateOfBirth.label')}
\n

{moment(offer.recap.dateOfBirth).format('DD/MM/YYYY')}

\n \n \n
{t('forms.fields.isSmoker.label')}
\n {offer.recap.isSmoker ? (\n

{t('global.yes')}

\n ) : (\n

{t('global.no')}

\n )}\n \n \n {offer.recap.additionalInsuree && (\n
\n {t('forms.steps.subscribe.recap.sections.aboutSecondInsuree')}\n \n
\n
{t('forms.fields.dateOfBirth.label')}
\n

{moment(offer.recap.dateOfBirth2).format('DD/MM/YYYY')}

\n \n \n
{t('forms.fields.isSmoker.label')}
\n {offer.recap.isSmoker2 ? (\n

{t('global.yes')}

\n ) : (\n

{t('global.no')}

\n )}\n \n \n \n )}\n \n\n
\n {t('forms.steps.subscribe.recap.sections.aboutInsurance')}\n \n
\n
{t('forms.fields.insuranceCompany.label')}
\n

{t('forms.fields.insuranceCompany.value')}

\n \n \n
{t('forms.fields.broker.label')}
\n

{t('forms.fields.broker.value')}

\n \n \n
{t('forms.fields.product.label')}
\n

{offer.recap.product}

\n \n \n
{t('forms.fields.guarantee.label')}
\n

{t('forms.fields.guarantee.value')}

\n \n \n
{t('forms.fields.premiumType.label')}
\n

{t('forms.fields.premiumType.value')}

\n \n \n
{t('forms.fields.contractDuration.label')}
\n

{offer.recap.durationInYears} {t('global.year', { count: offer.recap.durationInYears }).toLowerCase()}

\n \n \n
{t('forms.fields.insuredDebtBalanceCapital.label')}
\n

{offer.recap.capital} €

\n \n \n
{t('forms.fields.premium.label')}
\n

{t(`plans.${plan}.price`, { price: offer.offers.filter(offer => offer.label === plan)[0].premium }).replace(/(<([^>]+)>)/ig, '')}

\n \n \n
{t('forms.fields.premiumPaymentInterval.label')}
\n

{t(`plans.intervals.${plan}`)}

\n \n \n
{t('forms.fields.premiumPaymentDuration.label')}
\n

{offer.recap.paymentDuration} {t('global.year', { count: offer.recap.paymentDuration }).toLowerCase()}

\n \n \n \n\n
\n {t('forms.steps.subscribe.recap.sections.disclaimer.title')}\n {generateSwitch('dataVerifiedConsent')}\n {generateSwitch('confirmedIpid', {\n customLabel: MarkupEscape(`forms.steps.subscribe.recap.sections.disclaimer.confirmedIpid`, { fileUrl: `${process.env.PUBLIC_URL}/pdf/simplomus_ipid_${currentLocale || 'en'}.pdf` })\n })}\n
\n \n )}\n \n {!loading && (\n
\n \n
\n )}\n \n )\n}\n\nexport default SubscriptionRecap\n","import React from 'react'\nimport countries from 'i18n-iso-countries'\nimport { Select } from 'antd'\nimport { getCurrentLocale } from 'src/utils/helpers'\n\nconst CountrySelect = ({ priority = null, ...props }) => {\n const { Option } = Select\n const currentLocale = getCurrentLocale()\n countries.registerLocale(require(`i18n-iso-countries/langs/${currentLocale}.json`))\n const countryList = countries.getNames(currentLocale)\n const sortedCountries = Object.keys(countryList).sort((a, b) => priority.includes(b) ? 1 : -1)\n\n const options = sortedCountries.map(key => (\n \n ))\n\n return (\n option.props.children.toLowerCase().indexOf(value.toLowerCase()) >= 0}\n style={{ width: '100%' }}\n {...props}\n >\n {options}\n \n )\n}\n\nexport default CountrySelect\n","import React, { useState, useEffect } from 'react'\nimport { AutoComplete, Form, Switch, Icon, Row, Col, Input } from 'antd'\nimport { t, getCountryName } from './../../../utils/helpers'\nimport ErrorMessage from './../common/ErrorMessage'\n\nconst GoogleAddress = ({\n onAddressUpdate,\n label,\n name,\n errors,\n value = {},\n defaultValue = {},\n manualMode = false,\n restrictions = null\n}) => {\n const { Option } = AutoComplete\n const [displayGoogleAddress, setDisplayGoogleAddress] = useState(true)\n const [suggestions, setSuggestions] = useState([])\n const defaultData = {\n address: value.address || defaultValue.address,\n streetNumber: value.streetNumber || defaultValue.streetNumber,\n streetName: value.streetName || defaultValue.streetName,\n city: value.city || defaultValue.city,\n postalCode: value.postalCode || defaultValue.postalCode,\n country: getCountryName(value.countryCode) || getCountryName(defaultValue.countryCode),\n countryCode: value.countryCode || defaultValue.countryCode\n }\n const [data, setData] = useState({ ...defaultData })\n const addressModel = {\n street_number: 'streetNumber',\n route: 'streetName',\n locality: 'city',\n postal_code: 'postalCode',\n country: 'country'\n }\n\n useEffect(() => {\n\n }, [errors])\n\n const onInputChange = (name, value) => {\n const newData = {\n ...data,\n [name]: value\n }\n\n setData(newData)\n onAddressUpdate(newData)\n }\n\n const handleSwitchGoogleAddress = () => {\n setDisplayGoogleAddress(!displayGoogleAddress)\n }\n\n const autocomplete = new window.google.maps.places.AutocompleteService()\n const handleSearch = (value) => {\n const request = {\n input: value,\n types: ['geocode'],\n componentRestrictions: {\n ...restrictions && { country: restrictions }\n }\n }\n autocomplete.getPlacePredictions(request, (results, status) => {\n setSuggestions(results)\n })\n }\n\n const handleSelect = (value) => {\n const geocoder = new window.google.maps.Geocoder()\n const values = {\n ...defaultData\n }\n geocoder.geocode({ placeId: value }, (results, status) => {\n if (status === 'OK') {\n const result = results[0].address_components\n result.forEach(addressElement => {\n if (Object.keys(addressModel).includes(addressElement.types[0])) {\n values[addressModel[addressElement.types[0]]] = addressElement.long_name\n\n if (addressElement.types[0] === 'country') {\n values.countryCode = addressElement.short_name\n }\n }\n })\n values.address = results[0].formatted_address\n } else {\n setDisplayGoogleAddress(false)\n values.address = ''\n }\n const newData = {\n ...defaultData,\n ...values\n }\n\n setData(newData)\n onAddressUpdate(newData)\n if (Object.values(values).includes('')) {\n setDisplayGoogleAddress(false)\n }\n })\n }\n\n useEffect(() => {\n if (manualMode) {\n setDisplayGoogleAddress(false)\n }\n }, [manualMode])\n\n useEffect(() => {\n if (!window.google || !window.google.maps.places) {\n throw new Error(\n 'Google Maps API library must be loaded.'\n )\n }\n })\n\n const fields = {\n address: (\n \n \n {suggestions && suggestions.length > 0 && (\n suggestions.map(suggestion => )\n )}\n \n \n ),\n streetNumber: (\n \n { onInputChange(e.target.name, e.target.value) }} />\n \n ),\n streetName: (\n \n { onInputChange(e.target.name, e.target.value) }} />\n \n ),\n postalCode: (\n \n { onInputChange(e.target.name, e.target.value) }} />\n \n ),\n city: (\n \n { onInputChange(e.target.name, e.target.value) }} />\n \n ),\n country: (\n \n { onInputChange(e.target.name, e.target.value) }} />\n \n )\n }\n\n return (\n <>\n \n {displayGoogleAddress && (\n \n \n \n {fields.address}\n \n \n \n )}\n \n \n \n {fields.streetNumber}\n \n \n {fields.streetName}\n \n {(errors[name]?.streetNumber || errors[name]?.streetName) && (\n \n
    \n {errors[name]?.streetNumber && (
  • )}\n {errors[name]?.streetName && (
  • )}\n
\n \n )}\n \n \n \n \n \n {fields.postalCode}\n \n \n {fields.city}\n \n {(errors[name]?.postalCode || errors[name]?.city) && (\n \n
    \n {errors[name]?.postalCode && (
  • )}\n {errors[name]?.city && (
  • )}\n
\n \n )}\n \n \n \n {fields.country}\n \n {(errors[name]?.countryCode) && (\n \n
    \n {errors[name]?.countryCode && (
  • )}\n
\n \n )}\n \n {displayGoogleAddress && (\n \n }\n unCheckedChildren={}\n checked={displayGoogleAddress}\n style={{ marginRight: '15px' }}\n />\n

{t('forms.fields.GoogleLookup.label')}

\n
\n )}\n \n )\n}\n\nexport default GoogleAddress\n","import React from 'react'\nimport { Select } from 'antd'\nimport { phonePrefixes } from './../../../utils/phonePrefixes'\n\nconst PhonePrefixSelect = ({ priority = null, ...props }) => {\n const sortedPrefixes = Object.keys(phonePrefixes).sort((a, b) => priority.includes(b) ? 1 : -1)\n\n return (\n \n )\n}\n\nexport default PhonePrefixSelect\n","import React, { useState, useEffect } from 'react'\nimport { Button, Typography, Form, Radio, Input, Row, Col, Select, Upload, Switch, Icon, List, Spin } from 'antd'\nimport { useForm, Controller } from 'react-hook-form'\nimport { t, getCurrentLocale } from './../../../utils/helpers'\nimport ErrorMessage from './../common/ErrorMessage'\nimport CountrySelect from './CountrySelect'\nimport GoogleAddress from './GoogleAddress'\nimport PhonePrefixSelect from './PhonePrefixSelect'\nimport { useSubscribeFormContext } from '../../../context/SubscribeContext'\nimport { generateStepData } from './../../../utils/subscribeFieldsModel'\nimport moment from 'moment'\nconst validationSchema = require('./../../../utils/validation')\n\nconst SubscriptionPersonalDetails = ({ insuree, handlePreviousStep, handleNextStep }) => {\n const currentLocale = getCurrentLocale()\n const { subscribeFormData, setSubscribeFormData } = useSubscribeFormContext()\n const [loading, setLoading] = useState(true)\n const [hasAddressError, setHasAddressError] = useState(false)\n const [hasFutureAddressError, setHasFutureAddressError] = useState(false)\n const icon = \n const insureeIndex = insuree - 1\n const dateFormat = 'YYYY-MM-DD'\n const defaultValues = {\n ...generateStepData('personalDetails', subscribeFormData.insurees[insureeIndex]),\n personalIdFile: subscribeFormData.personalIdFile[insureeIndex]\n }\n if (insureeIndex === 1 && Object.values(subscribeFormData.insurees[1].address).includes('')) {\n defaultValues.address = subscribeFormData.insurees[0].address\n }\n const { Title } = Typography\n const { Dragger } = Upload\n\n const stepValidationSchema = insureeIndex === 0 ? validationSchema.subscribeStep3Validation : validationSchema.subscribeStep3BisValidation\n\n const { register, unregister, setValue, handleSubmit, errors, watch, control } = useForm({\n validateCriteriaMode: 'firstErrorDetected',\n mode: 'onSubmit',\n reValidateMode: 'onChange',\n validationSchema: stepValidationSchema,\n defaultValues: defaultValues\n })\n\n const values = watch({ nest: true })\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false)\n }, 1000)\n\n return () => {\n setLoading(true)\n }\n }, [])\n\n useEffect(() => {\n setHasAddressError(errors.address !== undefined)\n setHasFutureAddressError(errors.futureAddress !== undefined)\n }, [errors])\n\n const handleUpload = ({ file, onError, onSuccess }) => {\n setTimeout(() => {\n onSuccess()\n addFile(file)\n }, 300)\n\n onError(() => {\n removeFile()\n })\n }\n\n const addFile = (file) => {\n setValue('personalIdFile', file, true)\n }\n\n const removeFile = () => {\n setValue('personalIdFile', undefined, false)\n }\n\n const generateField = (propertyName, type = 'text') => {\n return (\n <>\n \n \n \n \n \n )\n }\n\n useEffect(() => {\n register({ name: 'personalIdFile' })\n register({ name: 'isPolicyHolder' })\n setValue('isPolicyHolder', defaultValues.isPolicyHolder, false)\n }, [\n register,\n setValue,\n defaultValues.isPolicyHolder\n ])\n\n useEffect(() => {\n if (!values.isMoving) {\n unregister('futureAddressAsOf')\n unregister('futureAddress')\n } else {\n register({ name: 'futureAddressAsOf' })\n register({ name: 'futureAddress' })\n }\n\n if (!['married', 'partnered'].includes(values.civilStatus)) {\n unregister('partnerName')\n } else {\n register('partnerName')\n }\n }, [\n register,\n unregister,\n values.isMoving,\n values.civilStatus\n ])\n\n const onSubmit = (values) => {\n setLoading(true)\n\n // Handling files\n const files = [...subscribeFormData.personalIdFile]\n files[insureeIndex] = values.personalIdFile\n delete values.personalIdFile\n\n // Handling addresses\n values.address = {\n ...values.address,\n address: `${values.address.streetNumber} ${values.address.streetName}, ${values.address.postalCode} ${values.address.city}`\n }\n\n if (insureeIndex === 0 && values.isMoving) {\n values.futureAddress = {\n ...values.futureAddress,\n address: `${values.futureAddress.streetNumber} ${values.futureAddress.streetName}, ${values.futureAddress.postalCode} ${values.futureAddress.city}`\n }\n }\n\n // Handling dates\n values.personalIdValidUntil = moment(values.personalIdValidUntil, dateFormat).utc(true).toISOString()\n if (insureeIndex === 0 && values.isMoving) {\n values.futureAddressAsOf = moment(values.futureAddressAsOf, dateFormat).utc(true).toISOString()\n }\n\n const insurees = [...subscribeFormData.insurees]\n insurees[insureeIndex] = {\n isPolicyHolder: values.isPolicyHolder,\n ...values\n }\n\n setSubscribeFormData({\n ...subscribeFormData,\n insurees: insurees,\n personalIdFile: files\n })\n handleNextStep()\n }\n\n return (\n
\n
\n {loading\n ? (\n
\n \n \n \n
\n )\n : (\n <>\n
\n \n \n {currentLocale === 'en' && (\n {t('forms.fields.title.options.mrs')}\n )}\n {t('forms.fields.title.options.ms')}\n {t('forms.fields.title.options.mr')}\n \n )}\n size='small'\n buttonStyle='solid'\n defaultValue={defaultValues.title}\n name='title'\n onChange={([e]) => e.target.value}\n control={control}\n />\n \n \n\n \n
\n {generateField('lastName')}\n \n \n {generateField('firstName')}\n \n \n\n \n \n {generateField('placeOfBirth')}\n \n \n \n e}\n />\n \n \n \n \n\n \n \n {generateField('personalIdCardNumber')}\n \n \n \n \n \n \n \n \n\n \n \n \n {values.personalIdFile\n ? (\n (\n ]\n }\n >\n \n \n )}\n />\n )\n : (\n \n

{t('forms.fields.personalIdFile.hint')}

\n
\n )}\n
\n \n \n \n\n \n \n \n \n {t('forms.fields.civilStatus.options.married')}\n {t('forms.fields.civilStatus.options.partnered')}\n {t('forms.fields.civilStatus.options.divorced')}\n {t('forms.fields.civilStatus.options.single')}\n {t('forms.fields.civilStatus.options.widowed')}\n \n )}\n name='civilStatus'\n control={control}\n defaultValue={defaultValues.civilStatus}\n onChange={([e]) => e}\n onChangeName='onSelect'\n style={{ width: '100%' }}\n placeholder={t('forms.fields.civilStatus.placeholder')}\n />\n \n \n \n {['married', 'partnered'].includes(values.civilStatus) && (\n \n {generateField('partnerName')}\n \n )}\n \n\n \n \n {generateField('profession')}\n \n \n \n \n {t('forms.fields.socialStatus.options.employee')}\n {t('forms.fields.socialStatus.options.selfEmployed')}\n \n )}\n size='small'\n buttonStyle='solid'\n defaultValue={defaultValues.socialStatus}\n name='socialStatus'\n onChange={([e]) => e.target.value}\n control={control}\n />\n \n \n \n \n\n \n \n {generateField('email')}\n \n \n \n \n e}\n onChangeName='onSelect'\n control={control}\n style={{ width: '30%' }}\n priority={['lu', 'be', 'fr', 'de', 'nl']}\n />\n e.target.value}\n control={control}\n style={{ width: '70%' }}\n />\n \n {insuree === 1 && (\n

{t('forms.fields.phoneNumber.hint')}

\n )}\n
\n \n \n \n \n\n
\n {t('forms.steps.subscribe.personalDetails.sections.address')}\n e}\n errors={errors}\n />\n
\n {insuree === 1 && (\n
\n {t('forms.steps.subscribe.personalDetails.sections.futureAddress')}\n\n \n }\n unCheckedChildren={}\n valueName='checked'\n style={{ marginRight: '15px' }}\n />\n

setValue('isMoving', !values.isMoving, false)} style={{ cursor: 'pointer', display: 'inline-block' }}>{t('forms.fields.moving.label')}

\n
\n \n\n {values.isMoving && (\n <>\n \n
\n \n \n \n \n \n \n \n \n e}\n errors={errors}\n />\n \n \n \n )}\n \n )}\n \n )}\n \n {!loading && (\n
\n \n \n
\n )}\n \n )\n}\n\nexport default SubscriptionPersonalDetails\n","import React from 'react'\nimport SubscriptionPersonalDetail from './SubscriptionPersonalDetails'\n\nconst SubscriptionPersonalDetailsBis = ({ insuree, handlePreviousStep, handleNextStep }) => {\n return (\n \n )\n}\n\nexport default SubscriptionPersonalDetailsBis\n","import React, { useState, useEffect } from 'react'\nimport { AutoComplete, Button, Typography, Form, Radio, Input, Row, Col, Switch, Icon, Spin } from 'antd'\nimport { useForm, Controller } from 'react-hook-form'\nimport { t, MarkupEscape } from './../../../utils/helpers'\nimport ErrorMessage from './../common/ErrorMessage'\nimport { useSubscribeFormContext } from '../../../context/SubscribeContext'\nimport { generateStepData } from './../../../utils/subscribeFieldsModel'\nconst validationSchema = require('./../../../utils/validation')\n\nconst SubscriptionLoanDetails = ({ handlePreviousStep, handleNextStep }) => {\n const { subscribeFormData, setSubscribeFormData } = useSubscribeFormContext()\n const [loading, setLoading] = useState(true)\n const icon = \n const { Title } = Typography\n\n const defaultValues = {\n additionalInsuree: subscribeFormData.additionalInsuree,\n ...generateStepData('loanDetails', subscribeFormData)\n }\n\n const stepValidationSchema = validationSchema.subscribeStep4Validation\n\n const { watch, control, setValue, handleSubmit, errors } = useForm({\n validateCriteriaMode: 'firstErrorDetected',\n mode: 'onSubmit',\n reValidateMode: 'onChange',\n validationSchema: stepValidationSchema,\n defaultValues: defaultValues\n })\n\n const values = watch({ nest: true })\n\n useEffect(() => {\n\n setTimeout(() => {\n setLoading(false)\n }, 1000)\n\n return () => {\n setLoading(true)\n }\n }, [])\n\n const source = [\n {\n bank: 'Banque de Luxembourg',\n address: '14, Boulevard Royal / L-2449 Luxembourg'\n },\n {\n bank: 'BCEE',\n address: '1, Place de Metz / L-2954 Luxembourg'\n },\n {\n bank: 'BGL BNP Paribas',\n address: '50, Avenue J.F Kennedy / L-2951 Luxembourg'\n },\n {\n bank: 'BIL',\n address: \"69, Route d'Esch / L - 2953 Luxemburg\"\n },\n {\n bank: 'Deutsche Bank',\n address: '2, Boulevard Konrad Adenauer / L-1115 Luxembourg'\n },\n {\n bank: 'HSBC',\n address: \"16, Boulevard d'Avranches / L-1160 Luxembourg\"\n },\n {\n bank: 'ING',\n address: '26, Place de la Gare / L-2965 Luxembourg'\n },\n {\n bank: 'Raiffeisen',\n address: '4, rue Léon Laval / L-3372 Leudelange'\n },\n {\n bank: 'Société Générale',\n address: '11, Avenue Emile Reuter / L-2420 Luxembourg'\n }\n ]\n\n const handleBankSelect = (e) => {\n const [selectedBank] = source.filter(item => item.bank === e)\n if (selectedBank) {\n setValue('benefitTransferAddress', selectedBank.address, true)\n }\n }\n\n const generateField = (propertyName, customOptions = {}) => {\n\n const options = {\n label: customOptions.label || true,\n type: customOptions.type || 'text'\n }\n\n return (\n <>\n \n \n \n \n \n )\n }\n\n const toggle = (field, value = null, event = null) => {\n const newValue = value !== null ? value : !values[field]\n\n if (event && event.target.tagName !== 'A') {\n setValue(field, newValue, true)\n }\n }\n\n const generateSwitch = (propertyName, options = null) => {\n if (!options) {\n options = {\n customLabel: null\n }\n }\n return (\n \n
\n }\n unCheckedChildren={}\n valueName='checked'\n />\n

toggle(propertyName, null, e)} style={{ cursor: 'pointer' }}>{options.customLabel ? options.customLabel : MarkupEscape(`forms.fields.${propertyName}.label`)}

\n \n \n \n )\n }\n\n const radioStyle = {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '10px'\n }\n\n const onSubmit = (values) => {\n setLoading(true)\n if (values.existingContract === false) {\n values.existingContractPolicyNumber = ''\n }\n if (subscribeFormData.additionalInsuree && values.existingContract2 === false) {\n values.existingContract2PolicyNumber = ''\n }\n if (values.beneficiary !== 'other') {\n values.beneficiaryOther = ''\n }\n setSubscribeFormData({\n ...subscribeFormData,\n ...values\n })\n handleNextStep()\n }\n\n return (\n
\n
\n {loading ? (\n
\n \n \n \n
\n ) : (\n <>\n
\n {t('forms.steps.subscribe.loanDetails.sections.beneficiary.title')}\n \n
\n \n \n \n {t('forms.fields.beneficiary.options.byLaw')}\n \n \n {t('forms.fields.beneficiary.options.other')}\n \n )}\n value={values.beneficiary}\n name='beneficiary'\n onChange={([e]) => e.target.value}\n control={control}\n />\n \n \n {values.beneficiary === 'other' && generateField('beneficiaryOther')}\n \n \n \n
\n {t('forms.steps.subscribe.loanDetails.sections.profitTransfer.title')}\n \n
\n \n item.bank)}\n style={{ width: '100%' }}\n filterOption={(input, option) =>\n option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\n }\n onChange={([e]) => e}\n control={control}\n />\n \n \n \n \n {generateField('benefitTransferFileNumber')}\n \n \n {generateField('benefitTransferAddress')}\n \n \n \n
\n {t('forms.steps.subscribe.loanDetails.sections.existingContract.title', { count: subscribeFormData.additionalInsuree ? 2 : 1 })}\n \n
\n {generateSwitch('existingContract')}\n \n {values.existingContract && (\n \n {generateField('existingContractPolicyNumber')}\n \n )}\n \n {subscribeFormData.additionalInsuree && (\n \n \n {generateSwitch('existingContract2')}\n \n {values.existingContract2 && (\n \n {generateField('existingContract2PolicyNumber')}\n \n )}\n \n )}\n \n
\n {t('forms.steps.subscribe.loanDetails.sections.bank.title')}\n

{t('forms.steps.subscribe.loanDetails.sections.bank.subtitle')}

\n\n \n
\n {generateField('bankAccountHolder')}\n \n \n \n \n {generateField('bankAccountIban')}\n \n \n {generateField('bankAccountBic')}\n \n \n \n \n \n \n )}\n \n {!loading && (\n
\n \n \n
\n )}\n \n )\n}\n\nexport default SubscriptionLoanDetails\n","import React, { useState, useEffect } from 'react'\nimport {\n Typography,\n Form,\n Radio,\n Input,\n Row,\n Col,\n Icon,\n Button,\n Spin\n} from 'antd'\nimport { useForm, Controller } from 'react-hook-form'\nimport ErrorMessage from './../common/ErrorMessage'\nimport { t, keyExists } from './../../../utils/helpers'\nimport { useSubscribeFormContext } from '../../../context/SubscribeContext'\nimport { generateStepData } from './../../../utils/subscribeFieldsModel'\nimport moment from 'moment'\nconst validationSchema = require('./../../../utils/validation')\n\nconst SubscriptionMedicalDeclaration = ({\n insuree,\n handlePreviousStep,\n handleNextStep\n}) => {\n const { subscribeFormData, setSubscribeFormData } = useSubscribeFormContext()\n const [loading, setLoading] = useState(true)\n const stepValidationSchema = validationSchema.subscibeStep6Validation\n const insureeIndex = insuree - 1\n const { Title } = Typography\n const defaultValues = generateStepData(\n 'medicalDeclaration',\n subscribeFormData.medicalDeclaration[insureeIndex]\n )\n const icon = \n\n const { unregister, formState, handleSubmit, errors, watch, control } = useForm(\n {\n validateCriteriaMode: 'firstErrorDetected',\n mode: 'onSubmit',\n reValidateMode: 'onChange',\n validationSchema: stepValidationSchema,\n defaultValues: defaultValues\n }\n )\n\n const values = watch({ nest: true })\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false)\n }, 1000)\n\n return () => {\n setLoading(true)\n }\n }, [])\n\n const onSubmit = values => {\n setLoading(true)\n Object.keys(values).forEach(key => {\n if (key.includes('StartDate')) {\n values[key] = moment(values[key], 'YYYY-MM-DD')\n .utc(true)\n .toISOString()\n }\n })\n\n const medicalDeclaration = [...subscribeFormData.medicalDeclaration]\n medicalDeclaration[insureeIndex] = {\n ...values\n }\n\n setSubscribeFormData({\n ...subscribeFormData,\n medicalDeclaration: medicalDeclaration\n })\n\n handleNextStep()\n }\n\n const handleRadioChange = (name, value) => {\n if (!value) {\n if (`${name}Explanation` in values) {\n unregister(`${name}Explanation`)\n }\n\n if (`${name}StartDate` in values) {\n unregister(`${name}StartDate`)\n }\n }\n }\n\n const generateField = (propertyName, options = null) => {\n if (!options) {\n options = {\n startDate: false,\n hint: false\n }\n }\n return (\n \n \n

\n {t(`forms.fields.${propertyName}.label`)}\n

\n {options.hint && (\n

\n {t(`forms.fields.${propertyName}.hint`)}\n

\n )}\n \n \n \n {t('global.yes')}\n {t('global.false')}\n \n }\n defaultValue={defaultValues[propertyName]}\n value={values[propertyName]}\n name={propertyName}\n onChange={([e]) => {\n handleRadioChange(propertyName, e.target.value)\n return e.target.value\n }}\n control={control}\n />\n \n \n \n \n {values[propertyName] && (\n
\n {options.startDate && (\n
\n \n \n \n \n \n )}\n \n \n \n \n \n \n \n )}\n \n )\n }\n\n return (\n \n
\n {loading ? (\n
\n \n \n \n
\n )\n : (\n <>\n
\n \n {t(\n 'forms.steps.subscribe.medicalDeclaration.sections.general.title'\n )}\n \n {generateField('alcoholConsumption')}\n {generateField('drugConsumption')}\n {generateField('hasTreatment', { hint: true })}\n {generateField('hasMedicalAppointment')}\n {generateField('hasHospitalAppointment', { hint: true })}\n {generateField('hasIncapacityOfWork')}\n
\n
\n \n {t(\n 'forms.steps.subscribe.medicalDeclaration.sections.affections.title'\n )}\n \n

\n {t(\n 'forms.steps.subscribe.medicalDeclaration.sections.affections.subtitle'\n )}\n

\n

\n {t(\n 'forms.steps.subscribe.medicalDeclaration.sections.affections.hint'\n )}\n

\n {generateField('hasCardiovascularDisease', {\n startDate: true,\n hint: true\n })}\n {generateField('hasMetabolismDisease', {\n startDate: true,\n hint: true\n })}\n {generateField('hasDiabetesDisease', { startDate: true })}\n {generateField('hasCancerDisease', { startDate: true })}\n {generateField('hasPsychologicalDisease', {\n startDate: true,\n hint: true\n })}\n {generateField('hasRespiratoryDisease', {\n startDate: true,\n hint: true\n })}\n {generateField('hasDigestiveSystemDisease', {\n startDate: true,\n hint: true\n })}\n {generateField('hasNervousSystemDisease', {\n startDate: true,\n hint: true\n })}\n {generateField('hasBloodDisease', { startDate: true, hint: true })}\n {generateField('hasMusclesDisease', {\n startDate: true,\n hint: true\n })}\n {generateField('hasInfectionDisease', {\n startDate: true,\n hint: true\n })}\n {generateField('hasSkinDisease', { startDate: true, hint: true })}\n {generateField('hasKidneysDisease', {\n startDate: true,\n hint: true\n })}\n {generateField('hasGenitalsDisease', {\n startDate: true,\n hint: true\n })}\n {generateField('hasEntDisease', { startDate: true, hint: true })}\n {generateField('hasEyesDisease', { startDate: true, hint: true })}\n {generateField('hasOtherDisease', { startDate: true })}\n
\n \n )}\n
\n {!loading && (\n
\n \n \n {t('global.next')}\n \n
\n )}\n \n )\n}\n\nexport default SubscriptionMedicalDeclaration\n","import React from 'react'\nimport SubscriptionMedicalDeclaration from './SubscriptionMedicalDeclaration'\n\nconst SubscriptionMedicalDeclarationBis = ({ insuree, handlePreviousStep, handleNextStep }) => {\n return (\n \n )\n}\n\nexport default SubscriptionMedicalDeclarationBis\n","import React, { useState, useEffect } from 'react'\nimport { Button, Row, Col, Icon, Radio, Spin, Input } from 'antd'\nimport { useForm, Controller, ErrorMessage } from 'react-hook-form'\nimport { t, MarkupEscape, keyExists } from './../../../utils/helpers'\nimport { useSubscribeFormContext } from '../../../context/SubscribeContext'\nimport { generateStepData } from './../../../utils/subscribeFieldsModel'\nconst validationSchema = require('./../../../utils/validation')\n\nconst SubscriptionGoodHealthDeclaration = ({ handlePreviousStep, handleNextStep }) => {\n const [loading, setLoading] = useState(false)\n const [consent, setConsent] = useState(false)\n const { subscribeFormData, setSubscribeFormData } = useSubscribeFormContext()\n const hasAdditionalInsuree = subscribeFormData.additionalInsuree\n const icon = \n const defaultValues = {\n goodHealthDeclaration: [\n {\n ...generateStepData('goodHealthDeclaration', subscribeFormData.goodHealthDeclaration[0])\n },\n ...(hasAdditionalInsuree ? [{\n ...generateStepData('goodHealthDeclaration', subscribeFormData.goodHealthDeclaration[1])\n }] : [])\n ]\n }\n\n const stepValidationSchema = validationSchema.subscribeStep5Validation\n\n const { control, register, formState, setValue, handleSubmit, errors, watch } = useForm({\n validateCriteriaMode: 'firstErrorDetected',\n mode: 'onSubmit',\n reValidateMode: 'onBlur',\n validationSchema: stepValidationSchema,\n defaultValues: defaultValues\n })\n\n const values = watch({ nest: true })\n\n useEffect(() => {\n\n // Set validation dependency fields\n register({ name: 'additionalInsuree' })\n setValue('additionalInsuree', hasAdditionalInsuree, false)\n\n setTimeout(() => {\n setLoading(false)\n }, 1000)\n\n return () => {\n setLoading(true)\n }\n }, [\n hasAdditionalInsuree,\n register,\n setValue\n ])\n\n const questionSize = {\n xs: 12,\n sm: 12,\n md: hasAdditionalInsuree ? 7 : 9,\n lg: hasAdditionalInsuree ? 7 : 9,\n xl: hasAdditionalInsuree ? 7 : 9\n }\n\n const answerSize = {\n xs: 12,\n sm: 12,\n md: hasAdditionalInsuree ? 5 : 3,\n lg: hasAdditionalInsuree ? 5 : 3,\n xl: hasAdditionalInsuree ? 5 : 3\n }\n\n const radioSize = hasAdditionalInsuree ? 6 : 12\n\n const onSubmit = (data) => {\n setLoading(true)\n setSubscribeFormData({\n ...subscribeFormData,\n goodHealthDeclaration: data.goodHealthDeclaration\n })\n handleNextStep()\n }\n\n const generateField = (propertyName) => {\n return (\n <>\n \n
\n

{t(`forms.steps.subscribe.goodHealthDeclaration.questions.${propertyName}`)}

\n \n \n \n \n \n \n {t('global.TRUE')}\n \n \n {t('global.FALSE')}\n \n )}\n value={values.goodHealthDeclaration[0][propertyName]}\n name={`goodHealthDeclaration[0][${propertyName}]`}\n onChange={([e]) => e.target.value}\n control={control}\n />\n \n\n {hasAdditionalInsuree && (\n \n \n \n {t('global.TRUE')}\n \n \n {t('global.FALSE')}\n \n )}\n value={values.goodHealthDeclaration[1][propertyName]}\n name={`goodHealthDeclaration[1][${propertyName}]`}\n onChange={([e]) => e.target.value}\n control={control}\n />\n \n )}\n \n \n \n
\n \n {() =>

{t('forms.errors.mixed.default')}

}\n
\n \n {() =>

{t('forms.errors.mixed.default')}

}\n
\n
\n \n )\n }\n\n useEffect(() => {\n let hasConsent = false\n if (values.goodHealthDeclaration) {\n hasConsent = !Object.values(values.goodHealthDeclaration[0]).includes('')\n if (hasAdditionalInsuree) {\n hasConsent = !Object.values(values.goodHealthDeclaration[1]).includes('')\n }\n }\n setConsent(hasConsent)\n }, [\n watch,\n hasAdditionalInsuree,\n values.goodHealthDeclaration\n ])\n\n const fields = {\n height: (\n <>\n \n
\n

{t('forms.fields.height.label')}

\n \n \n \n \n \n \n\n {hasAdditionalInsuree && (\n \n \n \n )}\n \n \n \n \n {({ message }) =>

{keyExists(`forms.errors.${message.key}`) ? MarkupEscape(`forms.errors.${message.key}`, { value: message.value }) : t('forms.errors.mixed.default')}

}\n
\n \n {({ message }) =>

{keyExists(`forms.errors.${message.key}`) ? MarkupEscape(`forms.errors.${message.key}`, { value: message.value }) : t('forms.errors.mixed.default')}

}\n
\n \n ),\n weight: (\n <>\n \n
\n

{t('forms.fields.weight.label')}

\n \n \n \n \n \n \n\n {hasAdditionalInsuree && (\n \n \n \n )}\n \n \n \n \n {({ message }) =>

{keyExists(`forms.errors.${message.key}`) ? MarkupEscape(`forms.errors.${message.key}`, { value: message.value }) : t('forms.errors.mixed.default')}

}\n
\n \n {({ message }) =>

{keyExists(`forms.errors.${message.key}`) ? MarkupEscape(`forms.errors.${message.key}`, { value: message.value }) : t('forms.errors.mixed.default')}}

}\n
\n \n )\n }\n\n return (\n
\n
\n {loading ? (\n
\n \n \n \n
\n ) : (\n <>\n
\n {hasAdditionalInsuree && (\n \n
 \n \n \n \n
{t('global.you')}
\n \n \n
{t('global.yourPartner')}
\n \n \n \n \n )}\n {fields.height}\n {fields.weight}\n {generateField('isNotUnderIncapacityOfWork')}\n {generateField('isNotUnderTreatment')}\n {generateField('hasNoSevereDisease')}\n {generateField('hasNoHospitalization')}\n \n \n )}\n \n {!loading && (\n
\n \n \n
\n )}\n \n )\n}\n\nexport default SubscriptionGoodHealthDeclaration\n","import React, { useState, useEffect, useRef } from 'react'\nimport { Button, Modal, Typography, message, Alert, Icon } from 'antd'\nimport { t, secondsToCountDown, MarkupEscape, getCountryPrefix } from '../../../utils/helpers'\nimport { postCall } from '../../../utils/ApiCall'\nimport { useSubscribeFormContext } from '../../../context/SubscribeContext'\nimport ReactCodeInput from 'react-verification-code-input'\n\nconst VerificationCode = ({ offerId, isVerified, setVerified, isFormValidated, onComplete }) => {\n const { subscribeFormData } = useSubscribeFormContext()\n const { Title } = Typography\n const [counter, setCounter] = useState(0)\n const [requestCounter, setRequestCounter] = useState(0)\n const [hasCodeError, setHasCodeError] = useState(false)\n const [retryLeft, setRetryLeft] = useState(1)\n const [needsToRetry, setNeedsToRetry] = useState(false)\n const [modal, setModal] = useState({\n visible: false,\n confirmLoading: false\n })\n const codeInputRef = useRef(null)\n const phoneNumber = `${getCountryPrefix(subscribeFormData.insurees[0].phoneNumber.prefix)}${subscribeFormData.insurees[0].phoneNumber.number}`\n\n useEffect(() => {\n let isCancelled = false\n\n if (!counter) {\n return\n }\n\n const intervalId = setInterval(() => {\n if (!isCancelled) {\n setCounter(counter - 1)\n }\n }, 1000)\n\n return () => {\n isCancelled = true\n clearInterval(intervalId)\n }\n }, [counter])\n\n const requestCode = () => {\n setHasCodeError(false)\n\n if (counter > 0 && requestCounter > 12 && isVerified && isFormValidated) {\n return\n }\n\n setCounter(120) // Start countdown\n setRequestCounter(requestCounter + 1) // Add request to request counter\n sendCode()\n .then(() => {\n message.success(`${t('verification.notification.codeSent')} ${phoneNumber}`)\n setModal({\n ...modal,\n loading: true,\n visible: true\n })\n }).catch(() => {\n message.error(t('verification.notification.codeNotSent'))\n })\n }\n\n const sendCode = () => {\n return postCall(`${process.env.REACT_APP_API_URL}/quote/create-sign-token`, {\n offerId: offerId,\n phoneNumber: phoneNumber\n })\n }\n\n const validateCode = (code) => {\n if (!code) {\n return\n }\n\n setNeedsToRetry(false)\n code = code.match(/.{1,3}/g).join('-')\n setModal({\n ...modal,\n confirmLoading: true\n })\n postCall(`${process.env.REACT_APP_API_URL}/quote/sign`, {\n offerId: offerId,\n phoneNumber: phoneNumber,\n code: code\n })\n .then(() => {\n setTimeout(() => {\n setVerified(true)\n setModal({\n ...modal,\n visible: false,\n confirmLoading: false\n })\n onComplete(code)\n }, 1500)\n })\n .catch(() => {\n if (retryLeft > 0) {\n codeInputRef.current.__clearvalues__()\n setNeedsToRetry(true)\n setModal({\n ...modal,\n confirmLoading: false\n })\n setRetryLeft(retryLeft - 1)\n } else {\n setHasCodeError(true)\n setTimeout(() => {\n setModal({\n ...modal,\n visible: false,\n confirmLoading: false\n })\n }, 5000)\n }\n })\n }\n\n const handleToggleModal = (visibility) => {\n setModal({\n ...modal,\n visible: visibility\n })\n }\n\n return (\n <>\n {!isVerified && (\n <>\n {requestCounter < 12 && (\n \n )}\n { handleToggleModal(false) }}\n confirmLoading={modal.confirmLoading}\n footer={[\n \n ]}\n >\n {t('verification.modal.title')}\n

{MarkupEscape('verification.modal.text', { phoneNumber: phoneNumber })}

\n {hasCodeError\n ? (\n \n )\n : (\n <>\n {needsToRetry && (\n

{MarkupEscape('verification.modal.retry', { count: (retryLeft + 1), retryCount: (retryLeft + 1).toString() })}

\n )}\n \n

{MarkupEscape('verification.modal.codeNotReceived')}

\n \n )}\n \n \n )}\n \n )\n}\n\nexport default VerificationCode\n","import React, { useState, useEffect } from 'react'\nimport { Icon, Switch, Row, Col, Button, Alert, Typography, Radio, Spin } from 'antd'\nimport { useForm, Controller } from 'react-hook-form'\nimport { t, MarkupEscape } from '../../../utils/helpers'\nimport VerificationCode from './../common/VerificationCode'\nimport { useSubscribeFormContext } from '../../../context/SubscribeContext'\nimport { generateStepData } from './../../../utils/subscribeFieldsModel'\nimport ErrorMessage from './../common/ErrorMessage'\nconst validationSchema = require('./../../../utils/validation')\n\nconst SubscriptionLastStep = ({ offer, offerId, handlePreviousStep, handleProceedSubscription }) => {\n const { subscribeFormData, setSubscribeFormData } = useSubscribeFormContext()\n const [verified, setVerified] = useState(false)\n const [loading, setLoading] = useState(false)\n const [hasConsent, setHasConsent] = useState(false)\n const { Title } = Typography\n const icon = \n const stepValidationSchema = validationSchema.subscibeStep7Validation\n const defaultValues = generateStepData('lastStep', subscribeFormData)\n\n const { watch, control, register, setValue, handleSubmit, errors } = useForm({\n validateCriteriaMode: 'firstErrorDetected',\n mode: 'onSubmit',\n reValidateMode: 'onSubmit',\n validationSchema: stepValidationSchema,\n defaultValues: defaultValues\n })\n\n const values = watch({ nest: true })\n\n useEffect(() => {\n // Set validation dependency fields\n register({ name: 'code' })\n\n setTimeout(() => {\n setLoading(false)\n }, 1000)\n\n return () => {\n setLoading(true)\n }\n }, [register])\n\n const toggle = (field, value = null, event = null) => {\n const newValue = value !== null ? value : !values[field]\n\n if (event && event.target.tagName !== 'A') {\n setValue(field, newValue, false)\n }\n }\n\n const handleVerificationComplete = (code) => {\n setValue('code', code, false)\n }\n\n const onSubmit = (values) => {\n setLoading(true)\n setSubscribeFormData({\n ...subscribeFormData,\n ...values\n })\n handleProceedSubscription({\n ...subscribeFormData,\n ...values\n }, offer)\n setLoading(false)\n }\n\n useEffect(() => {\n const radios = [\n values.cancelsOtherInsurerContract,\n values.guaranteesMortgageLoan\n ]\n\n const switches = [\n values.correctDataCheck,\n values.termsCheck,\n values.dataProtectionCheck,\n values.dataProcessingCheck,\n values.intermediaryMandateCheck,\n values.emailCommunicationCheck\n ]\n\n if (!radios.includes('') && !switches.includes(false)) {\n setHasConsent(true)\n } else {\n setHasConsent(false)\n }\n }, [\n watch,\n values.cancelsOtherInsurerContract,\n values.correctDataCheck,\n values.dataProcessingCheck,\n values.dataProtectionCheck,\n values.emailCommunicationCheck,\n values.guaranteesMortgageLoan,\n values.intermediaryMandateCheck,\n values.termsCheck\n ])\n\n const generateRadio = (propertyName) => {\n return (\n \n
\n

{t(`forms.steps.subscribe.lastStep.sections.lastQuestions.questions.${propertyName}`)}

\n \n \n \n \n {t('global.yes')}\n \n \n {t('global.false')}\n \n \n )}\n defaultValue={defaultValues[propertyName]}\n value={values[propertyName]}\n name={propertyName}\n onChange={([e]) => e.target.value}\n control={control}\n />\n \n \n \n \n \n )\n }\n\n const generateSwitch = (propertyName, options = null) => {\n if (!options) {\n options = {\n customLabel: null\n }\n }\n return (\n \n \n }\n unCheckedChildren={}\n valueName='checked'\n />\n

toggle(propertyName, null, e)} style={{ cursor: 'pointer' }}>{options.customLabel ? options.customLabel : MarkupEscape(`forms.steps.subscribe.lastStep.sections.pleaseConfirm.questions.${propertyName}`)}

\n \n \n \n )\n }\n\n return (\n
\n
\n {loading ? (\n
\n \n \n \n
\n ) : (\n <>\n
\n {t('forms.steps.subscribe.lastStep.sections.lastQuestions.title')}\n {generateRadio('cancelsOtherInsurerContract')}\n {generateRadio('guaranteesMortgageLoan')}\n
\n
\n {t('forms.steps.subscribe.lastStep.sections.pleaseConfirm.title')}\n {generateSwitch('correctDataCheck')}\n {generateSwitch('termsCheck', {\n customLabel: MarkupEscape('forms.steps.subscribe.lastStep.sections.pleaseConfirm.questions.termsCheck', { productName: subscribeFormData.additionalInsuree ? '2Win' : 'Classic' })\n })}\n {generateSwitch('dataProtectionCheck')}\n {generateSwitch('dataProcessingCheck')}\n {generateSwitch('intermediaryMandateCheck')}\n {generateSwitch('emailCommunicationCheck')}\n
\n\n {verified && (\n
\n \n
\n )}\n \n )}\n
\n {!loading && (\n
\n \n {verified ? (\n \n ) : (\n \n )}\n
\n )}\n \n )\n}\n\nexport default SubscriptionLastStep\n","import React, { useState, useEffect, useRef, useCallback } from 'react'\nimport { useParams, useHistory, Prompt } from 'react-router-dom'\nimport { Typography, Row, Col, message, Progress } from 'antd'\nimport { postCall } from '../../../utils/ApiCall'\nimport SubscriptionRecap from '../forms/SubscriptionRecap'\nimport SubscriptionPersonalDetails from '../forms/SubscriptionPersonalDetails'\nimport SubscriptionPersonalDetailsBis from '../forms/SubscriptionPersonalDetailsBis'\nimport SubscriptionLoanDetails from '../forms/SubscriptionLoanDetails'\nimport SubscriptionMedicalDeclaration from '../forms/SubscriptionMedicalDeclaration'\nimport SubscriptionMedicalDeclarationBis from '../forms/SubscriptionMedicalDeclarationBis'\nimport SubscriptionGoodHealthDeclaration from '../forms/SubscriptionGoodHealthDeclaration'\nimport SubscriptionLastStep from '../forms/SubscriptionLastStep'\nimport CodeHighlight from '../common/CodeHighlight'\nimport { t, getCurrentLocale, getCountryPrefix } from '../../../utils/helpers'\nimport { generateSubscribeData } from '../../../utils/subscribeFieldsModel'\nimport { useSubscribeFormContext, useSubscribeStepContext } from '../../../context/SubscribeContext'\nimport { useLocaleSwitchContext } from '../../../context/LocaleSwitchContext'\nimport scrollToComponent from 'react-scroll-to-component'\nimport Seo from '../common/Seo'\nimport { objectToFormData } from 'object-to-formdata'\nimport cleanDeep from 'clean-deep'\nimport { useTrackerContext } from './../../../context/TrackerContext'\n\nconst Subscription = () => {\n const { trackEvent } = useTrackerContext()\n const { offerId, selectedPlan } = useParams()\n const [offer, setOffer] = useState({})\n const [submited, setSubmited] = useState(false)\n const [callError, setCallError] = useState(false)\n const [lastCurrentStep, setLastCurrentStep] = useState(null)\n const { currentStep, steps, setSteps, progress, next, previous, reset } = useSubscribeStepContext()\n const { subscribeFormData, setSubscribeFormData } = useSubscribeFormContext()\n const { localeSwitching } = useLocaleSwitchContext()\n const { Title } = Typography\n const topEl = useRef(null)\n const history = useHistory()\n const currentLocale = getCurrentLocale()\n\n const handleNextStep = useCallback(\n () => {\n scrollToComponent(topEl.current, { offset: 0, align: 'top', duration: 400 })\n next()\n },\n [next]\n )\n\n const handlePreviousStep = useCallback(\n () => {\n scrollToComponent(topEl.current, { offset: 0, align: 'top', duration: 400 })\n previous()\n },\n [previous]\n )\n\n useEffect(() => {\n if (currentStep > 0) {\n if (currentStep <= lastCurrentStep) {\n trackEvent(`Subscription - Going back to step ${lastCurrentStep}`)\n } else {\n trackEvent(`Subscription - Completed step ${currentStep}`)\n }\n } else {\n if (currentStep < lastCurrentStep) {\n trackEvent('Subscription - Going back to first step')\n }\n }\n setLastCurrentStep(currentStep)\n }, [\n currentStep\n ])\n\n const handleProceedSubscription = useCallback(\n (data, offer) => {\n data.insurees[0].phoneNumber.prefix = getCountryPrefix(data.insurees[0].phoneNumber.prefix)\n if (data.additionalInsuree) {\n data.insurees[1].phoneNumber.prefix = getCountryPrefix(data.insurees[1].phoneNumber.prefix)\n }\n const values = new FormData()\n data.personalIdFile.forEach(file => {\n values.append('personalIdFile', file)\n })\n delete data.personalIdFile\n\n postCall(`${process.env.REACT_APP_API_URL}/quote/subscribe`, objectToFormData(cleanDeep(data), {\n indices: true\n }, values))\n .then((response) => {\n setSubmited(true)\n trackEvent('Subscription completed')\n history.push(`/${currentLocale}/subscribe/success`, { data: { ...data, ...response }, offer: offer })\n }).catch(err => {\n if (err.response) {\n message.error(err.response.data.message, 2)\n }\n })\n },\n [\n trackEvent,\n currentLocale,\n history\n ]\n )\n\n const generateSteps = useCallback(\n (offer) => {\n setSteps([\n {\n name: 'recap',\n content: \n },\n {\n name: 'personalDetails',\n content: \n },\n ...(offer.recap.additionalInsuree ? [{\n name: 'personalDetailsBis',\n content: \n }] : []),\n {\n name: 'loanDetails',\n content: \n },\n {\n name: 'goodHealthDeclaration',\n content: \n },\n ...(offer.medicalDeclarations.policyHolder ? [{\n name: 'medicalDeclaration',\n content: \n }] : []),\n ...((offer.recap.additionalInsuree && offer.medicalDeclarations.additionalInsuree) ? [{\n name: 'medicalDeclarationBis',\n content: \n }] : []),\n {\n name: 'lastStep',\n content: \n }\n ].filter(x => x !== null))\n },\n [\n setSteps,\n handleNextStep,\n handlePreviousStep,\n handleProceedSubscription,\n offerId,\n selectedPlan\n ]\n )\n\n useEffect(() => {\n const getOffer = () => {\n setTimeout(() => {\n postCall(`${process.env.REACT_APP_API_URL}/quote/find`, {\n offerId: offerId\n })\n .then(offer => {\n setOffer(offer)\n generateSteps(offer)\n trackEvent('Subscription - Started', { offerId: offerId, plan: selectedPlan })\n setSubscribeFormData(\n generateSubscribeData({\n ...offer.recap,\n medicalDeclarations: { ...offer.medicalDeclarations },\n offerId: offerId,\n plan: selectedPlan\n })\n )\n }).catch(err => {\n if (err.response) {\n message.error(err.response.data.message, 2)\n }\n setTimeout(() => {\n setCallError(true)\n history.push(`/${currentLocale}/quote`)\n }, 200)\n })\n }, 1000)\n }\n\n if (!Object.keys(offer).length) {\n getOffer()\n }\n\n return (\n () => {\n setCallError(false)\n }\n )\n }, [\n trackEvent,\n offerId,\n offer,\n currentLocale,\n history,\n selectedPlan,\n setSubscribeFormData,\n generateSteps,\n setSteps\n ])\n\n const resetForm = useCallback(() => {\n setSubscribeFormData({})\n reset()\n }, [])\n\n useEffect(() => {\n const onBeforeUnload = (event) => {\n if (!submited) {\n event.preventDefault()\n event.returnValue = t('subscribe.unprocessedSubscription')\n }\n }\n\n window.addEventListener('beforeunload', onBeforeUnload)\n\n return (\n () => {\n window.removeEventListener('beforeunload', onBeforeUnload)\n }\n )\n }, [\n submited\n ])\n\n useEffect(() => {\n let unblock = null\n let unlisten = null\n if (!submited) {\n unlisten = history.listen((location) => {\n if (!location.pathname.includes('/subscribe/')) {\n unblock = history.block()\n }\n })\n }\n\n return (\n () => {\n if (!submited) {\n if (unlisten) {\n unlisten()\n unlisten = null\n }\n if (unblock) {\n unblock()\n unblock = null\n }\n resetForm()\n }\n }\n )\n }, [\n submited,\n history\n ])\n\n return (\n <>\n \n
\n {!submited && !localeSwitching && !callError && (\n \n )}\n
\n {steps.length > 0 && (\n <>\n \n \n
\n {currentStep + 1}/{steps.length}\n {t(`forms.steps.subscribe.${steps[currentStep].name}.title`)}\n

{t(`forms.steps.subscribe.${steps[currentStep].name}.subtitle`)}

\n
\n
\n {steps[currentStep].content}\n
\n
\n \n \n \n )}\n \n {process.env.NODE_ENV === 'development' && (\n <>\n \n \n )}\n \n \n )\n}\n\nexport default Subscription\n","import React from 'react'\nimport { MarkupEscape } from '../../../utils/helpers'\nimport Seo from '../common/Seo'\nimport { Link } from 'react-router-dom'\nimport { Typography, Button } from 'antd'\nimport hero from './../../../images/hero.svg'\nimport { t, getCurrentLocale } from './../../../utils/helpers'\n\nconst NotFoundPage = () => {\n const { Title } = Typography\n const currentLocale = getCurrentLocale() || 'en'\n\n return (\n <>\n \n
\n
\n Illustration\n {MarkupEscape('notFound.title')}\n \n \n \n
\n
\n \n )\n}\n\nexport default NotFoundPage\n","import React from 'react'\nimport Seo from '../../common/Seo'\nimport { Row, Col, Typography } from 'antd'\nimport { t, MarkupEscape } from 'src/utils/helpers'\n\nconst LegalPage = () => {\n const { Title, Text } = Typography\n\n return (\n <>\n \n
\n
\n \n
\n {t('legal.title')}\n\n
\n
\n
\n {Object.values(t('legal.steps', { returnObjects: true })).map((content, index) => (\n <>\n
0 ? 'step mt-5' : 'step'} key={index}>\n {content.title && (\n {MarkupEscape(content.title)}\n )}\n {content.text && (\n {MarkupEscape(content.text.join(''))}\n )}\n {content.substeps && Object.values(content.substeps).map(subcontent => (\n <>\n {subcontent.title && (\n {t(subcontent.title)}\n )}\n {subcontent.text && (\n {MarkupEscape(subcontent.text.join(''))}\n )}\n \n ))}\n
\n \n ))}\n
\n
\n
\n \n \n \n \n \n )\n}\n\nexport default LegalPage\n","import React from 'react'\nimport Seo from '../../common/Seo'\nimport { Row, Col, Typography } from 'antd'\nimport { t, MarkupEscape } from 'src/utils/helpers'\n\nconst TermsPage = () => {\n const { Title, Text } = Typography\n\n return (\n <>\n \n
\n
\n \n
\n {t('terms.title')}\n

{t('terms.subtitle')}

\n\n
\n
\n
\n
\n {t('terms.steps.1.title')}\n {t('terms.steps.1.subtitle')}\n {MarkupEscape('terms.steps.1.text')}\n
\n\n
\n {t('terms.steps.2.title')}\n {t('terms.steps.2.subtitle')}\n {MarkupEscape('terms.steps.2.text')}\n
\n\n
\n {t('terms.steps.3.title')}\n {MarkupEscape('terms.steps.3.text')}\n
\n\n
\n {t('terms.steps.4.title')}\n {MarkupEscape('terms.steps.4.text')}\n
\n\n
\n {t('terms.steps.5.title')}\n {MarkupEscape('terms.steps.5.text')}\n
\n\n
\n {t('terms.steps.6.title')}\n {t('terms.steps.6.subtitle1')}\n {MarkupEscape('terms.steps.6.text1')}\n\n {t('terms.steps.6.subtitle2')}\n {MarkupEscape('terms.steps.6.text2')}\n
\n\n
\n {t('terms.steps.7.title')}\n {MarkupEscape('terms.steps.7.text')}\n
\n\n
\n {t('terms.steps.8.title')}\n {MarkupEscape('terms.steps.8.text1')}\n {t('terms.steps.8.subtitle2')}\n {MarkupEscape('terms.steps.8.text2')}\n\n {t('terms.steps.8.subtitle3')}\n {MarkupEscape('terms.steps.8.text3')}\n
\n\n
\n {t('terms.steps.9.title')}\n {t('terms.steps.9.subtitle1')}\n {MarkupEscape('terms.steps.9.text1')}\n\n {t('terms.steps.9.subtitle2')}\n {MarkupEscape('terms.steps.9.text2')}\n
\n\n
\n {t('terms.steps.10.title')}\n {MarkupEscape('terms.steps.10.text')}\n
\n\n
\n {t('terms.steps.11.title')}\n {t('terms.steps.11.subtitle1')}\n {MarkupEscape('terms.steps.11.text1')}\n\n {t('terms.steps.11.subtitle2')}\n {MarkupEscape('terms.steps.11.text2')}\n
\n\n
\n {t('terms.steps.12.title')}\n {MarkupEscape('terms.steps.12.text')}\n
\n\n
\n {t('terms.steps.13.title')}\n {MarkupEscape('terms.steps.13.text')}\n
\n\n
\n {t('terms.steps.14.title')}\n {MarkupEscape('terms.steps.14.text')}\n
\n\n
\n {t('terms.steps.15.title')}\n {t('terms.steps.15.subtitle')}\n {MarkupEscape('terms.steps.15.text')}\n
\n\n
\n {t('terms.steps.16.title')}\n {MarkupEscape('terms.steps.16.text')}\n
\n\n
\n {t('terms.steps.17.title')}\n {MarkupEscape('terms.steps.17.text')}\n
\n\n
\n {t('terms.steps.18.title')}\n {MarkupEscape('terms.steps.18.text')}\n
\n\n
\n {t('terms.steps.19.title')}\n {MarkupEscape('terms.steps.19.text')}\n
\n\n
\n {t('terms.steps.20.title')}\n {MarkupEscape('terms.steps.20.text')}\n
\n\n
\n {t('terms.steps.21.title')}\n {MarkupEscape('terms.steps.21.text')}\n
\n\n
\n {t('terms.steps.22.title')}\n {MarkupEscape('terms.steps.22.text')}\n
\n\n
\n {t('terms.steps.23.title')}\n {MarkupEscape('terms.steps.23.text')}\n
\n\n
\n {t('terms.steps.24.title')}\n {MarkupEscape('terms.steps.24.text')}\n
\n\n
\n {t('terms.steps.25.title')}\n {MarkupEscape('terms.steps.25.text')}\n
\n\n
\n
\n
\n \n \n \n \n \n )\n}\n\nexport default TermsPage\n","import React from 'react'\nimport Seo from '../../common/Seo'\nimport { Row, Col, Typography } from 'antd'\nimport { t, MarkupEscape } from 'src/utils/helpers'\n\nconst PrivacyPage = () => {\n const { Title, Text } = Typography\n\n return (\n <>\n \n
\n
\n \n
\n {t('privacy.title')}\n

{MarkupEscape('privacy.subtitle')}

\n\n
\n
\n
\n {Object.values(t('privacy.steps', { returnObjects: true })).map((content, index) => (\n <>\n
0 ? 'step mt-5' : 'step'} key={index}>\n {content.title && (\n {t(content.title)}\n )}\n {content.text && (\n {MarkupEscape(content.text.join(''))}\n )}\n {content.substeps && Object.values(content.substeps).map(subcontent => (\n <>\n {subcontent.title && (\n {t(subcontent.title)}\n )}\n {subcontent.text && (\n {MarkupEscape(subcontent.text.join(''))}\n )}\n \n ))}\n
\n \n ))}\n
\n
\n
\n \n \n \n \n \n )\n}\n\nexport default PrivacyPage\n","import React from 'react'\nimport Seo from '../../common/Seo'\nimport { Row, Col, Typography } from 'antd'\nimport { t, MarkupEscape } from 'src/utils/helpers'\n\nconst MandatePage = () => {\n const { Title, Text } = Typography\n\n return (\n <>\n \n
\n
\n \n
\n {t('mandate.title')}\n

{MarkupEscape('mandate.subtitle')}

\n\n
\n
\n
\n {Object.values(t('mandate.steps', { returnObjects: true })).map((content, index) => (\n <>\n
0 ? 'step mt-5' : 'step'} key={index}>\n {content.title && (\n {t(content.title)}\n )}\n {content.text && (\n {MarkupEscape(content.text.join(''))}\n )}\n {content.substeps && Object.values(content.substeps).map(subcontent => (\n <>\n {subcontent.title && (\n {t(subcontent.title)}\n )}\n {subcontent.text && (\n {MarkupEscape(subcontent.text.join(''))}\n )}\n \n ))}\n
\n \n ))}\n
\n
\n
\n \n \n \n \n \n )\n}\n\nexport default MandatePage\n","import React from 'react'\nimport Seo from '../../common/Seo'\nimport { Row, Col, Typography } from 'antd'\nimport { t, MarkupEscape } from 'src/utils/helpers'\n\nconst CookiesPage = () => {\n const { Title, Text } = Typography\n\n return (\n <>\n \n
\n
\n \n
\n {t('cookies.title')}\n

{t('cookies.subtitle')}

\n\n
\n
\n
\n {Object.values(t('cookies.steps', { returnObjects: true })).map((content, index) => (\n
0 ? 'step mt-5' : 'step'} key={index}>\n {content.title && (\n {t(content.title)}\n )}\n {content.text && (\n {MarkupEscape(content.text.join(''))}\n )}\n
\n ))}\n
\n
\n
\n \n \n \n \n \n )\n}\n\nexport default CookiesPage\n","import React from 'react'\nimport { Row, Col, Typography, Card } from 'antd'\nimport { t } from './../../../utils/helpers'\n\nfunction AdminDashboardPage () {\n const { Title } = Typography\n const data = null\n\n return (\n
\n
\n {t('admin.dashboard.title')}\n\n {data\n ? (\n <>\n \n
\n \n

Card content

\n

Card content

\n

Card content

\n
\n \n \n \n

Card content

\n

Card content

\n

Card content

\n
\n \n \n\n \n \n \n

Card content

\n

Card content

\n

Card content

\n
\n \n \n \n ) : (\n {t('admin.dashboard.noContent')}\n )}\n \n \n )\n}\n\nexport default AdminDashboardPage\n","import { isAuthenticated, getToken } from './AuthenticationUtil'\n\nconst Api = {\n get: (url) => {\n return Api.request(url, 'GET', undefined)\n },\n post: (url, data, customOptions) => {\n return Api.request(url, 'POST', data, customOptions)\n },\n put: (url, data) => {\n return Api.request(url, 'PUT', data)\n },\n request: (url, method, data, customOptions = {}) => {\n return request(url, data, {\n method\n }, customOptions)\n },\n getBearerToken: () => {\n return isAuthenticated ? { Authorization: `Bearer ${getToken().token}` } : null\n }\n}\n\nexport default Api\n\nfunction request (url, data, options, customOptions) {\n url = (url + '').startsWith('/') ? url.slice(1) : url + ''\n\n options = options || {}\n\n if (url.startsWith('admin') && isAuthenticated) {\n options.headers = options.headers || {}\n options.headers.Authorization = `Bearer ${getToken().token}`\n }\n\n if (data !== undefined) {\n options.body = JSON.stringify(data)\n options.headers['Content-Type'] = options.headers['Content-Type'] || 'application/json'\n }\n\n return window.fetch(getApiUrl() + url, options)\n .then(response => {\n if (!response.ok) {\n return Promise.reject(response)\n }\n if (response.status === 204) {\n return null\n }\n\n return customOptions.isBlob ? response.blob() : response.json()\n })\n}\n\nfunction getApiUrl () {\n return (process.env.REACT_APP_API_URL + '').endsWith('/') ? process.env.REACT_APP_API_URL : process.env.REACT_APP_API_URL + '/'\n}\n","import React from 'react'\nimport { Input, Button, Icon } from 'antd'\n\nexport default {\n searchableColumn\n}\n\nexport function searchableColumn (dataIndex, options) {\n options = Object.assign({\n placeholder: `Filter by ${dataIndex}`,\n handleSearch: function (_selectedKeys, confirm) {\n confirm()\n },\n handleReset: function (clearFilters) {\n clearFilters()\n },\n isValid: function (value, searchValue) {\n return (value || '').toString().toLowerCase().includes(searchValue.toLowerCase())\n }\n }, options)\n\n let searchInput\n return ({\n filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => (\n
\n {\n searchInput = node\n }}\n placeholder={options.placeholder}\n value={selectedKeys[0]}\n onChange={e => setSelectedKeys(e.target.value ? [e.target.value] : [])}\n onPressEnter={() => options.handleSearch(selectedKeys, confirm, dataIndex)}\n style={{ width: 188, marginBottom: 8, display: 'block' }}\n />\n options.handleSearch(selectedKeys, confirm, dataIndex)}\n icon=\"search\"\n size=\"small\"\n style={{ width: 90, marginRight: 8 }}\n >\n Search\n \n \n
\n ),\n filterIcon: filtered => (\n \n ),\n onFilter: (value, record) => {\n const parts = dataIndex.split('||')\n\n for (const i in parts) {\n const part = parts[i]\n\n var recordValue = part.split('.').reduce((acc, key) => {\n if (acc && typeof (acc) === 'object' && acc.hasOwnProperty(key)) {\n return acc[key]\n }\n return acc\n }, record)\n\n if (options.isValid(recordValue, value)) {\n return true\n }\n }\n\n return false\n },\n onFilterDropdownVisibleChange: visible => {\n if (visible) {\n setTimeout(() => searchInput.select())\n }\n },\n // render: text =>\n // this.state.searchedColumn === dataIndex ? (\n // \n // ) : (\n // text\n // )\n })\n}\n\n\n// function formatName (name) {\n// if (typeof name !== 'string') {\n// return name\n// }\n\n// return name.split('').reduce((acc, char) => {\n\n// char = char.replace(' ', '')\n\n// if (!char) {\n// return acc\n// }\n\n// if (!acc.length) {\n// char = char.toLowerCase()\n// }\n\n// acc.push(char)\n// return acc;\n// }, []).join('')\n// }\n","export default {\n truncate\n}\n\nexport function truncate (str, startCharactersCound, endCharactersCount) {\n return typeof (str) !== 'string' ? str : `${str.substr(0, startCharactersCound)}..${str.substr(-endCharactersCount)}`\n}\n","import React from 'react'\nimport { Tag } from 'antd'\nimport { t, keyExists } from './../../utils/helpers'\n\nexport default {\n SubscriptionStatusTag\n}\n\nexport function SubscriptionStatusTag ({ status, size = null }) {\n const classNames = []\n\n if (size) {\n classNames.push(size)\n }\n\n return ({\n 'active': {t('admin.status.active')},\n 'suspended': {t('admin.status.suspended')},\n 'needsMedicalExam': {t('admin.status.needsMedicalExam')},\n 'cancelled': {t('admin.status.cancelled')},\n 'subscribed': {t('admin.status.subscribed')},\n 'calculated': {t('admin.status.calculated')},\n 'saved': {t('admin.status.saved')},\n 'pending': {t('admin.status.pending')},\n })[status] || {keyExists(`admin.status.${status}`) ? t(`admin.status.${status}`) : status}\n}\n","import React, { useState, useEffect } from 'react'\nimport Api from '../../../utils/Api'\nimport { Table, Typography } from 'antd'\nimport moment from 'moment'\nimport { searchableColumn } from '../../../utils/table-helpers'\nimport { truncate } from '../../../utils/string-utils'\nimport { useHistory } from 'react-router-dom'\nimport { SubscriptionStatusTag } from '../subscription-status-tag'\nimport { t, getCurrentLocale } from 'src/utils/helpers'\n\nexport default AdminSubscriptionsPage\n\nfunction AdminSubscriptionsPage () {\n const currentLocale = getCurrentLocale()\n const history = useHistory()\n const [isLoading, setIsLoading] = useState(true)\n const [subscriptions, setSubscriptions] = useState([])\n\n useEffect(() => {\n setIsLoading(true)\n Api.get('admin/subscriptions')\n .then(res => setSubscriptions(res))\n .finally(() => setIsLoading(false))\n }, [])\n\n const columns = [\n {\n title: 'Id',\n dataIndex: '_id',\n width: 1,\n className: 'nowrap',\n render: id => truncate(id, 2, 6)\n },\n {\n title: 'Name',\n dataIndex: 'policyHolder',\n ...searchableColumn('policyHolder', {\n placeholder: 'Filter by first and lastname',\n isValid: (value, searchValue) => {\n return `${searchValue}`.split(' ').reduce((acc, curr) => {\n if (acc) {\n return acc\n }\n\n const toLower = (value) => typeof value !== 'string' ? '' : value.toLowerCase()\n curr = toLower(curr)\n return toLower(value.firstName).includes(curr) || toLower(value.lastName).includes(curr)\n }, false)\n }\n }\n ),\n render: (v) => `${v.firstName} ${`${v.lastName}`.toUpperCase()}`\n },\n {\n title: 'Email',\n dataIndex: 'policyHolder.email',\n ...searchableColumn('policyHolder.email')\n },\n {\n title: 'Reference Number',\n dataIndex: 'referenceNumber',\n ...searchableColumn('referenceNumber')\n },\n {\n title: 'Policy Number',\n dataIndex: 'policyNumber',\n ...searchableColumn('policyNumber')\n },\n {\n title: 'Status',\n key: 'status',\n dataIndex: 'status',\n width: 1,\n className: 'nowrap',\n filters: subscriptions.reduce((acc, subscription) => {\n if (!~acc.findIndex(a => a.value === subscription.status)) {\n acc.push({\n text: subscription.status.substr(0, 1).toUpperCase() + (subscription.status.substr(1)).split('').reduce((acc, char) =>\n acc + (char === char.toUpperCase() ? ' ' : '') + char\n , ''),\n value: subscription.status\n })\n }\n\n return acc\n }, []),\n onFilter: (value, record) => record.status === value,\n render: status => \n },\n {\n title: 'Created at',\n key: 'createdAt',\n dataIndex: 'createdAt',\n width: 1,\n className: 'nowrap',\n defaultSortOrder: 'descend',\n sorter: (a, b) => new Date(a.createdAt) - new Date(b.createdAt),\n render: d => moment(d).format('DD.MM.YYYY HH:mm')\n },\n\n ]\n\n return (\n <>\n
\n
\n {t('admin.subscriptions.title')}\n\n
{\n return {\n onClick: () => {\n history.push(`/${currentLocale}/adminus/subscriptions/${record._id}`)\n }\n }\n }} />\n \n \n \n )\n}\n","import React, { useState } from 'react'\nimport { Button } from 'antd'\n\nconst ShowMore = ({ text, previewLength = 200 }) => {\n const [expanded, setExpanded] = useState(false)\n let intro = null\n\n if (text.length > previewLength) {\n intro = `${text.slice(0, previewLength)}...`\n }\n\n return (\n intro && !expanded\n ? (\n <>\n {intro} \n \n )\n : text\n )\n}\n\nexport default ShowMore\n","import React, { useState, useEffect, useCallback } from 'react'\nimport Api from '../../../utils/Api'\nimport { useHistory, useParams } from 'react-router-dom'\nimport { Alert, Button, Col, Descriptions, Dropdown, Collapse, Empty, Icon, List } from 'antd'\nimport { Menu, message, PageHeader, Row, Spin, Table, Tabs, Tag, Timeline, Tooltip, Typography, Upload, Modal } from 'antd'\nimport { SubscriptionStatusTag } from '../subscription-status-tag'\nimport ShowMore from '../common/ShowMore'\nimport { t } from './../../../utils/helpers'\nimport { isAllowedUser } from './../../../utils/AuthenticationUtil'\nimport moment from 'moment'\n\nconst { confirm } = Modal\nconst { Panel } = Collapse\nconst dateFormat = 'DD.MM.YYYY'\nconst dateTimeFormat = 'DD.MM.YYYY HH:mm'\n\nexport default AdminSubscriptionPage\n\nexport function AdminSubscriptionPage () {\n\n //const currentLocale = getCurrentLocale()\n const currentLocale = 'en'\n const history = useHistory()\n const [subscription, setSubscription] = useState(undefined)\n const [hasMedicalData, setHasMedicalData] = useState(false)\n const [values, setValues] = useState({})\n const { subscriptionId } = useParams()\n\n useEffect(() => {\n Api.get(`admin/subscriptions/${subscriptionId}`)\n .then(res => {\n setSubscription(res)\n setValues(values => ({\n ...values,\n ...(res.policyNumber && { policyNumber: res.policyNumber }),\n ...(res.effectiveDate && { effectiveDate: res.effectiveDate })\n }))\n if (\n res.policyHolder?.medicalDeclaration\n || res.policyHolder?.goodHealthDeclaration\n || res?.additionalInsuree?.medicalDeclaration\n || res?.additionalInsuree?.goodHealthDeclaration\n ) {\n setHasMedicalData(true)\n }\n })\n .catch(() => setSubscription(null))\n }, [subscriptionId])\n\n const handleFieldUpdate = (field, value, type = null) => {\n let isValid = type === null\n\n if (type === 'date') {\n isValid = moment(value, dateFormat, true).isValid()\n\n if (isValid) {\n value = moment(value, dateFormat).utc(true).toISOString()\n }\n }\n\n isValid = value !== ''\n\n if (value === values[field]) {\n return\n }\n\n if (isValid) {\n value = value.replace('#', '')\n Api.put(`admin/subscriptions/${subscriptionId}`, {\n ...subscription,\n [field]: value\n }).then(subscription => {\n message.success(`Field \"${field}\" has been updated successfully.`, 2)\n setSubscription(subscription)\n setValues(values => ({\n ...values,\n [field]: value\n }))\n })\n } else {\n message.error(`Field \"${field}\" is not valid`, 2)\n }\n }\n\n const handleChangeStatus = (subscription, status) => {\n if (status === subscription.status) {\n return\n }\n\n const prevStatus = subscription.status\n\n Api.put(`admin/subscriptions/${subscription._id}`, {\n ...subscription,\n status: status\n }).then(subscription => {\n message.success(`Status successfully changed from \"${t(`admin.status.${prevStatus}`)}\" to \"${t(`admin.status.${status}`)}\".`, 2)\n setSubscription(subscription)\n })\n }\n\n return (\n
\n
\n
\n {subscription ? (\n \n ) : (\n subscription === undefined ? : \n )\n }\n
\n
\n
\n )\n\n}\n\nfunction SubscriptionDetails ({ subscription, subscriptionId, handleFieldUpdate, handleChangeStatus, history, locale, setHasMedicalData, hasMedicalData }) {\n\n return (\n <>\n history.push(`/${locale}/adminus/subscriptions`)}\n className=\"px-0\"\n title={\n \n {t(`forms.fields.title.options.${subscription.policyHolder.title}`)} {subscription.policyHolder.lastName}, {subscription.policyHolder.firstName}\n \n }\n extra={{t('admin.subscription.header.createdAt')} {moment(subscription.createdAt).format(dateTimeFormat)}}\n >\n \n \n
{t('admin.subscription.header.reference')}
\n {subscription.referenceNumber}\n \n \n
{t('admin.subscription.header.policyNumber')}
\n
\n handleFieldUpdate('policyNumber', value) }}\n >\n {subscription.policyNumber ? subscription.policyNumber : {t('admin.subscription.header.addPolicyNumber')}}\n \n
\n \n \n
{t('admin.subscription.header.effectiveDate')}
\n handleFieldUpdate('effectiveDate', value, 'date') }}>\n {subscription.effectiveDate ? moment(subscription.effectiveDate).format(dateFormat) : 'n/a'}\n \n \n \n
{t('admin.subscription.header.status')}
\n
\n \n \n
\n \n {hasMedicalData && (\n \n
{t('admin.subscription.header.actions')}
\n
\n \n
\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n {isAllowedUser() && hasMedicalData && (\n \n \n \n )}\n \n <>\n Events\n {!subscription.logs.length && }\n {!!subscription.logs.length &&\n \n {subscription.logs.reverse().map(l => {moment(l.createdAt).format(dateTimeFormat)} {l.message})}\n \n }\n \n \n \n \n )\n}\n\nfunction SubscriptionChangeStatus ({ subscription, setStatus }) {\n const [visible, setVisible] = useState(false)\n const StatusList = () => {\n\n const availableStatus = [\n 'active',\n 'pending',\n 'suspended',\n 'needsMedicalExam',\n 'cancelled',\n 'rejectedByInsurer'\n ]\n\n return (\n { setStatus(subscription, value.key); setVisible(false) }} defaultSelectedKeys={subscription.status}>\n {availableStatus.map(status => (\n \n {t(`admin.status.${status}`)}\n \n ))}\n \n )\n }\n\n return (\n } visible={visible} trigger={['click']}>\n \n \n \n \n )\n}\n\nfunction SubscriptionActions ({ subscription, setHasMedicalData, hasMedicalData }) {\n const [loading, setLoading] = useState(false)\n const [medicalConfirmVisible, setMedicalConfirmVisible] = useState(false)\n const isAllowed = isAllowedUser()\n\n const ref = subscription.referenceNumber || '00000000'\n\n const handleExport = () => {\n setLoading(true)\n const hide = message.loading('Preparing export...', 0)\n Api.post(`admin/subscriptions/${subscription._id}/download-files`, undefined, { isBlob: true })\n .then((blob) => {\n const url = window.URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.href = url\n a.download = `simplomus_forms_${ref}.zip`\n document.body.appendChild(a)\n a.click()\n a.remove()\n hide()\n message.success('The contract was successfully exported.', 3)\n })\n .catch(error => {\n console.log(error)\n hide()\n message.error('There was an error while exporting the file.', 3)\n })\n .finally(() => setLoading(false))\n }\n\n const handleMedicalDataDeletion = () => {\n if (isAllowed) {\n setLoading(true)\n const hide = message.loading('Deleting medical data...', 0)\n setMedicalConfirmVisible(false)\n Api.post(`admin/subscriptions/${subscription._id}/clear-medical-data`)\n .then(() => {\n hide()\n setTimeout(() => {\n message.success('Medical data was successfully deleted.', 3)\n setHasMedicalData(false)\n }, 500)\n })\n .catch(() => {\n hide()\n setTimeout(() => {\n message.error('There was an error while deleting the medical data.', 3)\n }, 500)\n })\n .finally(() => setLoading(false))\n } else {\n message.error('You are not allowed to perform this action', 3)\n }\n }\n\n const menu = (\n \n Download forms\n {isAllowed && hasMedicalData && (\n setMedicalConfirmVisible(true)}>Delete medical data\n )}\n \n )\n\n return (\n <>\n \n \n \n setMedicalConfirmVisible(false)}>\n Cancel\n ,\n ,\n ]}\n >\n

This action will permanently and irrevocably delete all medical data for this contract. Please make sure that the exported PDFs reflect the client's data exactly as shown here in the backend.

\n \n \n )\n}\n\nfunction OverviewTab ({ subscription, handleFieldUpdate }) {\n return (\n <>\n \n
\n \n {`${subscription.capital} €`}\n {`${subscription.premium || 'n/a'} €`}\n {`${subscription.plan || 'n/a'}`}\n \n handleFieldUpdate('effectiveDate', value, 'date') }}\n >\n {`${moment(subscription.effectiveDate).format(dateFormat)}`}\n \n \n {`${moment(subscription.effectiveDate).add(subscription.duration, 'months').format(dateFormat)}`}\n Hypo Protect {subscription.additionalInsuree ? '2win' : 'Classic'}\n {t('forms.fields.guarantee.value')}\n {t('forms.fields.premiumType.value')}\n \n \n \n \n {subscription.capital} €\n {subscription.duration} months\n {subscription.interestRate} %\n {subscription.interval}\n \n \n \n\n \n \n \n {subscription.meta.existingContract ? `yes (policy # ${subscription.meta.existingContractPolicyNumber})` : 'no'}\n {subscription.meta.existingContract2 ? `yes (policy # ${subscription.meta.existingContract2PolicyNumber})` : 'no'}\n {subscription.meta.cancelOtherContract ? 'yes' : 'no'}\n {subscription.meta.guaranteesMortgageLoan ? 'yes' : 'no'}\n \n \n \n \n {`${subscription.meta.bankAccountHolder}`}\n {`${subscription.meta.bankAccountIban || 'n/a'}`}\n {`${subscription.meta.bankAccountBic || 'n/a'}`}\n \n \n \n\n \n {t(`forms.fields.beneficiary.options.${subscription.meta.beneficiary === 'by-law' ? 'byLaw' : subscription.meta.beneficiary}`) || 'n/a'}\n {`${subscription.meta.benefitTransferInstitution || 'n/a'}`}\n {`${subscription.meta.benefitTransferAddress || 'n/a'}`}\n {`${subscription.meta.benefitTransferFileNumber || 'n/a'}`}\n \n \n )\n}\n\nconst SendContract = ({ subscriptionId, subscription }) => {\n\n const send = () => {\n if (!subscription.contract) {\n return\n }\n\n const hideLoadingMessage = message.loading('Sending...', 0)\n Api.post(`admin/subscriptions/${subscriptionId}/contract/send`)\n .then(() => {\n setTimeout(() => {\n hideLoadingMessage()\n message.success('Contract sent to the client successfully', 3)\n }, 1000)\n })\n .catch(error => {\n console.log(error)\n setTimeout(() => {\n hideLoadingMessage()\n message.error('There was an error while sending the contract to the client. Please try again.', 3)\n }, 1000)\n })\n }\n\n const showConfirm = () => {\n\n if (subscription.policyHolder && subscription.status === 'active') {\n confirm({\n title: t('admin.subscription.documents.contract.modal.title'),\n content: t('admin.subscription.documents.contract.modal.text'),\n onOk: send,\n okText: t('admin.subscription.documents.contract.modal.okBtn'),\n cancelText: t('admin.subscription.documents.contract.modal.cancelBtn')\n })\n } else {\n if (!subscription.policyNumber) {\n message.error('You need to add a Policy number in order to send the contract to the client.', 3)\n } else if (subscription.status !== 'active') {\n message.error('Subscription needs to be active in order to send the contract to the client.', 3)\n }\n }\n }\n\n let tooltip = t('admin.subscription.documents.contract.actions.send')\n if (!subscription.policyNumber) {\n tooltip = 'Policy Number needed.'\n } else if (subscription.status !== 'active') {\n tooltip = 'Status needs to be active.'\n }\n\n return (\n <>\n \n \n \n )\n )\n}\n\nfunction DocumentsTab ({ subscriptionId, subscription }) {\n const [loading, setLoading] = useState(false)\n const [file, setFile] = useState(subscription.contract)\n const [hasFile, setHasFile] = useState(file ? true : false)\n\n const handleLoading = useCallback((loading) => {\n setLoading(loading)\n }, [])\n\n const handleOnComplete = (file) => {\n setFile(file)\n setTimeout(() => {\n if (!hasFile) {\n setHasFile(true)\n }\n }, 100)\n }\n\n return (\n <>\n Documents\n\n
\n
Contract
\n {hasFile ? (\n (\n ,\n ,\n \n ]}>\n {item.filename}}\n description={Updated at: {moment(item.updatedAt).format(dateTimeFormat)}}\n />\n \n )}\n />\n ) : (\n \n \n ]}>\n {subscription.status === 'active' ? 'There is no contract for this subscription' : 'Subscription needs to be active to upload a contract.'}\n \n \n )}\n
\n
\n
Medical Exams
\n \n
\n \n \n \n \n \n \n \n \n )\n\n}\n\nfunction InsureeMedicalDocumentsTable ({ title, insuree }) {\n if (!insuree) {\n return null\n }\n\n const exams = Object.keys(insuree.medicalExams || {}).reduce((acc, key) => {\n acc.push(Object.assign({\n key\n }, insuree.medicalExams[key]))\n return acc\n }, [])\n\n const columns = [{\n title: 'Medical exam',\n dataIndex: 'label'\n }, {\n title: 'Status',\n key: 'status',\n render: exam => \n }]\n\n return
title} rowKey=\"key\" size=\"small\" pagination={false} dataSource={exams} columns={columns} />\n\n}\n\nfunction InsureeDetailsTab ({ subscription, subscriptionId }) {\n return (\n \n \n \n \n {subscription.additionalInsuree && (\n \n \n \n )}\n \n )\n}\n\nfunction InsureeDetails ({ title, insuree, subscriptionId, policyHolder = false }) {\n const [idCardFileUrl, setIdCardFileUrl] = useState()\n\n useEffect(() => {\n let isCanceled = false\n if (!isCanceled && subscriptionId) {\n Api.get(`admin/subscriptions/${subscriptionId}/${policyHolder ? 'policy-holder' : 'additional-insuree'}/id-card`)\n .then(({ url }) => setIdCardFileUrl(url))\n .catch(error => console.log(error))\n }\n return (() => {\n isCanceled = true\n })\n }, [\n policyHolder,\n subscriptionId\n ])\n\n return (\n <>\n {title}\n \n {insuree.title}\n {insuree.firstName}\n {insuree.lastName}\n {moment(insuree.dateOfBirth).format(dateFormat)}\n {insuree.civilStatus}\n {insuree.profession}\n {insuree.socialStatus}\n {insuree.nationality}\n {insuree.placeOfBirth}\n {insuree.isSmoker ? 'Yes' : 'No'}\n \n\n \n {insuree.email ? {insuree.email} : 'n/a'}\n {insuree.phoneNumber || 'n/a'}\n \n\n \n {insuree.streetName}\n {insuree.streetNumber}\n {insuree.postalCode}\n {insuree.city}\n {insuree.country}\n \n\n {insuree.futureAddress &&\n \n {insuree.futureAddress.streetName}\n {insuree.futureAddress.streetNumber}\n {insuree.futureAddress.postalCode}\n {insuree.futureAddress.city}\n {insuree.futureAddress.country}\n \n }\n\n \n {idCardFileUrl && (\n \n Id card\n \n )}\n {insuree.personalIdCardNumber}\n {moment(insuree.personalIdValidUntil).format(dateFormat)}\n \n \n )\n}\n\nconst GoodHealthDeclaration = ({ insuree, additionalInsuree = false }) => {\n if (!insuree.goodHealthDeclaration) {\n return null\n }\n\n const questions = Object.entries(insuree.goodHealthDeclaration).map(([key, value]) => {\n if (key === 'height') {\n return (\n {value.toString().toUpperCase()} cm\n )\n } else if (key === 'weight') {\n return (\n {value.toString().toUpperCase()} kg\n )\n } else {\n return (\n {t(`global.${value.toString().toUpperCase()}`)}\n )\n }\n })\n\n return (\n {questions}\n )\n}\n\nconst MedicalDeclaration = ({ insuree, additionalInsuree = false }) => {\n\n return (\n Insuree 2 :
Insuree 1
)}\n itemLayout='horizontal'\n dataSource={[insuree.medicalDeclaration]}\n renderItem={(item) => {\n return Object.entries(item)\n .filter(([key]) => !key.includes('Explanation') && !key.includes('StartDate'))\n .map(([key, value]) => (\n \n : null}\n />\n {value === true\n ? insuree.medicalDeclaration[`${key}StartDate`]\n ? `${t('global.since')} ${moment(insuree.medicalDeclaration[`${key}StartDate`]).format(dateFormat)}`\n : t('global.true')\n : typeof value === 'boolean' ? t(`global.${value.toString()}`) : value}\n \n ))\n }}\n />\n )\n}\n\nconst MedicalTab = ({ subscription }) => {\n\n const activeKeys = ['1']\n if (subscription.policyHolder?.medicalDeclaration || subscription.additionalInsuree?.medicalDeclaration) {\n activeKeys.push('2')\n }\n\n return (\n \n {(subscription.policyHolder?.goodHealthDeclaration || subscription.additionalInsuree?.goodHealthDeclaration) && (\n \n \n {subscription.policyHolder?.goodHealthDeclaration && (\n
\n \n \n )}\n\n {subscription.additionalInsuree?.goodHealthDeclaration && (\n \n \n \n )}\n \n \n )}\n {(subscription.policyHolder?.medicalDeclaration || subscription.additionalInsuree?.medicalDeclaration) && (\n \n \n {subscription.policyHolder?.medicalDeclaration && (\n \n \n \n )}\n\n {(subscription.additionalInsuree?.medicalDeclaration) && (\n \n \n \n )}\n \n \n )}\n \n )\n}\n\nfunction Loading () {\n return (\n
\n \n
\n )\n}\n\nfunction NotFound ({ locale, history }) {\n return <>\n \n \n \n}\n\nfunction MedicalExamStatusTag ({ isRequired, isCompleted }) {\n\n if (isCompleted) {\n return {t('admin.status.completed')}\n }\n\n return isRequired ? {t('admin.status.notCompleted')} : {t('admin.status.notRequired')}\n\n}\n","import React from 'react'\n\nexport default function AdminNotFoundPage () {\n return (\n

Not found

\n )\n}\n","import React, { useState, useEffect } from 'react'\nimport Api from '../../../utils/Api'\nimport { Link } from 'react-router-dom'\nimport { Table, Descriptions, Spin, message, Drawer, Tag, Typography, Button, Tooltip } from 'antd'\nimport moment from 'moment'\nimport { searchableColumn } from '../../../utils/table-helpers'\nimport { truncate } from '../../../utils/string-utils'\nimport { t, keyExists } from '../../../utils/helpers'\n\nexport default AdminOffersPage\n\nfunction AdminOffersPage () {\n const [isLoading, setIsLoading] = useState(true)\n const [offers, setOffers] = useState([])\n\n const [selectedOffer, setSelectedOffer] = useState(undefined)\n const [offer, setOffer] = useState(undefined)\n\n const currentLocale = 'en' // getCurrentLocale() for multi-languages admin\n\n useEffect(() => {\n setIsLoading(true)\n Api.get('admin/offers')\n .then(res => setOffers(res))\n .finally(() => setIsLoading(false))\n }, [])\n\n useEffect(() => {\n if (!selectedOffer) {\n setOffer(undefined)\n return\n }\n\n Api.get(`admin/offers/${selectedOffer._id}`)\n .then(res => setOffer(res))\n .catch(() => {\n message.error('Failed to get offer')\n setSelectedOffer(undefined)\n })\n }, [selectedOffer])\n\n const columns = [\n {\n title: 'Id',\n key: '_id',\n dataIndex: '_id',\n className: 'nowrap',\n width: 110,\n render: id => truncate(id, 2, 6)\n },\n {\n title: 'Email',\n key: 'email',\n className: 'nowrap',\n ...searchableColumn('email'),\n render: offer => offer.email\n },\n {\n title: 'Capital amount',\n key: 'capital',\n className: 'nowrap',\n render: offer => offer.model.capital // todo: add formatter\n },\n {\n title: 'Status',\n key: 'status',\n // dataIndex: 'status',\n width: 120,\n filters: offers.reduce((acc, offer) => {\n if (!~acc.findIndex(a => a.value === offer.status)) {\n acc.push({\n text: offer.status.substr(0, 1).toUpperCase() + offer.status.substr(1),\n value: offer.status\n })\n }\n\n return acc\n }, []),\n onFilter: (value, record) => record.status === value,\n render: ({ status, subscriptionId = null }) => (\n <>\n \n {status === 'subscribed' && subscriptionId && (\n \n \n