{"version":3,"sources":["../../components/components/widgets/WidgetTightRadioButtonGroup.module.sass","../../components/components/text/Caption.module.sass","../../components/components/form/GroupFormLayout.module.sass","../../components/components/tip/OfferTip.module.sass","../../components/components/checkbox/AcceptCGA.module.sass","../../components/components/widgets/WidgetRadioButtonGroup.module.sass","../../components/components/buttons/AppleLogin.module.sass","../../components/components/widgets/WidgetSelectGroup.module.sass","../../components/components/navigationBar/NavigationBottomBar.module.sass","../../components/components/checkbox/OfferCheckBox.module.sass","../../components/components/arrowAnchor/arrowAnchor.module.sass","../../components/components/widgets/WidgetSelect.module.sass","../../components/components/fieldContainer/OfferFieldContainer.module.sass","../../components/components/text/BigTitle.module.sass","../../components/components/table/Table.module.sass","../../components/components/widgets/WidgetButton.module.sass","../../components/components/widgets/WidgetTightButton.module.sass","../../components/components/widgets/WidgetOfferRadio.module.sass","../../components/components/widgets/WidgetTightOfferRadio.module.sass","../../components/components/radio/RadioGroup.module.sass","../../components/components/radio/WidgetTightRadioGroup.module.sass","../../components/components/text/ButtonText.module.sass","../../components/components/text/Title.module.sass","../../components/components/form/TitleSelect.module.sass","../../components/components/form/LangSelect.module.sass","../../components/components/grid/FlexibleGrid.module.sass","../../components/components/radio/PetRadio.module.sass","../../components/components/checkbox/AcceptCGU.module.sass","../../components/components/buttons/SocialButton.module.sass","views/calculator/steps/InsuranceStep.module.sass","../../lang/lang/fr/common.js","../../lang/lang/fr/animal.js","../../lang/lang/fr/assistance.js","../../lang/lang/fr/menu.js","../../lang/lang/fr/messages.js","../../lang/lang/fr/personnal.js","../../lang/lang/fr/delivery.js","../../lang/lang/fr/order.js","../../lang/lang/fr/invoices.js","../../lang/lang/fr/user.js","../../lang/lang/fr/auth.js","../../lang/lang/fr/insurance.js","../../lang/lang/fr/urls.js","../../lang/lang/fr/calculator.js","../../lang/lang/fr/offer.js","../../lang/lang/fr/prestations.js","../../lang/lang/fr/redirections.js","../../lang/lang/fr/breeder.js","../../lang/lang/de/common.js","../../lang/lang/de/animal.js","../../lang/lang/de/assistance.js","../../lang/lang/de/menu.js","../../lang/lang/de/messages.js","../../components/components/widgets/WidgetFormField.module.sass","../../lang/lang/de/personnal.js","../../lang/lang/de/delivery.js","../../lang/lang/de/order.js","../../lang/lang/de/invoices.js","../../lang/lang/de/user.js","../../lang/lang/de/auth.js","../../lang/lang/de/insurance.js","../../lang/lang/de/urls.js","../../lang/lang/de/calculator.js","../../lang/lang/de/offer.js","../../components/components/widgets/WidgetTightFormField.module.sass","../../lang/lang/de/prestations.js","../../lang/lang/de/redirections.js","../../lang/lang/de/breeder.js","../../lang/lang/it/common.js","../../lang/lang/it/animal.js","../../lang/lang/it/assistance.js","../../lang/lang/it/menu.js","../../lang/lang/it/messages.js","../../lang/lang/it/personnal.js","../../lang/lang/it/delivery.js","../../lang/lang/it/order.js","../../lang/lang/it/invoices.js","../../lang/lang/it/user.js","../../lang/lang/it/auth.js","../../lang/lang/it/insurance.js","../../lang/lang/it/urls.js","../../lang/lang/it/calculator.js","../../lang/lang/it/offer.js","../../lang/lang/it/prestations.js","../../lang/lang/it/redirections.js","../../lang/lang/it/breeder.js","../../components/components/radio/RadioButton.module.sass","../../components/components/radio/WidgetTightRadioButton.module.sass","../../components/components/fieldContainer/WidgetTightOfferFieldContainer.module.sass","../../components/components/fieldContainer/WidgetOfferFieldContainer.module.sass","../../components/components/buttons/AssistanceButton.module.sass","../../lang/index.js","../../contexts/user/userContext.js","../../contexts/widgets/calculator/calculatorReducer.js","../../contexts/widgets/calculator/calculatorContext.js","../../contexts/gtmEvents/gtmEventsReducer.js","../../contexts/insurance/insuranceReducer.js","../../contexts/gtmEvents/gtmEventsContext.js","../../instances/axios.js","../../actions/actions/form.js","../../actions/actions/utils.js","../../actions/actions/calculatorContext.js","../../assets/img/pressnapf.png","../../assets/svg/hotelcard.svg","../../assets/img/tonivet.svg","../../assets/svg/tractive-logo.svg","../../assets/img/nab-logo.png","../../assets/img/hotelcard-logo.png","../../models/models/order.js","../../models/models/document.js","../../models/models/user.js","../../models/models/claim.js","../../services/functions/createOffer.js","../../validators/widgets/calculator/calculatorSchema.js","../../validators/address.js","../../validators/animalCreation.js","../../validators/widgets/calculator/animalStep.js","../../validators/widgets/calculator/insuranceStep.js","../../validators/widgets/calculator/clientStep.js","../../validators/offer/offerSchema.js","../../validators/offer/offlineOfferSchema.js","../../validators/insurance/ownerSchema.js","../../validators/insurance/addressSchema.js","../../validators/insurance/bankDetailsSchema.js","../../validators/petEdit/petSchema.js","../../validators/petEdit/petAboGourmandSchema.js","../../validators/breeder/personalDataSchema.js","../../actions/actions/calculator.js","../../validators/breeder/newCertificateSchema.js","../../actions/actions/gaData.js","../../actions/actions/offerContext.js","../../components/components/text/Caption.js","../../components/components/radio/radioMulti.js","../../icons/src/dog.js","../../icons/src/cat.js","../../icons/src/chevron.js","../../icons/src/Logo.js","../../icons/src/circle-info.js","../../assets/svg/download-appstore-fr.svg","../../assets/svg/download-appstore-de.svg","../../assets/svg/download-appstore-it.svg","../../assets/img/download-googleplay-fr.png","../../assets/img/download-googleplay-de.png","../../assets/img/download-googleplay-it.png","../../components/components/auth/edit.js","../../components/components/auth/authScreen.js","../../components/theme.js","../../components/components/tags/icons/apple-touch-icon-114x114.png","../../components/components/tags/icons/apple-touch-icon-144x144.png","../../components/components/tags/icons/apple-touch-icon-152x152.png","../../components/components/tags/icons/apple-touch-icon-180x180.png","../../components/components/tags/icons/index.js","../../components/components/tags/icons/apple-touch-icon.svg","../../components/components/tags/icons/apple-touch-icon.png","../../components/components/tags/icons/apple-touch-icon-57x57.png","../../components/components/tags/icons/apple-touch-icon-72x72.png","../../components/components/tags/icons/apple-touch-icon-76x76.png","../../components/components/tags/icons/apple-touch-icon-120x120.png","../../components/components/tags/index.js","../../components/components/header/langMenu.js","../../components/components/header/menu.js","../../components/components/pageHeader/PageHeader.js","../../components/components/pageBody/PageBody.js","../../components/components/radioDetail/radioDetail.js","../../components/components/formField/FormField.js","../../components/components/arrowAnchor/arrowAnchor.js","../../components/components/page/Page.js","../../layers/deleteOrderLayer.js","../../components/components/radio/WidgetTightRadioButton.js","../../components/components/widgets/WidgetTightButton.js","../../components/components/widgets/WidgetTightFormField.js","../../components/components/widgets/WidgetTightOfferRadio.js","../../components/components/widgets/WidgetTightRadioButtonGroup.js","../../components/components/fieldContainer/WidgetTightOfferFieldContainer.js","../../components/components/radio/WidgetTightRadioGroup.js","../../components/components/form/WidgetTightAddressSingle.js","../../components/components/tip/OfferTip.js","../../components/components/text/Title.js","../../components/components/back/WidgetTightBackLink.js","../../components/components/form/TitleSelect.js","../../components/components/form/LangSelect.js","../../components/components/grid/WidgetTightFlexibleGrid.js","../../components/components/widgets/WidgetSelectGroup.js","views/calculator/steps/AnimalStep.js","../../assets/img/banner_img.png","views/calculator/steps/ClientStep.js","views/calculator/stepper/StepModel.js","views/calculator/stepper/StepperNavigation.js","views/calculator/stepper/Stepper.js","views/calculator/steps/RaceStep.js","views/calculator/steps/InsuranceStep.js","views/calculator/steps/OfferSent.js","views/calculator/CalculatorView.js","i18n.js","App.js","index.js","../../icons/src/conclusion-icon.module.sass","../../components/components/buttons/FressnapfDownloadButton.module.sass","../../components/components/AsideStepsSummary.module.sass","../../components/components/header/UserMenu.module.sass","../../components/components/banner/ConcludedOfferBanner.module.sass"],"names":["module","exports","or","add","save","send","edit","delete","previous","next","iAcceptCGU","CGV","CGU","privacy_policy","missingData","readmore","yes","no","close","back","backToAnimals","draft","calculating","allfeesincluded","finished","printOrder","deliveries","plannedDeliveries","previousDeliveries","batchID","status","verify","year","month","day","months","immediately","informations","aboGourmand","theAboGourmand","theInsurance","administrative","missingAddress","missingAddressFor","missingCard","fix","cancel","confirm","fillIn","wantToKnowMore","moreDetails","date","service","noResults","required","your_comment","cardIsFailing","twintAccount","powerpayAccount","oldbrowser","title","text","button","weDidNotReceiveYourPayment","contactUs","powerpay","subtitle","other","btnAdd","yourPets","yourPetServices","yourPetAbogourmand","yourPetAssistance","animal","cat","dog","size","gender","female","male","animalTitle","animalEditTitle","animalDescription","passportTitle","passportDescription","itsName","noNameYet","bornOn","birthdate","breed","breedDescription","weight","catofbreed","dogofbreed","kgWeight","kgWeightMaxError","adultWeightTitle","adultWeightDescription","chooseBreed","dogBastard","catBastard","activityTitle","activityDescription","activityLevel","passive","passiveDescription","normal","normalDescription","active","activeDescription","sterilizedTitle","sterilizedDescription","sterilizedYes","sterilized","nonSterilized","foodTypeStepTitle","foodTypeTitle","foodTypeDescription","standard","standardHelp","sensitive","sensitiveHelp","grainfree","grainfreeHelp","productStepTitle","productTitle","productDescription","adjustQuantityStepTitle","adjustQuantityTitle","adjustQuantityDescription","adjust80Comment","adjust90Comment","adjust100Comment","adjust110Comment","adjust120Comment","summaryTitle","monthlyPrice","upTo4kg","between4and6kg","between6and8kg","from8kg","nextDeliveryDate","nextDeliveryOn","deliveryFrequency","deliveredEachXDays","deleteOrderFor","product","dailyQuantity","order","backToMyPets","deletePet","byDeletingPetItWillCancelLinkedServices","reasonOfDeletion","myPetIsDead","notInterrestedAnymore","thisPetCantBeDeleted","reasonAbo","reasonAssurance","itsAbo","calculate","calculateAgain","petDataHasChanged","seeOrderDetails","seeInsuranceSettings","hasNoAccount","hasNoInsurance","itsInsurance","policeNumber","petDataHasChangedExtended","receiveOffer","askForEstimate","calculator","hasNoOrder","adjustOrder","petHasRemainingDeliveries","newAbo","temporaryDisabled","petRaceSearchPlaceholder","noInsurance","noAssistance","noAssistanceSubtitle","cga","contractStartDate","contractEndDate","callHelpLine","declareSinister","deleteAssistance","moreInformations","createAssistance","policy","moreInformationsLink","createAssistanceLink","deleteAssistanceLink","callHelpLineLink","declareSinisterLink","myPets","myProfile","logout","error","warning","apiError","fieldValidationError","petNotFound","petsNotFound","insuranceNumberDelete","content","card","cancelled","latePayment","quitWarning","description","continue","deliveryAddress","billingAddress","defineNewAddress","addNewCard","addNewTwint","addNewPowerPay","paymentMethod","firstname","lastname","line1","line2","zipcode","city","state","country","thisIsThesePetsHouse","dateRecurring","dateSelector","address","editDeliveryDateFor","adjustAllDates","adjustOneDate","adjustAllAddresses","adjustOneAddress","pending","planned","failed","refunded","standby","editLater","paymentMessage","firstDeliveryDate","lastDelivery","selectLastDelivery","validateDate","deleteOrder","couponCodeLabel","couponCodePlaceholder","invalidCoupon","editOrder","showAllProducts","showRecommandedProducts","notRecommendedTooltip","confirmModification","couponDetailsUnlimited","couponDetails","priceWithoutDiscount","payAmount","pleaseAcceptTerms","pleaseChooseADeliveryDate","pricePerMonth","price","totalPricePerMonth","discount","thankyou","subText","mfgroupErrorUnavailable","addPaymentMethodError","noInvoices","noInvoicesDescription","refno","total","paymentModal","successTitle","successMessage","failureTitle","failureMessage","payNow","closeFaildModal","payementMethod","completed","myAccount","editMyProfile","firstName","lastName","firstAndLastName","email","phone","home_phone","mobile_phone","subscribeToMailchimp","subscribeToMailchimpInfo","mrs","mr","locale","seeMyPets","myInsurance","sendInvoice","editInsurance","myAboGourmand","editMyAboGourmand","editMyData","myInvoices","myInvoicesText","myCards","myCardsText","myAddresses","myAddressesText","modalEditMyAddressTitle","BACK_TO_SIGN_IN","CHANGE_PASSWORD","CHANGE_PASSWORD_ACTION","CODE_LABEL","CODE_PLACEHOLDER","CONFIRM","CONFIRM_SIGN_UP_CODE_LABEL","CONFIRM_SIGN_UP_CODE_PLACEHOLDER","CONFIRM_SIGN_UP_HEADER_TEXT","CONFIRM_SIGN_UP_LOST_CODE","CONFIRM_SIGN_UP_RESEND_CODE","CONFIRM_SIGN_UP_SUBMIT_BUTTON_TEXT","CONFIRM_SMS_CODE","CONFIRM_TOTP_CODE","CREATE_ACCOUNT_TEXT","EMAIL_LABEL","EMAIL_PLACEHOLDER","EMAIL_ERROR","FORGOT_PASSWORD_TEXT","LESS_THAN_TWO_MFA_VALUES_MESSAGE","NEW_PASSWORD_LABEL","NEW_PASSWORD_PLACEHOLDER","NO_ACCOUNT_TEXT","PASSWORD_LABEL","PASSWORD_PLACEHOLDER","PHONE_LABEL","PHONE_PLACEHOLDER","QR_CODE_ALT","RESET_PASSWORD_TEXT","RESET_YOUR_PASSWORD","SELECT_MFA_TYPE_HEADER_TEXT","SELECT_MFA_TYPE_SUBMIT_BUTTON_TEXT","SEND_CODE","SETUP_TOTP_REQUIRED","SSIGN_UP_HEADER_TEXTIGN_IN_ACTION","SIGN_IN_HEADER_TEXT","SIGN_IN_TEXT","SIGN_IN_WITH_AMAZON","SIGN_IN_WITH_AUTH0","SIGN_IN_WITH_AWS","SIGN_IN_WITH_FACEBOOK","SIGN_IN_WITH_GOOGLE","SIGN_OUT","SIGN_UP_EMAIL_PLACEHOLDER","SIGN_UP_HAVE_ACCOUNT_TEXT","SIGN_UP_HEADER_TEXT","SIGN_UP_PASSWORD_PLACEHOLDER","SIGN_UP_SUBMIT_BUTTON_TEXT","SIGN_UP_ALREADY_BUTTON_TEXT","SIGN_UP_USERNAME_PLACEHOLDER","SUCCESS_MFA_TYPE","TOTP_HEADER_TEXT","TOTP_LABEL","TOTP_SETUP_FAILURE","TOTP_SUBMIT_BUTTON_TEXT","TOTP_SUCCESS_MESSAGE","UNABLE_TO_SETUP_MFA_AT_THIS_TIME","USERNAME_LABEL","USERNAME_PLACEHOLDER","VERIFY_CONTACT_EMAIL_LABEL","VERIFY_CONTACT_HEADER_TEXT","VERIFY_CONTACT_PHONE_LABEL","VERIFY_CONTACT_SUBMIT_LABEL","VERIFY_CONTACT_VERIFY_LABEL","PASSWORD_HELP","checkFormat","checkFormatPhone","personnalInfo","connectWithGoogle","signinWithGoogle","connectWithFacebook","signinWithFacebook","connectWithApple","signinWithApple","AliasExistsException","errorEmailAlreadyExists","Userdoesnotexist","Incorrectusernameorpassword","Usernameclientidcombinationnotfound","Invalidverificationcodeprovidedpleasetryagain","Anaccountwiththegivenemailalreadyexists","Invalidemailaddressformat","Cannotresetpasswordfortheuserasthereisnoregisteredverifiedemailorphonenumber","verificationSentTitle","verificationSentAgain","uneditableBecauseLinkedToYourSocialAccount","uneditableBecauseLinkedToYourSocialAccountAlt","conclusionTitle","conclusionMsg","deleteNumber","changeBankData","changeAddress","changeOwner","noContractNumberSubtext","ContractNumberSubtext","not_complete","waiting","addContractNumber","addContractNumberDescription","addContractNumberPopupTitle","addContractNumberFieldLabel","contractNotFound","petNameMismatch","contractUpdated","apiConnectionError","unauthorized","serverError","undefined","checkPolicyNumber","comment","addInvoice","addInvoiceButton","addDocumentButton","addClaimButton","petFiles","invoicedOn","xInvoices","xInvoices_plural","steps","disaster","medicalFile","invoice","types","vaccine","health","accident","external","illnessTip","intro","new","existing","type","description2","illness","info","disasters","noDisasters","shortDescription","existingDisasterTitle","diagnosticAccident","diagnostic","diagnosticIllness","symptomsOptionnal","symptoms","illnessStartLabel","hour","interval","exact_time","in_hour","between_1_4","between_4_6","in_day","in_week","dateTip","illnessTreatment","treatment","howAccidentHappened","howItHappened","anyThirdParty","known","unknown","none","knownTip","unknownTip","noneTip","thirdParty","street","number","zip","comments","summary","cguAdditional","cgu","label","diagnosis","occurred_at","claim_year","sequence","third_party","third_party_status","addLater","alreadyDone","confirmImage","addImage","browse","dropFile","maxPDF","cantAddImageWhenThereAreAlreadyAPdf","cantAddPDFWhenThereAreAlreadyImages","maxSizePDF","check","rotate","fileFormatNotSupported","titleField","files","label_medicalFile","invoices","invoiceTitle","useExisting","later","details","invoiceSubject","many_pets","many_disasters","vaccine_too","instruction","amount","involves_multiple_pets","involves_multiple_claims","involves_a_vaccine","billing_years","confirmation","delay","delayTip","delayNotice","pleaseRepeat","newInvoiceForThisPet","newInvoiceForAnotherPet","medicalFilesForThisPet","otherActions","sameInvoiceForAnotherPet","sameInvoiceForAnotherDisaster","otherpets","documents","tip","help","medicalFilesAreBeingProcessedTitle","medicalFilesAreBeingProcessedDescription","filesAreBeingProcessedTitle","filesAreBeingProcessedDescription","sinisters","medicalFiles","noDocuments","addMedicalFiles","seeMedicalFiles","xImages","xImages_plural","vaccines","claimDocument","estimated_processing_time","asideSummary","deleteModal","actionYes","actionNo","my_details_change","change_address_for","change_for_all","change_for_pet","owner","owner_change","owner_needed_details","contact_new_owner","transfer_pet","transferred_at","keep_insurance","bank_details","my_bank_details_change","my_bank_details_description","privacyPolicy","cgv","insurance","changeBank","sinister","contact","calculatorTitle","calculatorDescription","petSpecies","petAgeCategory","ageCategory","offerSent","conditions","thanks","offer_in_mailbox","plus_8_warning","yearsRange","u2","u4","u6","u8","u10","u12","o13","race","suptitle","pet_mixed","pet_breed","pet_unknown","breed_2","navigation","goToInsuranceStep","submitFromInsuranceStep","sendOfferByEmail","prev","ok","seeOffer","user","petName","emailAddress","phoneNumber","offer_conclusion_1","offer_conclusion_2","pet","add_pet","add_pet_caption","species","select_pet","select_pet_description","portrait","portrait_caption","name","name_long","birthdate_tip","is_pure_breed","pet_not_breed","fill_two_races","fill_race","first_race","second_race","which_pet_weight","chipped","chip_number","pet_age_calcul_info","protection","protection_type","classic_condensed","comfort_condensed","compact_condensed","compact","compact_description","classic","classic_description","comfort","comfort_description","select_protection","franchise","payment","select_payment","annual","annual_cost","biannual","monthly","monthly_cost","monthly_cost_info","monthly_cost_tip","quarterly","enters_in_force_at","agent_code","agency_tip","agency","my_details","needed_details","new_address","plan_not_available","are_you_pet_keeper","im_keeper","im_not_keeper","refund_account","no_iban","bank_name","bic","keeper_address","line","line_2","zip_code","conclude","insurance_of","insurance_owner","complete_profile","offer_page_description","concluded_description","offer_already_concluded","offer_concluded_line","offer_concluded_line_2","offer_concluded_line_3","offer_banner_cta","offer_fressnapf","assistance","assistance_btn","assistance_link","assistance_title","assistance_desc","assistance_desc_sale","offer_shop","offer_fressnapf_url","offer_shop_url","tonivet_label","tonivet_link","cga_1","cga_2","breed_tip","bastard_tip","unknown_tip","federal_timber_of","surprime","annual_cost_basic","client","fill_offer","login_title","login_description","login_yes","login_no","save_success","num","api_found","api_not_found","start_date","end_date","cga_min","maintenance_title","maintenance_description","maintenance_button","discount_hotelcard_link","discount_hotelcard_label","discount_nab_title","discount_nab_description","discount_nab_code","discount_nab_cta_label","discount_nab_link","discount_hc_title","discount_hc_description","discount_hc_cta_label","discount_hc_link","discount_tractive_title","discount_tractive_description","discount_tractive_code","discount_tractive_cta_label","general","no_special_char","max_128","invalid_date","min_18","pet_species_required","pet_gender_required","pet_name_required","pet_birthdate_required","pet_is_purebred_required","pet_two_races_known_required","pet_animal_id_required","pet_weight_required","pet_weight_number_required","insurance_franchise_required","insurance_type_required","insurance_payment_frequency_required","insurance_enters_in_force_at_required","title_required","first_name_required","last_name_required","line_required","__code_required","city_required","birthdate_required","holder_phone_required","bank_not_found","iban_required","iban_invalid","bank_name_required","bic_required","bank_address_required","bank___code_required","bank_city_required","max_char_4","email_required","email_invalid","more_char","firstname_error","lastname_error","uppercase","all_uppercase","wrong_iban","zip_code_required","only_one_uppercase","no_special_case","submit_offer","send_offer_by_email","holder","pet_type","age_category","quote_part","quote_part_tip","quote_part_value","franchise_title","insurance_prime","tooltip_compact_fix","prestations","prestations_tip","medical_cost_coverage","medical_cost_coverage_value","prevention_cost","prevention_cost_tip","prevention_cost_value","alt_medicinal","alt_medicinal_value","housing_cost","housing_cost_value","investment_cost","investment_cost_value","freight_cost","freight_cost_value","waiting_period","accident_value","illness_value","compact_title_description","classic_title_description","comfort_title_description","description_classic","description_comfort","description_compact","conditions_title","conditions_description","conditions_url","conditions_info","law_application","offer_validity","offer_validity_description","go_further","print","federal_timber","federal_timber_tip","myaccount","cta","breederSpace","login","createBreederAccount","personal_data","breeder_infos","social_reason","social_reason_label","races","breeding","tel","message","send_request","askSent","askSentMessage","backToHome","declined","askDeclined","askDeclinedMessage","dashboard","myBreederSpace","myCoordinates","myAttestations","conventionNumber","howToEdit","attestationNumber","insuranceDate","attestation","declareNewPet","howEditCertificate","doWantEditACertificate","editCertificateInformations","doWantEditInformations","editInformations","certificates","myClient","theyPet","communicationLanguage","exitDate","createCertificate","cga1","cga2","created","createdMessage","backToBreederSpace","petNameAlreadyExist","petBirthdateTooOldMax120Days","petExitDateMax120DaysBirthdate","petBirthdateMin6Months","petExitDateMax56DaysBirthdate","petExitDateMax180DaysBirthdate","petNameTip","SIGN_IN_ACTION","are_two_races_known","assistance_url","bank_zip_code_required","Cereali","health_title_description","confort_title_description","fr","common","require","menu","personnal","delivery","auth","urls","offer","redirections","breeder","de","it","UserContext","createContext","initialState","form","step","holder_title","holder_email","holder_first_name","holder_last_name","holder_phone","holder_city","holder_zip_code","insurance_type","insurance_month_cost","insurance_franchise","pet_species","pet_age_category","pet_name","pet_animal_id","pet_animal_id_2","email_offer","selectedInsuranceValues","reducer","action","data","codeAgent","slice","promo_code","promo","pet_id","petId","Error","CalculatorContext","CalculatorContextProvider","children","useReducer","dispatch","contextValue","useMemo","Provider","value","address_id","first_name","last_name","post_address_strid","post_address_house_key","loginChecked","fullPageViewChecked","GtmEventsContext","GtmEventsContextProvider","gtmEvents","axiosInstance","axios","defaults","baseURL","process","headers","post","cleanEmptyValuesBeforeSubmit","Object","entries","forEach","key","ibanValidation","Promise","resolve","a","query","replace","get","response","matchKey","parseValuesInt","item","parseInt","generateNamesObject","names","prefix","object","hideOfferScreens","moment","isSame","isBetween","setActiveStep","setInsuranceValues","setEmailOffer","Order","TYPE_BILL","TYPE_MEDICAL_RECORD","yup","shape","oneOf","integer","min","of","claims","User","TYPE_ACCIDENT","TYPE_HEALTH","TYPE_VACCINE","THIRD_PARTY_STATUS_KNOWN","THIRD_PARTY_STATUS_UNKNOWN","THIRD_PARTY_STATUS_NONE","thirdPartyShape","nullable","basicClaimShape","is_external","Claim","createOffer","language","newStep","stepToSend","formValue","pet_gender","pet_birthdate","pet_animal_type","animal_type","animal_id","pet_other_race","other_race","animal_id_2","pet_other_race_2","other_race_2","pet_weight","attributes","holder_mobile_phone","lang","quote","qid","calculatorSchema","matches","when","is","then","otherwise","positive","max","activity","options","percentageQuantity","insurance_payment_frequency","insurance_enters_in_force_at","Date","holder_id","test","val","length","default","ifNullThen","schema","phoneRegExp","typeError","transform","insurance_cost","agency_code","holder_address_id","holder_post_address_id","holder_post_address_house_key","holder_post_address_strid","holder_line","holder_line_2","holder_country","holder_birthdate","differenceInYears","holder_nationality","holder_iban","holder_bank_id","holder_bank_name","holder_bank_zip_code","holder_bank_city","validate","holder_is_vaudoise_customer","holder_is_pet_keeper","setHours","other_concerned_pets","addressee","addressId","field","update_delivery_addresses_for","valid_form","iban","bank_id","bank_zip_code","bank_city","acceptcgu","breeding_type","breeds","street_number","prevStep","breed_id","owner_email","owner_birthdate","owner_title","owner_first_name","owner_last_name","owner_street","owner_street_number","owner_zip_code","owner_city","owner_country","owner_post_address_strid","owner_post_address_house_key","find","certificate","subtract","toDate","pet_exit_date","activeStep","isFirst","activeStepIndex","findIndex","ref","prevStepRef","insuranceStep","getInsuranceValues","filteredInsuranceValues","insuranceValues","filter","clientStep","raceStep","submitForm","closeModalAndGoTo","goToOfferSent","setIsLoading","setOfferQuid","quid","window","location","parent","href","getAgeCategoryLabel","gaData","slug","id","formName","getGaDataId","i","getGaDataName","getGaDataFormName","getGaDataPetAgeWidget","getGaDataPetAge","ages","age","diff","getGaDataFranchise","findAndSetAgeRange","insuranceStart","birthday","birthYear","getTime","getUTCFullYear","insStart","calculateAge","setDate","setAddressFromAPI","STRID","toString","HouseKey","StreetName","HouseNo","HouseNoAddition","ZipCode","TownName","CountryCode","setAddressFromRegistredAddress","setUserId","getErrors","validator","fields","all","map","validateAt","errors","Caption","html","bold","align","faded","classes","styles","container","style","textAlign","className","classNames","dangerouslySetInnerHTML","__html","styled","input","props","hasDescription","iconSmall","div","iconMargin","width","height","viewBox","fill","xmlns","d","stroke","strokeMiterlimit","x1","y1","x2","y2","color","strokeWidth","strokeLinecap","strokeLinejoin","accent","logocolor","theme","global","colors","background","logoaccent","display","TextInput","deepMerge","grommet","font","focus","border","brand","brandLight","brandDark","dark","light","abo","errorLight","sizes","xmedium","heading","level","small","maxWidth","medium","large","xlarge","anchor","textDecoration","padding","vertical","horizontal","radius","primary","extend","select","icons","formField","accordion","margin","checkBox","radioButton","icon","maskIcon","img","appleTouchIcons","ATI114","ATI144","ATI152","ATI180","MetaProvider","index","rel","src","charset","withTranslation","currentLanguage","i18next","substr","useContext","indexOf","changeLanguage","Menu","a11yTitle","dropAlign","top","right","Text","lineHeight","toUpperCase","items","onClick","l","Anchor","Box","h1","center","hasDetail","GrommetFormField","ArrowAnchor","absolute","pin","rest","reverse","bottom","WidgetTightRadioButton","translatedLabel","onChange","checked","flex","left","loading","clickable","marginBottom","t","useTranslation","useState","readOnly","htmlFor","labelWithCheck","marginLeft","plain","place","WidgetTightButton","isLoading","fixedWidth","disabled","buttonStyle","Button","Spinner","animation","variant","WidgetTightFormField","stretch","centered","hasComponent","horizontalFill","RightIcon","statementColor","setStatementColor","getError","path","containerClasses","cls","hFill","getClasses","useEffect","WidgetTightOfferRadio","option","intPrice","fromCents","price_per_month","labels","priceString","currency","symbol","separator","decimal","format","radioContent","not_available","valueKeyInitialConfig","reduce","WidgetTightRadioButtonGroup","valueKey","grid","double","mobileDirection","gridDouble","valueKeyConfig","gridColumn","gridDoubleMobile","Boolean","RadioButtonGroup","gap","WidgetTightOfferFieldContainer","backText","noBack","logo","noMargins","childrenWrapper","Logo","titles","fontSize","WidgetTightRadioGroup","hasLink","link","labelLink","open","addressSpliter","string","includes","split","sort","b","match","WidgetTightAddressSingle","prefixName","exclude","suggestionsRequest","setOpenForm","isRegistred","langSelect","concluded","useRef","i18n","setLine1","addressInfo","preventSuggestionOpening","setPreventSuggestionOpening","suggestions","setSuggestions","isAddressLoading","setIsAddressLoading","locales","allow","setBirthdate","onAddressSelect","suggestion","setRegistredAddress","attr","given_name","family_name","console","log","searchString","reqObject","ONRP","ZipAddition","JSON","stringify","addressesFound","body","QueryAutoComplete3Result","AutoCompleteResult","houseNo","filteredAddressesFound","current","col","autocomplete","target","onSuggestionSelect","selected","dateISO","dateString","dateFormatCalendar","showMonthDropdown","showYearDropdown","dropdownMode","maxDate","scrollableYearDropdown","dateFormat","OfferTip","justify","tooltip","effect","Title","WidgetTightBackLink","to","askForConfirmation","destinationLabel","history","useHistory","hoverIndicator","direction","minHeight","pad","Grid","Trans","push","pathname","from","TitleSelect","Select","labelKey","LangSelect","WidgetTightFlexibleGrid","columns","array","columnsConfig","row","column","WidgetSelectGroup","big","AnimalStep","goToNextStep","over8","petAgeCalculInfo","isOver8","yearsRangeOptions","contentProps","component","ClientStep","goToPrevStep","premiums","setPremiums","setLoading","widgetFromMyaccount","nextStep","editForm","deductible","franchises","premium","self","v","matchingPremium","Intl","NumberFormat","maximumSignificantDigits","monthly_premium","net_amount","Math","round","substring","pet_breeds","annual_premium","total_amount","justifyContent","paddingTop","StepModel","Component","reference","goToFirstStep","offerQuid","StepperNavigation","setRaces","search","setSearch","search2","setSearch2","zipCodes","setZipCodes","zipcodeValue","setZipcodeValue","breedTypeOptions","filteredOptions","elements","toLowerCase","onZipCodeChange","event","citiesFound","pos","animals","localeCompare","searchPlaceholder","onSearch","onZipCodeSuggestionSelect","useLocation","i18nKey","values","dataLayer","page_title","document","page_location","page_referrer","page_language","logged_in","form_name","step_id","step_name","type_of_pet","age_of_pet","first_prime","insurance_coverage","alignContent","Stepper","agentCode","agentCodeUrl","URLSearchParams","formRef","gaCheckedRef","setError","onSubmitForm","flatMap","referrer","loggedin","datalayer","prefillCalculatorForm","form_error","disaster_type","marginTop","marginRight","position","Form","updateForm","onSubmit","CalculatorView","useParams","viewState","setViewState","params","setCodeAgentAndPetId","hasCodeAgent","use","detector","initReactI18next","init","resources","translation","fallbackLng","interpolation","escapeValue","detection","lookupQuerystring","caches","cookieDomain","App","base","tagManagerArgs","gtmId","TagManager","initialize","Grommet","I18n","putVocabularies","ReactDOM","render","StrictMode","getElementById"],"mappings":"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BAAqB,iCACrBC,QAAS,mBACTC,oBACE,gEACFC,QAAS,mBACTC,oBACE,uFACFE,UAAW,aACX1E,UAAW,gBACX2E,QAAS,YACTC,eAAgB,GAChBC,OAAQ,UACRC,YAAa,sBACbC,SAAU,aACVzmB,MAAO,OACP0mB,QAAS,aACTC,aAAc,4BACdC,kBAAmB,4BACnBC,iBAAkB,GAClBC,UAAW,cACXC,mBAAoB,uBACpBC,WAAY,gBACZE,OAAQ,sBACRD,WACE,sFACFE,WAAY,aACZC,eAAgB,GAChBC,YAAa,0BACbC,mBACE,8DACFC,mBACE,iGACFC,UAAW,sCACXC,cAAe,6DACfC,eAAgB,uBAChBC,QAAS,OACTC,UAAW,mBACXC,IAAK,GACLE,KAAM,YACNC,OAAQ,qBACRC,SAAU,MACVlc,KAAM,cACNmc,SAAU,iCACVC,aAAc,0BACdC,gBAAiB,sBACjBC,iBAAkB,yBAClBC,uBAAwB,yCACxBC,sBAAuB,wCACvBC,wBACE,kFACFC,qBACE,sHACFC,uBACE,sMACFC,uBACE,4KACFC,iBAAkB,sCAClBC,gBAAiB,2BACjBO,WAAY,gCACZN,WAAY,kBACZK,qBACE,+LACFJ,eAAgB,6BAChBC,gBAAiB,uDACjBK,oBACE,+IACFC,eACE,wHACF6L,eAAgB,iDAChB5L,cAAe,sDACfC,aACE,0EACFN,gBACE,kbACF9f,IACE,gTACFqgB,MACE,4IACFC,MACE,sSACFC,UAAW,qCACXC,YAAa,uCACbC,YACE,+EACFC,kBAAmB,uBACnBC,SAAU,0BACVC,kBAAmB,eACnB3S,aAAc,+BACdC,QACE,sIACF4S,WAAY,uCACZC,YAAa,uCACbC,kBACE,mTACFC,UAAW,oCACXC,SAAU,qCACVC,aACE,kHACFC,IAAK,MACLC,UAAW,4CACXC,cACE,2GACFC,WAAY,uBACZC,SAAU,sDACVC,QAAS,MACTC,kBAAmB,eACnBC,wBACE,wQACFC,mBAAoB,sBACpBC,wBAAyB,uCACzBC,yBAA0B,yCAC1BC,mBAAoB,2CACpBC,yBAA0B,8FAC1BC,kBAAmB,iCACnBC,uBAAwB,4BACxBC,kBAAmB,6EACnBC,k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KAAM,iBACNjsB,MAAO,CACL,CACEksB,GAAI,QACJD,KAAM,SACNlgB,KAAM,6BAER,CACEmgB,GAAI,QACJD,KAAM,WACNlgB,KAAM,kCAER,CACEmgB,GAAI,QACJD,KAAM,eACNlgB,KAAM,0BAIZ,CACEA,KAAM,gBACNkgB,KAAM,WACNjsB,MAAO,CACL,CACEksB,GAAI,QACJD,KAAM,gBACNlgB,KAAM,oBAER,CACEmgB,GAAI,MACJD,KAAM,OACNlgB,KAAM,iBAER,CACEmgB,GAAI,MACJD,KAAM,iBACNlgB,KAAM,kBAER,CACEmgB,GAAI,MACJD,KAAM,qBACNlgB,KAAM,sBAER,CACEmgB,GAAI,MACJD,KAAM,qBACNlgB,KAAM,sBAER,CACEmgB,GAAI,MACJD,KAAM,gBACNlgB,KAAM,iBAER,CACEmgB,GAAI,MACJD,KAAM,wBACNlgB,KAAM,kBAER,CACEmgB,GAAI,MACJD,KAAM,kBACNlgB,KAAM,wBAER,CACEmgB,GAAI,QACJD,KAAM,yBACNlgB,KAAM,6BAER,CACEmgB,GAAI,QACJD,KAAM,uBACNlgB,KAAM,qBAER,CACEmgB,GAAI,QACJD,KAAM,UACNlgB,KAAM,oBAER,CACEmgB,GAAI,MACJD,KAAM,QACNlgB,KAAM,gBACNogB,SAAU,4BAEZ,CACED,GAAI,SACJD,KAAM,YACNlgB,KAAM,cAER,CACEmgB,GAAI,QACJngB,KAAM,oBACNkgB,KAAM,oBACNE,SAAU,kDAIhB,CACEpgB,KAAM,eACNkgB,KAAM,UACNjsB,MAAO,CACL,CACEksB,GAAI,QACJD,KAAM,gBACNlgB,KAAM,oBAER,CACEmgB,GAAI,QACJD,KAAM,OACNlgB,KAAM,iBAER,CACEmgB,GAAI,QACJD,KAAM,iBACNlgB,KAAM,kBAER,CACEmgB,GAAI,QACJD,KAAM,mBACNlgB,KAAM,oBAER,CACEmgB,GAAI,QACJD,KAAM,mBACNlgB,KAAM,oBAER,CACEmgB,GAAI,QACJD,KAAM,uBACNlgB,KAAM,yBAER,CACEmgB,GAAI,QACJD,KAAM,UACNlgB,KAAM,wBAER,CACEmgB,GAAI,QACJD,KAAM,QACNlgB,KAAM,oBAER,CACEmgB,GAAI,QACJD,KAAM,YACNlgB,KAAM,gBAIZ,CACEA,KAAM,2BACNkgB,KAAM,2BACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,mBACNkgB,KAAM,iBAER,CACEC,GAAI,QACJngB,KAAM,gBACNkgB,KAAM,SAER,CACEC,GAAI,QACJngB,KAAM,gBACNkgB,KAAM,oBAIZ,CACElgB,KAAM,kBACNkgB,KAAM,kBACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,iBACNkgB,KAAM,WAER,CACEC,GAAI,QACJngB,KAAM,eACNkgB,KAAM,QAER,CACEC,GAAI,QACJngB,KAAM,kBACNkgB,KAAM,WAER,CACEC,GAAI,QACJngB,KAAM,8BACNkgB,KAAM,kBAIZ,CACElgB,KAAM,gCACNkgB,KAAM,gCACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,mBACNkgB,KAAM,iBAER,CACEC,GAAI,QACJngB,KAAM,gBACNkgB,KAAM,SAER,CACEC,GAAI,QACJngB,KAAM,qBACNkgB,KAAM,qBAER,CACEC,GAAI,QACJngB,KAAM,iCACNkgB,KAAM,WAER,CACEC,GAAI,QACJngB,KAAM,mBACNkgB,KAAM,WAIZ,CACElgB,KAAM,wBACNkgB,KAAM,wBACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,mBACNkgB,KAAM,iBAER,CACEC,GAAI,QACJngB,KAAM,gBACNkgB,KAAM,SAER,CACEC,GAAI,QACJngB,KAAM,oBACNkgB,KAAM,qBAER,CACEC,GAAI,QACJngB,KAAM,2BACNkgB,KAAM,2BAER,CACEC,GAAI,QACJngB,KAAM,wBACNkgB,KAAM,WAIZ,CACElgB,KAAM,6BACNkgB,KAAM,6BACNjsB,MAAO,CACL,CACEksB,GAAI,MACJngB,KAAM,gBACNkgB,KAAM,mBAIZ,CACElgB,KAAM,6BACNkgB,KAAM,6BACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,6BACNkgB,KAAM,YAER,CACEC,GAAI,QACJngB,KAAM,iCACNkgB,KAAM,YAER,CACEC,GAAI,MACJngB,KAAM,gBACNkgB,KAAM,iBAER,CACEC,GAAI,QACJngB,KAAM,6BACNkgB,KAAM,qBAIZ,CACElgB,KAAM,6BACNkgB,KAAM,6BACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,6BACNkgB,KAAM,WAIZ,CACElgB,KAAM,6BACNkgB,KAAM,6BACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,4BACNkgB,KAAM,UAER,CACEC,GAAI,QACJngB,KAAM,iCACNkgB,KAAM,YAER,CACEC,GAAI,QACJngB,KAAM,uBACNkgB,KAAM,kBAIZ,CACElgB,KAAM,gBACNkgB,KAAM,gBACNjsB,MAAO,CACL,CACEksB,GAAI,MACJngB,KAAM,WACNkgB,KAAM,iBAER,CACEC,GAAI,MACJngB,KAAM,iBACNkgB,KAAM,iBAER,CACEC,GAAI,MACJngB,KAAM,gBACNkgB,KAAM,iBAER,CACEC,GAAI,MACJngB,KAAM,gBACNkgB,KAAM,uBAER,CACEC,GAAI,MACJngB,KAAM,6BACNkgB,KAAM,gBAKZ,CACElgB,KAAM,oBACNkgB,KAAM,eACNjsB,MAAO,CACL,CACEksB,GAAI,EACJngB,KAAM,cACNkgB,KAAM,iBAER,CACEC,GAAI,EACJngB,KAAM,iBACNkgB,KAAM,iBAER,CACEC,GAAI,EACJngB,KAAM,cACNkgB,KAAM,uBAER,CACEC,GAAI,EACJngB,KAAM,aACNkgB,KAAM,gBAIZ,CACElgB,KAAM,+BACNkgB,KAAM,0BACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,WACNkgB,KAAM,iBAER,CACEC,GAAI,QACJngB,KAAM,iBACNkgB,KAAM,iBAER,CACEC,GAAI,QACJngB,KAAM,iBACNogB,SAAU,yCACVF,KAAM,gBAIZ,CACElgB,KAAM,gCACNkgB,KAAM,gCACNjsB,MAAO,CACL,CACEksB,GAAI,MACJngB,KAAM,gBACNkgB,KAAM,iBAER,CACEC,GAAI,MACJngB,KAAM,WACNkgB,KAAM,QAER,CACEC,GAAI,MACJngB,KAAM,eACNkgB,KAAM,YAER,CACEC,GAAI,MACJngB,KAAM,WACNkgB,KAAM,SAER,CACEC,GAAI,MACJngB,KAAM,sBACNkgB,KAAM,kBAER,CACEC,GAAI,MACJngB,KAAM,eACNkgB,KAAM,gBAER,CACEC,GAAI,MACJngB,KAAM,kBACNkgB,KAAM,mBAER,CACEC,GAAI,MACJngB,KAAM,mBACNkgB,KAAM,yBAER,CACEC,GAAI,MACJngB,KAAM,sBACNkgB,KAAM,qBAIZ,CACElgB,KAAM,yBACNkgB,KAAM,yBACNjsB,MAAO,CACL,CACEksB,GAAI,EACJngB,KAAM,oBACNkgB,KAAM,QAER,CACEC,GAAI,EACJngB,KAAM,wBACNkgB,KAAM,YAER,CACEC,GAAI,EACJngB,KAAM,qBACNkgB,KAAM,SAER,CACEC,GAAI,EACJngB,KAAM,uBACNkgB,KAAM,kBAER,CACEC,GAAI,EACJngB,KAAM,+BACNkgB,KAAM,gBAER,CACEC,GAAI,EACJngB,KAAM,kCACNkgB,KAAM,mBAER,CACEC,GAAI,EACJngB,KAAM,wCACNkgB,KAAM,yBAER,CACEC,GAAI,EACJngB,KAAM,kBACNkgB,KAAM,qBAIZ,CACElgB,KAAM,0CACNkgB,KAAM,0CACNjsB,MAAO,CACL,CACEksB,GAAI,MACJngB,KAAM,QACNogB,SAAU,gCACVF,KAAM,gBAER,CACEC,GAAI,MACJngB,KAAM,WACNkgB,KAAM,QAER,CACEC,GAAI,MACJngB,KAAM,eACNkgB,KAAM,YAER,CACEC,GAAI,MACJngB,KAAM,WACNkgB,KAAM,SAER,CACEC,GAAI,MACJngB,KAAM,sBACNkgB,KAAM,kBAER,CACEC,GAAI,MACJngB,KAAM,eACNkgB,KAAM,gBAER,CACEC,GAAI,MACJngB,KAAM,kBACNkgB,KAAM,mBAER,CACEC,GAAI,MACJngB,KAAM,mBACNkgB,KAAM,yBAER,CACEC,GAAI,MACJngB,KAAM,sBACNkgB,KAAM,qBAIZ,CACElgB,KAAM,0BACNkgB,KAAM,0BACNjsB,MAAO,CACL,CACEksB,GAAI,MACJngB,KAAM,WACNkgB,KAAM,QAER,CACEC,GAAI,MACJngB,KAAM,eACNkgB,KAAM,YAER,CACEC,GAAI,MACJngB,KAAM,WACNkgB,KAAM,SAER,CACEC,GAAI,MACJngB,KAAM,eACNkgB,KAAM,YAER,CACEC,GAAI,MACJngB,KAAM,oBACNkgB,KAAM,cAER,CACEC,GAAI,MACJngB,KAAM,YACNkgB,KAAM,aAER,CACEC,GAAI,MACJngB,KAAM,iBACNkgB,KAAM,WAER,CACEC,GAAI,MACJngB,KAAM,WACNkgB,KAAM,YAER,CACEC,GAAI,MACJngB,KAAM,UACNkgB,KAAM,WAER,CACEC,GAAI,OACJngB,KAAM,UACNkgB,KAAM,WAER,CACEC,GAAI,OACJngB,KAAM,eACNkgB,KAAM,SAER,CACEC,GAAI,OACJngB,KAAM,0BACNkgB,KAAM,cAIZ,CACElgB,KAAM,oCACNkgB,KAAM,oCACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,YACNkgB,KAAM,aAER,CACEC,GAAI,QACJngB,KAAM,iBACNkgB,KAAM,WAER,CACEC,GAAI,QACJngB,KAAM,WACNkgB,KAAM,YAER,CACEC,GAAI,QACJngB,KAAM,UACNkgB,KAAM,WAER,CACEC,GAAI,QACJngB,KAAM,UACNkgB,KAAM,WAER,CACEC,GAAI,QACJngB,KAAM,eACNkgB,KAAM,SAER,CACEC,GAAI,QACJngB,KAAM,0BACNkgB,KAAM,cAIZ,CACElgB,KAAM,2BACNkgB,KAAM,2BACNjsB,MAAO,CACL,CACEksB,GAAI,MACJngB,KAAM,6BACNkgB,KAAM,WAIZ,CACElgB,KAAM,2BACNkgB,KAAM,2BACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,4BACNkgB,KAAM,UAER,CACEC,GAAI,QACJngB,KAAM,iCACNkgB,KAAM,YAER,CACEC,GAAI,QACJngB,KAAM,uBACNkgB,KAAM,kBAIZ,CACElgB,KAAM,mBACNkgB,KAAM,mBACNjsB,MAAO,CACL,CACEksB,GAAI,MACJngB,KAAM,4BACNkgB,KAAM,UAER,CACEC,GAAI,MACJngB,KAAM,iCACNkgB,KAAM,YAER,CACEC,GAAI,MACJngB,KAAM,uBACNkgB,KAAM,gBAER,CACEC,GAAI,MACJngB,KAAM,kBACNkgB,KAAM,qBAIZ,CACElgB,KAAM,YACNkgB,KAAM,UACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,WACNkgB,KAAM,QAER,CACEC,GAAI,QACJngB,KAAM,eACNkgB,KAAM,YAER,CACEC,GAAI,QACJngB,KAAM,YACNkgB,KAAM,SAER,CACEC,GAAI,QACJngB,KAAM,eACNkgB,KAAM,YAER,CACEC,GAAI,QACJngB,KAAM,oBACNkgB,KAAM,cAER,CACEC,GAAI,QACJngB,KAAM,cACNkgB,KAAM,aAIZ,CACElgB,KAAM,aACNkgB,KAAM,WACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,WACNkgB,KAAM,QAER,CACEC,GAAI,QACJngB,KAAM,eACNkgB,KAAM,YAER,CACEC,GAAI,QACJngB,KAAM,YACNkgB,KAAM,SAER,CACEC,GAAI,QACJngB,KAAM,eACNkgB,KAAM,YAER,CACEC,GAAI,QACJngB,KAAM,oBACNkgB,KAAM,cAER,CACEC,GAAI,QACJngB,KAAM,cACNkgB,KAAM,aAIZ,CACElgB,KAAM,mBACNkgB,KAAM,mBACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,2BACNkgB,KAAM,QACNE,SAAU,mDAEZ,CACED,GAAI,QACJngB,KAAM,mBACNkgB,KAAM,aAER,CACEC,GAAI,QACJngB,KAAM,yBACNkgB,KAAM,SAER,CACEC,GAAI,QACJngB,KAAM,uBACNkgB,KAAM,aAIZ,CACElgB,KAAM,kBACNkgB,KAAM,kBACNjsB,MAAO,CACL,CACEksB,GAAI,QACJngB,KAAM,yBACNkgB,KAAM,QACNE,SAAU,mCAEZ,CACED,GAAI,QACJngB,KAAM,oBACNkgB,KAAM,aAER,CACEC,GAAI,QACJngB,KAAM,oBACNkgB,KAAM,YAER,CACEC,GAAI,QACJngB,KAAM,iBACNkgB,KAAM,WAER,CACEC,G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","file":"static/js/main.b577ccb7.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WidgetTightRadioButtonGroup_container__1cIXN\",\"grid\":\"WidgetTightRadioButtonGroup_grid__3qDY6\",\"gridDouble\":\"WidgetTightRadioButtonGroup_gridDouble__2XIe-\",\"gridDoubleMobile\":\"WidgetTightRadioButtonGroup_gridDoubleMobile__k77V0\",\"gridColumn\":\"WidgetTightRadioButtonGroup_gridColumn__2mgEO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Caption_container__3ncyY\",\"bold\":\"Caption_bold__3Bmzp\",\"faded\":\"Caption_faded__3oBko\",\"error\":\"Caption_error__3PLxb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"GroupFormLayout_container__2-mII\",\"title\":\"GroupFormLayout_title__3qQJV\",\"subtitle\":\"GroupFormLayout_subtitle__39Mlt\",\"top\":\"GroupFormLayout_top__mE-6i\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"OfferTip_container__1KgAR\",\"plain\":\"OfferTip_plain__29OrZ\",\"tooltip\":\"OfferTip_tooltip__3kaiL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AcceptCGA_container__1h7uE\",\"breederContainer\":\"AcceptCGA_breederContainer__3dHJV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WidgetRadioButtonGroup_container__IA1_N\",\"grid\":\"WidgetRadioButtonGroup_grid__33UfA\",\"gridDouble\":\"WidgetRadioButtonGroup_gridDouble__ObGag\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"AppleLogin_wrapper__GlwQx\",\"button\":\"AppleLogin_button__3M5Ki\",\"container\":\"AppleLogin_container__1jU7r\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WidgetSelectGroup_container__23DNZ\",\"content\":\"WidgetSelectGroup_content__2Kd9m\",\"select\":\"WidgetSelectGroup_select__30LT-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"navigationBar\":\"NavigationBottomBar_navigationBar__2kz_8\",\"container\":\"NavigationBottomBar_container__2jlTn\",\"column\":\"NavigationBottomBar_column__yHTPy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"OfferCheckBox_container__b6oZv\",\"checked\":\"OfferCheckBox_checked__3mKIG\",\"disabled\":\"OfferCheckBox_disabled__2Wb6I\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"absolute\":\"arrowAnchor_absolute__1kYg7\",\"left\":\"arrowAnchor_left__3B5ls\",\"right\":\"arrowAnchor_right__1QBSn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WidgetSelect_container__1rRIY\",\"box\":\"WidgetSelect_box__2U0eZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"OfferFieldContainer_container__6b1NY\",\"childrenWrapper\":\"OfferFieldContainer_childrenWrapper__1LuxR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"BigTitle_container__26FZg\",\"center\":\"BigTitle_center__1blHl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"containerCol1\":\"Table_containerCol1__3PRbL\",\"fill\":\"Table_fill__FW1zF\",\"containerCol2\":\"Table_containerCol2__2MCxf\",\"containerCol3\":\"Table_containerCol3__jb1hH\",\"containerCol4\":\"Table_containerCol4__3OavC\",\"containerCol5\":\"Table_containerCol5__PGxD0\",\"containerCol6\":\"Table_containerCol6__b1tuQ\",\"containerCol7\":\"Table_containerCol7__1frd4\",\"containerCol8\":\"Table_containerCol8__3yJ-P\",\"containerCol9\":\"Table_containerCol9__2TuN_\",\"containerCol10\":\"Table_containerCol10__2Fouz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WidgetButton_container__1EHYh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WidgetTightButton_container__1S8f1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"radioContent\":\"WidgetOfferRadio_radioContent__2dlJy\",\"big\":\"WidgetOfferRadio_big__1NyNU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"radioContent\":\"WidgetTightOfferRadio_radioContent__3HajS\",\"big\":\"WidgetTightOfferRadio_big__2Kfk-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"RadioGroup_container__1n9ZP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WidgetTightRadioGroup_container__xxSlV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"ButtonText_container__wWEfs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Title_container__19aC0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"TitleSelect_container__22wWr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"LangSelect_container__YFCkD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"FlexibleGrid_container__SaNSX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"PetRadio_container__2SrTR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AcceptCGU_container__jZ_98\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SocialButton_container__2hft_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"html\":\"InsuranceStep_html__1BSiD\"};","module.exports = {\n or: 'ou',\n add: 'Ajouter',\n save: 'Enregistrer',\n send: 'Envoyer',\n edit: 'Modifier',\n delete: 'Supprimer',\n previous: 'Précédent',\n next: 'Suivant',\n iAcceptCGU: \"J'accepte les\",\n CGV: 'Conditions générales de vente (CGV)',\n CGU: \"Conditions générales d'utilisation (CGU)\",\n privacy_policy: 'Politique de confidentialité',\n missingData: 'Donnée manquante',\n readmore: 'En savoir plus',\n yes: 'Oui',\n no: 'Non',\n close: 'Fermer',\n back: 'Retour',\n backToAnimals: 'Retour à \"Mes Animaux\"',\n draft: 'Pas encore enregistré',\n calculating: 'Calcul en cours',\n allfeesincluded: 'Taxes et frais de port inclus',\n finished: 'Terminé',\n printOrder: 'Imprimer la commande',\n deliveries: 'Livraisons',\n plannedDeliveries: 'Prochaines livraisons',\n previousDeliveries: 'Livraisons passées',\n batchID: 'Numéro de commande',\n status: 'Statut',\n verify: 'Vérifier',\n year: 'Année',\n month: 'Mois',\n day: 'Jour',\n months: {\n 1: 'Janvier',\n 2: 'Février',\n 3: 'Mars',\n 4: 'Avril',\n 5: 'Mai',\n 6: 'Juin',\n 7: 'Juillet',\n 8: 'Août',\n 9: 'Septembre',\n 10: 'Octobre',\n 11: 'Novembre',\n 12: 'Décembre',\n },\n immediately: 'Immédiatement',\n informations: 'Informations',\n aboGourmand: 'Abo Gourmand',\n theAboGourmand: \"L'Abo Gourmand\",\n theInsurance: \"L'Assurance\",\n administrative: 'Modification administrative',\n missingAddress: \"Il n'y a pas d'adresse enregistrée.\",\n missingAddressFor: \"Il n'y a pas d'adresse enregistrée pour {{name}}.\",\n missingCard: \"Il n'y a pas de moyen de paiement enregistré.\",\n fix: 'Corriger le problème',\n cancel: 'Annuler',\n confirm: 'Confirmer',\n fillIn: 'Renseigner',\n wantToKnowMore: 'Vous souhaitez en savoir plus ?',\n moreDetails: 'Plus de détails',\n date: 'Date',\n service: 'Service',\n noResults: 'Pas de résultats',\n required: 'Champ obligatoire',\n your_comment: 'Remarques',\n\n cardIsFailing: 'En échec',\n twintAccount: 'Compte Twint',\n powerpayAccount: 'Paiement par facture (PowerPay)',\n\n oldbrowser: {\n title: \"Oups ! Votre navigateur Web n'est pas à jour.\",\n text:\n \"Pour plus de sécurité et une meilleure expérience sur notre site, nous vous recommandons de mettre à jour votre navigateur ou d'en utiliser un autre.\",\n button: 'Je mets à jour mon navigateur',\n },\n weDidNotReceiveYourPayment:\n \"Nous n'avons pas reçu votre paiement pour cette commande.\",\n contactUs: 'Contact',\n powerpay: {\n title: 'Vérifiez vos informations de paiement',\n subtitle:\n 'Vous recevrez la facture gratuitement par e-mail. Avec l\\'achat sur compte, vous acceptez les conditions suivantes de POWERPAY (powerpay.ch/fr/agb), à condition d\\'avoir une adresse e-mail valide.',\n next: 'Payer',\n cancel: 'Annuler',\n },\n other: 'Autre',\n};\n","module.exports = {\n btnAdd: 'Ajouter un animal',\n yourPets: 'Mes animaux',\n yourPetServices: 'Les services de {{name}}',\n yourPetAbogourmand: \"L'Abo Gourmand de {{name}}\",\n yourPetAssistance: 'L\\'assistance Animalière de {{name}}',\n animal: 'Animal',\n cat: 'Chat',\n dog: 'Chien',\n size: 'Taille',\n gender: 'Sexe',\n female: 'Femelle',\n male: 'Mâle',\n animalTitle: 'Ajouter un animal',\n animalEditTitle: 'Editer un animal',\n animalDescription: 'Faisons plus ample connaissance',\n\n passportTitle: 'Portrait Animalia',\n passportDescription: 'Déclinez l’identité de votre gourmand préféré.',\n itsName: \"Nom de l'animal\",\n noNameYet: 'Pas de nom',\n bornOn: 'Date de naissance',\n birthdate: 'Date de naissance',\n breed: 'Race',\n breedDescription: 'Avec ou sans pedigrée, on sait combien vous l’aimez !',\n weight: 'Poids',\n catofbreed: 'Chat de race',\n dogofbreed: 'Chien de race',\n kgWeight: 'Poids à l\\'âge adulte en kg',\n kgWeightMaxError: 'Veuillez saisir un poids en dessous de 100 kg',\n adultWeightTitle: 'Poids à l’âge adulte',\n adultWeightDescription:\n 'Si son bien-être pèse lourd dans toutes vos décisions, on aimerait quand même connaître les chiffres de la balance !',\n chooseBreed: 'Choix de la race',\n dogBastard: 'Croisé',\n catBastard: 'Chat de maison',\n\n activityTitle: 'À chacun son rythme',\n activityDescription:\n 'Sport d’extérieur ou sieste sur le canapé ? Il est plutôt...',\n activityLevel: \"Taux d'activité\",\n passive: 'Peu actif',\n passiveDescription:\n 'Plus canapé que course endiablée, votre compagnon est plutôt du genre à rester à la maison.',\n normal: 'Modéré',\n normalDescription:\n 'Se promener pour se dégourdir les pattes une à deux fois par jour ! Votre poilu aime se bouger mais sans trop se fatiguer.',\n active: 'Très actif',\n activeDescription:\n 'Longues promenades et courses effrénées, il adore vous épuiser !',\n\n sterilizedTitle: 'Stérilisé ?',\n sterilizedDescription:\n 'Votre compagnon est-il passé sur la table d’opération ?',\n sterilizedYes: 'Oui (ouille!)',\n sterilized: 'Stérilisé',\n nonSterilized: 'Non stérilisé',\n\n foodTypeStepTitle: 'Alimentation',\n foodTypeTitle: 'Menu à la carte',\n foodTypeDescription:\n 'Dites-nous en plus sur le régime de votre petit ou grand gourmand.',\n standard: 'Standard',\n standardHelp:\n 'Votre gastronome sur pattes ne souffre d’aucune allergie ou intolérance particulière ? Il va adorer nos croquettes 100 % naturelles, garanties sans additifs et surtout sans gluten, pour prévenir tout risque d’intolérance dans l’avenir.',\n sensitive: 'Sensible',\n sensitiveHelp:\n 'Votre poilu est un fin gourmet à l’estomac plutôt fragile ? Nous avons ce qu’il lui faut : un menu délicieux et équilibré pour une digestion tout en douceur.',\n grainfree: 'Sans céréales',\n 'grain-free':\n 'Votre compagnon à quatre pattes y est allergique ou les digère mal ? Notre gamme de croquettes sans céréales lui apportent tous les nutriments et les fibres dont il a besoin tout en respectant sa digestion.',\n grainfreeHelp:\n 'Votre compagnon à quatre pattes y est allergique ou les digère mal ? Notre gamme de croquettes sans céréales lui apportent tous les nutriments et les fibres dont il a besoin tout en respectant sa digestion.',\n\n productStepTitle: 'Choix du produit',\n productTitle: 'Remplissez sa gamelle (d’amour et de croquettes)',\n productDescription:\n 'Nos croquettes sont à croquer. Il ne vous reste plus qu’à vous décider !',\n\n adjustQuantityStepTitle: 'Ajustement de la quantité',\n adjustQuantityTitle: 'À table!',\n adjustQuantityDescription:\n 'Bienvenue à {{name}} ! Nous sommes ravis de faire sa connaissance ! D’après les informations que vous nous avez données et en collaboration avec notre vétérinaire nutritionniste qui connaît nos croquettes sur le bout des griffes, nous vous recommandons la ration journalière suivante :',\n adjust80Comment:\n 'Alors là, ça ne fait pas beaucoup de croquettes à croquer ! Complétez-vous sa gamelle avec d’autres aliments ? Attention tout de même, une ration inférieure de 20 % à celle recommandée peut entraîner des carences et une sous-alimentation chez votre compagnon à quatre pattes et détériorer sa santé. Et si on ajoutait quelques croquettes dans nos paquets d’amour ?',\n adjust90Comment:\n 'Votre colocataire a un appétit de moineau ? Il y a autre chose que nos délicieuses croquettes à croquer au menu ? Alors vous pouvez diminuer la ration proposée de 10 %. Veillez toutefois à respecter la ration journalière totale recommandée, en compensant avec d’autres aliments.',\n adjust100Comment:\n \"C’est pile-poil la portion recommandée ! Mais puisque vous le connaissez mieux que quiconque, n’hésitez pas à l'ajuster !\",\n adjust110Comment:\n 'Vous vivez avec un grand gourmand ou un grand sportif ? Vous pouvez ajouter 10 % à sa ration journalière. Sans abuser, bien entendu !',\n adjust120Comment:\n 'Alors là, ça en fait des croquettes à croquer ! Attention tout de même, une ration supérieure de 20 % à celle recommandée peut engendrer un surpoids chez votre compagnon à quatre pattes et détériorer sa santé. Et si on mettait encore un peu plus d’amour et un peu moins de croquettes dans son paquet ?',\n\n summaryTitle: \"L'Abo Gourmand\",\n monthlyPrice: 'Prix par mois',\n\n upTo4kg: \"jusqu'à 4kg\",\n between4and6kg: 'de 4kg à 6kg',\n between6and8kg: 'de 6kg à 8kg',\n from8kg: 'dès 8kg',\n\n // summary screen\n\n nextDeliveryDate: 'Votre prochaine livraison',\n nextDeliveryOn: 'Choisissez la date de la première livraison',\n deliveryFrequency: 'Fréquence des livraisons',\n deliveredEachXDays: 'Livré tous les {{days}} jours',\n deleteOrderFor: 'Résilier mon abonnement pour {{name}}',\n product: 'Produit',\n dailyQuantity: 'Quantité journalière',\n order: 'Poursuivre la commande',\n\n // details and listing screens\n backToMyPets: 'Retour à \"Mes animaux\"',\n deletePet: 'Supprimer le profil de {{name}}',\n byDeletingPetItWillCancelLinkedServices:\n \"Nous vous rendons attentif au fait que l'assurance santé de {{name}} ne sera pas résiliée (si elle ou il en a une) par la suppression de son profil.\",\n reasonOfDeletion: 'Raison de la suppression',\n myPetIsDead: 'Mon animal est décédé',\n notInterrestedAnymore: 'Je ne suis plus intéressé',\n thisPetCantBeDeleted:\n 'Vous ne pouvez pas supprimer le profil de {{name}} car un ou plusieurs services ci-dessous sont encore liés à votre boule de poils :',\n reasonAbo: 'Abo Gourmand actif ou livraison en attente',\n reasonAssurance: \"Liaison avec l'assurance santé Animalia\",\n // my account\n itsAbo: 'Son abo',\n calculate: 'Calculez l’Abo Gourmand de votre compagnon',\n calculateAgain: 'Recalculez l’Abo Gourmand',\n petDataHasChanged: 'Les données de {{name}} ont changé',\n seeOrderDetails: \"Voir les détails de l'Abo Gourmand\",\n seeInsuranceSettings: \"Supprimer liaison avec l'assurance Animalia\",\n hasNoAccount: \"{{name}} n'a pas encore d'Abo Gourmand\",\n hasNoInsurance: \"{{name}} n'a pas encore d'assurance santé enregistré\",\n itsInsurance: \"L'assurance santé de {{name}}\",\n policeNumber: 'No de police',\n petDataHasChangedExtended:\n \"Le profil de {{name}} a été modifié. Nous vous recommandons de recalculer l'Abo Gourmand pour une nouvelle recommandation de produit et de quantités.\",\n receiveOffer: \"Demander une offre pour l'Assurance santé\",\n askForEstimate: 'Demander une offre',\n calculator: 'Calculateur',\n hasNoOrder: '{{name}} n’a pas encore d’abonnement',\n adjustOrder: \"Vous souhaitez ajuster l'abonnement de {{name}} ?\",\n petHasRemainingDeliveries:\n 'Attention: {{name}} a encore des livraisons et/ou paiements en attente.',\n newAbo: 'Créer un nouvel abonnement',\n temporaryDisabled: 'Pour des raisons techniques, les fonctions pour la declaration de sinistre et l\\'envoi des facture sont momentanément désactivées sur cette application. En attendant, vous pouvez déclarer les sinistres et envoyer les factures sur notre site web dans votre compte client: ',\n petRaceSearchPlaceholder: 'Rechercher',\n noInsurance: '{{name}} n’a pas encore d’assurance',\n noAssistance: '{{name}} n’a pas encore d’assistance 24/7',\n};\n","module.exports = {\n yourPetAssistance: 'L\\'Assistance 24/7 de {{name}}',\n policeNumber: 'No de police {{number}}',\n noAssistanceSubtitle: '{{name}} n\\'a pas encore l\\'Animalia Assistance 24/7',\n cga: 'CGA',\n contractStartDate: 'Début du contrat',\n contractEndDate: ' Fin du contrat (renouvellement tacite d\\'année en année)',\n callHelpLine: 'Appeler l\\'Infoline 24/7',\n declareSinister: 'Déclarer un cas d\\'assistance pour {{name}}',\n deleteAssistance: 'Résilier Animalia Assistance 24/7 de {{name}}',\n moreInformations: 'Plus d\\'informations concernant Animalia Assistance 24/7',\n createAssistance: 'Conclure Animalia Assistance 24/7 pour CHF 79.-/an',\n policy: \"Police d'assurance Assistance 24/7\",\n moreInformationsLink: 'https://www.animalia.ch/service/assistance',\n createAssistanceLink: 'https://shop.animalia.ch/product/assistance-24-7/',\n deleteAssistanceLink: 'mailto:contact@animalia.ch',\n callHelpLineLink: 'tel:+41225937326',\n declareSinisterLink: 'https://shop.animalia.ch/mon-compte/declaration-de-sinistre/',\n}","module.exports = {\n myPets: 'Mes animaux',\n myProfile: 'Mon profil',\n logout: 'Déconnexion',\n};\n","module.exports = {\n error: 'Erreur',\n warning: 'Attention',\n\n apiError: 'Il y a eu une erreur de traitement de la demande.',\n fieldValidationError: 'Un ou plusieurs champ sont invalides.',\n\n petNotFound: \"L'animal recherché n'a pas été trouvé\",\n petsNotFound: \"Il n'y a pas d'animaux\",\n\n insuranceNumberDelete: {\n title: \"Suppression de connexion avec l'assurance {{name}}\",\n content:\n \"Attention: vous supprimez uniquement la connexion avec le numéro de police de {{name}}. Le contrat d'assurance reste en vigueur. Si vous voulez le résilier, veuillez svp vous référer aux Conditions Générales d'Assurances (CGA).\",\n },\n\n card: {\n cancelled: 'Opération de paiement annulée',\n error: 'Veuillez svp vérifier les informations de votre moyen de paiement.',\n },\n\n latePayment: {\n title: 'Oups, vous avez encore une facture ouverte !',\n content:\n 'Une facture est restée impayée. Veuillez svp la régler avant de saisir un nouvel Abo Gourmand.',\n },\n\n quitWarning: {\n title: 'Êtes-vous sûr de vouloir quitter le formulaire?',\n description:\n 'Retourner à ‘{{destination}}’ vous fera perdre toutes les données non soumises du formulaire.',\n continue: 'Oui, je veux quitter',\n cancel: 'Non, continuer le formulaire',\n },\n};\n","module.exports = {\n deliveryAddress: 'Adresse de livraison',\n billingAddress: 'Adresse de facturation',\n defineNewAddress: 'Définir une nouvelle adresse',\n addNewCard: 'Ajouter une carte de crédit ou PostFinance',\n addNewTwint: 'Ajouter un compte Twint',\n addNewPowerPay: 'Ajouter un compte PowerPay',\n paymentMethod: 'Moyen de paiement',\n firstname: 'Prénom *',\n lastname: 'Nom *',\n line1: 'Adresse *',\n line2: \"Complément d'adresse\",\n zipcode: 'NPA *',\n city: 'Localité *',\n state: 'État',\n country: 'Pays',\n thisIsThesePetsHouse: \"C'est la maison de\",\n};\n","module.exports = {\n nextDeliveryOn: 'Prochaine livraison le {{date}}',\n date: 'Date de livraison',\n dateRecurring: 'Aimeriez-vous également adapter les livraisons suivantes ?',\n dateSelector: 'Sélectionnez la nouvelle date de livraison',\n address: 'Adresse de livraison',\n editDeliveryDateFor: 'Editer la date de livraison pour {{name}}',\n adjustAllDates: 'Oui, ajuster les dates des livraisons suivantes.',\n adjustOneDate:\n \"Non, j'aimerais uniquement changer la date de cette livraison.\",\n adjustAllAddresses: 'Oui, ajuster les adresses des livraisons suivantes.',\n adjustOneAddress:\n \"Non, j'aimerais uniquement changer l'adresse de cette livraison.\",\n\n status: {\n pending: 'En attente',\n planned: 'Planifiée',\n failed: 'Echec de traitement',\n cancelled: 'Annulé',\n refunded: 'Remboursé',\n standby: 'Paiement en attente',\n 'payment-on-hold': 'Paiement en cours',\n 'completed-paid': 'Envoyé',\n 'completed-unpaid': 'Envoyé',\n 'completed-refunded': 'Envoyé',\n },\n editLater: 'Indiquez ici l\\'adresse de livraison. Et si vous partez au chalet ou laissez votre compagnon chez des voisins ou des amis, pas de souci : vous pourrez changer l\\'adresse de livraison en tout temps via votre compte client, même pour une seule livraison. Pratique, non ?',\n paymentMessage: 'Vous êtes à un dernier clic de réjouir votre boule de poils qui trépigne sûrement déjà d\\'impatience.

Pas d\\'inquiétude ! Vous pouvez à tout moment résilier votre abonnement par un simple clic dans votre compte client ou via notre service client.

Il vous est possible de nous contacter pour connaitre les moyens de paiement ou pour vous aider lors de votre paiement'\n};","module.exports = {\n firstDeliveryDate: 'Première livraison le',\n lastDelivery: 'Dernière livraison',\n selectLastDelivery: 'Sélectionnez votre dernière date de livraison',\n validateDate: 'Valider la date',\n deleteOrder: 'Résilier',\n cancelled: 'Abonnement annulé',\n couponCodeLabel: 'Code rabais',\n couponCodePlaceholder: 'Votre code rabais',\n invalidCoupon: 'Code rabais pas valable',\n editOrder: \"Modifier l'abonnement\",\n showAllProducts: 'Montrer d\\'autres variétés',\n showRecommandedProducts: 'Afficher les produits recommandés',\n notRecommendedTooltip: 'Vous pouvez bien entendu commander ces croquettes. Cependant, selon vos indications, nous vous recommandons un autre produit.',\n confirmModification:\n \"Suite à vos modifications, votre Abo Gourmand a changé de prix. Veuillez svp confirmer que vous êtes d'accord.\",\n couponDetailsUnlimited: 'Vous bénéficiez de {{discount}} de rabais.',\n couponDetails:\n 'Vous bénéficiez de {{discount}} de rabais pendant {{months}} mois. Ensuite, le prix sera adapté au prix officiel.',\n priceWithoutDiscount: '(Prix sans rabais : {{price}})',\n payAmount: 'Payer {{price}}',\n error: {\n pleaseAcceptTerms: 'Veuillez svp accepter les Conditions générales',\n pleaseChooseADeliveryDate: 'Veuillez svp choisir la date pour la première livraison',\n },\n pricePerMonth: 'Prix par mois',\n price: 'Prix',\n totalPricePerMonth: 'Prix total par mois',\n discount: 'Rabais',\n thankyou: {\n title: 'Merci et Bravo !',\n text:\n \"Merci d'avoir choisi l'Abo Gourmand ! Votre commande est validée et nous commençons déjà à préparer son repas conçu avec des produits de haute qualité et riches en protéines. Le paquet arrivera dans quelques jours devant votre porte. Votre boule de poils va se lécher les babines et vous remerciera d'avoir fait le bon choix. Nous sommes heureux de vous compter parmi notre communauté de Pattes-Lovers !\",\n button: 'Voir ma commande',\n subText:\n 'Une question ? Nous sommes là pour vous via notre chat online ou par téléphone au 0800 815 915',\n },\n mfgroupErrorUnavailable: \"Vous ne pouvez pas utiliser ce moyen de paiement pour le moment. Veuillez svp en choisir un autre.\",\n addPaymentMethodError: \"Ce moyen de paiement n'est pas valide. Veuillez svp en saisir un autre.\"\n};\n","module.exports = {\n noInvoices: 'Pas de factures',\n noInvoicesDescription: \"Il n'y a pas encore de facture pour votre compte.\",\n refno: 'No de commande',\n total: 'Prix',\n\n paymentModal: {\n successTitle: 'Merci pour votre paiement',\n successMessage: 'Nous avons bien reçu votre paiement et vous en remercions.',\n failureTitle: 'Oups! Echec de paiement',\n failureMessage: 'Votre moyen de paiement actuel ne semble pas fonctionner. Veuillez svp enregistrer un autre moyen de paiement et revenez sur cette page pour ressayer.',\n },\n payNow: 'Payer maintenant',\n closeFaildModal: 'Pas maintenant',\n payementMethod: 'Ajouter un nouveau moyen de paiement',\n status: {\n pending: 'En attente',\n failed: 'Echec de traitement',\n completed: 'Payé',\n 'no-default-card': 'Pas de moyen de paiement enregistré',\n refunded: 'Remboursé',\n },\n};\n","module.exports = {\n myAccount: 'Mon compte',\n editMyProfile: 'Modifier mon profil',\n title: 'Titre *',\n firstName: 'Prénom *',\n lastName: 'Nom *',\n firstAndLastName: 'Prénom & Nom *',\n email: 'E-mail *',\n phone: 'Téléphone',\n home_phone: 'Téléphone fixe',\n mobile_phone: 'Téléphone mobile',\n birthdate: 'Date de naissance',\n subscribeToMailchimp:\n \"Je souhaite recevoir les newsletters d'Animalia (conseils, concours, offres, nouveautés, etc.)\",\n subscribeToMailchimpInfo:\n \"En vous abonnant à la newsletter d'Animalia, vous acceptez la politique de confidentialité et le transfert de données à un système tiers nécessaire à l'envoi de la newsletter.\",\n mrs: 'Madame',\n mr: 'Monsieur',\n locale: 'Langue de communication *',\n myPets: 'Mes animaux',\n seeMyPets: 'Voir mes animaux',\n myInsurance: 'Mon assurance',\n declareSinister: 'Déclarer un sinistre',\n sendInvoice: 'Envoyer une facture',\n editInsurance: 'Modifier l\\'assurance',\n myAboGourmand: 'Mon Abo Gourmand',\n editMyAboGourmand: 'Gérer mon Abo Gourmand',\n editMyData: 'Gérer mes données',\n myInvoices: 'Mes factures Abo Gourmand',\n myInvoicesText: 'Jetez un œil à vos dernières transactions',\n myCards: 'Mes moyens de paiement Abo Gourmand',\n myCardsText: 'Votre portemonnaie électronique',\n myAddresses: 'Mon adresse de livraison Abo Gourmand',\n myAddressesText: 'La maison de votre boule de poils ',\n modalEditMyAddressTitle: \"Modifier l'adresse de livraison\",\n logout: 'Déconnexion',\n delete: {\n button: 'Supprimer mon compte Animalia',\n title: 'Suppression du compte',\n content:\n 'Vous êtes en train de supprimer toutes vos données de votre compte Animalia (vos données et les données de vos animaux). Nous ne pourrons pas réactiver votre compte et vous devrez en créer un nouveau. Êtes-vous sûr de vouloir faire ça ?',\n confirm: 'Oui, je supprime mon compte',\n cancel: 'Non, je garde mon compte',\n },\n};\n","module.exports = {\n BACK_TO_SIGN_IN: 'Retour au login',\n CHANGE_PASSWORD: 'Modifier le mot de passe',\n CHANGE_PASSWORD_ACTION: 'Modifier',\n CODE_LABEL: 'Entrez le code reçu par e-mail',\n CODE_PLACEHOLDER: 'Entrer le code',\n CONFIRM: 'Confirmer',\n CONFIRM_SIGN_UP_CODE_LABEL: 'Confirmation du code',\n CONFIRM_SIGN_UP_CODE_PLACEHOLDER: 'Entrez votre code',\n CONFIRM_SIGN_UP_HEADER_TEXT: 'Confirmez votre inscription',\n CONFIRM_SIGN_UP_LOST_CODE: 'Avez-vous perdu votre code ?',\n CONFIRM_SIGN_UP_RESEND_CODE: 'Renvoyer un code',\n CONFIRM_SIGN_UP_SUBMIT_BUTTON_TEXT: 'Confirmer',\n CONFIRM_SMS_CODE: 'Confirmer le code SMS',\n CONFIRM_TOTP_CODE: 'Confirmer le code TOTP',\n CREATE_ACCOUNT_TEXT: 'Créer compte',\n EMAIL_LABEL: 'Adresse e-mail *',\n EMAIL_PLACEHOLDER: 'Entrez votre adresse e-mail',\n EMAIL_ERROR: 'Veuillez entrer une adresse e-mail valide',\n FORGOT_PASSWORD_TEXT: 'Avez-vous oublié votre mot de passe ?',\n LESS_THAN_TWO_MFA_VALUES_MESSAGE: 'Moins que deux types mfa à disposition',\n NEW_PASSWORD_LABEL: 'Nouveau mot de passe',\n NEW_PASSWORD_PLACEHOLDER: 'Choisir un nouveau mot de passe',\n NO_ACCOUNT_TEXT: 'Pas encore de compte Animalia ?',\n PASSWORD_LABEL: 'Mot de passe *',\n PASSWORD_PLACEHOLDER: 'Entrez votre mot de passe',\n PHONE_LABEL: 'No de téléphone *',\n PHONE_PLACEHOLDER: '79 555 55 55',\n QR_CODE_ALT: 'Code QR',\n RESET_PASSWORD_TEXT: 'Réinitialiser le mot de passe',\n RESET_YOUR_PASSWORD: 'Réinitialisez votre mot de passe',\n SELECT_MFA_TYPE_HEADER_TEXT: 'Selectionner votre type MFA',\n SELECT_MFA_TYPE_SUBMIT_BUTTON_TEXT: 'Vérifier',\n SEND_CODE: 'Envoyer le code par e-mail',\n SETUP_TOTP_REQUIRED: \"le TOTP a besoin d'être configuré\",\n SSIGN_UP_HEADER_TEXTIGN_IN_ACTION: 'Connexion',\n SIGN_IN_HEADER_TEXT: 'Connexion à votre compte Animalia',\n SIGN_IN_TEXT: 'Connexion',\n SIGN_IN_WITH_AMAZON: 'Connexion avec Amazon',\n SIGN_IN_WITH_AUTH0: 'Connexion avec Auth0',\n SIGN_IN_WITH_AWS: 'Connexion avec AWS',\n SIGN_IN_WITH_FACEBOOK: 'Connexion avec Facebook',\n SIGN_IN_WITH_GOOGLE: 'Connexion avec Google',\n SIGN_OUT: 'Déconnexion',\n SIGN_UP_EMAIL_PLACEHOLDER: 'e-mail',\n SIGN_UP_HAVE_ACCOUNT_TEXT: 'Avez-vous déjà un compte Animalia ?',\n SIGN_UP_HEADER_TEXT: 'Créer un nouveau compte',\n SIGN_UP_PASSWORD_PLACEHOLDER: 'Mot de passe',\n SIGN_UP_SUBMIT_BUTTON_TEXT: 'Créer le compte',\n SIGN_UP_ALREADY_BUTTON_TEXT: 'J\\'ai déjà un compte',\n SIGN_UP_USERNAME_PLACEHOLDER: \"Nom d'utilisateur\",\n SUCCESS_MFA_TYPE: 'Votre type MFA a été crée avec succès:',\n TOTP_HEADER_TEXT: 'Scannez et entrez le code de vérification',\n TOTP_LABEL: 'Entrez le code de sécurité:',\n TOTP_SETUP_FAILURE: \"le setup TOTP n'a pas réussi\",\n TOTP_SUBMIT_BUTTON_TEXT: 'Vérifier le token de sécurité',\n TOTP_SUCCESS_MESSAGE: 'Le setup TOTP a été fait avec succès!',\n UNABLE_TO_SETUP_MFA_AT_THIS_TIME: \"MFA n'a pas pu être configuré\",\n USERNAME_LABEL: \"Nom d'utilisateur *\",\n USERNAME_PLACEHOLDER: \"Saisissez votre nom d'utilisateur\",\n VERIFY_CONTACT_EMAIL_LABEL: 'E-mail',\n VERIFY_CONTACT_HEADER_TEXT:\n \"Pour la récuperation du compte, nous avons besoin d'informations de contact verifiées\",\n VERIFY_CONTACT_PHONE_LABEL: 'Numéro de téléphone',\n VERIFY_CONTACT_SUBMIT_LABEL: 'Envoyer',\n VERIFY_CONTACT_VERIFY_LABEL: 'Vérifier',\n PASSWORD_HELP:\n 'Au min. 8 caractères avec au minimum un nombre, un majuscule, un minuscule et un caractère spécial.',\n checkFormat: 'Veuillez vérifier le format du mot de passe',\n checkFormatPhone: 'Veuillez vérifier le format du numéro de téléphone',\n personnalInfo: 'Informations personnelles',\n connectWithGoogle: 'Se connecter avec Google',\n signinWithGoogle: 'S\\'inscrire avec Google',\n connectWithFacebook: 'Se connecter avec Facebook',\n signinWithFacebook: 'S\\'inscrire avec Facebook',\n connectWithApple: 'Se connecter avec Apple',\n signinWithApple: 'S\\'inscrire avec Apple',\n\n /**\n * Cognito error messages\n */\n error: 'Une erreur est survenue',\n AliasExistsException:\n 'Cette adresse e-mail existe déjà. Veuillez vous connecter à votre compte ou choisir une autre adresse.',\n errorEmailAlreadyExists:\n 'Cette adresse e-mail existe déjà. Veuillez vous connecter à votre compte ou choisir une autre adresse.',\n Userdoesnotexist: \"L'utilisateur ou le mot de passe est incorrect.\",\n Incorrectusernameorpassword: \"L'utilisateur ou le mot de passe est incorrect.\",\n Usernameclientidcombinationnotfound:\n \"Cette adresse e-mail n'est pas enregistrée chez nous.\",\n Invalidverificationcodeprovidedpleasetryagain:\n 'Code de vérification invalide.',\n Anaccountwiththegivenemailalreadyexists:\n \"L'adresse e-mail ou le mot de passe n'est pas valable\",\n Invalidemailaddressformat: \"L'adresse e-mail n'est pas valable\",\n Cannotresetpasswordfortheuserasthereisnoregisteredverifiedemailorphonenumber:\n \"Votre compte n'a jamais été confirmé. Vous ne pouvez donc malheureusement pas récupérer votre mot de passe.\",\n verificationSentTitle: \"Confirmez la nouvelle adresse e-mail\",\n verificationSentAgain: 'Le code vous a été renvoyé à votre nouvelle adresse e-mail.',\n uneditableBecauseLinkedToYourSocialAccount:'Vous ne pouvez pas changer cette information car elle est liée à votre compte de réseau social.',\n uneditableBecauseLinkedToYourSocialAccountAlt: 'Vous vous êtes connecté·e avec un social login (Google, Facebook, Apple). Vous ne pouvez donc pas changer vos données ici. Veuillez svp les changer directement dans votre compte Google / Facebook / Apple.'\n};\n","module.exports = {\n conclusionTitle: 'Merci pour votre message',\n conclusionMsg: 'Nous avons transmis votre demande de changement à la Vaudoise Assurance. La modification sera effectuée dans les prochains jours.',\n deleteNumber: 'Supprimer la liaison avec ce numéro de police',\n changeBankData: 'Changement d’informations bancaires pour les remboursements',\n changeAddress: 'Changement d’adresse pour l\\'assurance',\n changeOwner: 'Changement de propriétaire de {{name}}',\n declareSinister: 'Déclarer un sinistre pour {{name}}',\n noContractNumberSubtext: \"{{name}} n'a pas encore d'assurance santé associée\",\n ContractNumberSubtext: 'Numéro de police {{police}}',\n not_complete: 'Vous êtes en train d\\'établir une offre d\\'assurance',\n waiting: 'Votre proposition d\\'assurance a été envoyée avec succès. Vous allez voir ici le numéro de votre police ces prochains jours.', \n addContractNumber:\n \"Saisir le numéro de police de l'assurance santé Animalia existante\",\n addContractNumberDescription:\n \"Afin de pouvoir lier votre compte Animalia à l'assurance santé Animalia de votre compagnon à 4 pattes, veuillez saisir ici son numéro de police complet (sans espaces).\",\n addContractNumberPopupTitle:\n \"Veuillez saisir le numéro de police de l'assurance santé Animalia de {{name}}\",\n addContractNumberFieldLabel: 'Numéro de police Animalia',\n contractNotFound:\n \"Ce numéro de police n'existe pas. Veuillez svp saisir le numéro de police se trouvant sur votre police et qui finit par ...330x.\",\n petNameMismatch:\n \"Oups, ce numéro de police ne correspond pas à votre animal ou son nom ne correspond pas à celui sur sa police d'assurance. Vous trouverez le nom enregistré et le numéro de police sur votre police d'assurance.\",\n contractUpdated:\n \"Le contrat d'assurance de votre animal est maintenant lié à son profil.\",\n apiConnectionError:\n \"La connexion avec les systèmes de l'assurance Animalia est en maintenance pour le moment. Veuillez svp ressayer plus tard (could not connect to API).\",\n unauthorized:\n \"La connexion avec les systèmes de l'assurance Animalia est en maintenance pour le moment. Veuillez svp ressayer plus tard (api call unauthorized).\",\n apiError:\n \"La connexion avec les systèmes de l'assurance Animalia est en maintenance pour le moment. Veuillez svp ressayer plus tard (api error).\",\n serverError:\n \"La connexion avec les systèmes de l'assurance Animalia est en maintenance pour le moment. Veuillez svp ressayer plus tard (server error).\",\n undefined:\n \"Ce n'est pas un numéro valable. Veuillez svp saisir le numéro de police se trouvant sur votre police et qui finit par ...330x.\",\n checkPolicyNumber:\n \"Ce n'est pas un numéro valable. Veuillez svp saisir le numéro de police se trouvant sur votre police et qui finit par ...330x.\",\n\n comment: '---THE FOLLOWING STRINGS ARE NEW ---',\n addInvoice: 'Envoyer une facture pour {{name}}',\n addInvoiceButton: 'Ajouter facture',\n addDocumentButton: 'Document',\n addClaimButton: 'Nouveau sinistre',\n petFiles: 'Dossier de {{name}}',\n editInsurance: \"Formulaires pour modifier l'assurance (adresse, IBAN, propriétaire)\",\n invoicedOn: 'Facture du {{date}}',\n xInvoices: '{{count}} facture',\n xInvoices_plural: '{{count}} factures',\n steps: {\n disaster: 'Sinistre',\n medicalFile: 'Dossier méd',\n invoice: 'Facture',\n },\n types: {\n vaccine: 'Vaccins ou frais de prévention',\n health: 'Maladie ou autres',\n accident: 'Accident',\n external: 'Déclaré hors ligne',\n },\n disaster: {\n illnessTip:\n 'CGA 2008 à 2019: La castration, le détartrage, la crémation et tous les cas qui ne sont pas liés à un accident doivent être déclarés sous \"maladie ou autres\". CGA dès 2021: Tous les cas qui ne concernent ni un accident ni des frais de prévention, doivent être déclarés sous \"maladie ou autres\"',\n intro: {\n title: \"De quel type de sinistre s'agit-il ?\",\n description:\n 'Si la facture est liée à plusieurs sinistres ou animaux, veuillez s.v.p. vous référer ici au premier sinistre et recommencez ensuite la procédure autant de fois que nécessaire.',\n new: 'Un nouveau sinistre',\n existing: 'Un sinistre existant',\n vaccine: 'Vaccins ou frais de prévention',\n },\n type: {\n title: \"De quel type de sinistre s'agit-il ?\",\n description:\n \"Veuillez s.v.p. choisir s'il s'agit d'un accident, d'une maladie ou d'un autre cas.\",\n description2: 'Attention : pour les vaccins ou d\\'autres frais de prévention (frais de castration ou de stérilisation, de détartrage, de vermifugation et compléments alimentaires prescrites par le vétérinaire),',\n accident: 'Accident',\n illness: 'Maladie ou autres',\n vaccine:\n 'vous pouvez directement envoyer la facture, sans déclaration de sinistre.',\n },\n existing: {\n title: 'Sinistres existants',\n description:\n 'Si vous avez déclaré le sinistre sur cette plateforme, sélectionnez-le ci-dessous.',\n info:\n \"J'ai déclaré le sinistre par un autre moyen (ancien site Internet, e-mail, téléphone, etc.)\",\n disasters: 'Sinistres',\n noDisasters: \"Il n'y a pas encore de sinistre déclaré pour {{name}}.\",\n },\n title: {\n title: 'Intitulé du sinistre',\n description:\n \"Cette désignation vous permettra d'identifier rapidement le sinistre dans le dossier de {{name}}. Entrez des mots clés simples et clairs qui font référence au sinistre.\",\n shortDescription: 'Intitulé du sinistre',\n },\n existingDisasterTitle: {\n title: 'Intitulé du sinistre',\n description:\n \"Cette désignation vous permettra d'identifier rapidement le sinistre dans le dossier de {{name}}. Entrez des mots clés simples et clairs qui font référence au sinistre.\",\n shortDescription: 'Intitulé du sinistre',\n year: 'Année du sinistre',\n type: 'Type de sinistre',\n },\n diagnosticAccident: {\n title: 'Est-ce que votre vétérinaire a établi un diagnostic ?',\n description:\n \"Par diagnostic, on entend l'identification, par votre vétérinaire, de la nature de l'affection dont votre animal est atteint.\",\n diagnostic: 'Diagnostic du vétérinaire',\n },\n diagnosticIllness: {\n title: 'Est-ce que votre vétérinaire a établi un diagnostic ?',\n description:\n \"Par diagnostic, on entend l'identification, par votre vétérinaire, de la nature de l'affection dont votre animal est atteint.\",\n diagnostic: 'Diagnostic',\n symptomsOptionnal: 'Symptômes (optionnel)',\n symptoms: 'Symptômes',\n illnessStartLabel: 'Date de début des symptômes',\n },\n date: {\n title: \"Date et heure de l'accident\",\n description:\n \"Veuillez s.v.p. entrer la date et l'heure de l'accident de manière aussi précise que possible. Si l'accident ne s'est pas produit en votre présence, vous pouvez ajouter une approximation.\",\n date: 'Date de l’accident',\n hour: 'Heure',\n interval: 'Écart estimé',\n exact_time: 'heure exacte',\n in_hour: \"dans l'heure\",\n between_1_4: 'entre 1 et 4 heures',\n between_4_6: 'entre 4 et 6 heures',\n in_day: 'dans la journée',\n in_week: 'dans la semaine',\n dateTip:\n \"Si l'accident ne s'est pas produit en votre présence, vous pouvez ajouter une approximation\",\n },\n illnessTreatment: {\n title: 'Quelle est la thérapie prescrite ?',\n description:\n 'Par thérapie, on entend le traitement médical préconisé (y c. médicaments, pansements, bandages, examens complémentaires).',\n treatment: 'Thérapie prescrite',\n },\n howAccidentHappened: {\n title: \"Déroulement de l'accident\",\n description:\n 'Décrivez le déroulement le plus exactement que possible afin que nous puissions évaluer le cas le plus rapidement que possible.',\n howItHappened: 'Description précis du déroulement',\n },\n anyThirdParty: {\n title: \"Une tierce personne est-elle impliquée dans l'accident ?\",\n description:\n \"Par tierce personne, on entend tout être vivant (humain ou animal) ayant causé ou participé à l'accident.\",\n howItHappened: 'Déroulement précis de l’accident',\n known: \"Oui et je peux l'identifier\",\n unknown: \"Oui mais je ne sais pas qui c'est\",\n none: 'Non',\n knownTip:\n \"Une autre personne ou un animal a été impliqué dans l'accident et vous connaissez ses coordonnées de contact, respectivement ceux de son propriétaire.\",\n unknownTip:\n \"Une autre personne ou un animal (sauvage) a été impliqué dans l'accident mais vous n'avez aucune information de contact.\",\n noneTip:\n \"Aucune autre personne ou animal a été impliqué dans l'accident.\",\n },\n thirdParty: {\n title: 'Informations sur la tierce personne',\n description:\n 'Veuillez s.v.p. remplir, de la manière la plus exhaustive, les données de la personne impliquée. Si un autre animal a été impliqué, veuillez entrer les coordonnées de son/sa propriétaire.',\n lastname: 'Nom *',\n firstname: 'Prénom *',\n street: 'Adresse',\n number: 'No',\n zip: 'NPA',\n city: 'Localité',\n country: 'Pays',\n email: 'Adresse e-mail',\n phone: 'Numéro de téléphone',\n },\n comments: {\n title: 'Remarques',\n description:\n 'Toute information peut nous aider à reconstituer le cas et donc accélérer son traitement.',\n comment: 'Remarques (optionnel)',\n },\n summary: {\n title: 'Récapitulatif de la déclaration',\n description:\n \"Veuillez s.v.p. vérifier l'exactitude de votre déclaration. Vous pouvez encore la modifier en cliquant sur le stylo jaune à côté de chaque information.\",\n description2: 'Ensuite, veuillez confirmer et envoyer la déclaration.',\n cguAdditional:\n \"La soumission de l'annonce du sinistre et le traitement du sinistre sont soumis à la Déclaration relative à la protection des données de Vaudoise Assurances.\",\n cgu:\n 'Je certifie avoir fourni des réponses complètes et conformes à la réalité.',\n type: 'Type de sinistre',\n label: 'Titre du sinistre',\n comment: 'Remarques',\n symptoms: 'Symptômes',\n treatment: 'Thérapie prescrite',\n diagnosis: 'Diagnostic de votre vétérinaire',\n occurred_at: \"Date et l'heure de l'accident\",\n interval: 'Écart estimé',\n claim_year: 'Année',\n animal: 'Animal',\n sequence: 'Déroulement',\n third_party: 'Données tierce personne impliquée',\n third_party_status: 'Tierce personne impliquée',\n },\n },\n medicalFile: {\n add: {\n title: 'Dossier médical de {{name}}',\n description:\n \"S'il s'agit du tout premier sinistre que vous nous déclarez pour {{name}}, nous avons besoin de son dossier / historique médical fourni par votre vétérinaire. Pour gagner du temps et si vous êtes en sa possession, vous pouvez le télécharger ci-dessous.\",\n add: 'Ajouter dossier médical',\n addLater: 'Télécharger les documents plus tard',\n alreadyDone: \"Le dossier a déjà été envoyé ou je l'enverrai plus tard\",\n confirmImage: \"Confirmer le fichier ou l'image\",\n addImage: 'Ajouter un document',\n browse: 'Parcourir',\n dropFile: 'Déposer un fichier',\n maxPDF: \"Vous pouvez télécharger qu'un seul fichier pdf. Il peut contenir plusieurs pages.\",\n cantAddImageWhenThereAreAlreadyAPdf: \"Vous pouvez télécharger qu'un seul fichier pdf. Il peut contenir plusieurs pages.\",\n cantAddPDFWhenThereAreAlreadyImages: \"Vous pouvez ajouter uniquement des images. Si vous désirez ajouter un pdf, vous devez supprimer l'image déjà téléchargé.\",\n maxSizePDF: 'La taille maximum est de 6Mo',\n check:\n 'Veuillez s.v.p. vous assurer que tous les éléments du document soient bien visibles et lisibles.',\n rotate: 'Pivoter',\n delete: 'Supprimer',\n fileFormatNotSupported: 'Format non supportlé'\n },\n title: {\n title: 'Nom du document',\n description:\n \"Donnez un nom au document qui explique en un ou deux mot de quel document il s'agit.\",\n titleField: 'Nom du document',\n },\n summary: {\n title: 'Récapitulatif du dossier médical',\n animal: 'Animal',\n files: 'Fichiers',\n label_medicalFile: 'Nom du fichier',\n },\n },\n invoices: {\n invoiceTitle: 'Facture {{date}}',\n intro: {\n title: 'Téléchargez votre facture',\n description:\n 'Téléchargez un document PDF ou une ou plusieurs images. Validez chaque image après avoir contrôlé que tous les éléments sont bien visibles et lisibles (cliquez pour ceci sur la loupe jaune) et répétez ceci pour chaque page de la facture.',\n useExisting: 'Choisir une facture récemment téléchargée',\n later: 'Je vais envoyer mes factures plus tard',\n add: 'Ajouter une nouvelle facture',\n },\n existing: {\n title: 'Factures récemment téléchargées',\n description:\n \"Si vous avez récemment téléchargé la facture pour un autre sinistre ou animal, vous la trouverez ci-dessous. Un nouveau téléchargement n'est dans ce cas pas nécessaire.\",\n },\n details: {\n title: 'Montant total de la facture',\n description:\n 'A des fins de contrôle et de réconciliation, veuillez s.v.p. saisir le montant total T.T.C. de la facture téléchargée. Attention : Ne tenez pas compte du fait que la facture concerne plusieurs animaux ou sinistres, ou encore des traitements non-remboursés.',\n total: 'Total facture T.T.C.',\n invoiceSubject: 'Cette facture concerne également',\n many_pets: \"d'autres animaux\",\n many_disasters: \"d'autres sinistres\",\n vaccine_too: 'vaccins ou frais de prévention',\n },\n year: {\n title: 'Année de traitement',\n description: 'Dans quelle année est-ce que le traitement a eu lieu?',\n instruction: 'Vous pouvez choisir une ou plusieurs années.',\n },\n summary: {\n title: 'Récapitulatif de la facture',\n invoice: 'Facture',\n animal: 'Animal',\n amount: 'Montant T.T.C. de la facture',\n involves_multiple_pets: \"Concerne d'autres animaux\",\n involves_multiple_claims: \"Concerne d'autres sinistres\",\n involves_a_vaccine: 'Concerne des vaccins ou des frais de prévention',\n billing_years: 'Année de traitement',\n },\n confirmation: {\n title: 'Confirmation d’envoi',\n description:\n 'Vos données et documents concernant le sinistre \"{{disaster}}\" de {{name}} ont bien été envoyées à notre service des prestations.',\n delay: 'Le délai actuel de traitement est estimé au :',\n delayTip:\n \"Vous pouvez réduire ce délai au minimum en téléchargeant le dossier médical ainsi que les résultats d'analyse(s) dans le dossier médical de votre animal.\",\n delayNotice:\n 'Ce délai est à titre indicatif et dépendra des informations complémentaires nécessaires pour traiter la facture.',\n pleaseRepeat:\n 'Si les factures transmises concernent plusieurs animaux et/ou sinistres, merci de répéter la procédure autant de fois que nécessaire.',\n newInvoiceForThisPet: 'Autre facture pour {{name}}',\n newInvoiceForAnotherPet: 'Facture pour un autre animal',\n medicalFilesForThisPet: 'Dossier de {{name}}',\n backToMyPets: 'Retourner à \"Mes animaux\"',\n otherActions: 'Autres actions',\n sameInvoiceForAnotherPet: 'Même facture pour un autre animal',\n sameInvoiceForAnotherDisaster:\n 'Même facture pour un autre sinistre de {{name}}',\n },\n otherpets: {\n title: \"Qui d'autre est concerné par cette facture ?\",\n description:\n \"Veuillez sélectionner l'autre animal concerné par la facture. Si plusieurs autres animaux sont concernés, répétez la procédure ensuite autant de fois que nécessaire.\",\n },\n },\n edit: {\n title: \"Modifier l'assurance santé de {{name}}\",\n description:\n \"Vous pouvez nous annoncer tout changement concernant l'assurance Animalia ci-dessous. Si vous ne trouvez pas ce que vous cherchez, veuillez nous contacter par e-mail à animalia@vaudoise.ch.\",\n },\n documents: {\n title: 'Dossier de {{name}}',\n description:\n 'Si le sinistre a été enregistré sur cette plateforme, vous le trouverez ci-dessous.',\n tip:\n 'Si, par le passé, vous avez déclaré un sinistre en utilisant notre ancien site web, par e-mail ou par téléphone, il ne sera pas répertorié sur la liste ci-dessous. Il vous faut revenir en arrière et choisir l\\'option \"Un sinistre existant déclaré par un autre moyen\".',\n help:\n \"J'ai déclaré le sinistre, mais il n'apparait pas dans la liste ci-dessous.\",\n medicalFilesAreBeingProcessedTitle:\n \"Le dossier médical de {{name}} est en train d'être transmis à notre service des prestations.\",\n medicalFilesAreBeingProcessedDescription:\n 'Nous vérifions votre document. Il sera affiché ici sous peu.',\n filesAreBeingProcessedTitle:\n \"La facture de {{name}} est en train d'être transmise à notre service des prestations.\",\n filesAreBeingProcessedDescription:\n 'Nous vérifions votre document. Il sera affiché ici sous peu.',\n\n sinisters: 'Sinistres de {{name}}',\n medicalFiles: 'Dossier médical de {{name}}',\n noDocuments: \"Il n'y a encore pas de dossier médical pour {{name}}\",\n noDisasters: \"Il n'y a encore pas de sinistre déclaré pour {{name}}\",\n declareSinister: 'Déclarer un sinistre',\n addMedicalFiles: 'Ajouter des documents au dossier médical',\n medicalFile: 'Dossier médical',\n seeMedicalFiles: 'Consulter le dossier médical',\n xImages: '{{count}} image',\n xImages_plural: '{{count}} images',\n vaccines: 'Vaccins et frais de prévention',\n },\n claimDocument: {\n description: '',\n amount: 'Montant de la facture',\n billing_years: 'Année de traitement',\n estimated_processing_time: 'Date de traitement prévisionnel',\n },\n asideSummary: {\n amount: 'Total facture T.T.C.',\n involves_multiple_pets: \"Concerne d'autres animaux\",\n involves_multiple_claims: \"Concerne d'autres sinistres\",\n involves_a_vaccine: 'Concerne des vaccins ou frais de prévention',\n billing_years: 'Année de traitement',\n type: 'Type de sinistre',\n label: 'Titre du sinistre',\n label_medicalFile: 'Titre du document',\n comment: 'Remarques',\n symptoms: 'Symptômes',\n third_party_status: 'Tierce personne impliquée',\n treatment: 'Thérapie prescrite',\n diagnosis: 'Diagnostic',\n occurred_at: 'Date et heure',\n interval: 'Écart estimé',\n claim_year: 'Année',\n animal: 'Animal',\n sequence: 'Déroulement précis',\n third_party: 'Données de la tierce personne impliquée',\n },\n vaccines: {\n title: 'Vaccins ou frais de prévention',\n },\n deleteModal: {\n title: 'Supprimer le document',\n description:\n 'Une fois supprimé, vous ne pourrez plus retrouver le document. Êtes-vous sûr de bien vouloir continuer ?',\n actionYes: 'Oui, supprimer le document',\n actionNo: \"Non, j'aimerais garder ce document\",\n },\n address: {\n my_details_change: 'Changement d\\'adresse pour l\\'assurance',\n change_address_for: 'Changer cette adresse également pour',\n change_for_all: 'Tous mes animaux et leur service',\n change_for_pet: 'Les livraisons Abo Gourmand de'\n },\n owner: {\n owner_change: 'Transfert de propriétaire de',\n owner_needed_details: 'Veuillez s.v.p. remplir les données de la nouvelle ou du nouveau propriétaire. Afin que {{ name }} soit toujours couvert, nous allons la/le contacter afin de lui soumettre une nouvelle offre d\\'assurance.',\n contact_new_owner: 'A quelle date est-ce que le changement de propriétaire aura lieu ?',\n transfer_pet: 'Transférer aussi le propriétaire de',\n transferred_at: 'Date du changement de propriétaire',\n keep_insurance: 'Est-ce que le nouveau propriétaire souhaite conserver l\\'assurance Animalia ?'\n },\n bank_details: {\n my_bank_details_change: 'Changement de coordonnées bancaires',\n my_bank_details_description: 'Veuillez saisir ici le code IBAN de votre compte sur lequel vous désirez recevoir les remboursements.'\n }\n};\n","module.exports = {\n privacyPolicy: 'https://www.animalia.ch/privacy-policy',\n cgv: 'https://www.animalia.ch/conditions-generales-de-vente',\n cgu: 'https://www.animalia.ch/conditions-generales-d-utilisation',\n insurance: {\n changeOwner:\n 'https://assurance.animalia.ch/_files/content/pdf/chgmt_de_detenteur_fr.pdf',\n changeBank:\n 'https://assurance.animalia.ch/fr/contact/transmission-de-coordonnees-bancaires-ou-postales',\n sinister:\n 'https://assurance.animalia.ch/fr/contact/declaration-de-sinistre',\n changeAddress:\n 'https://assurance.animalia.ch/fr/contact/changement-d-adresse-ou-de-nom',\n },\n contact: 'https://www.animalia.ch/contact'\n};\n","module.exports = {\n calculatorTitle: 'Assurance de santé',\n calculatorDescription: 'Calculez en trois clics la prime d\\'assurance pour votre compagnon à quatre pattes',\n petSpecies: '',\n petAgeCategory: 'Âge', // Dropdown, selection d'âge\n ageCategory: 'âgé de', // InsuranceType Step suptitle / format: {{ pet_species }} âgé de {{ pet_age_category }}\n offerSent: 'Nous vous avons envoyé un e-mail avec l\\'offre.', //ce texte n'est plus utilisé, juste? c'est maintenant thanks et offer_in_mailbox?\n conditions: 'En demandant une offre ou en concluant en ligne, Vaudoise Assurances traite vos données personnelles sur des serveurs en Allemagne pour la création, le stockage et la mise à disposition en ligne de l\\'offre, et aux Etats-Unis (par Mandrill de MailChimp) pour l\\'envoi des courriels et les analyses statistiques et de performance y relatives. Vos données sont effacées dans les trente jours suivant une deuxième relance infructueuse. Ces informations complètent la Déclaration relative à la protection des données personnelles de Vaudoise Assurances qui est applicable au surplus.',\n thanks: 'Merci pour votre demande d\\'offre', // titre remerciement aprs envoie de l'offre depuis le widget\n offer_in_mailbox: 'Nous vous avons envoyé un e-mail avec le lien sur l\\'offre pour {{pet_name}}. Vous pourrez prendre connaissance des détails de l\\'offre (prestations, primes, conditions) et l\\'imprimer ou directement conclure l\\'assurance.', // @Calvin\n plus_8_warning: 'Votre animal a déjà plus de 8 ans. Veuillez svp prendre note du fait que les maladies déjà existantes avant la conclusion de l\\'assurance ne seront pas assurées.',\n yearsRange: {\n u2: '3 mois à 2 ans',\n u4: '3 ans à 4 ans',\n u6: '5 ans à 6 ans',\n u8: '7 ans à 8 ans',\n u10: '9 ans à 10 ans',\n u12: '11 ans à 12 ans',\n o13: '13 ans et plus'\n },\n race: {\n suptitle: 'Race et lieu de résidence',\n pet_mixed: 'Croisée', \n pet_breed: 'Pure race',\n pet_unknown: 'Inconnue',\n breed: 'Race',\n breed_2: 'Deuxième Race',\n zipcode: 'Code postal',\n city: 'Lieu'\n },\n navigation: {\n goToInsuranceStep: 'Calculer la prime',\n submitFromInsuranceStep: 'Conclure l\\'assurance',\n sendOfferByEmail: 'Recevoir l\\'offre par e-mail',\n prev: 'Changer les critères',\n next: 'Suivant',\n ok: 'Retour au calculateur', // TODO: label du bouton de la page de remerciement après envoie de l'offre depuis le widget, Karin: dès que le bouton menera à la landingpage de l'offre, le texte sera: 'Voir l'offre\n seeOffer: 'Voir l\\'offre'\n },\n user: {\n petName: 'Nom de l\\'animal',\n lastName: 'Votre nom *',\n firstName: 'Votre prénom *',\n emailAddress: 'Adresse e-mail',\n phoneNumber: 'Numéro de téléphone',\n },\n offer_conclusion_1: 'Vous pourrez prendre connaissance des détails de l\\'offre pour {{pet_name}} (prestations, primes, conditions) et l\\'imprimer ou directement conclure l\\'assurance en ligne.',\n offer_conclusion_2: 'PS: Nous vous avons également envoyé un e-mail avec le lien sur l\\'offre.'\n}","module.exports = {\n pet: {\n add_pet: 'Ajouter un animal',\n add_pet_caption: 'Faisons plus ample connaissance',\n species: 'Animal',\n dog: 'Chien',\n cat: 'Chat',\n gender: 'Sexe',\n male: 'Mâle',\n female: 'Femelle',\n select_pet: 'Quel animal souhaitez-vous assurer ?',\n select_pet_description:\n 'Sélectionnez-le ci-dessous ou créez un nouveau profil.',\n portrait: 'Données de votre animal',\n portrait_caption: '',\n name: \"Nom usuel de l'animal\",\n name_long: \"Nom usuel de l'animal\",\n birthdate: 'Sa date de naissance',\n birthdate_tip: 'Nous assurons les animaux dès 3 mois.',\n is_pure_breed: '',\n race: 'Race',\n pet_mixed: 'Croisée', // si c'est le titre en dessus des 3 possibilités (pure race, croisééée, inconnue) --> enlever\n pet_breed: 'Pure race',\n pet_not_breed: 'Croisée',\n pet_unknown: 'Inconnue',\n fill_two_races: '',\n fill_race: 'Renseigner la race',\n first_race: 'Première race',\n second_race: 'Deuxième race',\n which_pet_weight: 'Poids approximatif en kg',\n weight: \"Poids à l'âge adulte en kg\",\n chipped: 'Est-il pucé ?',\n chip_number: 'Numéro de la puce (Recommandé)',\n pet_age_calcul_info:\n 'L\\'âge de l\\'animal est calculé comme suit : \"Année actuelle\" - \"Année de naissance\" (par ex. 2023 - 2017 = 6)',\n },\n insurance: {\n protection: 'Assurance',\n protection_type: 'Couverture',\n classic_condensed: 'Classic',\n comfort_condensed: 'Comfort',\n compact_condensed: 'Compact',\n compact: 'Animalia Compact',\n compact_description: \"Couverture en cas d'accidents\",\n classic: 'Animalia Classic',\n classic_description:\n \"Couverture en cas d'accidents et de maladies aigues et chroniques\",\n comfort: 'Animalia Comfort',\n comfort_description:\n \"Couverture en cas d'accidents et de maladies aigues, chroniques, héréditaires ou congénitales\",\n select_protection: '',\n franchise: 'Franchise',\n insurance: 'Assurance',\n payment: 'Paiement',\n select_payment: '',\n annual: 'Annuel',\n annual_cost: 'Prime annuelle totale',\n biannual: 'Semestriel',\n month: 'mois',\n monthly: 'Semestriel',\n monthly_cost: 'Prime mensuelle indicative',\n monthly_cost_info: 'Prime mensuelle indicative',\n monthly_cost_tip: '',\n quarterly: 'Trimestriel',\n enters_in_force_at: 'Début du contrat',\n agent_code: 'Code agent',\n agency_tip:\n 'Si vous avez droit à une réduction, celle-ci sera directement déduite de votre facture.',\n agency: 'Code promo',\n my_details: 'Vos coordonnées',\n needed_details: '',\n new_address: 'Ajouter une adresse',\n plan_not_available:\n \"Cette couverture n'est pas disponible avec cette franchise\",\n are_you_pet_keeper:\n \"Êtes-vous le détenteur de l'animal ou prenez-vous l'assurance pour une personne tierce ?\",\n im_keeper: \"Je suis le détenteur de l'animal\",\n im_not_keeper: \"Je prends une assurance pour l'animal de quelqu'un d'autre\",\n refund_account: 'Compte pour les remboursements',\n no_iban: 'No IBAN',\n bank_name: 'Nom de la banque',\n bic: '',\n keeper_address: 'Adresse du détenteur', // Titre de champ lié à \"Adresse\"\n line: 'Adresse', // Titre de champ lié à \"Adresse\"\n line_2: \"Complément d'adresse\", // Titre de champ lié à \"Adresse\"\n zip_code: 'Code postal', // Titre de champ lié à \"Adresse\"\n city: 'Localité', // Titre de champ lié à \"Adresse\"\n conclude: \"Conclure l'assurance\",\n insurance_of: \"L'assurance de\",\n insurance_owner: \"Preneur d'assurance\",\n complete_profile: 'Compléter le profil',\n offer_page_description: 'offer_page_description Lorem Ipsum....', //c'est quoi, ce texte? Il est affiché où?\n concluded_description: 'concluded_description Lorem Ipsum....', //c'est quoi, ce texte? Il est affiché où?\n offer_already_concluded:\n 'Cette offre a été conclu entre-temps. Vous ne pouvez plus la conclure.',\n offer_concluded_line:\n '{{pet_name}} fait maintenant partie de la communauté Animalia et nous sommes à vos côtés.',\n offer_concluded_line_2:\n \"Vous recevrez votre police d'assurance et un bulletin de versement dans les prochains jours par courrier postal. Vous pourrez alors déclarer les sinistres et envoyer les factures pour {{pet_name}} par le biais de votre compte client Animalia.\",\n offer_concluded_line_3:\n 'Pour vous remercier de votre confiance, nous sommes heureux de vous offrir des bons de réduction et de vous proposer des offres partenaires pour le bien de votre boule de poil et pour vous-même.',\n offer_banner_cta: 'Rejoignez la communauté Animalia',\n offer_fressnapf: 'Télécharger le bon MAXI ZOO',\n assistance: 'Assistance 24/7',\n assistance_btn: \"Découvrir l'Assistance 24/7\",\n assistance_link: 'https://shop.animalia.ch/product/assistance-24-7/',\n assistance_title:\n \"Une assistance 24/7 pour une tranquillité d'esprit totale\",\n assistance_desc:\n \"Pour seulement CHF 79.- supplémentaire par année, vous profitez d'une assistance permanente pour répondre à vos questions médicales, urgentes, ou administratives concernant votre animal. De plus vous bénéficiez de couverture d'assurance complémentaire comme par exemple les frais de transports de l'animal en cas d'urgence. Ne manquez pas cette occasion et découvrez tout sur l'assistance 24/7.​\",\n assistance_desc_sale:\n \"Il est temps maintenant de profiter de la Promotion d'hiver. Utilisez le code rabais pour bénéficier de cette offre avec le code rabais*\",\n offer_shop: 'Télécharger le bon pour notre shop Animalia',\n offer_fressnapf_url:\n 'https://prismic-io.s3.amazonaws.com/animalia/694a1fa9-f0bd-4b9f-85c4-a453f826a6cc_22-10-019_animalia_gutschein_130x85_fr_lay_v1_020222_5.pdf',\n offer_shop_url:\n 'https://prismic-io.s3.amazonaws.com/animalia/08ef4fc2-3668-4295-b8a9-eb88f5f27593_21_ANIMALIA_SHOP_FLYER_A7_FR.pdf',\n tonivet_label: 'Télécharger le bon pour les croquettes Tonivet',\n tonivet_link:\n 'https://shop.animalia.ch/croquettes-tonivet-lexcellence-veterinaire/',\n cga:\n 'J’ai pris connaissance des Conditions générales d\\'assurance (CGA), les accepte et je comprends que les primes évoluent avec l’âge de mon animal.',\n cga_1:\n 'Je déclare avoir répondu en toute sincérité aux questions qui précèdent, afin de valider légalement le contrat Animalia avec la Vaudoise.',\n cga_2:\n \"Je donne mon accord à la Vaudoise pour le traitement des renseignements fournis dans le cadre de la gestion du contrat, notamment en cas de sinistre. Je l'autorise à les transmettre si nécessaire aux réassureurs ou d'autres assureurs, ainsi qu'à recueillir des renseignements auprès de ces derniers ou de tiers.\",\n breed_tip: 'Les deux parents de votre animal sont de la même race',\n bastard_tip: 'Les parents de votre animal sont de races différentes',\n unknown_tip:\n \"Les parents de votre animal résultent d'un croisement de trois races ou plus, ou vous ne connaissez pas les races\",\n federal_timber_of: 'Timbre fédéral 5% de',\n surprime: 'Frais paiement fractionné',\n annual_cost_basic: 'Prime annuelle de base',\n client: 'Le client',\n not_complete: \"Offre d'assurance en cours\",\n waiting:\n \"Votre proposition d'assurance a été envoyée avec succès. Vous allez voir ici le numéro de votre police ces prochains jours.\",\n fill_offer: \"Voir l'offre en cours et la finaliser\",\n login_title: 'Avez-vous déjà un compte Animalia ?',\n login_description:\n \"Pour terminer la conclusion de votre assurance, vous devez vous connecter ou créer un compte client Animalia. Vous aurez ainsi accès à vos conclusions en cours et aux informations relatives à votre contrat d'assurance. De plus, votre compte client vous permettra par la suite de nous transmettre en tout temps les factures de traitement de votre boule de poil.\",\n login_yes: \"Oui, j'ai déjà un compte client\",\n login_no: \"Non, je n'ai pas encore de compte client\",\n save_success:\n 'La conclusion a été transférée avec succès. Le·la client·e recevra la police ces prochains jours.',\n num: 'No.',\n api_found: 'Adresse validée par la Poste Suisse',\n api_not_found:\n \"Cette adresse n'est pas répertoriée par la Poste Suisse. Veuillez svp entrer une adresse valable.\",\n start_date: 'Début du contrat',\n end_date: \"Fin du contrat (renouvellement tacite d'année en année)\",\n cga_min: 'CGA',\n maintenance_title: 'Maintenance',\n maintenance_description:\n \"Nous vous informons que la conclusion online n'est pas disponible en ce moment jusqu'à minuit environ. Ceci est dû à une maintenance d'un service de la poste utilisé pour la validation de votre adresse postale.\",\n maintenance_button: 'Demander une offre',\n discount_hotelcard_link: 'https://hotelcard.com/fr/animalia-30',\n discount_hotelcard_label: \"Découvrez l'offre exclusive Hotelcard\",\n discount_nab_title: \"50% sur les cours de 1er secours pour chien\",\n discount_nab_description: \"

Soyez prêts à réagir en cas d'urgence avec la formation Nothelfer am Bahnhhof.

\",\n discount_nab_code: 'Utilisez le Code: {{code}}',\n discount_nab_cta_label: 'Profitez de l\\'offre',\n discount_nab_link: 'https://elearning.nothelferambahnhof.ch/course/erste-hilfe-hund-e-learning',\n discount_hc_title: 'Jusqu\\'à 50% de réduction sur les hôtels en Suisse',\n discount_hc_description: \"

Séjournez dans plus de 500 des meilleurs hôtels de Suisse et des pays voisins avec jusqu'à 50% de rabais par nuitée en fonction des disponibilités.

\",\n discount_hc_cta_label: 'Profitez de l\\'offre',\n discount_hc_link: 'https://hotelcard.com/fr/animalia-30',\n discount_tractive_title: 'Recevez un collier GPS gratuit pour chat et chien!',\n discount_tractive_description: \"

Avec Tractive, suivez ses aventures en temps réel et assurez sa sécurité partout et à tout moment.

\",\n discount_tractive_code: 'Utilisez le code: {{code}}',\n discount_tractive_cta_label: 'Profitez de l\\'offre',\n },\n error: {\n general: 'Veuillez remplir le champ',\n no_special_char: 'Ce champ ne peut pas contenir de caractères spéciaux',\n max_128: 'Ce champ ne peut pas contenir plus de 128 caractères',\n invalid_date: 'Veuillez sélectionner une date valide',\n min_18: \"Vous devez être âgé d'au minimum 18 ans\",\n pet_species_required: \"Veuillez sélectionner un type d'animal\",\n pet_gender_required: 'Veuillez sélectionner le genre de votre animal',\n pet_name_required: 'Veuillez remplir le nom usuel de votre animal',\n pet_birthdate_required:\n 'Veuillez sélectionner la date de naissance de votre animal',\n pet_is_purebred_required: 'Veuillez indiquer si votre animal est de race',\n pet_two_races_known_required:\n 'Veuillez indiquer si vous connaissez les deux races de votre compagnon',\n pet_animal_id_required: 'Veuillez sélectionner une race',\n pet_weight_required:\n 'Veuillez indiquer le poids approximatif en kg de votre compagnon',\n pet_weight_number_required: 'Veuillez indiquer un poids valide',\n insurance_franchise_required:\n 'Veuillez sélectionner le montant de franchise désiré',\n insurance_type_required: 'Veuillez sélectionner la couverture souhaitée',\n insurance_payment_frequency_required:\n 'Veuillez sélectionner la fréquence de paiement souhaitée',\n insurance_enters_in_force_at_required:\n 'Veuillez entrer la date du début du contrat souhaitée',\n title_required: 'Veuillez sélectionner un titre',\n first_name_required: 'Veuillez entrer votre prénom',\n last_name_required: 'Veuillez entrer votre nom de famille',\n line_required: 'Veuillez entrer votre adresse',\n __code_required: 'Veuillez entrer un code postal',\n city_required: 'Veuillez entrer une ville',\n birthdate_required: 'Veuillez entrer une date de naissance',\n holder_phone_required: 'Veuillez entrer un numéro de téléphone',\n bank_not_found:\n \"La banque n'a pas été trouvée. Veuillez remplir les champs manuellement.\",\n iban_required:\n 'Veuillez entrer votre no IBAN (ex. CH80 00000 0000 0000 0000 0)',\n iban_invalid:\n 'Votre no. IBAN est invalide (ex. CH80 00000 0000 0000 0000 0)',\n bank_name_required: 'Veuillez indiquer le nom de votre banque',\n bic_required: '',\n bank_address_required: '',\n bank___code_required: 'Veuillez entrer le code postal de votre banque',\n bank_city_required: 'Veuillez entrer la ville de votre banque',\n max_char_4: 'Le code agent est constitué de 4 chiffres',\n email_required: '', // TODO: Karin, chand d'erreur au caus un l'utilisteur n'insert pas d'email (widget)\n email_invalid: 'Ce champ doit être un email valide.',\n more_char: 'Ce champs doit contenir au minimum 2 caractères.',\n firstname_error: \"Le prénom n'est pas valide\",\n lastname_error: \"Le nom n'est pas valide\",\n uppercase: 'La première lettre doit être en majuscule',\n all_uppercase: 'Ce champs ne peut pas contenir que des majuscules',\n wrong_iban:\n \"Ce no IBAN n'est pas valable. Veuillez svp corriger la saisie.\",\n zip_code_required: 'Veuillez entrer un code postal',\n only_one_uppercase: 'Ce champs doit contenir uniquement une majuscule',\n no_special_case: 'Ce champs ne doit pas contenir de caractères spéciaux',\n },\n navigation: {\n calculate: 'Calculer la prime',\n submit_offer: \"Conclure l'assurance\",\n send_offer_by_email: \"Recevoir l'offre par email\",\n next: 'Suivant',\n },\n};\n","module.exports = {\n holder: \"Preneur d'assurance\",\n pet_type: \"Type d'animal\",\n age_category: \"Catégorie d'âge de l'animal\",\n quote_part: 'Quote part',\n quote_part_tip:\n 'Une fois la franchise atteinte, Animalia prend en charge 90 % des frais. Le 10 % restant est à votre charge',\n quote_part_value: '10%',\n franchise_title: 'Franchise et quote part',\n insurance_prime: \"Prime d'assurance\",\n tooltip_compact_fix: \"Prime fixe, quel que soit l'âge\",\n prestations: 'Prestations par année civile',\n prestations_tip: '(selon les conditions générales)',\n medical_cost_coverage: 'Couverture des frais médicaux',\n medical_cost_coverage_value: 'Illimité',\n prevention_cost: 'Frais de prévention',\n prevention_cost_tip: 'hors franchise et quote-part',\n prevention_cost_value: 'CHF 100.-',\n alt_medicinal: 'Médecines alternatives',\n alt_medicinal_value: 'CHF 600.-',\n housing_cost: 'Frais de logement',\n housing_cost_value: 'CHF 200.-',\n investment_cost: 'Frais de placement',\n investment_cost_value: 'CHF 150.-',\n freight_cost: 'Frais de transport',\n freight_cost_value: 'CHF 100.-',\n waiting_period: 'Délai de carence',\n accident: 'Accident',\n accident_value: 'Aucun',\n illness: 'Maladie',\n illness_value: '30 jours',\n compact_title_description:\n 'Avec Animalia Compact, vous avez choisi la bonne formule !',\n classic_title_description:\n 'Avec Animalia Classic, vous avez choisi la bonne formule !',\n comfort_title_description:\n 'Avec Animalia Comfort, vous avez choisi la bonne formule !',\n description_classic: `Couverture en cas d'accidents et de maladies aigues et chroniques`, // TODO: @Calvin la description est différente pour compact et comfort. CLASSIC\n description_comfort: `Couverture en cas d'accidents et de maladies aigues, chroniques, héréditaires ou congénitales`, // TODO: @Calvin la description est différente pour compact et comfort. COMFORT\n description_compact: `Couverture en cas d'accidents`, // TODO: @Calvin la description est différente pour compact et comfort COMPACT\n conditions_title: 'Conditions applicables',\n conditions_description: 'Conditions Générales Animalia, Edition 1.11.2021',\n conditions_url:\n 'https://prismic-io.s3.amazonaws.com/animalia/7c3008e5-cd69-4b3f-beef-b249c413c4e6_CGA_Animalia_2021_F_WEB.pdf',\n conditions_info:\n \"Attention! Les maladies préexistantes ne sont pas prises en charge (cf. Art. B5 des conditions générales d'assurance)\",\n law_application:\n \"

L'adaptation de la prime à la classe d'âge supérieure s'opère le 1er janvier de l'année où l'animal atteint l'âge de trois, respectivement cinq, sept, neuf, onze et treize ans.

\",\n offer_validity: \"Validité de l'offre\",\n offer_validity_description:\n \"Cette offre est établie sur la base des indications en notre possession. Elle reste valable jusqu'au {{validity_date}}.\", // TODO: @Calvin Cette date doit être calculée -> date de la création de l'offre + 90 jours\n offer_conclusion_2:\n 'Assurez {{pet_name}} dès maintenant pour de longues années de sérénité.', // TODO: @Calvin nom de l'animal a ajouter dynamiquement\n go_further: \"Je l'assure !\",\n print: \"Imprimer l'offre\",\n federal_timber: 'Timbre fédéral',\n federal_timber_tip:\n \"Le timbre fédéral s'applique à la prime annuelle (y compris les suppléments éventuels pour paiement fractionné).\",\n total: 'Prime annuelle totale',\n};\n","module.exports = {\n myaccount: 'Espace Client Animalia',\n 'create-ag': {\n title: 'Calculer un Abo Gourmand',\n subtitle: 'Pour lequel de vos boules de poils aimeriez-vous calculer un Abo Gourmand ?',\n cta: 'Calculer son Abo Gourmand'\n },\n 'edit-ag': {\n title: 'Modifier l\\'Abo Gourmand',\n subtitle: 'Pour lequel de vos boules de poils aimeriez-vous modifier l\\'Abo Gourmand ?',\n cta: 'Modifier son Abo Gourmand'\n },\n 'calculate-insurance': {\n title: 'Calculer l\\'assurance santé',\n subtitle: 'Pour lequel de vos boules de poils aimeriez-vous calculer une assurance santé ?',\n cta: 'Calculer son assurance'\n },\n 'declare-sinister': {\n title: 'Déclaration d\\'un sinistre',\n subtitle: 'Pour lequel de vos boules de poils aimeriez-vous déclarer un sinistre ?',\n cta: 'Déclarer le sinistre'\n },\n 'send-invoice': {\n title: 'Remboursement d\\'une facture',\n subtitle: 'Pour lequel de vos boules de poils aimeriez-vous nous envoyer une facture pour remboursement ?',\n cta: 'Envoyer la facture'\n },\n 'edit-insurance': {\n title: 'Modification de l\\'assurance',\n subtitle: 'Pour lequel de vos boules de poils aimeriez-vous modifier l\\'assurance santé ?',\n cta: 'Modifier son assurance'\n },\n};\n","module.exports = {\n title: \"Éleveur\",\n breederSpace: \"Espace éleveur\",\n login: {\n createBreederAccount:\n \"Créer un compte éleveur\",\n },\n species: {\n cat: \"Chat\",\n dog: \"Chien\",\n },\n personal_data: {\n breeder_infos: \"Informations éleveur\",\n personal_data: \"Données personnelles\",\n social_reason: \"Raison sociale\",\n social_reason_label:\n \"Nom de l’élevage resp. raison sociale\",\n races: \"Races\",\n breeding: \"Élevage\",\n tel: \"Téléphone\",\n email: \"E-mail\",\n message: \"Message\",\n send_request: \"Envoyer la demande\",\n },\n confirmation: {\n askSent:\n \"Votre demande a été envoyée avec succès\",\n askSentMessage:\n \"Nous vous contacterons dès que possible\",\n backToHome: \"Retour à l'accueil\",\n },\n declined: {\n askDeclined: \"Demande refusée\",\n askDeclinedMessage:\n \"Votre demande a malheureusement été refusée car elle ne correspond pas à l'ensemble de nos critères d'acceptation.

Nous en sommes sincèrement désolés.\",\n backToHome: \"Retour à l'accueil\",\n },\n dashboard: {\n myBreederSpace: \"Mon espace éleveur\",\n myCoordinates: \"Mes coordonnées\",\n myAttestations: \"Mes attestations\",\n breeding: \"Élevage\",\n race: \"Race\",\n address: \"Adresse\",\n conventionNumber: \"Numéro de convention\",\n email: \"E-mail\",\n howToEdit:\n \"Comment modifier mes informations ?\",\n client: \"Client\",\n petName: \"Nom de l'animal\",\n attestationNumber: \"Numéro d'attestation\",\n insuranceDate: \"Date d'assurance\",\n attestation: \"Attestation\",\n cga: \"CGA\",\n declareNewPet: \"Déclarer un nouvel animal\",\n howEditCertificate:\n \"Comment modifier une attestation ?\",\n doWantEditACertificate:\n \"Voulez-vous modifier une attestation ?\",\n editCertificateInformations:\n \"Pour modifier une attestation merci de nous contacter à l’adresse suivante breeders@animalia.ch en indiquant le numéro de l’attestation concernée, les modifications à faire et les raisons des modifications.\",\n doWantEditInformations:\n \"Vous souhaitez modifier les données de votre élevage?\",\n editInformations:\n \"Afin de modifier les données de votre élevage, merci de nous contacter à breeders@animalia.ch\",\n },\n certificates: {\n myClient: \"Mon client\",\n theyPet: \"Son animal\",\n title: \"Titre\",\n mr: \"Monsieur\",\n mrs: \"Madame\",\n communicationLanguage:\n \"Langue de communication\",\n firstname: \"Prénom\",\n lastname: \"Nom\",\n email: \"Email\",\n birthdate: \"Date de naissance\",\n pet: \"Animal\",\n petName: \"Nom de l'animal\",\n race: \"Race\",\n exitDate: \"Date de sortie\",\n gender: \"Genre\",\n male: \"Mâle\",\n female: \"Femelle\",\n dog: \"Chien\",\n cat: \"Chat\",\n createCertificate: \"Créer l'attestation\",\n cga1: \"L'éleveur déclare être formellement autorisé par son client à transmettre les informations ci-dessus à la Vaudoise\",\n cga2: \"Attention une fois validée, l'attestation ne peut être modifiée que par Animalia\",\n created:\n \"Votre attestation a été créée avec succès.\",\n createdMessage:\n \"Vous la trouverez dans votre compte éleveur.\",\n backToBreederSpace:\n \"Retour à mon espace éleveur\",\n petNameAlreadyExist:\n \"Un animal avec ce nom existe déjà\",\n petBirthdateTooOldMax120Days:\n \"La date de naissance de l'animal doit être inférieure à 120 jours\",\n petExitDateMax120DaysBirthdate:\n \"La date de sortie de l'animal doit se trouver dans les 120 jours qui suivent sa naissance.\",\n petBirthdateMin6Months: \"La date de naissance de l'animal doit être supérieure à 6 mois\",\n petExitDateMax56DaysBirthdate: \"La date de sortie de l'animal doit se trouver dans les 56 jours qui suivent sa naissance.\",\n petExitDateMax180DaysBirthdate: \"La date de sortie de l'animal doit se trouver dans les 180 jours qui suivent sa naissance.\",\n petNameTip: \"Nom de l'animal attribué par le client\",\n },\n};","module.exports = {\n or: 'oder',\n add: 'Neu',\n save: 'Speichern',\n send: 'Senden',\n edit: 'Ändern',\n delete: 'Löschen',\n previous: 'Zurück',\n next: 'Weiter',\n iAcceptCGU: 'Ich akzeptiere die',\n CGV: 'Allgemeinen Geschäftsbedingungen (AGB)',\n CGU: ' Allgemeinen Nutzungsbedingungen (ANB)',\n privacy_policy: 'Datenschutzbestimmungen',\n missingData: 'Fehlende Information',\n readmore: 'Mehr erfahren',\n yes: 'Ja',\n no: 'Nein',\n close: 'Schliessen',\n back: 'Zurück',\n backToAnimals: 'Zurück zu \"Mein Rudel\"',\n draft: 'Noch nicht gespeichert',\n calculating: 'Berechnung läuft',\n allfeesincluded: 'Steuern und Versandkosten inbegriffen',\n finished: 'Fertig',\n printOrder: 'Bestellung ausdrucken',\n deliveries: 'Nächste Lieferungen',\n plannedDeliveries: 'Nächste Lieferungen',\n previousDeliveries: 'Vergangene Lieferungen',\n batchID: 'Bestellnummer',\n status: 'Status',\n verify: 'Prüfen',\n year: 'Jahr',\n month: 'Monat',\n day: 'Tag',\n months: {\n 1: 'Januar',\n 2: 'Februar',\n 3: 'März',\n 4: 'April',\n 5: 'Mai',\n 6: 'Juni',\n 7: 'Juli',\n 8: 'August',\n 9: 'September',\n 10: 'Oktober',\n 11: 'November',\n 12: 'Dezember',\n },\n immediately: 'Sofort',\n informations: 'Informationen',\n aboGourmand: 'Gourmet-Abo',\n theAboGourmand: 'Das Gourmet-Abo',\n theInsurance: 'Die Versicherung',\n administrative: 'Administrative Änderung',\n missingAddress: 'Keine Adresse vorhanden.',\n missingAddressFor: 'Es gibt keine registrierte Adresse für {{name}}.',\n missingCard: 'Kein Zahlungsmittel vorhanden.',\n fix: 'Problem korrigieren',\n cancel: 'Abbrechen',\n confirm: 'Bestätigen',\n fillIn: 'Ausfüllen',\n wantToKnowMore: 'Möchten Sie mehr erfahren?',\n moreDetails: 'Mehr Infos',\n date: 'Datum',\n service: 'Service',\n noResults: 'Kein Ergebnis',\n required: 'Obligatorisches Feld',\n your_comment: 'Bemerkungen',\n\n cardIsFailing: 'Fehler',\n twintAccount: 'Twint-Konto',\n powerpayAccount: 'Bezahlung auf Rechnung (PowerPay)',\n\n oldbrowser: {\n title: 'Uuups! Ihr Webbrowser ist nicht aktuell.',\n text:\n 'Für mehr Sicherheit und ein besseres Nutzererlebnis auf unserer Webseite empfehlen wir Ihnen, Ihren Webbrowser zu aktualisieren oder einen anderen Browser zu verwenden.',\n button: 'OK, ich aktualisiere meinen Browser',\n },\n\n weDidNotReceiveYourPayment:\n 'Wir haben Ihre Zahlung für diese Bestellung nicht erhalten.',\n contactUs: 'Kontakt',\n powerpay: {\n title: 'Bitte überprüfen Sie Ihre Zahlungsangaben',\n subtitle:\n 'Sie erhalten die Rechnung kostenlos per Email. Mit Kauf auf Rechnung akzeptieren Sie die AGB von POWERPAY (powerpay.ch/de/agb), vorausgesetzt ist eine gültige Email Adresse.',\n next: 'Bezahlen',\n cancel: 'Abbrechen',\n },\n other: 'Andere',\n};\n","module.exports = {\n btnAdd: 'Tier hinzufügen',\n yourPets: 'Mein Rudel',\n yourPetServices: '{{name}}s Services',\n yourPetAbogourmand: '{{name}}s Gourmet-Abo',\n yourPetAssistance: '{{name}}s Tierhilfe',\n animal: 'Tier',\n cat: 'Katze',\n dog: 'Hund',\n size: 'Grösse',\n gender: 'Geschlecht',\n female: 'Weibchen',\n male: 'Männchen',\n animalTitle: 'Tier hinzufügen',\n animalEditTitle: 'Tier ändern',\n animalDescription: 'Stellen Sie uns Ihren vierbeinigen Freund vor.',\n\n passportTitle: 'Animalia Steckbrief',\n passportDescription: 'Beschreiben Sie uns Ihren Lieblings-Feinschmecker!',\n itsName: 'Name',\n noNameYet: 'Kein Name',\n bornOn: 'Geburtsdatum',\n birthdate: 'Geburtsdatum',\n breed: 'Rasse',\n breedDescription:\n 'Rassenrein oder nicht, wir wissen, wie sehr Sie Ihn lieben! ',\n weight: 'Gewicht',\n catofbreed: 'Rassenkatze',\n dogofbreed: 'Rassenhund',\n kgWeight: 'Gewicht im Erwachsenenalter in kg',\n kgWeightMaxError: 'Bitte wählen Sie ein Gewicht unter 100 kg',\n adultWeightTitle: 'Gewicht im Erwachsenenalter',\n adultWeightDescription:\n 'Seine Gesundheit lässt sich nicht in Zahlen fassen. Verraten Sie uns trotzdem, was auf der Waage steht?',\n chooseBreed: 'Rasse auswählen',\n dogBastard: 'Mischling',\n catBastard: 'Hauskatze',\n\n activityTitle: 'Jedem sein Rhythmus',\n activityDescription: 'Sportskanone oder Schlafmütze? Er ist eher...',\n activityLevel: 'Aktivität',\n passive: 'Wenig aktiv',\n passiveDescription:\n 'Eher Sofa als Hunderennen – Ihr Vierbeiner bleibt auch gerne einfach mal gemützlich zu Hause.',\n normal: 'Gemässigt aktiv',\n normalDescription:\n 'Er spielt schon gerne mal mit einer Schnur oder holt auch mal Stöckchen – Ihr Liebling mag Bewegung, wenn’s nicht zu anstrengend ist!',\n active: 'Sportskanone',\n activeDescription:\n 'Lange Spaziergänge oder Dauerlauf – Ihr Vierbeiner bringt Sie so richtig ins Schwitzen.',\n\n sterilizedTitle: 'Kastriert?',\n sterilizedDescription: 'Wurde Ihr Begleiter kastriert?',\n sterilizedYes: 'Ja (Jautsch!)',\n sterilized: 'Kastriert',\n nonSterilized: 'Nicht kastriert',\n\n foodTypeStepTitle: 'Kroketten',\n foodTypeTitle: 'Menu à la Carte',\n foodTypeDescription:\n 'Erzählen Sie uns ein bisschen mehr zu den Essensgewohnheiten Ihres Leckermäulchens.',\n standard: 'Standard',\n standardHelp:\n 'Ihr Gastronom auf Pfoten leidet weder an Allergien noch an speziellen Intoleranzen? Er wird unsere Kroketten lieben! 100% natürlich, garantiert ohne Zusatzstoffe und vor allem glutenfrei – damit er auch in Zukunft so unkompliziert bleiben kann.',\n sensitive: 'Sensibel',\n sensitiveHelp:\n 'Ihr Fellfreund ist ein wählerischer Geniesser mit sensiblem Magen? Wir haben genau was er braucht: ein feines, ausgewogenes Menu für eine sanfte Verdauung.',\n grainfree: 'Grain-free',\n 'grain-free': 'Grain-free',\n grainfreeHelp:\n 'Ihr vierbeiniger Begleiter ist auf Getreide allergisch oder hat Probleme, sie zu verdauen? Unsere Grain-free-Kroketten versorgen ihn trotzdem mit allen Nähr- und Ballaststoffen, die er braucht.',\n\n productStepTitle: 'Produkt wählen',\n productTitle: 'Napf füllen (mit Liebe und Kroketten)',\n productDescription:\n 'Egal, welcher Geschmack, unsere Kroketten sind zum Fressen gut. Sie müssen nur noch entscheiden, was er am liebsten hat.',\n\n adjustQuantityStepTitle: 'Menge anpassen',\n adjustQuantityTitle: 'Zu Tisch!',\n adjustQuantityDescription:\n 'Willkommen {{name}}! Wir sind hocherfreut, ihn kennenzulernen! Nach Ihren Informationen und in Zusammenarbeit mit unserem tierärztlichen Ernährungsberater, der unsere Kroketten in- und auswendig kennt, empfehlen wir Ihnen folgende Tagesration:',\n adjust80Comment:\n 'Ui, da bleibt aber nicht mehr viel übrig! Ergänzen Sie sein Futter mit anderen Nahrungsmitteln? Aufgepasst, eine mehr als 20% kleinere Tagesration kann zu Mangelerscheinungen und Unterernährung führen und der Gesundheit Ihres vierbeinigen Freunds nachhaltig schaden. Sollen wir nicht doch ein paar Kroketten mehr für Ihren Liebling einpacken?',\n adjust90Comment:\n 'Ihr vierbeiniger Mitbewohner isst wie ein Vögelchen? Vielleicht gibt’s hin und wieder auch was anderes als unsere feinen Kroketten? Dann verringern Sie die empfohlene Menge um 10%. Achten Sie aber darauf, dass die Tagesration eingehalten wird und ergänzen Sie das Futter nach seinen Vorlieben.',\n adjust100Comment:\n 'Exakt die empfohlene Portion! Aber Sie kennen ihn besser als jeder andere: Zögern Sie nicht, Ihre Anpassungen vorzunehmen',\n adjust110Comment:\n 'Sie haben ein grosses Leckermaul oder einen Supersportler? Erhöhen Sie seine Tagesration um 10%. Aber nicht übertreiben, gell?',\n adjust120Comment:\n 'Das ist aber eine Menge Futter! Geben Sie Acht, eine mehr als 20% grössere Tagesration kann zu Übergewicht führen und der Gesundheit Ihres vierbeinigen Freunds nachhaltig schaden. Versuchen wir’s mit ein bisschen weniger Kroketten und dafür mit einer Extraportion Liebe?',\n\n summaryTitle: 'Das Gourmet-Abo',\n monthlyPrice: 'Preis pro Monat',\n\n upTo4kg: 'bis 4kg',\n between4and6kg: 'zwischen 4kg und 6kg',\n between6and8kg: 'zwischen 6kg und 8kg',\n from8kg: 'ab 8kg',\n\n // summary screen\n nextDeliveryDate: 'Nächste Lieferung',\n nextDeliveryOn: 'Bitte wählen Sie das Datum der ersten Lieferung',\n deliveryFrequency: 'Häufigkeit der Lieferungen',\n deliveredEachXDays: 'Alle {{days}} Tage',\n deleteOrderFor: 'Das Gourmet-Abo von {{name}} kündigen',\n product: 'Produkt',\n dailyQuantity: 'Tägliche Menge',\n order: 'Weiter zur Bestellung',\n\n // details and listing screens\n backToMyPets: 'Zurück zu meinen Tieren',\n deletePet: 'Profil von {{name}} löschen',\n byDeletingPetItWillCancelLinkedServices:\n 'Bitte beachten Sie, dass die Gesundheitsversicherung von {{name}} (falls vorhanden) nicht gekündigt wird, wenn Sie sein / ihr Profil löschen.',\n reasonOfDeletion: 'Grund für die Löschung',\n myPetIsDead: 'Mein Tier ist verstorben',\n notInterrestedAnymore: 'Ich bin nicht mehr interessiert',\n thisPetCantBeDeleted:\n 'Sie können das Profil von {{name}} nicht löschen, da noch mindestens ein Animalia-Service aktiv ist:',\n reasonAbo: 'aktives Gourmet-Abo oder eine noch ausstehende Lieferung',\n reasonAssurance: \"Animalia Gesundheitsversicherung\",\n // my account\n itsAbo: 'Sein Abo',\n calculate: 'Berechnen Sie das Gourmet-Abo Ihres vierbeinigen Freundes',\n calculateAgain: 'Berechnen Sie das Gourmet-Abo neu',\n petDataHasChanged: 'Die Angaben von {{name}} haben geändert',\n seeOrderDetails: 'Gourmet-Abo ansehen',\n seeInsuranceSettings: \"Verbindung mit der Animalia Gesundheitsversicherung löschen\",\n hasNoAccount: '{{name}} hat noch kein Gourmet-Abo',\n hasNoInsurance: '{{name}} hat noch keine Gesundheitsversicherung registriert',\n itsInsurance: 'Die Gesundheitsversicherung von {{name}}',\n policeNumber: 'Police Nr.',\n petDataHasChangedExtended:\n 'Das Profil von {{name}} wurde geändert. Wir empfehlen Ihnen, das Gourmet-Abo neu zu berechnen, damit wir das Produkt und die Menge an seine Bedürfnisse anpassen können.',\n receiveOffer: 'Offerte für die Versicherung erhalten',\n askForEstimate: 'Verlangen Sie eine Offerte',\n calculator: 'Prämienrechner',\n hasNoOrder: '{{name}} hat noch kein Abonnement',\n adjustOrder: 'Möchten Sie das Abonnement von {{name}} anpassen?',\n petHasRemainingDeliveries:\n 'Achtung: {{name}} hat noch offene Zahlungen und/oder Lieferungen.',\n newAbo: 'Ein neues Abo erstellen',\n temporaryDisabled: 'Aus technischen Gründen können Sie Fallanmeldungen und Rechnungen momentan nicht in der App übermitteln. In der Zwischenzeit reichen Sie bitte Ihre Rechnungen einfach über Ihr Konto auf unserer Webseite ein: ',\n petRaceSearchPlaceholder: 'Suchen',\n noInsurance: '{{name}} hat noch keine Versicherung',\n noAssistance: '{{name}} hat noch keine Assistance 24/7',\n};\n","module.exports = {\n yourPetAssistance: 'Die Assistance 24/7 von {{name}}',\n policeNumber: 'Police Nr. {{number}}',\n noAssistanceSubtitle: '{{name}} hat noch keine Animalia Assistance 24/7',\n cga: 'AVB',\n contractStartDate: 'Vertragsbeginn',\n contractEndDate: 'Vertragsablauf (stillschweigende Verlängerung um jeweils ein Jahr)',\n callHelpLine: 'Die Infoline 24/7 anrufen',\n declareSinister: 'Einen Assistance-Fall für {{name}} melden',\n deleteAssistance: 'Animalia Assitance 24/7 von {{name}} kündigen',\n moreInformations: 'Mehr Infos zu Animalia Assistance 24/7',\n createAssistance: 'Animalia Assistance 24/7 abschliessen für CHF 79.- /Jahr ',\n policy: \"Versicherungspolice Assistance 24/7\",\n moreInformationsLink: ' https://www.animalia.ch/de/service/assistance',\n createAssistanceLink: 'https://shop.animalia.ch/de/product/assistance-24-7/',\n deleteAssistanceLink: 'mailto:contact@animalia.ch',\n callHelpLineLink: 'tel:+41225937326',\n declareSinisterLink: 'https://shop.animalia.ch/de/mon-compte/declaration-de-sinistre/',\n}","module.exports = {\n myPets: 'Mein Rudel',\n myProfile: 'Mein Profil',\n logout: 'Ausloggen',\n};\n","module.exports = {\n error: 'Fehler',\n warning: 'Achtung',\n\n apiError: 'Es gab ein Fehler während der Verarbeitung ihrer Anfrage.',\n fieldValidationError: 'Ein oder mehrere Felder sind ungültig.',\n\n petNotFound: 'Das Tier wurde nicht gefunden',\n petsNotFound: 'Es wurde kein Tier gefunden',\n\n insuranceNumberDelete: {\n title: 'Verbindung mit der Policennummer von {{name}} trennen',\n content:\n 'Achtung : Sie trennen lediglich die Verbindung mit der Policennummer von {{name}}. Der Versicherungsvertrag bleibt bestehen. Falls Sie diesen kündigen möchten, tun Sie dies bitte gemäss den Allgemeinen Versicherungsbedingungen (AVB).',\n },\n\n card: {\n cancelled: 'Zahlung abgebrochen',\n error: 'Bitte prüfen Sie die Informationen Ihres Zahlungsmittels.',\n },\n\n latePayment: {\n title: 'Ups, Sie haben noch eine offene Rechnung!',\n content:\n 'Eine Rechnung ist noch offen. Bitte bezahlen Sie diese bevor Sie ein neues Gourmet-Abo abschliessen.',\n },\n\n quitWarning: {\n title: 'Möchten Sie das Formular wirklich verlassen?',\n description:\n 'Wenn Sie zurück zu ‘{{destination}}’ gehen, verlieren Sie alle Ihre Eingaben.',\n continue: 'Formular verlassen',\n cancel: 'Auf der Seite bleiben',\n },\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WidgetFormField_container__Tl07x\",\"centered\":\"WidgetFormField_centered__1dhXD\",\"hFill\":\"WidgetFormField_hFill__3Mqsv\",\"stretch\":\"WidgetFormField_stretch__1QU75\",\"border\":\"WidgetFormField_border__MTLGr\",\"validate\":\"WidgetFormField_validate__6CFbw\",\"tip\":\"WidgetFormField_tip__1UyIY\",\"error\":\"WidgetFormField_error__34k1R\",\"unknown\":\"WidgetFormField_unknown__2mZIS\",\"disabled\":\"WidgetFormField_disabled__19xaM\",\"hasComponent\":\"WidgetFormField_hasComponent__79DJB\",\"close\":\"WidgetFormField_close__2C1wD\",\"loading\":\"WidgetFormField_loading__sXqie\",\"MOVE-BG\":\"WidgetFormField_MOVE-BG__3-k2D\"};","module.exports = {\n deliveryAddress: 'Lieferadresse',\n billingAddress: 'Rechnungsadresse',\n defineNewAddress: 'Neue Adresse erfassen',\n addNewCard: 'Kredit- oder PostFinancekarte erfassen',\n addNewTwint: 'Twint-Konto erfassen',\n addNewPowerPay: 'PowerPay-Konto erfassen',\n paymentMethod: 'Zahlungsmittel',\n firstname: 'Vorname *',\n lastname: 'Name *',\n line1: 'Adresse *',\n line2: 'Adresszusatz',\n zipcode: 'PLZ *',\n city: 'Ortschaft *',\n state: 'Kanton',\n country: 'Land',\n thisIsThesePetsHouse: 'Dies ist das Haus von',\n};\n","module.exports = {\n nextDeliveryOn: 'Nächste Lieferung am {{date}}',\n date: 'Lieferdatum',\n dateRecurring: 'Möchten Sie auch die zukünftigen Lieferungen anpassen?',\n dateSelector: 'Wählen Sie bitte das neue Lieferdatum',\n address: 'Lieferadresse',\n editDeliveryDateFor: 'Lieferdatum für {{name}} ändern',\n adjustAllDates: 'Ja, für alle zukünftigen Lieferungen anpassen.',\n adjustOneDate: 'Nein, ich möchte nur diese eine Lieferung anpassen.',\n\n status: {\n pending: 'Ausstehend',\n planned: 'In Vorbereitung',\n failed: 'Fehler',\n cancelled: 'Abgebrochen',\n refunded: 'Zurückerstattet',\n standby: 'Zahlung ausstehend',\n 'payment-on-hold': 'Zahlung ausstehend',\n 'completed-paid': 'Versandt',\n 'completed-unpaid': 'Versandt',\n 'completed-refunded': 'Versandt',\n },\n editLater: 'Geben Sie hier bitte Ihre Lieferadresse an. Und falls Sie mal innerhalb der Schweiz verreisen oder Ihren vierbeinigen Freund bei Nachbarn oder Freunden lassen, ist das kein Problem: Sie können die Lieferadresse jederzeit in Ihrem Kundenkonto anpassen, auch für nur eine einzige Lieferung. Praktisch, oder?',\n paymentMessage: 'Nur noch ein Klick und Ihr Fellknäuel kann sich über seine neuen, leckeren Kroketten freuen. Keine Sorge! Sie können das Abo jederzeit wieder in Ihrem Kundenkonto oder bei unserem Kundenservice kündigen.

Kontaktieren Sie uns bei Fragen zu den Zahlungsmitteln oder falls Sie Hilfe bei der Zahlung benötigen.'\n};","module.exports = {\n firstDeliveryDate: 'Erste Lieferung am',\n lastDelivery: 'Letzte Lieferung am',\n selectLastDelivery: 'Wählen Sie Ihre letzte Lieferung aus',\n validateDate: 'Bestätigen Sie das Datum',\n deleteOrder: 'Kündigen',\n cancelled: 'Gourmet-Abo aufgehoben',\n couponCodeLabel: 'Vorteilscode',\n couponCodePlaceholder: 'Ihr Vorteilscode',\n invalidCoupon: 'Vorteilscode nicht gültig',\n editOrder: 'Abonnement ändern',\n showAllProducts: 'Andere Sorten anzeigen',\n showRecommandedProducts: 'Nur empfohlene Produkte anzeigen',\n notRecommendedTooltip: 'Selbstverständlich dürfen Sie diese Kroketten bestellen. Gemäss Ihren Angaben empfehlen wir Ihnen jedoch ein anderes Produkt.',\n confirmModification:\n 'Durch die Anpassungen Ihres Gourmet-Abos hat der Preis geändert. Bitte bestätigen Sie, dass Sie damit einverstanden sind.',\n couponDetailsUnlimited: 'Sie profitieren von {{discount}} Ermässigung.',\n couponDetails:\n 'Sie profitieren von {{discount}} Ermässigung während {{months}} Monaten. Danach passen wir den Preis automatisch an den Standardpreis an.',\n priceWithoutDiscount: '(Preis ohne Rabatt: {{price}})',\n payAmount: '{{price}} bezahlen',\n error: {\n pleaseAcceptTerms: 'Bitte akzeptieren Sie die Allgemeinen Geschäftsbedingungen',\n pleaseChooseADeliveryDate: 'Bitte wählen Sie das erste Lieferdatum',\n },\n pricePerMonth: 'Preis pro Monat',\n price: 'Preis',\n totalPricePerMonth: 'Total Preis pro Monat',\n discount: 'Rabatt',\n thankyou: {\n title: 'Merci und herzliche Gratulation!',\n text:\n 'Vielen Dank, dass Sie sich für das Gourmet-Abo entschieden haben! Ihr Vierbeiner leckt sich schon jetzt die Lefzen und dankt Ihnen ebenfalls, dass Sie die richtige Wahl getroffen haben. Ihre Bestellung ist validiert und wir beginnen gleich, sein Festmahl mit qualitativen und proteinreichen Zutaten zuzubereiten. Das leckere Paket trifft in den nächsten Tagen bei Ihnen zu Hause ein. Wir freuen uns, Sie in unserer Pfoten-Lover-Community begrüssen zu dürfen!',\n button: 'Meine Bestellung ansehen',\n subText:\n 'Haben Sie eine Frage? Wir beantworten sie gerne online via Live-Chat oder per Telefon unter der Nummer 0800 815 915.',\n },\n mfgroupErrorUnavailable: \"Sie können dieses Zahlmittel im Moment nicht benutzen. Bitte wählen Sie ein anderes Zahlmittel aus.\",\n addPaymentMethodError: \"Dieses Zahlmittel ist nicht gültig. Bitte geben Sie ein anderes Zahlmittel ein.\"\n};\n","module.exports = {\n noInvoices: 'Keine Rechnungen vorhanden',\n noInvoicesDescription: 'In Ihrem Konto sind noch keine Rechnungen vorhanden.',\n refno: 'Bestellung',\n total: 'Preis',\n\n paymentModal: {\n successTitle: 'Vielen Dank für Ihre Zahlung',\n successMessage: 'Wir haben Ihre Zahlung erhalten und danken Ihnen dafür.',\n failureTitle: 'Ups! Zahlung fehlgeschlagen',\n failureMessage: 'Ihr Zahlungsmittel scheint nicht zu funktionieren. Bitte registrieren Sie ein anderes Zahlungsmittel und probieren Sie es danach nochmals.',\n },\n payNow: 'Jetzt bezahlen',\n closeFaildModal: 'Nicht jetzt',\n payementMethod: 'Anderes Zahlungsmittel hinzufügen',\n status: {\n pending: 'Ausstehend',\n failed: 'Fehler',\n completed: 'Bezahlt',\n 'no-default-card': 'Kein Zahlmittel gespeichert',\n refunded: 'Zurückerstattet',\n },\n};\n","module.exports = {\n myAccount: 'Mein Konto',\n editMyProfile: 'Mein Profil ändern',\n title: 'Anrede *',\n firstName: 'Vorname *',\n firstAndLastName: 'Anrede & Vorname *',\n lastName: 'Name *',\n email: 'E-Mail *',\n phone: 'Telefonnummer',\n home_phone: 'Festnetz',\n mobile_phone: 'Mobiltelefon',\n birthdate: 'Geburtsdatum',\n subscribeToMailchimp:\n \"Ich möchte den Newsletter von Animalia erhalten (Tipps, Gewinnspiele, Angebote, News usw.)\",\n subscribeToMailchimpInfo:\n \"Mit dem Abonnieren des Newsletters akzeptieren Sie unsere Datenschutzrichtlinien und die für den Versand des Newsletters notwendige Weitergabe von Daten an Dritte.\",\n mrs: 'Frau',\n mr: 'Herr',\n locale: 'Sprache *',\n myPets: 'Mein Rudel',\n seeMyPets: 'Mein Rudel ansehen',\n myInsurance: 'Meine Versicherung',\n declareSinister: 'Einen Leistungsfall melden',\n sendInvoice: 'Eine Behandlungsrechnung einreichen',\n editInsurance: 'Meine Versicherung ändern',\n myAboGourmand: 'Meine Gourmet-Abo',\n editMyAboGourmand: 'Mein Gourmet-Abo ändern',\n editMyData: 'Meine Daten verwalten',\n myInvoices: 'Meine Rechnungen Gourmet-Abo ',\n myInvoicesText: 'Ihre letzten Transaktionen auf einen Blick',\n myCards: 'Meine Zahlungsmittel Gourmet-Abo',\n myCardsText: 'Ihr elektronisches Portemonnaie',\n myAddresses: 'Meine Lieferadresse Gourmet-Abo',\n myAddressesText: 'Name, Vorname und Lieferadresse',\n modalEditMyAddressTitle: 'Lieferandresse ändern',\n logout: 'Logout',\n delete: {\n button: 'Mein Animalia-Konto löschen',\n title: 'Animalia-Konto löschen',\n content:\n 'Wenn Sie Ihr Animalia-Konto löschen, werden alle damit verbundenen Daten (Ihre Daten und die Daten Ihrer Tiere) gelöscht. Wir können diese danach nicht wiederherstellen und Sie müssen ein neues Konto erstellen. Sind Sie sicher, dass Sie das möchten?',\n confirm: 'Ja, ich lösche meine Daten',\n cancel: 'Nein, ich behalte mein Konto',\n },\n};\n","module.exports = {\n BACK_TO_SIGN_IN: 'Zurück zum Login',\n CHANGE_PASSWORD: 'Passwort ändern',\n CHANGE_PASSWORD_ACTION: 'Ändern',\n CODE_LABEL:\n 'Geben Sie hier bitte den Code ein, den wir Ihnen per E-Mail gesandt haben',\n CODE_PLACEHOLDER: 'Code eingeben',\n CONFIRM: 'Bestätigen',\n CONFIRM_SIGN_UP_CODE_LABEL: 'Code bestätigen',\n CONFIRM_SIGN_UP_CODE_PLACEHOLDER: 'Bitte geben Sie Ihren Code ein',\n CONFIRM_SIGN_UP_HEADER_TEXT: 'Anmeldung bestätigen',\n CONFIRM_SIGN_UP_LOST_CODE: 'Code verloren?',\n CONFIRM_SIGN_UP_RESEND_CODE: 'Neuen Code senden',\n CONFIRM_SIGN_UP_SUBMIT_BUTTON_TEXT: 'Bestätigen',\n CONFIRM_SMS_CODE: 'SMS Code bestätigen',\n CONFIRM_TOTP_CODE: 'TOTP Code bestätigen',\n CREATE_ACCOUNT_TEXT: 'Konto erstellen',\n EMAIL_LABEL: 'E-Mailadresse *',\n EMAIL_PLACEHOLDER: 'E-Mailadresse eingeben',\n EMAIL_ERROR: 'Bitte geben Sie eine gültige E-Mailadresse ein',\n FORGOT_PASSWORD_TEXT: 'Passwort vergessen?',\n LESS_THAN_TWO_MFA_VALUES_MESSAGE: 'Weniger als zwei mfa-Typen verfügbar',\n NEW_PASSWORD_LABEL: 'Neues Passwort',\n NEW_PASSWORD_PLACEHOLDER: 'Neues Passwort festlegen',\n NO_ACCOUNT_TEXT: 'Noch kein Animalia-Konto?',\n PASSWORD_LABEL: 'Passwort *',\n PASSWORD_PLACEHOLDER: 'Bitte geben Sie Ihr Passwort ein',\n PHONE_LABEL: 'Telefonnummer *',\n PHONE_PLACEHOLDER: '79 555 55 55',\n QR_CODE_ALT: 'QR-Code',\n RESET_PASSWORD_TEXT: 'Passwort zurücksetzen',\n RESET_YOUR_PASSWORD: 'Bitte setzen Sie Ihr Passwort zurück',\n SELECT_MFA_TYPE_HEADER_TEXT: 'MFA-Typ auswählen',\n SELECT_MFA_TYPE_SUBMIT_BUTTON_TEXT: 'Überprüfen',\n SEND_CODE: 'Code senden',\n SETUP_TOTP_REQUIRED: 'TOTP muss konfiguriert werden',\n SIGN_IN_ACTION: 'Einloggen',\n SIGN_IN_HEADER_TEXT: 'Login Animalia-Konto',\n SIGN_IN_TEXT: 'Einloggen',\n SIGN_IN_WITH_AMAZON: 'Login mit Amazon',\n SIGN_IN_WITH_AUTH0: 'Login mit Auth0',\n SIGN_IN_WITH_AWS: 'Login mit AWS',\n SIGN_IN_WITH_FACEBOOK: 'Login mit Facebook',\n SIGN_IN_WITH_GOOGLE: 'Login mit Google',\n SIGN_OUT: 'Ausloggen',\n SIGN_UP_EMAIL_PLACEHOLDER: 'E-Mail',\n SIGN_UP_HAVE_ACCOUNT_TEXT: 'Haben Sie schon ein Animalia-Konto?',\n SIGN_UP_HEADER_TEXT: 'Neues Konto erstellen',\n SIGN_UP_PASSWORD_PLACEHOLDER: 'Passwort',\n SIGN_UP_SUBMIT_BUTTON_TEXT: 'Animalia-Konto erstellen',\n SIGN_UP_ALREADY_BUTTON_TEXT: 'Ich habe schon ein Konto',\n SIGN_UP_USERNAME_PLACEHOLDER: 'Benutzername',\n SUCCESS_MFA_TYPE: 'Ihr MFA Typ ist jetzt:',\n TOTP_HEADER_TEXT: 'Scannen und geben Sie den Überprüfungscode ein',\n TOTP_LABEL: 'Geben Sie den Sicherheitscode ein:',\n TOTP_SETUP_FAILURE: 'TOTP Setup hat nicht geklappt',\n TOTP_SUBMIT_BUTTON_TEXT: 'Sicherheits-Token überprüfen',\n TOTP_SUCCESS_MESSAGE: 'TOTP-Setup war erfolgreich!',\n UNABLE_TO_SETUP_MFA_AT_THIS_TIME: 'MFA konnte nicht konfiguriert werden',\n USERNAME_LABEL: 'Benutzername *',\n USERNAME_PLACEHOLDER: 'Benutzernamen eingeben',\n VERIFY_CONTACT_EMAIL_LABEL: 'E-Mail',\n VERIFY_CONTACT_HEADER_TEXT:\n 'Für die Wiederherstellung des Animalia-Kontos brauchen wir überprüfte Kontaktinformationen',\n VERIFY_CONTACT_PHONE_LABEL: 'Telefonnummer',\n VERIFY_CONTACT_SUBMIT_LABEL: 'Schicken',\n VERIFY_CONTACT_VERIFY_LABEL: 'Überprüfen',\n PASSWORD_HELP:\n 'Mindestens 8 Zeichen mit mindestens einer Zahl, einem Grossbuchstaben, einem Kleinbuchstaben und einem Sonderzeichen.',\n checkFormat:\n 'Bitte stellen Sie sicher, dass das Passwort den Minimalanforderungen entspricht',\n checkFormatPhone: 'Bitte überprüfen Sie das Format der Telefonnummer',\n personnalInfo: 'Persönliche Informationen',\n connectWithGoogle: 'Login mit Google',\n signinWithGoogle: 'Login mit Google',\n connectWithFacebook: 'Login mit Facebook',\n signinWithFacebook: 'Login mit Facebook',\n connectWithApple: 'Login mit Apple',\n signinWithApple: 'Login mit Apple',\n\n /**\n * Cognito error messages\n */\n error: 'Ein Fehler ist aufgetreten',\n AliasExistsException:\n 'Diese E-Mail-Adresse existiert bereits. Bitte loggen Sie sich ein oder wählen Sie eine andere Adresse.',\n errorEmailAlreadyExists:\n 'Diese E-Mail-Adresse existiert bereits. Bitte loggen Sie sich ein oder wählen Sie eine andere Adresse.',\n Userdoesnotexist: 'Der Benutzer oder das Passwort ist falsch.',\n Incorrectusernameorpassword: 'Der Benutzer oder das Passwort ist falsch.',\n Usernameclientidcombinationnotfound:\n 'Diese E-Mail-Adresse ist bei uns nicht registriert.',\n Invalidverificationcodeprovidedpleasetryagain: 'Ungültiger Bestätigungscode.',\n Anaccountwiththegivenemailalreadyexists:\n 'E-Mail-Adresse oder Passwort ungültig.',\n Invalidemailaddressformat: 'Die E-Mail-Adresse ist ungültig',\n Cannotresetpasswordfortheuserasthereisnoregisteredverifiedemailorphonenumber:\n 'Ihr Konto wurde nie bestätigt. Darum können Sie leider das Passwort nicht zurücksetzen.',\n verificationSentTitle: \"Bestätigen Sie die neue E-Mailadresse\",\n verificationSentAgain: 'Der Code wurde an Ihre neue E-Mailadresse gesendet.',\n uneditableBecauseLinkedToYourSocialAccount: 'können diese Information nicht ändern, da sie an Ihr Social Media-Konto gebunden ist.',\n uneditableBecauseLinkedToYourSocialAccountAlt: 'Sie haben sich mit einem Social Login (Google, Fabebook, Apple) mit Animalia verbunden. Deshalb können Sie Ihre Daten nicht hier ändern. Bitte ändern Sie diese direkt in Ihrem Google-, Facebook- oder Applekonto.'\n};\n","module.exports = {\n conclusionTitle: 'Vielen Dank für Ihre Mitteilung',\n conclusionMsg: 'Wir haben Ihre Anfrage an die Vaudoise Versicherung weitergeleitet. Die Änderung wird in den nächsten Tagen vorgenommen.',\n deleteNumber: 'Die Verbindung mit dieser Policennummer trennen',\n changeBankData: 'Die Bankverbindung für Rückerstattungen ändern',\n changeAddress: 'Adresse ändern für die Versicherung',\n changeOwner: '{{name}} wechselt seinen Besitzer',\n declareSinister: 'Leistungsfall melden für {{name}}',\n not_complete: 'Sie sind dabei, eine Versicherungsofferte zu erstellen',\n waiting: 'Ihr Versicherungsantrag wurde erfolgreich übermittelt. Hier wird in den nächsten Tagen Ihre Policennummer angezeigt.', \n noContractNumberSubtext:\n ' {{name}} hat noch keine verbundene Gesundheitsversicherung',\n ContractNumberSubtext: 'Police Nr. {{police}}',\n addContractNumber:\n 'Policennummer der bestehenden Animalia Gesundheitsversicherung eingeben',\n addContractNumberDescription:\n 'Um Ihr Animalia-Konto mit der Animalia-Gesundheitsversicherung Ihres Vierbeiners zu verbinden, geben Sie hier bitte seine vollständige Policennummer ein (ohne Leerschläge).',\n addContractNumberPopupTitle:\n 'Bitte geben Sie die Policennummer der Animalia-Gesundheitsversicherung von {{name}} ein.',\n addContractNumberFieldLabel: 'Animalia Policennummer',\n contractNotFound:\n 'Diese Policennummer existiert nicht. Bitte geben Sie die Nummer auf Ihrer Versicherungspolice ein, die auf 330x endet.',\n petNameMismatch:\n 'Ups, diese Policennummer gehört nicht zu Ihrem Tier oder sein Name stimmt nicht mit dem auf seiner Versicherungspolice überein. Sie finden den bei uns registrierten Namen und die Policennummer auf Ihrer Versicherungspolice.',\n contractUpdated:\n 'Der Versicherungsvertrag von Ihrem Tier ist jetzt mit seinem Profil verbunden.',\n apiConnectionError:\n 'Die Verbindung zu den Systemen der Animalia Versicherung wird gerade gewartet. Bitte versuchen Sie es später nochmals (Could not connect to API).',\n unauthorized:\n 'Die Verbindung zu den Systemen der Animalia Versicherung wird gerade gewartet. Bitte versuchen Sie es später nochmals (api call unauthorized).',\n apiError:\n 'Die Verbindung zu den Systemen der Animalia Versicherung wird gerade gewartet. Bitte versuchen Sie es später nochmals (api error).',\n serverError:\n 'Die Verbindung zu den Systemen der Animalia Versicherung wird gerade gewartet. Bitte versuchen Sie es später nochmals (server error).',\n undefined:\n 'Dies ist keine gültige Policennummer. Bitte geben Sie die Nummer auf Ihrer Versicherungspolice ein, die auf 330x endet.',\n checkPolicyNumber:\n 'Dies ist keine gültige Policennummer. Bitte geben Sie die Nummer auf Ihrer Versicherungspolice ein, die auf 330x endet.',\n\n comment: '---THE FOLLOWING STRINGS ARE NEW ---',\n addInvoice: 'Eine Rechnung für {{name}} senden',\n addDocumentButton: 'Dokument hinzufügen',\n addInvoiceButton: 'Rechnung hinzufügen',\n addClaimButton: 'Neuer Leistungsfall',\n petFiles: '{{name}}s Dossier',\n editInsurance: 'Formulare für eine Versicherungsänderung (Adresse, IBAN, Tierhalter)',\n invoicedOn: 'Rechnung vom {{date}}',\n xInvoices: '{{count}} Rechnung',\n xInvoices_plural: '{{count}} Rechnungen',\n steps: {\n disaster: 'Leistungsfall',\n medicalFile: 'Krankenakte',\n invoice: 'Rechnung',\n },\n types: {\n vaccine: 'Impfungen oder Präventionskosten',\n health: 'Krankheit oder andere Fälle',\n accident: 'Unfall',\n external: 'Offline gemeldet',\n },\n disaster: {\n illnessTip:\n 'Deklarieren Sie bitte unter Krankheit alle Fälle von Krankheit, Kastration, Zahnsteinentfernung, Kremierung und alle anderen Fälle, die nicht ein Unfall sind.',\n intro: {\n title: 'Um welche Art von Leistungsfall handelt es sich?',\n description:\n 'Falls die Rechnung mehrere Leistungsfälle oder Tiere betrifft, geben Sie bitte einen Fall nach dem anderen ein. Wiederholen Sie den Prozess so oft wie nötig.',\n new: 'Neuer Leistungsfall',\n existing: 'Bereits deklarierter Leistungsfall',\n vaccine: 'Impfungen oder Präventionskosten',\n },\n type: {\n title: 'Um welche Art von Leistungsfall handelt es sich?',\n description:\n 'Bitte wählen Sie aus, ob es sich um einen Unfall, um eine Krankheit oder um einen anderen Fall handelt.',\n description2:\n 'Achtung: Für Impfungen oder andere Präventionskosten (Kastration oder Sterilisation, Zahnsteinentfernung, Entwurmung und vom Tierarzt verschriebene Futterergänzugsmittel) müssen Sie keinen Leistungsfall deklarieren.',\n accident: 'Unfall',\n illness: 'Krankheit oder andere Fälle',\n vaccine: 'Sie können uns direkt die Rechnung senden.',\n illnessTip:\n 'AVB 2019 und vorher: Deklarieren Sie bitte unter Krankheit alle Fälle von Krankheit, Kastration, Zahnsteinentfernung, Kremierung und alle anderen Fälle, die nicht ein Unfall sind. Ab AVB 2021: Deklarieren Sie bitte unter Krankheit alle Fälle von Krankheit und anderen Fällen, die nicht ein Unfall sind oder nicht unter Präventionskosten fallen.',\n },\n existing: {\n title: 'Deklarierte Leistungsfälle',\n description:\n 'Falls Sie den Leistungsfall auf dieser Plattform deklariert haben, wählen Sie ihn bitte in der Liste unten aus.',\n info:\n 'Ich habe den Leistungsfall über einen anderen Kanal deklariert (alte Webseite, E-Mail, Telefon, usw.)',\n disasters: 'Leistungsfälle',\n noDisasters:\n 'Es sind noch keine Leistungsfälle für {{name}} registriert.',\n },\n title: {\n title: 'Bezeichnung des Leistungsfalles',\n description:\n 'Diese Bezeichnung wird Ihnen helfen, sich auch in Zukunft gut in {{name}}s Dossier zurechtzufinden. Erfassen Sie für sich klare Schlüsselwörter, die Sie auch später noch verstehen werden.',\n shortDescription: 'Bezeichnung des Leistungsfalles',\n },\n existingDisasterTitle: {\n title: 'Bezeichnung des Leistungsfalles',\n description:\n 'Diese Bezeichnung wird Ihnen helfen, sich auch in Zukunft gut in {{name}}s Dossier zurechtzufinden. Erfassen Sie für sich klare Schlüsselwörter, die Sie auch später noch verstehen werden.',\n shortDescription: 'Bezeichnung des Leistungsfalles',\n year: 'Jahr des Leistungsfalles',\n type: 'Leistungstyp',\n },\n diagnosticAccident: {\n title:\n 'Hat Ihre Tierärztin / Ihr Tierarzt bereits eine Diagnose gestellt?',\n description:\n 'Unter Diagnose versteht man die Feststellung und Bestimmung (durch die Tierärztin / den Tierarzt) einer körperlichen oder psychischen Beeinträchtigung.',\n diagnostic: 'Diagnose Ihrer Tierärztin / Ihres Tierarztes',\n },\n diagnosticIllness: {\n title:\n 'Hat Ihre Tierärztin / Ihr Tierarzt bereits eine Diagnose gestellt?',\n description:\n 'Unter Diagnose versteht man die Feststellung und Bestimmung einer körperlichen oder psychischen Beeinträchtigung (durch die Tierärztin / den Tierarzt).',\n diagnostic: 'Diagnose',\n symptomsOptionnal: 'Symptome (optional)',\n symptoms: 'Symptome',\n illnessStartLabel: 'Symptombeginn',\n },\n date: {\n title: 'Zeitpunkt des Unfalls',\n description:\n 'Bitte geben Sie den Zeitpunkt des Unfalls so genau wie möglich an. Falls der Unfall nicht in Ihrer Anwesenheit passiert ist, können Sie uns die geschätzte Abweichung des Unfallzeitpunktes angeben.',\n date: 'Datum',\n hour: 'Zeit',\n interval: 'Geschätze Abweichung',\n exact_time: 'genauer Zeitpunkt',\n in_hour: 'innerhalb einer Stunde',\n between_1_4: 'innerhalb von 4 Stunden',\n between_4_6: 'innerhalb von 6 Stunden',\n in_day: 'innerhalb des Tages',\n in_week: 'innerhalb der Woche',\n dateTip:\n 'Falls der Unfall nicht in Ihrer Anwesenheit passiert ist, können Sie uns die geschätzte Abweichung des Unfallzeitpunktes angeben',\n },\n illnessTreatment: {\n title: 'Welches ist die verschriebene Behandlung?',\n description:\n 'Unter Behandlung versteht man Medikamente, Verbände, weitere Untersuchungen und allgemein das weitere Vorgehen.',\n treatment: 'Verschriebene Behandlung',\n },\n howAccidentHappened: {\n title: 'Unfallhergang und -verlauf',\n description:\n 'Bitte beschreiben Sie den Unfallhergang und -verlauf so genau wie möglich. Dies hilft uns, den Leistungsfall so schnell wie möglich zu bearbeiten.',\n howItHappened: 'Beschreibung des Unfallhergangs und -verlaufs',\n },\n anyThirdParty: {\n title: 'War eine Drittperson in den Unfall involviert?',\n description:\n 'Unter Drittperson versteht man ein Lebewesen (Mensch oder Tier), welches den Unfall verursacht hat oder daran beteiligt war.',\n howItHappened: 'Beschreibung des Unfallhergangs und -verlaufs',\n known: 'Ja, ich kann die Drittperson identifizieren',\n unknown: 'Ja, aber ich weiss nicht wer es ist',\n none: 'Nein',\n knownTip:\n 'Eine Drittperson oder ein anderes Tier waren in den Unfall involviert. Sie wissen, wie die Person oder der Tierhalter kontaktiert werden kann.',\n unknownTip:\n 'Eine Drittperson oder ein anderes Tier (ev. Wildtier) waren in den Unfall involviert. Sie kennen die Person oder Tierhalter nicht und haben keine Kontaktangaben',\n noneTip:\n 'Es war keine Drittperson oder anderes Tier in den Unfall involviert',\n },\n thirdParty: {\n title: 'Angaben zur involvierten Drittperson',\n description:\n 'Bitte vervollständigen Sie die Personalien der involvierten Drittperson. Falls es sich um ein anderes Tier handelt, geben Sie bitte die Daten seines Besitzers an.',\n lastname: 'Name *',\n firstname: 'Vorname *',\n street: 'Adresse',\n number: 'Nr.',\n zip: 'PLZ',\n city: 'Ort',\n country: 'Land',\n email: 'E-Mail',\n phone: 'Telefonnummer',\n },\n comments: {\n title: 'Bemerkungen',\n description:\n 'Jede zusätzliche Information kann uns helfen, den Fall zu analysieren und so die Bearbeitung zu beschleunigen.',\n comment: 'Bemerkungen (optional)',\n },\n summary: {\n title: 'Zusammenfassung Leistungsfall',\n description:\n 'Bitte überprüfen Sie die Richtigkeit Ihrer Angaben. Sie können die Informationen noch korrigieren, indem Sie auf den gelben Stift neben jeder Information klicken.',\n description2:\n 'Bestätigen Sie danach die Angaben und senden Sie die Deklaration.',\n cguAdditional:\n \"Die Einreichung des Leistungsfalles und die Bearbeitung desselben unterstehen den Datenschutzbestimmungen der Vaudoise Versicherung.\",\n cgu:\n 'Ich bestätige, dass ich die Fragen wahrheitsgetreu und vollständig beantwortet habe.',\n type: 'Leistungstyp',\n label: 'Bezeichnung',\n comment: 'Bemerkungen',\n symptoms: 'Symptome',\n treatment: 'Verschriebene Behandlung',\n diagnosis: 'Diagnose',\n occurred_at: 'Datum und Zeit des Unfalls',\n interval: 'Geschätze Abweichung',\n claim_year: 'Jahr',\n animal: 'Tier',\n sequence: 'Unfallhergang und -verlauf',\n third_party: 'Daten der involvierten Drittperson',\n third_party_status: 'Involvierte Drittperson',\n },\n },\n medicalFile: {\n add: {\n title: '{{name}}s Krankenakte',\n description:\n 'Falls es sich bei diesem Leistungsfall um den ersten für {{name}} deklarierten Fall handelt, benötigen wir die Krankenakte. Sie können die Bearbeitung beschleunigen, indem Sie uns die Krankenakte und allfällige Analyseresultate hochladen, falls diese in Ihrem Besitz sind.',\n add: 'Krankenakte hochladen',\n addLater: 'Dokumente später hochladen',\n alreadyDone:\n 'Die Krankenakte wurde bereits eingereicht oder ich werde sie später senden',\n confirmImage: 'Bild oder Datei bestätigen',\n addImage: 'Bild hinzufügen',\n maxPDF: \"Sie können nur eine PDF-Datei hochladen. Diese kann aber mehrere Seiten beinhalten.\",\n cantAddImageWhenThereAreAlreadyAPdf: \"Sie können nur eine PDF-Datei hochladen. Diese kann aber mehrere Seiten beinhalten.\",\n cantAddPDFWhenThereAreAlreadyImages: \"Bitte wählen Sie ein Bild aus. Falls Sie ein pdf hochladen möchten, löschen Sie bitte zuerst das bereits hochgeladene Bild.\",\n maxSizePDF: 'Die Grösse des Dokuments darf 6Mo nicht übersteigen',\n browse: 'Von diesem Computer',\n dropFile: 'Datei hierhin ziehen',\n check:\n 'Bitte überprüfen Sie, dass alle Elemente des Dokumentes gut sicht- und lesbar sind. ',\n rotate: 'Drehen',\n delete: 'Löschen',\n fileFormatNotSupported: 'Dieses Dateiformat wird nicht unterstützt',\n },\n title: {\n title: 'Bezeichnung Dokument',\n description:\n 'Geben Sie dem Dokument eine Bezeichnung, die kurz erklärt, worum es sich handelt.',\n titleField: 'Bezeichnung Dokument',\n },\n summary: {\n title: 'Zusammenfassung Krankenakte',\n animal: 'Tier',\n files: 'Dateien',\n label_medicalFile: 'Bezeichnung',\n },\n },\n invoices: {\n invoiceTitle: 'Rechnung {{date}}',\n intro: {\n title: 'Hochladen Ihrer Behandlungsrechnung',\n description:\n 'Laden Sie entweder ein PDF-Dokument oder ein oder mehrere Bilder hoch. Validieren Sie jedes Bild nachdem Sie kontrolliert haben, dass alle Elemente gut sicht- und lesbar sind (klicken Sie dafür auf die gelbe Lupe) und wiederholen Sie dies für jede weitere Seite der Rechnung.',\n useExisting: 'Eine kürzlich hochgeladene Rechnung auswählen',\n later: 'Ich werde die Behandlungsrechnung später senden',\n add: 'Eine neue Rechnung hochladen',\n },\n existing: {\n title: 'Kürzlich hochgeladene Rechnungen',\n description:\n 'Falls Sie die Rechnung kürzlich bereits für ein anderes Tier oder einen anderen Leistungsfall hochgeladen haben, finden Sie sie in der Liste unten. Sie müssen die Rechnung so nicht nochmals hochladen.',\n },\n details: {\n title: 'Gesamtbetrag der Rechnung',\n description:\n 'Bitte geben Sie den Gesamtbetrag der hochgeladenen Rechnung ein. Achtung: Es ist nicht wichtig, ob die Rechnung mehrere Leistungsfälle oder Tiere betrifft, oder ob alle Leistungen später zurückerstattet werden. Geben Sie einfach den Gesamtbetrag inklusive Mehrwertsteuer ein.',\n total: 'Gesamtbetrag der Rechnung (inkl. MwSt)',\n invoiceSubject: 'Diese Behandlungsrechnung betrifft auch',\n many_pets: 'andere Tiere',\n many_disasters: 'andere Leistungsfälle',\n vaccine_too: 'Impfungen oder Präventionskosten',\n },\n year: {\n title: 'Behandlungsjahr',\n description: 'In welchem Jahr fand die Behandlung statt?',\n instruction: 'Sie können mehrere Jahre auswählen.',\n },\n summary: {\n title: 'Zusammenfassung der Rechnung',\n invoice: 'Rechnung',\n animal: 'Tier',\n amount: 'Gesamtbetrag der Rechnung (inkl. Mwst.)',\n involves_multiple_pets: 'Betrifft auch andere Tiere',\n involves_multiple_claims: 'Betrifft auch andere Leistungsfälle',\n involves_a_vaccine: 'Betrifft Impfungen oder Präventionskosten',\n billing_years: 'Behandlungsjahr',\n },\n confirmation: {\n title: 'Sendebestätigung',\n description:\n 'Ihre Daten und Dokumente betreffend dem Leistungsfall \"{{disaster}}\" von {{name}} wurden an unsere Leistungsabteilung gesandt.',\n delay:\n 'Der Bearbeitungszeitpunkt wird aktuell auf dieses Datum geschätzt:',\n delayTip:\n 'Sie können die Bearbeitungszeit verkürzen, indem Sie die Krankenakte Ihres Tieres und allfällige Analyseresultate hochladen.',\n delayNotice:\n 'Dieser Termin dient lediglich als Hinweis und hängt davon ab, ob zusätzliche Informationen für die Bearbeitung eingefordert werden müssen.',\n pleaseRepeat:\n 'Falls die eingereichte Rechnung mehrere Leistungsfälle oder Tiere betrifft, wiederholen Sie das Vorgehen bitte so viele Male wie nötig.',\n newInvoiceForThisPet: 'Andere Rechnung für {{name}}',\n newInvoiceForAnotherPet: 'Rechnung für ein anderes Tier',\n medicalFilesForThisPet: 'Dossier von {{name}}',\n backToMyPets: 'Zurück zu \"Mein Rudel\"',\n otherActions: 'Andere Optionen',\n sameInvoiceForAnotherPet: 'Gleiche Rechnung für ein anderes Tier',\n sameInvoiceForAnotherDisaster:\n 'Gleiche Rechnung für einen anderen Leistungsfall von {{name}}',\n },\n otherpets: {\n title: 'Wer ist noch von dieser Rechnung betroffen?',\n description:\n 'Bitte wählen Sie das Tier, welches ebenfalls von dieser Rechnung betroffen ist. Falls es sich um mehrere Tiere handelt, wiederholen Sie das Vorgehen danach so viele Male wie nötig.',\n },\n },\n edit: {\n title: 'Änderung von {{name}}s Gesundheitsversicherung',\n description:\n 'Sie können uns hier alle Änderungen, welche die Gesundheitsversicherung betreffen, melden. Falls Sie nicht finden, was Sie benötigen, senden Sie uns bitte ein E-Mail an animalia@vaudoise.ch.',\n },\n documents: {\n title: '{{name}}s Dossier',\n description:\n 'Falls der Leistungsfall auf dieser Plattform deklariert wurde, finden Sie ihn in der Liste unten.',\n tip:\n 'Falls Sie den Leistungsfall in der Vergangenheit bereits über einen anderen Kanal deklariert haben (alte Webseite, E-Mail, Telefon, …), wird er nicht in der Liste aufgeführt. Bitte gehen Sie zurück und klicken Sie auf die Option \"Bereits über anderen Kanal deklarierter Leistungsfall\".',\n help:\n 'Ich habe einen Leistungsfall deklariert, dieser erscheint aber nicht in der Liste unten.',\n\n medicalFilesAreBeingProcessedTitle:\n 'Die Krankenakte von {{name}} wird uns übermittelt',\n medicalFilesAreBeingProcessedDescription:\n 'Wir überprüfen ihr Dokument. Es wird in Kürze hier angezeigt.',\n filesAreBeingProcessedTitle:\n 'Die Behandlungsrechnung von {{name}} wird uns übermittelt',\n filesAreBeingProcessedDescription:\n 'Wir überprüfen ihr Dokument. Es wird in Kürze hier angezeigt.',\n sinisters: 'Leistungsfälle von {{name}}',\n medicalFiles: '{{name}}s Krankenakte',\n noDocuments: 'Es wurde noch keine Krankenakte für {{name}} hochgeladen.',\n noDisasters: 'Es wurden noch keine Leistungsfälle von {{name}} deklariert.',\n declareSinister: 'Leistungsfall deklarieren',\n addMedicalFiles: 'Dokumente zur Krankenakte hinzufügen',\n medicalFile: 'Krankenakte',\n seeMedicalFiles: 'Krankenakte ansehen',\n xImages: '{{count}} Bild',\n xImages_plural: '{{count}} Bilder',\n vaccines: 'Impfungen und Präventionskosten',\n },\n claimDocument: {\n description: '',\n amount: 'Gesamtbetrag der Rechnung',\n billing_years: 'Behandlungsjahr',\n estimated_processing_time: 'Voraussichtliches Bearbeitungsdatum',\n },\n asideSummary: {\n amount: 'Gesamtbetrag der Rechnung (inkl. Mwst.)',\n involves_multiple_pets: 'Betrifft andere Tiere',\n involves_multiple_claims: 'Betrifft andere Leistungsfälle',\n involves_a_vaccine: 'Betrifft Impfungen und Präventionskosten',\n billing_years: 'Behandlungsjahr',\n type: 'Leistungstyp',\n label: 'Bezeichnung',\n label_medicalFile: 'Bezeichnung',\n third_party_status: 'Involvierte Drittperson',\n comment: 'Bemerkungen',\n symptoms: 'Symptome',\n treatment: 'Verschriebene Behandlung',\n diagnosis: 'Diagnose Ihrer Tierärztin / Ihres Tierarztes',\n occurred_at: 'Datum und Zeit',\n interval: 'Geschätzte Abweichung',\n claim_year: 'Jahr',\n animal: 'Tier',\n sequence: 'Unfallhergang und -verlauf',\n third_party: 'Daten der involvierte Drittperson',\n },\n vaccines: {\n title: 'Impfungen und Präventionskosten',\n },\n deleteModal: {\n title: 'Dokument löschen',\n description:\n 'Wenn Sie dieses Dokument löschen, finden Sie es nachher nicht mehr. Sind Sie sicher, dass Sie es löschen möchten?',\n actionYes: 'Ja, ich möchte das Dokument löschen',\n actionNo: 'Nein, ich möchte das Dokument behalten',\n },\naddress: {\n my_details_change: 'Adressänderung Versicherung',\n change_address_for: 'Diese Adresse auch ändern für',\n change_for_all: 'Alle meine Tiere und ihre Services',\n change_for_pet: 'Die Gourmet-Abo-Lieferungen für'\n },\n owner: {\n owner_change: 'Halterwechsel von',\n owner_needed_details: 'Bitte füllen Sie die Angaben der neuen Halterin oder des neuen Halters vollständig aus. Damit {{ name }} gut versichert bleibt, werden wir ihm/ihr in den nächsten Tagen eine Versicherungsofferte senden.',\n contact_new_owner: 'Per welchem Datum findet der Halterwechsel statt?',\n transfer_pet: 'Der Halterwechsel gilt auch für',\n transferred_at: 'Datum Halterwechsel',\n keep_insurance: 'Möchte der neue Besitzer die Animalia Gesundheitsversicherung behalten ?'\n },\n bank_details: {\n my_bank_details_change: 'Änderung der Zahlungsverbindung',\n my_bank_details_description: 'Bitte geben Sie hier die IBAN-Nummer Ihres Kontos an, auf welches Sie die Rückerstattungen erhalten möchten.'\n }\n};\n","module.exports = {\n privacyPolicy: 'https://www.animalia.ch/de/datenschutzbestimmungen',\n cgv: 'https://www.animalia.ch/de/allgemeine-geschaftsbedingungen-agb',\n cgu: 'https://www.animalia.ch/de/allgemeine-nutzungsbedingungen-anb',\n insurance: {\n changeOwner:\n 'https://assurance.animalia.ch/_files/content/pdf/tierhalterwechsel_de.pdf',\n changeBank:\n 'https://assurance.animalia.ch/de/kontakt/uebermittlung-von-bank-oder-postverbindungen',\n sinister: 'https://assurance.animalia.ch/de/kontakt/schadenfallmeldung',\n changeAddress:\n 'https://assurance.animalia.ch/de/kontakt/adress-oder-namensaenderung',\n },\n contact: 'https://www.animalia.ch/de/kontakt'\n};\n","module.exports = {\n calculatorTitle: 'Gesundheitsversicherung',\n calculatorDescription: 'Berechnen Sie mit drei Klicks die Versicherungsprämie für Ihren liebsten Vierbeiner.',\n petSpecies: '',\n petAgeCategory: 'Alter', // Dropdown, selection d'âge\n ageCategory: 'im Alter von', // InsuranceType Step suptitle / format: {{ pet_species }} im Alter von {{ pet_age_category }}\n conditions: 'Wenn Sie eine Offerte anfordern oder online abschliessen, bearbeiten die Vaudoise Versicherungen Ihre persönlichen Daten auf Servern in Deutschland für das Erstellen, Speichern und Bereitstellen im Internet der Offerte und in den USA (bei Mandrill von MailChimp) für den Versand von E-Mails und damit verbundene statistische und Performance-Analysen. Ihre Daten werden innerhalb von 30 Tagen nach zwei erfolglosen Erinnerungen gelöscht. Diese Informationen ergänzen die Datenschutzerklärung der Vaudoise Versicherungen, die im Übrigen anwendbar ist.', \n thanks: 'Vielen Dank für Ihre Offertanfrage', // NOTE: titre remerciement après envoie de l'offre depuis le widget\n offer_in_mailbox: 'Wir haben Ihnen ein Mail mit dem Link auf die Offerte für {{pet_name}} geschickt. Sie können die Details der Versicherung (Leistungen, Prämien, Bedingungen) der Offerte entnehmen, sie ausdrucken, oder auch gleich die Versicherung für {{pet_name}} online abschliessen.', // NOTE: texte remerciement après envoie de l'offre depuis le widget\n plus_8_warning: 'Ihr Vierbeiner ist älter als 8 Jahre alt. Bitte beachten Sie, dass Krankheiten, die bereits vor dem Abschluss der Versicherung bestehen, nicht versichert werden können.',\n yearsRange: {\n u2: '3 Monate bis 2 Jahre',\n u4: '3 bis 4 Jahre',\n u6: '5 bis 6 Jahre',\n u8: '7 bis 8 Jahre',\n u10: '9 bis 10 Jahre',\n u12: '11 bis 12 Jahre',\n o13: '13 Jahre und älter'\n },\n race: {\n suptitle: 'Rasse und Wohnort',\n pet_mixed: 'Mischling',\n pet_breed: 'Rasse',\n pet_unknown: 'Unbekannt',\n breed: 'Rasse',\n breed_2: 'Zweite Rasse',\n zipcode: 'Postleitzahl',\n city: 'Ort'\n },\n navigation: {\n goToInsuranceStep: 'Prämie berechnen',\n submitFromInsuranceStep: 'Versicherung abschliessen',\n sendOfferByEmail: 'Offerte per E-Mail erhalten',\n prev: 'Kriterien ändern',\n next: 'Weiter',\n ok: 'Zurück zum Prämienrechner', // NOTE: label du bouton de la page de remerciement après envoie de l'offre depuis le widget, Karin: dès que le bouton menera à la landingpage de l'offre, le texte sera: 'Offerte ansehen'\n seeOffer: 'Offerte ansehen'\n },\n user: {\n petName: 'Name Ihres Tieres',\n lastName: 'Ihr Name *',\n firstName: 'Ihr Vorname *',\n emailAddress: 'E-Mailadresse',\n phoneNumber: 'Telefonnummer',\n },\n offer_conclusion_1: 'Sie können die Details der Versicherung für {{pet_name}} (Leistungen, Prämien, Bedingungen) der Offerte entnehmen, diese ausdrucken, oder auch gleich die Versicherung online abschliessen.',\n offer_conclusion_2: 'PS: Wir haben Ihnen ebenfalls ein Mail mit dem Link auf die Offerte geschickt.'\n}\n\n\n","module.exports = {\n pet: {\n add_pet: 'Tier hinzufügen',\n add_pet_caption: 'Stellen Sie uns Ihren vierbeinigen Freund vor.',\n species: 'Tier',\n dog: 'Hund',\n cat: 'Katze',\n gender: 'Geschlecht',\n male: 'Männchen',\n female: 'Weibchen',\n select_pet: 'Welches Tier möchten Sie versichern?',\n select_pet_description:\n 'Wählen Sie es aus oder erstellen Sie ein neues Profil',\n portrait: 'Daten Ihres Vierbeiners',\n portrait_caption: '',\n name: 'Rufname des Tieres', //C'est affiché où? Si dans le résumé de droite --> Rufname des Tieres, Si comme titre du champs du nom --> Sein Rufname\n name_long: 'Rufname des Tieres', //C'est affiché où? Si dans le résumé de droite --> Rufname des Tieres, Si comme titre du champs du nom --> Sein Rufname\n birthdate: 'Sein Geburtsdatum',\n birthdate_tip: 'Wir versichern Tiere ab 3 Monaten.',\n is_pure_breed: '',\n race: 'Rasse',\n pet_mixed: 'Mischling',\n pet_breed: 'Reinrassig',\n pet_not_breed: 'Mischling',\n pet_unknown: 'Unbekannt',\n fill_two_races: '',\n fill_race: 'Rasse eingeben',\n are_two_races_known:\n 'Connaissez-vous les deux races principales de votre compagnon?',\n first_race: 'Erste Rasse',\n second_race: 'Zweite Rasse',\n which_pet_weight: 'Ungefähres Gewicht in Kilogramm',\n weight: 'Gewicht im Erwachsenenalter in kg',\n pet_age_calcul_info:\n 'Das Alter des Tieres wird wie folgt berechnet: Aktuelles Jahr minus Geburtsjahr (z.B. 2023 - 2017 = 6)',\n },\n insurance: {\n protection: 'Versicherung',\n protection_type: 'Deckung',\n select_protection: '',\n classic_condensed: 'Classic',\n comfort_condensed: 'Comfort',\n compact_condensed: 'Compact',\n compact: 'Animalia Compact',\n compact_description: 'Deckung bei Unfall',\n classic: 'Animalia Classic',\n classic_description:\n 'Deckung bei Unfall und bei akuten und chronischen Krankheiten',\n comfort: 'Animalia Comfort',\n comfort_description:\n 'Deckung bei Unfall, akuten, chronischen und angeborenen Krankheiten sowie bei Erbkrankheiten',\n franchise: 'Selbstbehalt',\n insurance: 'Versicherung',\n payment: 'Zahlung',\n select_payment: '',\n annual: 'Jährlich',\n annual_cost: 'Jahresprämie total',\n biannual: 'Halbjährlich',\n month: 'Monat',\n monthly: 'Halbjährlich',\n monthly_cost: 'Indikative Monatsprämie',\n monthly_cost_info: 'Indikative Monatsprämie',\n monthly_cost_tip: '',\n quarterly: 'Vierteljährlich',\n enters_in_force_at: 'Vertragsbeginn',\n agent_code: 'Agentencode',\n agency: 'Promocode',\n agency_tip:\n 'Falls Sie Anrecht auf eine Ermässigung haben, wird diese direkt von der Rechnung in Abzug gebracht.',\n my_details: 'Ihre Kontaktangaben',\n needed_details: '',\n new_address: 'Eine Adresse hinzufügen',\n plan_not_available:\n 'Diese Deckung kann mit diesem Selbstbehalt nicht abgeschlossen werden',\n are_you_pet_keeper:\n \"Êtes-vous le détenteur de l'animal ou prenez-vous l'assurance pour une personne tierce ?\",\n im_keeper: \"Je suis le détenteur de l'animal\",\n im_not_keeper: \"Je prends une assurance pour l'animal de quelqu'un d'autre\",\n refund_account: 'Konto für die Rückerstattungen',\n no_iban: 'IBAN',\n bank_name: 'Name der Bank',\n bic: '',\n line: 'Adresse',\n line_2: 'Adresszusatz',\n zip_code: 'PLZ',\n city: 'Ort',\n conclude: 'Versicherung abschliessen',\n insurance_of: 'Die Versicherung von',\n insurance_owner: 'Versicherungsnehmer',\n complete_profile: 'Profil vervollständigen',\n offer_page_description: 'offer_page_description Lorem Ipsum....',\n concluded_description: 'concluded_description Lorem Ipsum....',\n offer_already_concluded:\n 'Diese Offerte wurde bereits abgeschlossen. Sie können den Abschluss nicht mehr tätigen.',\n offer_concluded_line:\n 'Wir freuen uns, {{pet_name}} in unserer Animalia-Familie zu begrüssen und stehen Ihnen von nun an zur Seite.',\n offer_concluded_line_2:\n 'Sie werden die Policendokumente und die Rechnung in den nächsten Tagen per Post erhalten. Danach können Sie uns ganz einfach über Ihr Animalia-Kundenkonto Leistungsfälle deklarieren und Rechnungen einsenden.',\n offer_concluded_line_3:\n 'Ein kleines Dankeschön für Ihr Vertrauen: Rabattgutscheine und Partnerangebote für Sie und Ihren Gefährten auf vier Pfoten.',\n offer_banner_cta: 'Rejoignez la communauté Animalia',\n offer_fressnapf: 'GUTSCHEIN FRESSNAPF',\n offer_shop: 'GUTSCHEIN SHOP ANIMALIA',\n assistance: 'Assistance 24/7',\n assistance_btn: 'Entdecken Sie die Assistance 24/7',\n assistance_link: 'https://shop.animalia.ch/de/product/assistance-24-7/',\n assistance_desc_sale:\n 'Profitieren Sie von unserem Winter-Aktion Angebot und schliessen Sie zusätzlich eine Assistance 24/7 für nur CHF 1.- * ab!​ Geben Sie dazu folgenden Rabattcode ein: ​',\n offer_fressnapf_url:\n 'https://prismic-io.s3.amazonaws.com/animalia/cba94bc9-65a9-4945-962a-4b3d7afc034e_22-10-019_animalia_gutschein_130x85_de_lay_v3_020222_5.pdf',\n offer_shop_url:\n 'https://prismic-io.s3.amazonaws.com/animalia/05a8375a-b565-4942-a5c6-e1efccc393f3_21_ANIMALIA_SHOP_FLYER_A7_DE.pdf',\n assistance_url: 'https://www.animalia.ch/de/service/assistance',\n assistance_desc:\n 'Für nur CHF 79 mehr pro Jahr erhalten Sie eine durchgehende Unterstützung bei dringenden medizinischen oder administrativen Fragen zu Ihrem Tier. Darüber hinaus profitieren Sie von zusätzlichen Versicherungsleistungen wie z.B. Transportkosten für Ihr Tier in Notfällen. Lassen Sie sich diese Gelegenheit nicht entgehen und erfahren Sie alles über die Assistance 24/7.',\n cga:\n 'Ich bestätige hiermit, dass ich von den Allgemeinen Versicherungsbedingungen (AVB) Kenntnis genommen habe, ihnen zustimme und verstanden habe, dass die Prämien mit fortlaufendem Alter meines Tieres regelmässig erhöht werden.',\n tonivet_label: 'Entdecken Sie das exklusive Angebot von Tonivet Kroketten',\n tonivet_link:\n 'https://shop.animalia.ch/de/croquettes-tonivet-lexcellence-veterinaire/',\n cga_1:\n 'Ich erkläre hiermit, die vorhergehenden Fragen wahrheitsgetreu beantwortet zu haben, damit der Animalia-Vertrag mit der Vaudoise Rechtsgültigkeit erlangt.',\n cga_2:\n 'Ich ermächtige die Vaudoise, von den Angaben Gebrauch zu machen, die ihr im Rahmen der Vertragsverwaltung und insbesondere bei der Bearbeitung von Schadenfällen zukommen. Falls nötig, kann sie diese Angaben an Rückversicherer oder an andere Versicherer weitergeben und von diesen oder Dritten Auskünfte einholen.',\n breed_tip: 'Beide Elternteile haben die selbe Rasse',\n bastard_tip: 'Die Eltern haben unterschiedliche Rassen',\n unknown_tip:\n 'Die Eltern haben insgesamt drei oder mehr verschiedene Rassen oder Sie kennen die Rassen nicht',\n federal_timber_of: 'Eidg. Stempelsteuer 5% von',\n surprime: 'Kosten Teilzahlung',\n annual_cost_basic: 'Jahresprämie',\n not_complete: 'Eine Versicherungsofferte ist in Bearbeitung',\n waiting:\n 'Ihr Versicherungsantrag wurde erfolgreich übermittelt. Hier wird in den nächsten Tagen Ihre Policennummer angezeigt.',\n fill_offer: 'Offerte anschauen und abschliessen',\n login_title: 'Haben Sie bereits ein Animalia Kundenkonto?',\n login_description:\n 'Um den Abschluss Ihrer Versicherung fertigzustellen, eröffnen Sie im nächsten Schritt bitte ein Animalia Kundenkonto oder loggen Sie sich in Ihr bestehendes Konto ein. Sie sehen darin zukünftig Informationen Ihrer abgeschlossenen Versicherungsverträge und können uns die Behandlungsrechnungen Ihres Vierbeiners einfach und rasch einreichen.',\n login_yes: 'Ja, ich habe schon ein Kundenkonto',\n login_no: 'Nein, ich habe noch kein Kundenkonto',\n save_success:\n 'Der Abschluss wurde erfolgreich übermittelt. Der:die Versicherungsnehmer:in erhält die Police in den nächsten Tagen.',\n num: 'Nr.',\n api_found: 'Adresse von der Schweizer Post validiert',\n api_not_found:\n 'Diese Adresse existiert so nicht bei der Schweizer Post. Bitte überprüfen Sie Ihre Eingabe nochmals.',\n start_date: 'Vertragsbeginn',\n end_date:\n 'Vertragsablauf (stillschweigende Verlängerung um jeweils ein Jahr)',\n cga_min: 'AVB',\n maintenance_title: 'Wartungsarbeiten',\n maintenance_description:\n 'Wir informieren Sie, dass der Onlineabschluss zur Zeit (und bis ungefähr Mitternacht) nicht möglich ist. Dies wegen Wartungsarbeiten eines Services der Post, welcher Ihre Postadresse prüft.

Sie können aber gerne in der Zwischenzeit eine Offerte bestellen.',\n maintenance_button: 'Offerte bestellen',\n discount_hotelcard_link: 'https://hotelcard.com/de/animalia-30',\n discount_hotelcard_label: 'Exklusives Angebot von Hotelcard',\n discount_nab_title: '50% auf Erste-Hilfe-Kurse für Hunde',\n discount_nab_description: '

Seien Sie bereit, im Notfall zu reagieren, mit dem Nothelfer am Bahnhof.

',\n discount_nab_code: 'Verwenden Sie den Code: {{code}}',\n discount_nab_cta_label: 'Angebot nutzen',\n discount_nab_link: 'https://elearning.nothelferambahnhof.ch/course/erste-hilfe-hund-e-learning',\n discount_hc_title: 'Bis zu 50% Rabatt auf Hotels in der Schweiz',\n discount_hc_description: '

Übern 500 der besten Hotels in der Schweiz und den Nachbarländern mit bis zu 50% Rabatt pro Übernachtung je nach Verfügbarkeit.

',\n discount_hc_cta_label: 'Angebot nutzen',\n discount_hc_link: 'https://hotelcard.com/de/animalia-30',\n discount_tractive_title: 'Kostenloses GPS-Halsband für Katzen und Hunde erhalten!',\n discount_tractive_description: '

Mit Tractive verfolgen Sie seine Abenteuer in Echtzeit und gewährleisten seine Sicherheit überall und jederzeit.

',\n discount_tractive_code: 'Verwenden Sie den Code: {{code}}',\n discount_tractive_cta_label: 'Angebot nutzen',\n },\n error: {\n general: 'Bitte das Feld ausfüllen',\n no_special_char: 'Dieses Feld darf keine Sonderzeichen enthalten',\n max_128: 'Dieses Feld darf maximal 128 Zeichen enthalten',\n min_18: 'Sie müssen mindestens 18 Jahre alt sein',\n pet_species_required: 'Bitte wählen Sie eine Tierart aus',\n pet_gender_required: 'Bitte wählen Sie das Geschlecht Ihres Tieres aus',\n pet_name_required: 'Bitte geben Sie den Rufnamen Ihres Vierbeiners an',\n pet_birthdate_required:\n 'Bitte geben Sie das Geburtsdatum Ihres Vierbeiners an',\n pet_is_purebred_required:\n 'Bitte geben sie an, ob Ihr Tier reinrassig oder Mischling ist oder eine unbekannte Rasse hat.',\n pet_two_races_known_required:\n 'Bitte geben Sie die beiden Rassen Ihres Vierbeiners an',\n pet_animal_id_required: 'Bitte wählen Sie eine Rasse aus',\n pet_weight_required:\n 'Bitte geben Sie das ungefähre Gewicht Ihres Vierbeiners in kg an',\n pet_weight_number_required:\n 'Bitte geben Sie das Gewicht Ihres Vierbeiners in Zahlen an',\n insurance_franchise_required:\n 'Bitte wählen Sie den gewünschten Selbstbehalt aus',\n insurance_type_required: 'Bitte wählen Sie die gewünschte Deckung aus',\n insurance_payment_frequency_required:\n 'Bitte wählen Sie die gewünschte Zahlungsart aus',\n insurance_enters_in_force_at_required:\n 'Bitte geben Sie das gewünschte Beginndatum ein',\n title_required: 'Bitte wählen Sie eine Anrede',\n first_name_required: 'Bitte geben Sie Ihren Vornamen ein',\n last_name_required: 'Bitte geben Sie Ihren Nachnamen ein',\n line_required: 'Bitte geben Sie Ihre Adresse ein',\n zip_code_required: 'Bitte geben Sie die Postleitzahl ein',\n city_required: 'Bitte geben Sie den Ort ein',\n birthdate_required: 'Bitte geben Sie Ihr Geburtsdatum ein',\n holder_phone_required: 'Bitte geben Sie Ihre Telefonnummer ein',\n bank_not_found:\n 'Wir konnten die Bank nicht erkennen. Bitte erfassen Sie die Daten der Bank manuell.',\n iban_required:\n 'Bitte geben Sie die IBAN-Nummer ein (z.B. CH80 0000 0000 0000 0000 0)',\n iban_invalid:\n 'Ihre IBAN-Nummer ist nicht gültig. Bitte korrigieren Sie die Eingabe (z.B. CH80 0000 0000 0000 0000 0)',\n bank_name_required: 'Bitte geben Sie den Namen der Bank an',\n bic_required: '',\n bank_address_required: '',\n bank_zip_code_required: 'Bitte geben Sie die Postleitzahl der Bank ein',\n bank_city_required: 'Bitte geben Sie den Ort der Bank ein',\n max_char_4: 'Der Agentencode besteht aus 4 Zahlen',\n email_required: '',\n email_invalid: 'Dieses feld muss eine gültige e-mail sein.',\n more_char: 'Dieses Feld muss mindestens 2 Buchstaben enthalten.',\n firstname_error: 'Der Vorname ist ungültig',\n lastname_error: 'Der Name ist ungültig',\n uppercase: 'Der erste Buchstabe muss gross geschrieben werden',\n all_uppercase: 'Dieses Feld kann nicht nur Grossbuchstaben enthalten',\n wrong_iban:\n 'Diese IBAN-Nummer ist nicht gültig. Bitte korrigieren Sie Ihre Eingabe.',\n only_one_uppercase: 'Dieses Feld darf nur einen Grossbuchstaben enthalten',\n no_special_case: 'Dieses Feld darf keine Spezialzeichen enthalten',\n },\n navigation: {\n calculate: 'Prämie berechnen',\n submit_offer: 'Versicherung abschliessen',\n send_offer_by_email: 'Offerte per Mail erhalten ',\n next: 'Weiter',\n },\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WidgetTightFormField_container__22V3A\",\"centered\":\"WidgetTightFormField_centered__1r-mn\",\"hFill\":\"WidgetTightFormField_hFill__1oa2H\",\"stretch\":\"WidgetTightFormField_stretch__3WiVw\",\"border\":\"WidgetTightFormField_border__1zfNg\",\"validate\":\"WidgetTightFormField_validate__3Mepv\",\"tip\":\"WidgetTightFormField_tip__aKCJr\",\"error\":\"WidgetTightFormField_error__2srfz\",\"unknown\":\"WidgetTightFormField_unknown__3HdHm\",\"disabled\":\"WidgetTightFormField_disabled__2EOzs\",\"hasComponent\":\"WidgetTightFormField_hasComponent__2kcJK\",\"close\":\"WidgetTightFormField_close__3_aPW\",\"loading\":\"WidgetTightFormField_loading__127M8\",\"MOVE-BG\":\"WidgetTightFormField_MOVE-BG__3IAz0\"};","module.exports = {\n holder: 'Versicherungsnehmer',\n pet_type: 'Tierart',\n age_category: 'Alterskategorie des Tieres',\n quote_part: 'Eigener Anteil',\n quote_part_tip:\n 'Sobald der Selbstbehalt erreicht ist, übernimmt Animalia 90% der Kosten. Die restlichen 10% tragen immer Sie',\n quote_part_value: '10%',\n franchise_title: 'Selbstbehalt und eigener Anteil',\n insurance_prime: 'Versicherungsprämie',\n tooltip_compact_fix: 'Fixprämie, unabhängig vom Alter des Tieres', // tooltip de insurance_prime quand c'est une assurance compact', // tooltip de insurance_prime quand c'est une assurance compact\n prestations: 'Leistungen pro Kalenderjahr',\n prestations_tip: '(gemäss den allgemeinen Versicherungsbedingungen)',\n medical_cost_coverage: 'Deckung der medizinischen Kosten',\n medical_cost_coverage_value: 'Unbegrenzt',\n prevention_cost: 'Präventionskosten',\n prevention_cost_tip: 'ohne Selbstbehalt und eigenen Anteil',\n prevention_cost_value: 'CHF 100.-',\n alt_medicinal: 'Alternative Medizin',\n alt_medicinal_value: 'CHF 600.-',\n housing_cost: 'Unterkunftskosten',\n housing_cost_value: 'CHF 200.-',\n investment_cost: 'Unterbringungskosten',\n investment_cost_value: 'CHF 150.-',\n freight_cost: 'Transportkosten',\n freight_cost_value: 'CHF 100.-',\n waiting_period: 'Karenzfrist',\n accident: 'Unfall',\n accident_value: 'keine',\n illness: 'Krankheit',\n illness_value: '30 Tage',\n compact_title_description: 'Mit Animalia Compact treffen Sie eine gute Wahl!',\n classic_title_description: 'Mit Animalia Classic treffen Sie eine gute Wahl!',\n comfort_title_description: 'Mit Animalia Comfort treffen Sie eine gute Wahl!',\n description_compact: `Deckung bei Unfall`,\n description_classic: `Deckung bei Unfall und bei akuten und chronischen Krankheiten`,\n description_comfort: `Deckung bei Unfall, akuten, chronischen und angeborenen Krankheiten sowie bei Erbkrankheiten`,\n conditions_title: 'Anwendbare Bedingungen',\n conditions_description:\n 'Allgemeine Versicherungsbedingungen Animalia, Ausgabe 1.11.2021',\n conditions_url:\n 'https://prismic-io.s3.amazonaws.com/animalia/3a327fa3-f270-44dc-8eab-88252b5c10c7_CGA_Animalia_2021_D_WEB.pdf',\n conditions_info:\n 'Achtung: Erbkrankheiten und/oder Geburtsgebrechen sind nicht versichert. (gemäss Art. B5 der Allgemeinen Versicherungsbedingungen)',\n law_application:\n '

Die Anpassung der Prämie an die nächsthöhere Altersklasse erfolgt am 1. Januar des Jahres, in dem das Tier das Alter von drei bzw. fünf, sieben, neun, elf und dreizehn Jahren erreicht.

',\n offer_validity: 'Gültigkeit der Offerte',\n offer_validity_description:\n 'Diese Offerte basiert auf den uns vorliegenden Angaben. Sie ist bis am {{validity_date}} gültig.', // TODO: @Calvin Cette date doit être calculée -> date de la création de l'offre + 90 jours\n offer_conclusion_2:\n 'Versichern Sie {{pet_name}} jetzt für ein unbeschwertes Leben.', // TODO: @Calvin nom de l'animal a ajouter dynamiquement\n go_further: 'Versicherung abschliessen', // TODO: @Calvin nom de l'animal a ajouter dynamiquement\n print: 'Offerte Ausdrucken',\n federal_timber: 'Eidg. Stempelsteuer',\n federal_timber_tip:\n 'Die Eidgenössische Stempelsteuer wird auf der Jahresprämie (inkl. eventuelle Zuschläge für Ratenzahlung) berechnet.',\n total: 'Jahresgesamtprämie',\n};\n","module.exports = {\n myaccount: 'Kunden-konto',\n 'create-ag': {\n title: 'Gourmet-Abo berechnen',\n subtitle: 'Für welchen Ihrer vierbeinigen Lieblinge möchten Sie ein Gourmet-Abo berechnen?',\n cta: 'Gourmet-Abo berechnen'\n },\n 'edit-ag': {\n title: 'Gourmet-Abo anpassen',\n subtitle: 'Für welchen Ihrer vierbeinigen Lieblinge möchten Sie das Gourmet-Abo anpassen?',\n cta: 'Gourmet-Abo anpassen'\n },\n 'calculate-insurance': {\n title: 'Gesundheitsversicherung berechnen',\n subtitle: 'Für welchen Ihrer vierbeinigen Lieblinge möchten Sie eine Gesundheitsversicherung berechnen?',\n cta: 'Gesundheitsversicherung berechnen'\n },\n 'declare-sinister': {\n title: 'Leistungsfall melden',\n subtitle: 'Für welchen Ihrer vierbeinigen Lieblinge möchten Sie einen Leistungsfall melden?',\n cta: 'Leistungsfall melden'\n },\n 'send-invoice': {\n title: 'Behandlungsrechnung einreichen',\n subtitle: 'Für welchen Ihrer vierbeinigen Lieblinge möchten Sie eine Behandlungsrechnung einreichen?',\n cta: 'Rechnung einreichen'\n },\n 'edit-insurance': {\n title: 'Gesundheitsversicherung anpassen',\n subtitle: 'Für welchen Ihrer vierbeinigen Lieblinge möchten Sie die Versicherung anpassen?',\n cta: 'Versicherung anpassen'\n },\n};\n","module.exports = {\n title: \"Züchterin/Züchter\",\n breederSpace: \"Züchter-Bereich\",\n login: {\n createBreederAccount: \"Ein Züchter-Konto erstellen\",\n },\n species: {\n cat: \"Katze\",\n dog: \"Hund\",\n },\n personal_data: {\n breeder_infos: \"Informationen zur Züchterin / zum Züchter\",\n personal_data: \"Personendaten\",\n social_reason: \"Firma\",\n social_reason_label: \"Name der Zucht bzw. Firma\",\n races: \"Rassen\",\n breeding: \"Zucht\",\n tel: \"Telefon\",\n email: \"E-Mail\",\n message: \"Mitteilung\",\n send_request: \"Anfrage senden\",\n },\n confirmation: {\n askSent: \"Ihre Anfrage wurde erfolgreich versendet\",\n askSentMessage: \"Wir werden Sie so schnell wie möglich kontaktieren.\",\n backToHome: \"Home\",\n },\n declined: {\n askDeclined: \"Anfrage abgelehnt\",\n askDeclinedMessage: \"Leider wurde Ihre Anfrage abgelehnt, da sie nicht allen unseren Aufnahmekriterien entspricht.

\",\n backToHome: \"Home\",\n },\n dashboard: {\n myBreederSpace: \"Mein Züchter-Bereich\",\n myCoordinates: \"Meine Angaben\",\n myAttestations: \"Meine Nachweise\",\n breeding: \"Zucht\",\n race: \"Rasse\",\n address: \"Adresse\",\n conventionNumber: \"Nummer der Vereinbarung\",\n email: \"E-Mail\",\n howToEdit: \"Wie bearbeite ich meine Angaben?\",\n client: \"Kundin/Kunde\",\n petName: \"Name des Tiers\",\n attestationNumber: \"Nachweis-Nummer\",\n insuranceDate: \"Versicherungsdatum\",\n attestation: \"Nachweis\",\n cga: \"AVB\",\n declareNewPet: \"Ein neues Tier melden\",\n howEditCertificate: \"Wie kann ich einen Nachweis bearbeiten?\",\n doWantEditACertificate: \"Möchten Sie einen Nachweis bearbeiten?\",\n editCertificateInformations: \"Um einen Nachweis zu bearbeiten, kontaktieren Sie uns bitte unter breeders@animalia.ch. Geben Sie dabei die Nummer des betreffenden Nachweises an, welche Änderungen vorgenommen werden sollen und weshalb.\",\n doWantEditInformations: \"Möchten Sie die Angaben zu Ihrer Zucht ändern?\",\n editInformations: \"Bitte kontaktieren Sie uns unter breeders@animalia.ch, um die Angaben zu Ihrer Zucht zu ändern.\",\n },\n certificates: {\n myClient: \"Mein Kunde\",\n theyPet: \"Sein Tier\",\n title: \"Anrede\",\n mr: \"Herr\",\n mrs: \"Frau\",\n communicationLanguage: \"Korrespondenzsprache\",\n firstname: \"Vorname\",\n lastname: \"Name\",\n email: \"E-Mail\",\n birthdate: \"Geburtsdatum\",\n pet: \"Tier\",\n petName: \"Name des Tiers\",\n race: \"Rasse\",\n exitDate: \"Datum des Austritts\",\n gender: \"Geschlecht\",\n male: \"Männchen\",\n female: \"Weibchen\",\n dog: \"Hund\",\n cat: \"Katze\",\n createCertificate: \"Nachweis erstellen\",\n cga1: \"Die Züchterin oder der Züchter bestätigt, von der Kundin oder dem Kunden formell berechtigt zu sein, die oben genannten Informationen an die Vaudoise weiterzugeben\",\n cga2: \"Achtung: Sobald der Nachweis validiert wurde, kann er nur noch von Animalia bearbeitet werden.\",\n created: \"Ihr Nachweis wurde erfolgreich erstellt.\",\n createdMessage: \"Sie finden sie in Ihrem Züchter-Konto.\",\n backToBreederSpace: \"Zurück zu meinem Züchter-Bereich\",\n petNameAlreadyExist: \"Ein Tier mit diesem Namen existiert bereits.\",\n petBirthdateTooOldMax120Days: \"Das Geburtsdatum des Tiers darf nicht länger als 120 Tage zurückliegen.\",\n petExitDateMax120DaysBirthdate: \"Das Datum, an dem das Tier aus der Zucht austritt, muss innerhalb von 120 Tagen nach seiner Geburt liegen.\",\n petBirthdateMin6Months: \"Das Geburtsdatum des Tieres muss mindestens 6 Monate zurückliegen.\",\n petExitDateMax56DaysBirthdate: \"Das Austrittsdatum des Tieres muss innerhalb von 56 Tage nach seiner Geburt liegen.\",\n petExitDateMax180DaysBirthdate: \"Das Austrittsdatum des Tieres muss innerhalb von 180 Tage nach seiner Geburt liegen.\",\n petNameTip: \"Vom Kunden angegebener Name des Tieres\",\n },\n}\n","module.exports = {\n or: 'o',\n add: 'Aggiungere',\n save: 'Registrare',\n send: 'Invia',\n edit: 'Modificare',\n delete: 'Cancellare',\n previous: 'Precedente',\n next: 'Seguente',\n iAcceptCGU: 'Acceto le',\n CGV: 'Condizioni generali di vendita',\n CGU: 'Condizioni di utilizzo',\n privacy_policy: 'Informativa sulla privacy',\n missingData: 'Dati mancanti',\n readmore: 'Saperne di più',\n yes: 'Si',\n no: 'No',\n close: 'Chiudere',\n back: 'Indietro',\n backToAnimals: 'Indietro a \"I miei animali\"',\n draft: 'Non ancora salvato',\n calculating: 'Colcolo corrente',\n allfeesincluded: 'Tasse e spedizione incluse',\n finished: 'Finito',\n printOrder: \"Stampa l'ordine\",\n deliveries: 'Consegne',\n plannedDeliveries: 'Prossime consegne',\n previousDeliveries: 'Consegne effettuate',\n batchID: \"Numero d'ordine\",\n status: 'Stato',\n verify: 'Controllare',\n year: 'Anno',\n month: 'Mese',\n day: 'Giorno',\n months: {\n 1: 'Gennaio',\n 2: 'Febbraio',\n 3: 'Marzo',\n 4: 'Aprile',\n 5: 'Maggio',\n 6: 'Giugno',\n 7: 'Luglio',\n 8: 'Agosto',\n 9: 'Settembre',\n 10: 'Ottobre',\n 11: 'Novembre',\n 12: 'Dicembre',\n },\n immediately: 'Immediatamente',\n informations: 'Informazioni',\n aboGourmand: 'Abbonamento Gourmet',\n theAboGourmand: 'Il Abbonamento Gourmet',\n theInsurance: \"L'Assucurazione\",\n administrative: 'Amministrativo',\n missingAddress: 'Nessun indirizzo registrato.',\n missingAddressFor: 'Nessun indirizzo registrato per {{name}}.',\n missingCard: 'Nessun mezzo di pagamento registrato.',\n fix: 'Risolvere il problema',\n cancel: 'Annullare',\n confirm: 'Confermare',\n fillIn: 'Compilare',\n wantToKnowMore: 'Volete saperene di più ?',\n moreDetails: 'Maggiori informazioni',\n date: 'Data',\n service: 'Servizio',\n noResults: 'Nessun risultato',\n required: 'Obbligatorio',\n your_comment: 'Osservazioni',\n\n cardIsFailing: 'Fallimento',\n twintAccount: 'Conto Twint',\n powerpayAccount: 'Pagamento con fattura (PowerPay)',\n\n oldbrowser: {\n title: 'Oops! Il tuo browser non è aggiornato.',\n text:\n 'Per maggiore sicurezza e una migliore esperienza sul nostro sito, ti preghiamo di aggiornare il tuo browser.',\n button: 'Aggiorno il mio browser',\n },\n\n weDidNotReceiveYourPayment:\n 'Non abbiamo ricevuto il pagamento per questo ordine.',\n contactUs: 'Contatto',\n powerpay: {\n title: 'Controllare i dati di pagamento',\n subtitle:\n 'Riceverà la fattura gratuita via e-mail. Con l\\'acquisto su fattura si accettano i termini e le condizioni di POWERPAY (powerpay.ch/it/agb), se si dispone di un indirizzo e-mail valido.',\n next: 'Paga',\n cancel: 'Annullare',\n },\n other: 'Altro',\n};\n","module.exports = {\n btnAdd: 'Aggiungere un animale',\n yourPets: 'I miei animali',\n yourPetServices: 'I servizi di {{name}}',\n yourPetAbogourmand: \"L'Abbonamento Gourmet di {{name}}\",\n yourPetAssistance: 'L\\'assistenza Animaliera di {{name}}',\n animal: 'Animale',\n cat: 'Gatto',\n dog: 'Cane',\n size: 'Taglia',\n gender: 'Sesso',\n female: 'Femmina',\n male: 'Maschio',\n animalTitle: 'Aggiungere un animale',\n animalEditTitle: 'Inserire un animale',\n animalDescription: 'Conosciamoci meglio',\n\n passportTitle: 'Passaporto Animalia',\n passportDescription: \"Indicare l'identità del vostro buongustaio preferito.\",\n itsName: 'Nome',\n noNameYet: 'Senza nome',\n bornOn: 'Data di nascita',\n birthdate: 'Data di nascita',\n breed: 'Razza',\n breedDescription: 'Con o senza pedigree, sappiamo quanto lo amate!',\n weight: 'Peso',\n catofbreed: 'Gatto di razza',\n dogofbreed: 'Cane di razza',\n kgWeight: 'Peso adulto in kg',\n kgWeightMaxError: 'Si prega di inserire un peso inferiore a 100 kg',\n adultWeightTitle: 'Peso da adulto',\n adultWeightDescription:\n 'Anche se sappiamo che il suo benessere è una priorità per voi, sapere cosa indica la bilancia ci è molto utile!',\n chooseBreed: 'Scelta della razza',\n dogBastard: 'Incrocio',\n catBastard: 'Incrocio',\n\n activityTitle: 'Ognuno ha il suo ritmo',\n activityDescription:\n 'Piuttosto sportivo o da pisolino sul divano? Il mio compagno a quattro zampe è...',\n activityLevel: 'Attività fisica',\n passive: 'Poco attivo',\n passiveDescription:\n \"Più da divano che da corsa all'aperto, il vostro compagno è piuttosto un tipo casalingo?\",\n normal: 'Moderato',\n normalDescription:\n 'Giocare con un laccio o riportare il bastone va bene per un momento! Al vostro amico a quattro zampe piace muoversi ma senza stancarsi troppo.',\n active: 'Molto attivo',\n activeDescription:\n 'Lunghe passeggiate e corsa controvento, adora portarvi allo sfinimento!',\n\n sterilizedTitle: 'Sterilizzato?',\n sterilizedDescription: 'Il vostro compagno è passato in sala operatoria?',\n sterilizedYes: 'Si (Ouch!)',\n sterilized: 'Sterilizzato',\n nonSterilized: 'Non sterilizzato',\n\n foodTypeStepTitle: 'Alimentazione',\n foodTypeTitle: 'Menù alla carta',\n foodTypeDescription:\n 'Diteci di più sulla dieta del vostro piccolo o grande goloso.',\n standard: 'Standard',\n standardHelp:\n \"Il vostro buongustaio a quattro zampe non soffre di nessuna allergia o intolleranza particolare? Allora adorerà le nostre crocchette 100 % naturali, garantite senza addittivi e soprattutto senza glutine, permettendo di prevenire qualsiasi richio d'intolleranza in futuro.\",\n sensitive: 'Sensibile',\n sensitiveHelp:\n 'Il vostro compagno a quattro zampe è un gourmet con uno stomaco piuttosto fragile? Abbiamo quello di cui avete bisogno: un menù delizioso ed equilibrato facile da digerire.',\n grainfree: 'Senza cereali',\n Cereali:\n 'Il vostro compagno a quattro zampe è allergico o digerisce male i cereali? La nostra gamma di crocchette senza cereali contiene tutti i nutrimenti e le fibre di cui ha bisogno, il tutto tenendo conto della sua digestione.',\n grainfreeHelp:\n 'Il vostro compagno a quatro zampe è allergico o fa fatica a digerire i cereali? La nostra gamma di crocchette senza cereali contiene tutti i nutrimenti e le fibre di cui ha bisogno, il tutto tenendo conto della sua digestione.',\n\n productStepTitle: 'Scelta del prodotto',\n productTitle: \"Riempite la scodella (d'amore e crocchete)\",\n productDescription:\n 'Le nostre crocchette sono deliziose. Non resta altro che lasciarvi tentare!',\n\n adjustQuantityStepTitle: 'Adeguare la quantità',\n adjustQuantityTitle: 'A tavola!',\n adjustQuantityDescription:\n 'Benvenuto {{name}}! Piacere di conoscerti! Secondo quanto ci ha riferito il tuo padrone e in collaborazione con il nostro veterinario nutrizionista, che conosce le nostre crocchette sulla punta delle dita, ecco la tua dose giornaliera raccommandata:',\n adjust80Comment:\n \"Attenzione, non sono molte crochette! Completate la sua dieta con altri alimenti? Una dose inferiore del 20 % a quella raccommandata può provocare delle carenze e una sottoalimentazione al vostro compagno a quattro zampe e questo può danneggiare la sua salute. E se aggiungessimo qualche crocchetta nei nostri pacchtti d'amore?\",\n adjust90Comment:\n 'Il vostro amico peloso ha poco appetito? Ci sono altre prelibatezze oltre alle nostre deliziose crocchette? Allora avete la possibilità di ridurre la dose raccommandata del 10 %. Tuttavia, sarebbe opportuno rispettare la dose giornagliera raccomandata compensando con altri alimenti.',\n adjust100Comment:\n 'Così scegliete esattamente la dose raccomandata! Ma visto che lo conoscete meglio di chiunque altro, non esitate ad adeguare la quantità di crocchette!',\n adjust110Comment:\n 'Vivete con gran goloso o un gran sportivo? Potete aggiungere 10 % alla sua dose giornaliera. Senza esagerare, ovviamente!',\n adjust120Comment:\n 'WOW! Sono tante crocchette! Attenzione al fatto che una razione superiore del 20 % a quella raccomandata può portare al sovrappeso e danneggiare la salute del vostro compagno a quattro zampe. E se mettessimo più amore e meno crocchette nella sua ciotola?',\n\n summaryTitle: \"L'Abbonamento Gourmet\",\n monthlyPrice: 'Prezzo al mese',\n\n upTo4kg: 'fino a 4kg',\n between4and6kg: 'da 4kg a 6kg',\n between6and8kg: 'da 6kg a 8kg',\n from8kg: 'da 8kg',\n\n // summary screen\n nextDeliveryDate: 'Prossima consegna',\n nextDeliveryOn: 'Prossima consegna il',\n deliveryFrequency: 'Frequenza di consegna',\n deliveredEachXDays: 'Consegna tutti i {{days}} giorni',\n deleteOrderFor: 'Disdire il mio abbonamento per {{name}}',\n product: 'Prodotto',\n dailyQuantity: 'Quantità giornaliera',\n order: \"Proseguire con l'ordine\",\n\n // details and listing screens\n backToMyPets: 'Ritornare ai miei animali',\n deletePet: 'Cancellare il profilo di {{name}}',\n byDeletingPetItWillCancelLinkedServices:\n \"La preghiamo di notare che l'assicurazione sanitaria di {{name}} (se presente) non sarà cancellata se cancella il suo profilo.\",\n reasonOfDeletion: \"Le vostre ragioni per disdire l'abbonamento?\",\n myPetIsDead: 'Il mio animale è venuto a mancare',\n notInterrestedAnymore: 'Non sono più interessato',\n thisPetCantBeDeleted:\n \"Non può cancellare il profilo di {{name}} perché uno o più dei seguenti servizi sono ancora collegati al suo animale:\",\n reasonAbo: 'Abbonamento Gourmet attivo o in attesa di consegna',\n reasonAssurance: \"Collegamento a Animalia Assicurazione sanitaria\",\n // my account\n itsAbo: 'Il suo Abbonamento',\n calculate:\n 'Calcolate l’Abbonamento Gourmet del vostro compagno a quattro zampe',\n calculateAgain: 'Ricalcolare l’Abbonamento Gourmet',\n petDataHasChanged: 'I dati di {{name}} sono cambiati',\n seeOrderDetails: \"Vedere i dettagli dell'Abbonamento Gourmet\",\n seeInsuranceSettings: \"Rimuova il collegamento con l'assicurazione Animalia\",\n hasNoAccount: \"{{name}} non ha ancora l'Abbonamento Gourmet\",\n hasNoInsurance: '{{name}} non è ancora assicurato',\n itsInsurance: \"L'assicurazione sanitaria di {{name}}\",\n policeNumber: 'No di polizza',\n petDataHasChangedExtended:\n \"Il profilo di {{name}} è stato modificato. Vi raccomandiamo di ricalcolare l'Abbonamento Gourmet per ottenere una nuova raccomandazione sulle quantità.\",\n receiveOffer: \"Richiedere un'offerta d'assicurazione\",\n askForEstimate: \"Chiedere un'offerta\",\n calculator: 'Calcolatore',\n hasNoOrder: '{{name}} non ha ancora un abbonamento',\n adjustOrder: \"Vuoi modificare l'abbonamento di {{name}}?\",\n petHasRemainingDeliveries:\n 'Attenzione: {{name}} ha pagamenti e/o consegne in sospeso',\n newAbo: 'Creare un nuovo abbonamento',\n temporaryDisabled: 'Per ragioni tecniche, le funzioni di dichiarazione dei sinistri e di invio delle fatture sono temporaneamente disabilitate su questa applicazione. Nel frattempo, può dichiarare i sinistri e inviare le fatture sul nostro sito web nel suo conto cliente: ',\n petRaceSearchPlaceholder: 'Ricercare',\n noInsurance: '{{name}} non ha ancora un\\'assicurazione',\n noAssistance: '{{name}} non ha ancora l\\'Assistenza 24/7',\n};\n","module.exports = {\n yourPetAssistance: 'L\\'Assistance 24/7 di {{name}}',\n policeNumber: 'No di polizza {{number}}',\n noAssistanceSubtitle: '{{name}} non ha ancora Animalia Assitance 24/7',\n cga: 'CGA',\n contractStartDate: 'Inizio del contratto',\n contractEndDate: 'Fine del contratto (rinnovo tacito di anno in anno)',\n callHelpLine: 'Chiamare l\\'Infoline 24/7',\n declareSinister: 'Dichiarare un caso di assistenza per {{name}}',\n deleteAssistance: 'Cancellare l\\'Assistance Animalia 24/7 da',\n moreInformations: 'Ulteriori informazioni su Animalia Assistance 24/7',\n createAssistance: 'Concludere Animalia Assistance 24/7 per CHF 79.00/anno',\n policy: \"Polizza assicurativa Assistenza 24/7\",\n moreInformationsLink: 'https://www.animalia.ch/it/service/assistance',\n createAssistanceLink: 'https://shop.animalia.ch/it/product/assistance-24-7/',\n deleteAssistanceLink: 'mailto:contact@animalia.ch',\n callHelpLineLink: 'tel:+41225937326',\n declareSinisterLink: 'https://shop.animalia.ch/it/mon-compte/declaration-de-sinistre/',\n}","module.exports = {\n myPets: 'I miei animali',\n myProfile: 'Il mio profilo',\n logout: 'Disconnettersi',\n};\n","module.exports = {\n error: 'Errore',\n warning: 'Attenzione',\n\n apiError: 'Si è verificato un errore durante il processo della richiesta.',\n fieldValidationError: 'Uno o più campi non sono validi.',\n\n petNotFound: \"L'animale ricercato non è stato trovato\",\n petsNotFound: 'Non ci sono animali',\n\n insuranceNumberDelete: {\n title: 'Cancellare il raccordo con il numero di poizza di {{name}}',\n content:\n ' Attenzione: cancelli il collegamento solo con il numero di polizza di {{nome}}. Il contratto di assicurazione rimane in vigore. Se desidera annullarlo, La preghiamo di consultare le Condizioni generali di assicurazione (CGA).',\n },\n\n card: {\n cancelled: 'Operazione annullata',\n error: 'Verificare le informazioni della vostra carta.',\n },\n\n latePayment: {\n title: 'Oops, ha ancora una fattura aperta!',\n content:\n 'Una fattura non è stata pagata. Si prega di pagare prima di entrare in un nuovo Abbonamente Gourmet.',\n },\n};\n","module.exports = {\n deliveryAddress: 'Indirizzo di consegna',\n billingAddress: 'Indirizzo di fatturazione',\n defineNewAddress: 'Impostare il nuovo indirizzo',\n addNewCard: 'Aggiungere una carta di credito o PostFinance',\n addNewTwint: 'Aggiungere un conto Twint',\n addNewPowerPay: 'Aggiungere un conto PowerPay',\n paymentMethod: 'Modalità di pagamento',\n firstname: 'Nome *',\n lastname: 'Cognome *',\n line1: 'Indirizzo *',\n line2: \"Indicazioni aggiuntive sull'indirizzo\",\n zipcode: 'NPA *',\n city: 'Località *',\n state: 'Stato',\n country: 'Paese',\n thisIsThesePetsHouse: 'Questa è la casa di',\n};\n","module.exports = {\n nextDeliveryOn: 'Prossima consegna il {{date}}',\n date: 'Data di consegna',\n dateRecurring: 'Desidera personalizzare anche le consegne future?',\n dateSelector: 'Selezionare la nuova data di consegna',\n address: 'Indirizzo di consegna',\n editDeliveryDateFor: 'Modificare la data di consegna per {{nome}}',\n adjustAllDates: \"Si, adattare l'indirizzo anche per le consegne successive.\",\n adjustOneDate:\n \"No, voglio cambiare l'indirizzo unicamente per questa consegna.\",\n\n status: {\n pending: 'In attesa',\n planned: 'Previsto',\n failed: 'Fallimento del trattamento',\n cancelled: 'Cancellato',\n refunded: 'Rimborsato',\n standby: 'In attesa di pagamento',\n 'payment-on-hold': 'In attesa di pagamento',\n 'completed-paid': 'Inviato',\n 'completed-unpaid': 'Inviato',\n 'completed-refunded': 'Inviato',\n },\n editLater: 'Inserisca qui l\\'indirizzo di consegna. E se sta per partire per la casa in montagna o se lascia il suo compagno dai vicini o dagli amici, non si preoccupi: può cambiare l\\'indirizzo di consegna in qualsiasi momento tramite il suo conto cliente, anche per una singola consegna. Comodo, vero?',\n paymentMessage: 'Basta un clic per deliziare il vostro amico a quattro zampe.

Non si preoccupi! È possibile disdire il suo abbonamento in qualunque momento con un semplice clic nel suo conto cliente o tramite il nostro servizio clienti.

Inoltre, non esiti a contattarci per conoscere i metodi di pagamento o per richiedere assistenza al momento del pagamento.'\n};","module.exports = {\n firstDeliveryDate: 'Prima consegna',\n lastDelivery: 'Ultima consegna',\n selectLastDelivery: 'Selezionate la vostra ultima data di consegna',\n validateDate: 'Validare la data',\n deleteOrder: 'Rescindere il contratto',\n cancelled: 'Abbonamento annullato',\n couponCodeLabel: 'Buono',\n couponCodePlaceholder: 'Il codice del vostro buono',\n invalidCoupon: 'Codice del buono non valido',\n editOrder: 'Modifica abbonamento',\n showAllProducts: 'Mostra altre varietà',\n showRecommandedProducts: 'Mostra i prodotti consigliati',\n notRecommendedTooltip: 'Naturalmente può ordinare queste crocchette. Tuttavia, in base alle sue specifiche, le consigliamo un prodotto diverso.',\n confirmModification:\n \"In seguito alle modifiche, il prezzo del vostro Abbonamento Gourmet non è più lo stesso. Ci confermi per favore che è d'accordo con questo cambiamento di tariffa.\",\n couponDetailsUnlimited: 'Beneficiate del {{discount}} di sconto.',\n couponDetails:\n \"Beneficiate del {{discount}} di sconto durante {{months}} mesi. In seguito, la tariffa verrà automaticamente adattata al prezzo standard del'abbonamento.\",\n priceWithoutDiscount: '(Prezzo senza sconto: {{price}})',\n payAmount: 'Paga {{price}}',\n error: {\n pleaseAcceptTerms: 'La preghiamo di accettare le Condizioni generali',\n pleaseChooseADeliveryDate: 'La preghiamo di scegliere la data della sua prima consegna',\n },\n pricePerMonth: 'Prezzo al mese',\n price: 'Prezzo',\n totalPricePerMonth: 'Prezzo mensile totale',\n discount: 'Sconto',\n thankyou: {\n title: 'Grazie e congratulazioni! ',\n text:\n \"Grazie per aver scelto l'Abbonamento Gourmet! ! Il vostro ordine è confermato e stiamo già iniziando a preparare il suo pasto realizzato con prodotti di alta qualità e ricchi di proteine. Il vostro cucciolo a quattro zampe se ne leccherà i baffi e vi ringrazierà per aver fatto la scelta giusta. Siamo felici e onorati di avervi come parte della nostra comunità di amanti degli animali!\",\n button: 'Visualizzare il mio ordine',\n subText:\n 'Avete una domanda? Siamo qui per voi e lieti di potervi aiutare tramite la nostra chat online o per telefono al numero 0800 815 915.',\n },\n mfgroupErrorUnavailable: \"Al momento non è possibile utilizzare questo metodo di pagamento. Per favore, sceglietene un altro metodo.\",\n addPaymentMethodError: \"Questo metodo di pagamento non è valido. Si prega di inserirne un altro.\"\n};\n","module.exports = {\n noInvoices: 'Nessuna fattura',\n noInvoicesDescription: 'Non ci sono ancora fatture sul vostro conto.',\n refno: 'No di ordine',\n total: 'Prezzo',\n\n paymentModal: {\n successTitle: 'Grazie per il vostro pagamento',\n successMessage: 'Abbiamo ricevuto il vostro pagamento e vi ringraziamo per questo.',\n failureTitle: 'Oops! Mancato pagamento',\n failureMessage: 'l vostro attuale metodo di pagamento non sembra funzionare. Si prega di registrare un altro metodo di pagamento e tornare a questa pagina per riprovare.',\n },\n payNow: 'Paga ora',\n closeFaildModal: 'Non adesso',\n payementMethod: 'Aggiungere un nuovo metodo di pagamento',\n status: {\n pending: 'In attesa',\n failed: 'Fallimento del trattamento',\n completed: 'Pagato',\n 'no-default-card': 'Nessun mezzo di pagamento registrato',\n refunded: 'Rimborsato',\n },\n};\n","module.exports = {\n myAccount: 'Il mio conto',\n editMyProfile: 'Modificare il mio profilo',\n title: 'Titolo *',\n firstName: 'Nome *',\n lastName: 'Cognome *',\n firstAndLastName: 'Nome & Cognome *',\n email: 'E-mail *',\n phone: 'Telefono',\n home_phone: 'Telefono fisso',\n mobile_phone: 'Cellulare',\n birthdate: 'Data di nascita',\n subscribeToMailchimp:\n \"Desidero ricevere le newsletter Animalia (consigli, concorsi, offerte, novità ecc.)\",\n subscribeToMailchimpInfo:\n \"Abbonandosi, l’utente accetta la politica di confidenzialità e il trasferimento di dati a un sistema esterno per l’invio della newsletter Animalia.\",\n mrs: 'Signora',\n mr: 'Signor',\n locale: 'Lingua di comunicazione *',\n myPets: 'I miei animali',\n seeMyPets: 'Vedere i miei animali',\n myInsurance: 'La mia assicurazione',\n declareSinister: 'Annunciare un sinistro',\n sendInvoice: 'Inviare una fattura',\n editInsurance: 'Modificare la mia assicurazione',\n myAboGourmand: 'Il mio Abbonamento Gourmet',\n editMyAboGourmand: 'Gestire il mio Abbonamento Gourmet',\n editMyData: 'Gestire i miei dati',\n myInvoices: 'Le mie fatture Abbonamento Gourmet',\n myInvoicesText: \"Dare un'occhiata alle mie ultime transazioni\",\n myCards: 'Le mie modalità di pagamento Abbonamento Gourmet',\n myCardsText: 'In che modo desiderate pagare ?',\n myAddresses: 'I miei inidirizzi di spedizione Abbonamento Gourmet',\n myAddressesText: 'Cognome, indirizzo & co.',\n modalEditMyAddressTitle: \"Cambiare l'indirizzo di consegna\",\n logout: 'Disconnettersi',\n delete: {\n button: 'Cancellare il mio account Animalia',\n title: 'Cancellare il mio account Animalia',\n content:\n 'Se cancella il suo conto Animalia, tutti i dati associati (i suoi dati e quelli dei suoi animali) saranno cancellati. Non possiamo recuperarli in seguito e dovrà creare un nuovo account. È sicuro di volerlo fare?',\n confirm: 'Sì, cancello i miei dati',\n cancel: 'No, sto mantenendo il mio account',\n },\n};\n","module.exports = {\n BACK_TO_SIGN_IN: \"Tonare alla pagina d'accesso\",\n CHANGE_PASSWORD: 'Cambiare la Password',\n CHANGE_PASSWORD_ACTION: 'Cambiare',\n CODE_LABEL: 'Codice di verifica (e-mail)',\n CODE_PLACEHOLDER: 'Inserire il codice',\n CONFIRM: 'Confermare',\n CONFIRM_SIGN_UP_CODE_LABEL: 'Codice di verifica',\n CONFIRM_SIGN_UP_CODE_PLACEHOLDER: 'Inserire il vostro codice',\n CONFIRM_SIGN_UP_HEADER_TEXT: \"Confermare l'iscrizione\",\n CONFIRM_SIGN_UP_LOST_CODE: 'Avete perso il vostro codice?',\n CONFIRM_SIGN_UP_RESEND_CODE: 'Inviare nuovamente il codice',\n CONFIRM_SIGN_UP_SUBMIT_BUTTON_TEXT: 'Confermare',\n CONFIRM_SMS_CODE: 'Confermare il codice SMS',\n CONFIRM_TOTP_CODE: 'Confermare il codice TOTP',\n CREATE_ACCOUNT_TEXT: 'Creare un conto',\n EMAIL_LABEL: 'Indirizzo Email*',\n EMAIL_PLACEHOLDER: 'Inserire il vostro indirizzo email',\n EMAIL_ERROR: 'Inserire un indirizzo email valido',\n FORGOT_PASSWORD_TEXT: 'Password dimenticata?',\n LESS_THAN_TWO_MFA_VALUES_MESSAGE: 'Meno di due tipi di mfa disponibili',\n NEW_PASSWORD_LABEL: 'Nuova password',\n NEW_PASSWORD_PLACEHOLDER: 'Scegliere una nuova password',\n NO_ACCOUNT_TEXT: 'Non avete un conto?',\n PASSWORD_LABEL: 'Password *',\n PASSWORD_PLACEHOLDER: 'Inserire la vosta password',\n PHONE_LABEL: 'Numero di telefono*',\n PHONE_PLACEHOLDER: '79 555 55 55',\n QR_CODE_ALT: 'codice qr',\n RESET_PASSWORD_TEXT: 'Cambiare password',\n RESET_YOUR_PASSWORD: 'Cambiare la vostra password',\n SELECT_MFA_TYPE_HEADER_TEXT: 'Selezionare il tipo di MFA',\n SELECT_MFA_TYPE_SUBMIT_BUTTON_TEXT: 'Verificare',\n SEND_CODE: 'Send Code',\n SETUP_TOTP_REQUIRED: 'Il TOTP necessita una configurazione',\n SIGN_IN_ACTION: 'Accedere',\n SIGN_IN_HEADER_TEXT: 'Accedere al suo conto',\n SIGN_IN_TEXT: 'Accedere',\n SIGN_IN_WITH_AMAZON: 'Accedre con Amazon',\n SIGN_IN_WITH_AUTH0: 'Accedere con Auth0',\n SIGN_IN_WITH_AWS: 'Accedre con AWS',\n SIGN_IN_WITH_FACEBOOK: 'Accedre con Facebook',\n SIGN_IN_WITH_GOOGLE: 'Accedre con Google',\n SIGN_OUT: 'Disconnettersi',\n SIGN_UP_EMAIL_PLACEHOLDER: 'Email',\n SIGN_UP_HAVE_ACCOUNT_TEXT: 'Avete già un conto?',\n SIGN_UP_HEADER_TEXT: 'Creare un nuovo conto',\n SIGN_UP_PASSWORD_PLACEHOLDER: 'Password',\n SIGN_UP_SUBMIT_BUTTON_TEXT: 'Creare un conto',\n SIGN_UP_ALREADY_BUTTON_TEXT: 'Ho già un conto',\n SIGN_UP_USERNAME_PLACEHOLDER: 'Nome utente',\n SUCCESS_MFA_TYPE: \"L'impostazione è riuscita! Il vostro tipo di MFA è ora:\",\n TOTP_HEADER_TEXT: 'Scansionare e poi inserire il codice di verifica',\n TOTP_LABEL: 'Inserire il codice di sicurezza:',\n TOTP_SETUP_FAILURE: \"L'impostazione del TOTP non è riuscita\",\n TOTP_SUBMIT_BUTTON_TEXT: 'Verificare il token di sicurezza',\n TOTP_SUCCESS_MESSAGE: 'Impostazione del TOTP riuscita!',\n UNABLE_TO_SETUP_MFA_AT_THIS_TIME:\n 'Impostazione non riuscita! Impossibile configurare il MFA in questo momento',\n USERNAME_LABEL: 'Nome utente *',\n USERNAME_PLACEHOLDER: 'Inserire il vostro nome utente',\n VERIFY_CONTACT_EMAIL_LABEL: 'Email',\n VERIFY_CONTACT_HEADER_TEXT:\n 'Il recupero del conto richiede informazioni di contatto verificate',\n VERIFY_CONTACT_PHONE_LABEL: 'Numero di telefono',\n VERIFY_CONTACT_SUBMIT_LABEL: 'Inviare',\n VERIFY_CONTACT_VERIFY_LABEL: 'Verificare',\n PASSWORD_HELP:\n 'minimo 8 caratteri con almeno un numero, una maiuscola, una minuscola e un carattere speciale.',\n checkFormat: 'Assicuratevi che la password rispetti il formato richiesto',\n checkFormatPhone: 'Si prega di controllare il formato del numero di telefono',\n personnalInfo: 'Informazioni personali',\n connectWithGoogle: 'Login con Google',\n signinWithGoogle: 'Login con Google',\n connectWithFacebook: 'Login con Facebook',\n signinWithFacebook: 'Login con Facebook',\n connectWithApple: 'Login con Apple',\n signinWithApple: 'Login con Apple',\n\n /**\n * Cognito error messages\n */\n error: \"C'è stato un errore\",\n AliasExistsException:\n 'Questo indirizzo e-mail esiste già. Effettua il login al suo account o scegli un altro indirizzo.',\n errorEmailAlreadyExists:\n 'Questo indirizzo e-mail esiste già. Effettua il login al suo account o scegli un altro indirizzo.',\n Userdoesnotexist: \"L'utente o la password non sono corretti.\",\n Incorrectusernameorpassword: 'L\\'utente o la password non sono corretti.',\n Usernameclientidcombinationnotfound: 'Non conosciamo questa email.',\n Invalidverificationcodeprovidedpleasetryagain:\n 'Codice di verifica non valido.',\n Anaccountwiththegivenemailalreadyexists: 'Email o password non sono validi',\n Invalidemailaddressformat: \"L'email non è valida\",\n Cannotresetpasswordfortheuserasthereisnoregisteredverifiedemailorphonenumber:\n 'Non può cambiare queste informazioni perché sono legate al suo account di social network.',\n verificationSentTitle: \"Confermi il nuovo indirizzo e-mail\",\n verificationSentAgain: 'Il codice è stato inviato al suo nuovo indirizzo e-mail.',\n uneditableBecauseLinkedToYourSocialAccountAlt: 'Si è registrato con un login sociale (Google, Facebook, Apple). Non può cambiare i suoi dati qui. Li cambi direttamente nel suo account Google / Facebook / Apple.'\n};\n","module.exports = {\n conclusionTitle: 'Grazie per il suo messaggio',\n conclusionMsg: 'Abbiamo inoltrato la sua richiesta di modifica alla Vaudoise Assicurazioni. Il cambiamento avverrà nei prossimi giorni.',\n deleteNumber: 'Cancellare il raccordo con questo numero di polizza',\n changeBankData: 'Modifica delle informazioni bancarie per i rimborsi',\n changeAddress: \"Modificare l'indirizzo\",\n changeOwner: 'Modificare il proprietario di {{name}}',\n declareSinister: 'Annunciare un sinistro per {{name}}',\n not_complete: 'Sta preparando un\\'offerta assicurativa',\n waiting: 'La sua domanda di assicurazione è stata presentata con successo. Vedrà qui il suo numero di polizza nei prossimi giorni.', \n noContractNumberSubtext:\n \"{{name}} non ha ancora un'assicurazione sanitaria associata\",\n ContractNumberSubtext: 'Numero di polizza {{police}}',\n addContractNumber:\n 'Inserire il numero di polizza della sua assicurazione sanitaria Animalia esistente',\n addContractNumberDescription:\n 'Per collegare il suo conto Animalia all’assicurazione Animalia del suo compagno a quattro zampe, la preghiamo di inserire qui il numero di polizza completo (senza spazi).',\n addContractNumberPopupTitle:\n \"La preghiamo di inserire il numero di polizza dell'assicurazione sanitaria Animalia di {{name}}\",\n addContractNumberFieldLabel: 'Numero di polizza Animalia',\n contractNotFound:\n 'Questo numero di polizza non esiste. Inserisca per favore il numero che si trova sulla sua polizza. Si tratta del numero che termina con ...330x.',\n petNameMismatch:\n 'Oops, questo numero di polizza non corrisponde al suo animale o il nome non corrisponde a quello riportato sulla polizza. Trova il nome registrato e il numero sulla sua polizza.',\n contractUpdated:\n 'La polizza assicurativa è ora legata al profilo del vostro animale.',\n apiConnectionError:\n 'Problema di connessione (Could not connect to API). La preghiamo di riprovare più tardi.',\n unauthorized:\n 'Problema di connessione (api call unauthorized). La preghiamo di riprovare più tardi.',\n apiError:\n 'Problema di connessione (api error). La preghiamo di riprovare più tardi.',\n serverError:\n 'Problema di connessione (server error). La preghiamo di riprovare più tardi.',\n undefined:\n 'Questo numero non è valido. Inserisca il numero di polizza che si trova sulla sua polizza. Si tratta del numero che termina con ...330x.',\n checkPolicyNumber:\n 'Questo numero non è valido. Inserisca il numero di polizza che si trova sulla sua polizza. Si tratta del numero che termina con ...330x.',\n comment: '---THE FOLLOWING STRINGS ARE NEW ---',\n addInvoice: 'Inviare una fattura per {{name}}',\n addInvoiceButton: 'Aggiungere fattura',\n addDocumentButton: 'Aggiungere documento',\n addClaimButton: 'Nuovo sinistro',\n petFiles: 'File di {{name}}',\n editInsurance: 'Moduli per cambiare l\\'assicurazione (indirizzo, IBAN, proprietario)',\n invoicedOn: 'Fattura di {{date}}',\n xInvoices: '{{count}} fattura',\n xInvoices_plural: '{{count}} fatture',\n steps: {\n disaster: 'Sinistro',\n medicalFile: 'Cartella clinica',\n invoice: 'Fattura',\n },\n types: {\n vaccine: 'Vaccini o spese di prevenzione',\n health: 'Malattia o altro',\n accident: 'Infortunio',\n external: 'Segnalato offline',\n },\n disaster: {\n illnessTip:\n 'La sterilizzazione/castrazione, l’ablazione del tartaro, la cremazione e tutti i casi non legati a un infortunio devono essere dichiarati alla voce «Malattia o altro».',\n intro: {\n title: 'Di che tipo di sinistro si tratta?',\n description:\n 'Se la fattura riguarda più sinistri o animali, la preghiamo di fare riferimento al primo e di ripetere in seguito la procedura quanto necessario.',\n new: 'Un nuovo sinistro ',\n existing: 'Un sinistro esistente',\n vaccine: 'Vaccini o spese di prevenzione',\n },\n type: {\n title: 'Di che tipo di sinistro si tratta?',\n description:\n 'Si prega di indicare se si tratta di un infortunio, di una malattia o di un altro caso.',\n description2: 'Attenzione: per i vaccini e le spese di prevenzione (castrazione o sterilizzazione, ablazione del tartaro, sverminazione e complementi alimentari prescritti dal veterinario),',\n accident: 'Infortunio',\n illness: 'Malattia o altro',\n vaccine:\n 'può inviare direttamente la fattura, non serve una notifica del sinistro.',\n illnessTip:\n 'CGA dal 2008 al 2019: La sterilizzazione/castrazione, l’ablazione del tartaro, la cremazione e tutti i casi non legati a un infortunio devono essere dichiarati alla voce «Malattia o altro». CGA da 2021: Tutti i casi non legati a un infortunio o spese di prevenzione devono essere dichiarati alla voce «Malattia o altro»',\n },\n existing: {\n title: 'Sinistri esistenti',\n description:\n 'Se ha notificato il sinistro in questa piattaforma, lo selezioni qui sotto.',\n info:\n 'Ho dichiarato il sinistro in altro modo (vecchio sito, e-mail, telefono ecc.).',\n disasters: 'Sinistri',\n noDisasters: 'Non sono ancora stati notificati sinistri per {{name}}.',\n },\n title: {\n title: 'Designazione del sinistro',\n description:\n 'Questa designazione le consente di individuare rapidamente il sinistro nell’incarto di {{name}}. Indichi parole semplici e chiare in riferimento al sinistro.',\n shortDescription: 'Designazione del sinistro',\n },\n existingDisasterTitle: {\n title: 'Designazione del sinistro',\n description:\n 'Questa designazione le consente di individuare rapidamente il sinistro nell’incarto di {{name}}. Indichi parole semplici e chiare in riferimento al sinistro.',\n shortDescription: 'Designazione del sinistro',\n year: 'Anno del sinistro',\n type: 'Tipo di sinistro',\n },\n diagnosticAccident: {\n title: 'Diagnosi del veterinario ?',\n description:\n 'Per diagnosi, intendiamo l’individuazione, da parte del veterinario, della natura della malattia di cui soffre l’animale.',\n diagnostic: 'Diagnosi del veterinario',\n },\n diagnosticIllness: {\n title: 'Diagnosi del veterinario ',\n description:\n 'Per diagnosi, intendiamo l’individuazione, da parte del veterinario, della natura della malattia di cui soffre l’animale.',\n diagnostic: 'Diagnosi del veterinario',\n symptomsOptionnal: 'Sintomi (opzionale)',\n symptoms: 'Sintomi',\n illnessStartLabel: 'Data di inizio dei sintomi',\n },\n date: {\n title: 'Data e ora dell’infortunio',\n description:\n 'La preghiamo di indicare la data e l’ora dell’infortunio in modo quanto più preciso possibile. Se l’infortunio non si è verificato in sua presenza, può aggiungere un’approssimazione.',\n date: 'Data dell’infortunio',\n hour: 'Ora',\n interval: 'Scarto stimato',\n exact_time: 'ora esatta',\n in_hour: 'un’ora al massimo',\n between_1_4: 'tra 1 e 4 ore',\n between_4_6: 'tra 4 e 6 ore',\n in_day: 'un giorno al massimo',\n in_week: 'una settimana al massimo',\n dateTip:\n 'Se l’infortunio non si è verificato in sua presenza, può aggiungere un’approssimazione',\n },\n illnessTreatment: {\n title: 'Qual è la terapia prescritta?',\n description:\n 'Per terapia, intendiamo il trattamento veterinario previsto (inclusi i farmaci, le medicazioni, i bendaggi, gli esami complementari).',\n treatment: 'Terapia prescritta',\n },\n howAccidentHappened: {\n title: 'Svolgimento dell’infortunio',\n description:\n 'Descriva lo svolgimento nel modo più esatto possibile per consentirci di valutare il caso quanto prima.',\n howItHappened: 'Descrizione precisa dello svolgimento',\n },\n anyThirdParty: {\n title: 'Un terzo è coinvolto nell’infortunio?',\n description:\n 'Per terzo, intendiamo un altro essere vivente (persona o animale) che abbia causato l’infortunio o vi abbia concorso.',\n howItHappened: 'Descrizione precisa dello svolgimento',\n known: 'Sì e posso identificarlo',\n unknown: 'Sì, ma non so chi sia',\n none: 'No',\n knownTip:\n 'Un’altra persona o un animale è coinvolta/o e lei conosce le sue coordinate, rispettivamente quelle del proprietario.',\n unknownTip:\n 'Un’altra persona o un animale (selvatico) è coinvolta/o ma lei non dispone di alcuna informazione di contatto.',\n noneTip: 'Nessun’altra persona o nessun animale è coinvolta/o.',\n },\n thirdParty: {\n title: 'Informazioni sul terzo coinvolto',\n description:\n 'La preghiamo di compilare in modo quanto più possibile esaustivo i dati concernenti il terzo coinvolto. Se si tratta di un animale, vanno riportate le coordinate del/della proprietario/a.',\n lastname: 'Cognome *',\n firstname: 'Nome *',\n street: 'Indirizzo',\n number: 'No',\n zip: 'NPA',\n city: 'Località',\n country: 'Paese',\n email: 'Indirizzo e-mail',\n phone: 'Numero di telefono',\n },\n comments: {\n title: 'Osservazioni',\n description:\n 'Qualsiasi informazione può aiutarci a ricostruire il caso e dunque accelerarne la gestione.',\n comment: 'Osservazioni (opzionale)',\n },\n summary: {\n title: 'Riepilogo della notifica',\n description:\n 'La preghiamo di verificare l’esattezza della notifica. Può ancora apportare modifiche cliccando la penna gialla accanto a ogni informazione.',\n description2:\n 'In seguito, la invitiamo a confermare e inviare la notifica.',\n cguAdditional:\n \"La presentazione del sinistro e il trattamento del sinistro sono soggetti alla dichiarazione sulla protezione dei dati della Vaudoise Assicurazioni..\",\n cgu: 'Confermo di aver fornito risposte complete e conformi alla realtà',\n type: 'Tipo di sinistro',\n label: 'Designazione del sinistro',\n comment: 'Osservazioni',\n symptoms: 'Sintomi',\n treatment: 'Terapia prescritta',\n diagnosis: 'Diagnosi del veterinario',\n occurred_at: 'Data e ora dell’infortunio',\n interval: 'Scarto stimato',\n claim_year: 'Anno',\n animal: 'Animale',\n sequence: 'Svolgimento',\n third_party: 'Dati del terzo coinvolto',\n third_party_status: 'Terzo coinvolto',\n },\n },\n medicalFile: {\n add: {\n title: 'Cartella clinica di {{name}}',\n description:\n 'Se si tratta del primo sinistro notificato per PETNAME, necessitiamo dell’incarto/dello storico fornito dal veterinario. Per guadagnare tempo, se ne è già in possesso può caricarlo qui sotto.',\n add: 'Aggiungere cartella clinica',\n addLater: 'Scarichi i documenti più tardi',\n alreadyDone:\n 'La cartella clinica è già stato inviato o lo invierò in un secondo tempo.',\n confirmImage: \"Confermare l'immagine o il file\",\n addImage: 'Aggiungere un’immagine',\n maxPDF: \"Può scaricare solo un file pdf. Può contenere diverse pagine.\",\n cantAddImageWhenThereAreAlreadyAPdf: \"Può scaricare solo un file pdf. Può contenere diverse pagine.\",\n cantAddPDFWhenThereAreAlreadyImages: \"Può aggiungere solo immagini. Se vuole aggiungere un pdf, deve cancellare l'immagine già caricata.\",\n maxSizePDF: 'Il documento non deve superare i 6 MB.',\n browse: 'Sfogliare',\n dropFile: 'Caricare un file',\n check:\n 'La preghiamo di verificare che tutti gli elementi del documento siano ben visibili e leggibili.',\n rotate: 'Girare',\n delete: 'Eliminare',\n fileFormatNotSupported: 'Formato non supportato',\n },\n title: {\n title: 'Designazione del documento',\n description:\n 'Dia al documento un nome che spieghi in una o due parole di cosa si tratta.',\n titleField: 'Designazione del documento',\n },\n summary: {\n title: 'Riepilogo della cartella clinica',\n animal: 'Animale',\n files: 'Files',\n label_medicalFile: 'Designazione',\n },\n },\n invoices: {\n invoiceTitle: 'Fattura {{date}}',\n intro: {\n title: 'Caricare le fatture',\n description:\n 'Carichi un documento PDF oppure una o più immagini. Dopo aver verificato che tutti gli elementi siano ben visibili e leggibili (cliccando la lente gialla), convalidi ogni immagine.',\n useExisting: 'Selezionare una fattura caricata di recente',\n later: 'Invierò le mie fatture in un secondo tempo.',\n add: 'Aggiungere una nuova fattura',\n },\n existing: {\n title: 'Fatture caricate di recente',\n description:\n 'Se di recente ha caricato la fattura per un altro sinistro o un altro animale, la trova qui sotto. In tal caso, non è necessario caricarla di nuovo.',\n },\n details: {\n title: 'Importo totale della fattura',\n description:\n 'Per questioni di controllo, la preghiamo di inserire l’importo totale (IVA inclusa) della fattura caricata. Attenzione: non importa se la fattura concerne più animali o sinistri, né trattamenti non rimborsati.',\n total: 'Totale fattura (IVA inclusa)',\n invoiceSubject: 'Questa fattura concerne anche',\n many_pets: 'altri animali',\n many_disasters: 'altri sinistri',\n vaccine_too: 'vaccini o spese di prevenzione',\n },\n year: {\n title: 'Anno del trattamento',\n description: 'In quale anno è stato effettuato il trattamento?',\n instruction: 'Può selezionare uno o più anni.',\n },\n summary: {\n title: 'Riepilogo della fattura',\n invoice: 'Fattura',\n animal: 'Animale',\n amount: 'Importo totale della fattura (IVA inclusa)',\n involves_multiple_pets: 'Concerne altri animali',\n involves_multiple_claims: 'Concerne altri sinistri',\n involves_a_vaccine: 'Concerne vaccini o spese di prevenzione',\n billing_years: 'Anno di trattamento',\n },\n confirmation: {\n title: 'Conferma di invio',\n description:\n 'I dati e i documenti concernenti il sinistro \"{{disaster}}\" di {{name}} sono stati inviati al nostro servizio Prestazioni.',\n delay: 'Stima del termine previsto per la gestione:',\n delayTip:\n 'Può ridurre al minimo questo termine caricando la cartella clinica e i risultati di eventuali analisi.',\n delayNotice:\n 'Questo termine è indicativo e dipende dalle informazioni che saranno necessarie per la gestione della fattura.',\n pleaseRepeat:\n 'Se la fattura inviata concerne più animali e/o sinistri, la preghiamo di ripetere la procedura quanto necessario.',\n newInvoiceForThisPet: 'Altra fattura per {{name}}',\n newInvoiceForAnotherPet: 'Fattura per un altro animale',\n medicalFilesForThisPet: 'Cartella clinica di {{name}}',\n backToMyPets: 'Indietro a \"I miei animali\"',\n otherActions: 'Altro',\n sameInvoiceForAnotherPet: 'Stessa fattura per un altro animale',\n sameInvoiceForAnotherDisaster:\n 'Stessa fattura per un altro sinistro di {{name}}',\n },\n otherpets: {\n title: 'Chi riguarda questa fattura?',\n description:\n 'La preghiamo di selezionare l’animale interessato dalla fattura. Se essa riguarda più animali, la invitiamo a ripetere la procedura quanto necessario.',\n },\n },\n edit: {\n title: 'Modificare l’assicurazione di {{name}}',\n description:\n 'Qui sotto, può segnalarci qualsiasi cambiamento concernente l’assicurazione Animalia. Se non trova quello che cerca, la preghiamo di contattarci all’indirizzo animalia@vaudoise.ch.',\n },\n documents: {\n title: 'File di {{name}}',\n description:\n 'Se il sinistro è stato registrato su questa piattaforma, lo trova qui sotto.',\n tip:\n 'Se in passato ha notificato un sinistro utilizzando il nostro vecchio sito internet, per e-mail o al telefono, esso non figurerà nell‘elenco qui sotto. Occorre tornare indietro e selezionare \"Ho dichiarato il sinistro in altro modo\".',\n help: 'Ho notificato il sinistro, ma non appare nell’elenco qui sotto.',\n medicalFilesAreBeingProcessedTitle:\n 'La cartella clinica di {{name}} sta per essere inviata al nostro servizio Prestazioni.',\n medicalFilesAreBeingProcessedDescription:\n 'Stiamo verificando il suo documento, che sarà visualizzabile a breve qui.',\n filesAreBeingProcessedTitle:\n 'La fattura di {{name}} sta per essere inviata al nostro servizio Prestazioni.',\n filesAreBeingProcessedDescription:\n 'Stiamo verificando il suo documento, che sarà visualizzabile a breve qui.',\n\n sinisters: 'Sinistri di {{name}}',\n medicalFiles: 'Cartella clinica di {{name}}',\n noDocuments: 'Non sono ancora stati caricati cartelle medice per {{name}}',\n noDisasters: 'Non sono ancora stati notificati sinistri per {{name}}',\n declareSinister: 'Notificare un sinistro',\n addMedicalFiles: 'Aggiungere documenti alla cartella clinica',\n medicalFile: 'Cartella clinica',\n seeMedicalFiles: 'Consultare la cartella clinica',\n xImages: '{{count}} immagine',\n xImages_plural: '{{count}} immagini',\n vaccines: 'Vaccini e spese di prevenzione',\n },\n claimDocument: {\n description: '',\n amount: 'Importo della fattura',\n billing_years: 'Anno di trattamento',\n estimated_processing_time: 'Data prevista per il trattamento',\n },\n asideSummary: {\n amount: 'Importo della fattura (IVA inclusa)',\n involves_multiple_pets: 'Concerne altri animali',\n involves_multiple_claims: 'Concerne altri sinistri',\n involves_a_vaccine: 'Concerne vaccini o spese di prevenzione',\n billing_years: 'Anno di trattamento',\n type: 'Tipo di sinistro',\n label: 'Designazione del sinistro',\n label_medicalFile: 'Designazione del documento',\n comment: 'Osservazioni',\n symptoms: 'Sintomi',\n third_party_status: 'Terzo coinvolto',\n treatment: 'Terapia prescritta',\n diagnosis: 'Diagnosi del veterinario',\n occurred_at: 'Data e ora',\n interval: 'Scarto stimato',\n claim_year: 'Anno',\n animal: 'Animale',\n sequence: 'Svolgimento',\n third_party: 'Dati del terzo coinvolto',\n },\n vaccines: {\n title: 'Vaccini o spese di prevenzione',\n },\n deleteModal: {\n title: 'Eliminare il documento',\n description:\n 'Una volta eliminato, non sarà più possibile recuperare il documento. Desidera procedere?',\n actionYes: 'Sì, eliminare il documento',\n actionNo: 'No, preferisco conservare il documento',\n },\naddress: {\n my_details_change: 'Cambio di indirizzo per l\\'assicurazione',\n change_address_for: 'Cambiare questo indirizzo anche per',\n change_for_all: 'Tutti i miei animali e i loro servizi',\n change_for_pet: 'Consegne Abbonamente Gourmet da'\n },\n owner: {\n owner_change: 'Cambiamento del detentore di',\n owner_needed_details: 'Si prega di compilare i dettagli del nuovo proprietario. Per garantire che {{ name }} sia ancora coperto, contatteremo il nuovo proprietario e faremo una nuova offerta assicurativa.',\n contact_new_owner: 'Quando avverrà il cambiamento del detentore?',\n transfer_pet: 'Trasferisca anche il proprietario di',\n transferred_at: 'Data del cambiamento del detentore',\n keep_insurance: 'Il nuovo proprietario desidera mantenere l\\'assicurazione Animalia?'\n },\n bank_details: {\n my_bank_details_change: 'Cambio di coordinate bancarie',\n my_bank_details_description: 'Inserisca qui il codice IBAN del conto su cui desidera ricevere i rimborsi.'\n }\n};","module.exports = {\n privacyPolicy: 'https://www.animalia.ch/it/privacy-policy',\n cgv: 'https://www.animalia.ch/it/condizioni-generali-di-vendita',\n cgu: 'https://www.animalia.ch/it/condizioni-generali-di-utilizzo',\n insurance: {\n changeOwner:\n 'https://assurance.animalia.ch/_files/content/pdf/cambiamento_del_detentore_dellanimale_it.pdf',\n changeBank:\n 'https://assurance.animalia.ch/it/contatto/trasmissione-degli-estremi-bancari-o-postali',\n sinister: 'https://assurance.animalia.ch/it/contatto/notifica-di-sinistro',\n changeAddress:\n 'https://assurance.animalia.ch/it/contatto/cambiamento-d-indirizzo-oppure-di-cognome',\n },\n contact: 'https://www.animalia.ch/it/contact'\n};\n","module.exports = {\n calculatorTitle: 'Assicurazione sanitaria',\n calculatorDescription: 'Calcoli in pochi clic il premio per il suo compagno a quattro zampe.',\n petSpecies: '',\n petAgeCategory: 'Età', // Dropdown, selection d'âge\n ageCategory: 'da', // InsuranceType Step suptitle / format: {{ pet_species }} da {{ pet_age_category }}\n offerSent: 'Nous vous avons envoyé un e-mail avec l\\'offre.', //ce texte n'est plus utilisé, juste? c'est maintenant thanks et offer_in_mailbox?\n conditions: 'Nel quadro della richiesta di un’offerta o della stipulazione di un contratto online, la Vaudoise Assicurazioni tratta i dati personali su server in Germania ai fini della creazione, dello stoccaggio e della messa a disposizione online dell’offerta, e negli Stati Uniti (Mandrill di MailChimp) per l’invio delle e-mail, nonché per le relative analisi statistiche e di rendimento. I dati personali vengono cancellati entro trenta giorni dopo un secondo tentativo infruttuoso. Queste informazioni completano la dichiarazione relativa alla protezione dei dati personali della Vaudoise Assicurazioni pure applicabile.', \n thanks: 'Grazie per la sua richiesta', // TODO: titre remerciement après envoie de l'offre depuis le widget\n offer_in_mailbox: 'Le abbiamo inviato un\\'e-mail con il link all\\'offerta per {{pet_name}}. Può leggere i dettagli dell\\'offerta (benefici, premi, condizioni) e stamparli o stipulare direttamente l\\'assicurazione.', // NOTE: texte remerciement après envoie de l'offre depuis le widget\n plus_8_warning: 'Il suo animale ha già più di 8 anni. Si noti che le malattie che esistevano prima della stipula dell\\'assicurazione non sono assicurate.',\n yearsRange: {\n u2: '3 mesi a 2 anni',\n u4: '3 a 4 anni',\n u6: '5 a 6 anni',\n u8: '7 a 8 anni',\n u10: '9 a 10 anni',\n u12: '11 a 12 anni',\n o13: '13 anni e più'\n },\n race: {\n suptitle: 'Razza e luogo di residenza',\n pet_mixed: 'Meticcio',\n pet_breed: 'Razza pura',\n pet_unknown: 'Sconosciuta',\n breed: 'Razza',\n breed_2: 'Seconda Razza',\n zipcode: 'Codice postale',\n city: 'Luogo'\n },\n navigation: {\n goToInsuranceStep: 'Calcolare il premio',\n submitFromInsuranceStep: 'Stipulare l’assicurazione',\n sendOfferByEmail: 'Inviare l’offerta per e-mail',\n prev: 'Cambiare i criteri',\n next: 'Seguente',\n ok: 'Ritorno alla calcolatrice', // TODO: label du bouton de la page de remerciement après envoie de l'offre depuis le widget\n seeOffer: 'Vedere l\\'offerta'\n },\n user: {\n petName: 'Nome dell\\'animale',\n lastName: 'Cogome *',\n firstName: 'Nome *',\n emailAddress: 'Indirizzo e-mail',\n phoneNumber: 'Telefono',\n },\n offer_conclusion_1: 'Può leggere i dettagli dell\\'offerta per {{pet_name}} (benefici, premi, condizioni) e stamparli o stipulare direttamente l\\'assicurazione.',\n offer_conclusion_2: 'PS: Le abbiamo inviato anche un\\'e-mail con il link all\\'offerta.'\n}","module.exports = {\n pet: {\n add_pet: 'Aggiungere un animale',\n add_pet_caption: 'Conosciamoci meglio',\n species: 'Animale',\n dog: 'Cane',\n cat: 'Gatto',\n gender: 'Sesso',\n male: 'Maschio',\n female: 'Femmina',\n select_pet: 'Quale animale desidera assicurare?',\n select_pet_description: 'Lo selezioni qui sotto o crei un nuovo profilo',\n portrait: 'I dati del suo animale',\n portrait_caption: '',\n name: \"Nome comune dell'animale\",\n name_long: \"Nome comune dell'animale\",\n birthdate: \"Data di nascita dell'animale\",\n birthdate_tip: 'Assicuriamo gli animali a partire dai tre mesi.',\n is_pure_breed: '',\n race: 'Razza',\n pet_mixed: 'Incrocio',\n pet_breed: 'Razza pura',\n pet_not_breed: 'Incrocio',\n pet_unknown: 'Sconosciuta',\n fill_two_races: '',\n fill_race: 'Entrare la razza',\n are_two_races_known:\n 'Connaissez-vous les deux races principales de votre compagnon?',\n first_race: 'Prima razza',\n second_race: 'Seconda razza',\n which_pet_weight: 'Peso approssimativo in kg',\n weight: 'Peso adulto in kg',\n pet_age_calcul_info:\n 'L\\'età dell\\'animale viene calcolata come segue: \"Anno corrente\" - \"Anno di nascita\" (ad es. 2023 - 2017 = 6)',\n },\n insurance: {\n protection: 'Assicurazione',\n protection_type: 'Copertura',\n select_protection: '',\n classic_condensed: 'Classic',\n comfort_condensed: 'Comfort',\n compact_condensed: 'Compact',\n compact: 'Animalia Compact',\n compact_description: 'Copertura in caso di infortuni',\n classic: 'Animalia Classic',\n classic_description:\n 'Copertura in caso di infortuni e di malattie acute e croniche',\n comfort: 'Animalia Comfort',\n comfort_description:\n 'Copertura in caso di infortuni e di malattie acute, croniche, ereditarie o congenite',\n franchise: 'Franchigia',\n insurance: 'Assicurazione',\n payment: 'Pagamento',\n select_payment: '',\n annual: 'Annuale',\n annual_cost: 'Premio annuo totale',\n biannual: 'Semestrale',\n month: 'mese',\n monthly: 'Semestrale',\n monthly_cost: 'Premio mensile indicativo',\n monthly_cost_info: 'Premio mensile indicativo',\n monthly_cost_tip: '',\n quarterly: 'Trimestrale',\n enters_in_force_at: 'Inizio del contratto',\n agent_code: 'Codice agente',\n agency: 'Codice promozionale',\n agency_tip:\n 'Se ha diritto ad uno sconto, questo sarà dedotto direttamente dalla sua fattura.',\n my_details: 'Coordinate',\n needed_details: '',\n new_address: 'Aggiungere un indirizzo',\n plan_not_available:\n 'Questa copertura non è disponibile con questa franchigia',\n are_you_pet_keeper:\n \"Êtes-vous le détenteur de l'animal ou prenez-vous l'assurance pour une personne tierce ?\",\n im_keeper: \"Je suis le détenteur de l'animal\",\n im_not_keeper: \"Je prends une assurance pour l'animal de quelqu'un d'autre\",\n refund_account: 'Conto per i rimborsi',\n no_iban: 'IBAN',\n bank_name: 'Nome della banca',\n bic: '',\n line: 'Indirizzo',\n line_2: 'Suffisso indirizzo',\n zip_code: 'NPA',\n city: 'Località',\n conclude: 'Stipulare l’assicurazione',\n insurance_of: 'L’assicurazione di',\n insurance_owner: \"Preneur d'assurance\",\n complete_profile: 'Compléter le profil',\n offer_page_description: 'offer_page_description Lorem Ipsum....',\n concluded_description: 'concluded_description Lorem Ipsum....',\n offer_already_concluded:\n 'Questa offerta è stata conclusa nel frattempo. Non può più concludere.',\n offer_concluded_line:\n 'Un cordiale benvenuto da Animalia, {{pet_name}} fa ora parte della comunità Animalia, e noi siamo al suo fianco.',\n offer_concluded_line_2:\n 'Riceverà i documenti della polizza e la fattura nei prossimi giorni per posta. A quel punto, potrà notificare i sinistri e spedire le fatture per {{pet_name}} tramite il suo conto Animalia.',\n offer_concluded_line_3:\n 'Per ringraziarla per la sua fiducia, siamo lieti di offrirle buoni sconto e di proporle offerte dei nostri partner per il suo benessere e quello del suo fedele compagno.',\n offer_banner_cta: 'Rejoignez la communauté Animalia',\n offer_fressnapf: 'Scaricare buono MAXI ZOO',\n offer_shop: 'Scaricare buono shop Animalia',\n assistance: 'Assistenza 24/7',\n assistance_desc_sale:\n \"Bene, ora è il momento di approfittare dell'offerta del Promozione Invernale con l'assicurazione complementare Assistenza 24/7. Approfittate dell'offerta con il codice di sconto*:​\",\n assistance_btn: \"Scoprite l'Assistenza 24/7\",\n assistance_link: 'https://shop.animalia.ch/it/product/assistance-24-7/',\n offer_fressnapf_url:\n 'https://prismic-io.s3.amazonaws.com/animalia/9999fa22-1964-4296-b14a-1c0d0d37d130_22-10-019_animalia_gutschein_130x85_it_lay_v1_020222_5.pdf',\n offer_shop_url:\n 'https://prismic-io.s3.amazonaws.com/animalia/5e62d2a1-8969-49d8-85cc-33ec989b406b_21_ANIMALIA_SHOP_FLYER_A7_IT_V2.pdf',\n assistance_url: 'https://www.animalia.ch/it/servizio/assistance',\n tonivet_label: \"Scoprite l'offerta esclusiva di croccantini Tonivet\",\n tonivet_link:\n 'https://shop.animalia.ch/it/croquettes-tonivet-lexcellence-veterinaire/',\n assistance_desc:\n \"Con un supplemento di 79 franchi all'anno, potrete beneficiare di un'assistenza 24 ore su 24 per rispondere a qualsiasi domanda medica, di emergenza o amministrativa sul vostro animale domestico. Inoltre, potrete beneficiare di una copertura assicurativa aggiuntiva, come ad esempio i costi di trasporto del vostro animale in caso di emergenza. Non perdete l'occasione di scoprire tutto sull'assistenza 24 ore su 24, 7 giorni su 7.\",\n cga:\n 'Confermo di aver preso conoscenza delle Condizioni generali d\\'assicurazione , le accetto e capisco che i premi cambiano con l\\'età del mio animale domestico.',\n cga_1:\n 'Dichiaro di aver risposto in tutta sincerità alle domande precedenti per convalidare legalmente il contratto Animalia con la Vaudoise.',\n cga_2:\n 'Autorizzo la Vaudoise al trattamento delle informazioni fornite nel quadro della gestione del contratto, in particolare in caso di sinistro. La autorizzo inoltre a trasmetterle se necessario ai riassicuratori o ad altri assicuratori, e a richiedere informazioni presso questi ultimi o terzi.',\n breed_tip: 'I genitori sono della stessa razza',\n bastard_tip: 'I genitori sono di due razze diverse',\n unknown_tip:\n 'I genitori sono incroci di più razze oppure sono di razze che non conosce',\n federal_timber_of: 'Bollo federale 5% di',\n surprime: 'Spese pagamento rateale',\n annual_cost_basic: 'Premio annuo',\n not_complete: 'Offerta assicurativa attuale',\n waiting:\n 'La sua proposta d’assicurazione è stata presentata con successo. Vedrà qui il suo numero di polizza nei prossimi giorni.',\n fill_offer: \"Veda l'offerta attuale e la completi\",\n login_title: 'Ha già un conto cliente Animalia?',\n login_description:\n 'Per completare la sua assicurazione, deve accedere o creare un conto cliente Animalia. Questo le darà accesso alle informazioni sul suo contratto di assicurazione. Inoltre, il suo conto cliente le permetterà di inviarci in qualsiasi momento le fatture per le cure necessarie alla sua palla di pelo.',\n login_yes: 'Sì, ho già un conto cliente',\n login_no: 'No, non ho ancora un conto cliente',\n save_success:\n 'La conclusione è stata trasferita con successo. Il·la cliente riceverà la polizza nei prossimi giorni.',\n num: 'No.',\n api_found: 'Indirizzo confermato da La Posta Svizzera',\n api_not_found:\n 'Questo indirizzo non è registrato dalla Posta Svizzera. La preghiamo di inserire un indirizzo valido.',\n start_date: 'Inizio del contratto',\n end_date: 'Fine del contratto (rinnovo tacito di anno in anno)',\n cga_min: 'CGA',\n maintenance_title: 'Manutenzione',\n maintenance_description:\n \"Noti che la conclusione online non è attualmente disponibile fino a mezzanotte circa. Ciò è dovuto alla manutenzione di un servizio della posta utilizzato per la convalida del suo indirizzo postale.

Può ancora richiedere un'offerta online.\",\n maintenance_button: \"Richieda un'offerta\",\n discount_hotelcard_link: 'https://hotelcard.com/it/animalia-30',\n discount_hotelcard_label: \"Scoprire l'offerta esclusiva Hotelcard\",\n discount_nab_title: '50% sui corsi di primo soccorso per cani',\n discount_nab_description: '

Siate pronti a reagire in caso di emergenza con la formazione Nothelfer am Bahnhhof.

',\n discount_nab_code: 'Utilizzare il codice: {{code}}',\n discount_nab_cta_label: 'Approfittare dell\\'offerta',\n discount_nab_link: 'https://elearning.nothelferambahnhof.ch/course/erste-hilfe-hund-e-learning',\n discount_hc_title: 'Fino al 50% di sconto sugli hotel in Svizzera',\n discount_hc_description: '

Soggiorna in oltre 500 dei migliori hotel in Svizzera e nei paesi vicini con sconti fino al 50% a notte in base alla disponibilità.

',\n discount_hc_cta_label: 'Approfittare dell\\'offerta',\n discount_hc_link: 'https://hotelcard.com/it/animalia-30',\n discount_tractive_title: 'Ricevi un collare GPS gratuito per gatti e cani!',\n discount_tractive_description: '

Con Tractive, segui le sue avventure in tempo reale e garantisci la sua sicurezza ovunque e in qualsiasi momento.

',\n discount_tractive_code: 'Utilizzare il codice: {{code}}',\n discount_tractive_cta_label: 'Approfittare dell\\'offerta'\n },\n error: {\n general: 'Compilare il campo',\n no_special_char: 'Questo campo non può contenere caratteri speciali',\n max_128: 'Questo campo non può contenere più di 128 caratteri',\n min_18: 'Deve avere almeno 18 anni',\n pet_species_required: 'Selezionare un tipo di animale',\n pet_gender_required: 'Selezionare il sesso dell’animale',\n pet_name_required: 'Inserire il nome dell’animale',\n pet_birthdate_required: 'Selezionare la data di nascita dell’animale',\n pet_is_purebred_required: 'Indicare se l’animale è di razza',\n pet_two_races_known_required:\n 'Inserire le due razze dell’animale (se conosciute)',\n pet_animal_id_required: 'Selezionare una razza',\n pet_weight_required:\n 'Si prega di indicare il peso approssimativo in kg del vostro animale',\n pet_weight_number_required: 'Il peso deve essere un numero',\n insurance_franchise_required: 'Selezionare la franchigia desiderata',\n insurance_type_required: 'Selezionare la copertura desiderata',\n insurance_payment_frequency_required:\n 'Selezionare il ritmo di pagamento desiderato',\n insurance_enters_in_force_at_required:\n 'Inserire la data desiderata per l’inizio del contratto',\n title_required: 'Selezionare un appellativo',\n first_name_required: 'Inserire il nome',\n last_name_required: 'Inserire il cognome',\n line_required: 'Inserire l’indirizzo',\n zip_code_required: 'Inserire l’NPA',\n city_required: 'Inserire la località',\n birthdate_required: 'Inserire la data di nascita',\n holder_phone_required: 'Inserire il numero di telefono',\n bank_not_found:\n 'La banca non è stata trovata. Si prega di compilare manualmente i campi.',\n iban_required: 'Inserire l’IBAN (p.es. CH80 00000 0000 0000 0000 0)',\n iban_invalid: 'L’IBAN non è valido (p.es. CH80 00000 0000 0000 0000 0)',\n bank_name_required: 'Inserire il nome della banca.',\n bic_required: '',\n bank_address_required: '',\n bank_zip_code_required: 'Inserire l’NPA della banca',\n bank_city_required: 'Inserire la località della banca',\n max_char_4: 'Il codice agente è composto da 4 cifre.',\n email_required: '',\n email_invalid: 'Questo campo deve essere un indirizzo e-mail valido.',\n more_char: 'Questo campo deve contenere almeno 2 caratteri.',\n uppercase: 'La prima lettera deve essere maiuscola',\n all_uppercase: 'Questo campo non può contenere solo lettere maiuscole',\n wrong_iban:\n 'Questo numero IBAN non è valido. La preghiamo di correggere il numero inserito.',\n only_one_uppercase:\n 'Questo campo deve contenere solo una lettera maiuscola',\n },\n navigation: {\n calculate: 'Calcolare il premio',\n submit_offer: 'Stipulare l’assicurazione',\n send_offer_by_email: 'Inviare l’offerta per e-mail',\n next: 'Seguente',\n },\n};\n","module.exports = {\n holder: 'Stipulante',\n pet_type: 'Tipo di animale',\n age_category: 'Fascia d’età dell’animale',\n quote_part: 'Aliquota',\n quote_part_tip:\n 'Una volta raggiunta la franchigia, Animalia copre il 90% delle spese. Il 10% restante è a suo carico.',\n quote_part_value: '10%',\n franchise_title: 'Franchigia e aliquota',\n insurance_prime: 'Premio',\n tooltip_compact_fix: \"Premio fisso, indipendentemente dall'età\", // TODO: tooltip de insurance_prime quand c'est une assurance compact\n prestations: 'Prestazioni per anno civile',\n prestations_tip: '(secondo le condizioni generali)',\n medical_cost_coverage: 'Copertura delle spese mediche',\n medical_cost_coverage_value: 'Illimitata',\n prevention_cost: 'Spese di prevenzione',\n prevention_cost_tip: 'senza franchigia e aliquota',\n prevention_cost_value: 'CHF 100.-',\n alt_medicinal: 'Medicine alternative',\n alt_medicinal_value: 'CHF 600.-',\n housing_cost: 'Spese di alloggio',\n housing_cost_value: 'CHF 200.-',\n investment_cost: 'Spese di ricovero',\n investment_cost_value: 'CHF 150.-',\n freight_cost: 'Spese di trasporto',\n freight_cost_value: 'CHF 100.-',\n waiting_period: 'Periodo di carenza',\n accident: 'Infortunio',\n accident_value: 'Nessuno',\n illness: 'Malattia',\n illness_value: '30 giorni',\n compact_title_description:\n 'Con Animalia Compact, ha scelto la soluzione ideale!',\n health_title_description:\n 'Con Animalia Classic, ha scelto la soluzione ideale!',\n confort_title_description:\n 'Con Animalia Comfort, ha scelto la soluzione ideale!',\n description_classic:\n 'Copertura contro gli infortuni e le malattie acute e croniche', // TODO: @Calvin la description est différente pour compact et comfort\n description_comfort:\n 'Copertura in caso di infortuni e di malattie acute, croniche, ereditarie o congenite', // TODO: @Calvin la description est différente pour compact et comfort\n description_compact: 'Copertura in caso di infortuni', // TODO: @Calvin la description est différente pour compact et comfort\n conditions_title: 'Condizioni applicabili',\n conditions_description: 'Condizioni generali Animalia, edizione 1.11.2021',\n conditions_url:\n 'https://prismic-io.s3.amazonaws.com/animalia/f5eae0c9-f863-4cc0-9fc4-49b2db912853_CGA_Animalia_2021_I_WEB.pdf',\n conditions_info:\n 'Attenzione! Le malattie preesistenti non sono coperte (vedi art. B5 delle condizioni generali d’assicurazione).',\n law_application:\n '

L’adeguamento del premio alla fascia d’età superiore avviene il 1° gennaio dell’anno in cui l’animale compie tre, rispettivamente cinque, sette, nove, undici e tredici anni.

',\n offer_validity: 'Validità dell’offerta',\n offer_validity_description:\n 'Questa offerta si basa sulle informazioni in nostro possesso. Rimane valido fino a {{validity_date}}.', // TODO: @Calvin Cette date doit être calculée -> date de la création de l'offre + 90 jours\n offer_conclusion_2: 'Assicuri PETNAME per vivere lunghi anni di serenità.',\n go_further: 'Le assicuro!',\n print: 'Stampare l’offerta ',\n federal_timber: 'Bollo federale',\n federal_timber_tip:\n 'Il bollo federale si applica al premio annuo (compresi i eventuali supplementi per pagamento rateale).',\n total: 'Premio annuo totale',\n};\n","module.exports = {\n myaccount: 'Conto cliente Animalia',\n 'create-ag': {\n title: 'Calcolare un Abbonamente Gourmet',\n subtitle: 'Per quale dei suoi animali desidera calcolare un Abbonamento Gourmet?',\n cta: 'Calcolare il suo Abo Gourmand'\n },\n 'edit-ag': {\n title: 'Modificare l\\'Abbonnamente Gourmet',\n subtitle: 'Per quale dei suoi animali desidera modificare l\\'Abbonamento Gourmet?',\n cta: 'Modificare il suo Abbonamente Gourmet'\n },\n 'calculate-insurance': {\n title: 'Calcolare l\\'assicurazione',\n subtitle: 'Per quale dei suoi animali desidera calcolare l\\'assicurazione?',\n cta: 'Calcolare l\\'assicurazione'\n },\n 'declare-sinister': {\n title: 'Annunciare un sinistro',\n subtitle: 'Per quale dei suoi animali desidera annunciare un sinistro?',\n cta: 'Annunciare il sinistro'\n },\n 'send-invoice': {\n title: 'Inviare una fattura',\n subtitle: 'Per quale dei suoi animali desidera inviarci una fattura per il rimborso?',\n cta: 'Inviare la fattura'\n },\n 'edit-insurance': {\n title: 'Modificare l\\'assicurazione',\n subtitle: 'Per quale dei suoi animali desidera modificare l\\'assicurazione?',\n cta: 'Modificare l\\'assicurazione'\n },\n};\n","\n module.exports = {\n title: \"Allevatore\",\n breederSpace: \"Spazio allevatore\",\n login: {\n createBreederAccount: \"Creare un account allevatore\",\n },\n species: {\n cat: \"Gatto\",\n dog: \"Cane\",\n },\n personal_data: {\n breeder_infos: \"Informazioni allevatore\",\n personal_data: \"Dati personali\",\n social_reason: \"Ragione sociale\",\n social_reason_label: \"Nome dell'allevamento resp. ragione sociale\",\n races: \"Razze\",\n breeding: \"Allevamento\",\n tel: \"Telefono\",\n email: \"E-mail\",\n message: \"Messaggio\",\n send_request: \"Inviare la richiesta\",\n },\n confirmation: {\n askSent: \"La sua richiesta è stata inviata con successo\",\n askSentMessage: \"La contatteremo al più presto\",\n backToHome: \"Tornare alla home\",\n },\n declined: {\n askDeclined: \"La sua richiesta è stata rifiutata\",\n askDeclinedMessage: \"La sua richiesta purtroppo è stata rifiutata perché non soddisfa tutti i nostri criteri di accettazione.

Siamo sinceramente dispiaciuti.\",\n backToHome: \"Tornare alla home\",\n },\n dashboard: {\n myBreederSpace: \"Il mio spazio allevatore\",\n myCoordinates: \"Le mie coordinate\",\n myAttestations: \"I miei attestati\",\n breeding: \"Allevamento\",\n race: \"Razza\",\n address: \"Indirizzo\",\n conventionNumber: \"Numero di convenzione\",\n email: \"E-mail\",\n howToEdit: \"Come modificare le mie informazioni?\",\n client: \"Cliente\",\n petName: \"Nome dell'animale\",\n attestationNumber: \"Numero attestato\",\n insuranceDate: \"Data assicurazione\",\n attestation: \"Attestato\",\n cga: \"CGA\",\n declareNewPet: \"Notificare un nuovo animale\",\n howEditCertificate: \"Come modificare un attestato?\",\n doWantEditACertificate: \"Desidera modificare un attestato?\",\n editCertificateInformations: \"Per modificare un attestato, la preghiamo di contattarci all'indirizzo breeders@animalia.ch indicando il numero dell'attestato, le modifiche da apportare e le ragioni delle modifiche.\",\n doWantEditInformations: \"Desidera modificare i dati del suo allevamento?\",\n editInformations: \"Per modificare i dati del suo allevamento, la preghiamo di contattarci all'indirizzo breeders@animalia.ch\",\n },\n certificates: {\n myClient: \"Il mio cliente\",\n theyPet: \"Il suo animale\",\n title: \"Appellativo\",\n mr: \"Signor\",\n mrs: \"Signora\",\n communicationLanguage: \"Lingua di comunicazione\",\n firstname: \"Nome\",\n lastname: \"Cognome\",\n email: \"E-mail\",\n birthdate: \"Data di nascita\",\n pet: \"Animale\",\n petName: \"Nome dell'animale\",\n race: \"Razza\",\n exitDate: \"Data di uscita\",\n gender: \"Genere\",\n male: \"Maschio\",\n female: \"Femmina\",\n dog: \"Cane\",\n cat: \"Gatto\",\n createCertificate: \"Creare l'attestato\",\n cga1: \"L'allevatore dichiara di essere formalmente autorizzato dal suo cliente a trasmettere le informazioni qui sopra alla Vaudoise\",\n cga2: \"Attenzione: una volta validato, l'attestato può essere modificato solo da Animalia.\",\n created: \"Il suo attestato è stato creato con successo.\",\n createdMessage: \"Lo troverà nel suo spazio allevatore.\",\n backToBreederSpace: \"Tornare allo spazio allevatore\",\n petNameAlreadyExist: \"Il nome dell'animale è già stato utilizzato\",\n petBirthdateTooOldMax120Days: \"La data di nascita dell'animale non può essere superiore a 120 giorni\",\n petExitDateMax120DaysBirthdate: \"La data di uscita dell'animale deve essere compresa tra la data di nascita e 120 giorni dopo la data di nascita.\",\n petBirthdateMin6Months: \"La data di nascita dell'animale deve essere superiore a 6 mesi\",\n petExitDateMax56DaysBirthdate: \"La data di uscita dell'animale deve essere compresa tra la data di nascita e 56 giorni dopo la data di nascita.\",\n petExitDateMax180DaysBirthdate: \"La data di uscita dell'animale deve essere compresa tra la data di nascita e 180 giorni dopo la data di nascita.\",\n petNameTip: \"Nome dell'animale assegnato dal cliente\",\n }\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"RadioButton_input__1I19q\",\"check\":\"RadioButton_check__1hss2\",\"left\":\"RadioButton_left__2xRVp\",\"center\":\"RadioButton_center__6jlS2\",\"labelWithCheck\":\"RadioButton_labelWithCheck__26Fyd\",\"right\":\"RadioButton_right__2_JmG\",\"clickable\":\"RadioButton_clickable__Ud0aK\",\"hasDescription\":\"RadioButton_hasDescription__D1zSn\",\"iconSmall\":\"RadioButton_iconSmall__3g8lq\",\"iconMargin\":\"RadioButton_iconMargin__2p2ck\",\"children\":\"RadioButton_children__2mbVr\",\"price\":\"RadioButton_price__7oDAR\",\"loading\":\"RadioButton_loading__3lKu4\",\"MOVE-BG\":\"RadioButton_MOVE-BG__3LeXy\",\"flex\":\"RadioButton_flex__1zEW8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"WidgetTightRadioButton_input__xN7yH\",\"check\":\"WidgetTightRadioButton_check__zMTue\",\"price\":\"WidgetTightRadioButton_price__9dIjl\",\"left\":\"WidgetTightRadioButton_left__YgKyO\",\"center\":\"WidgetTightRadioButton_center__vAFGp\",\"labelWithCheck\":\"WidgetTightRadioButton_labelWithCheck__ORh2M\",\"right\":\"WidgetTightRadioButton_right__2XAYC\",\"clickable\":\"WidgetTightRadioButton_clickable__1SVpy\",\"hasDescription\":\"WidgetTightRadioButton_hasDescription__1-Zq4\",\"iconSmall\":\"WidgetTightRadioButton_iconSmall__2Sq7Y\",\"iconMargin\":\"WidgetTightRadioButton_iconMargin__1_Hue\",\"children\":\"WidgetTightRadioButton_children__2sFYZ\",\"loading\":\"WidgetTightRadioButton_loading__EYaHG\",\"MOVE-BG\":\"WidgetTightRadioButton_MOVE-BG__3WHLw\",\"flex\":\"WidgetTightRadioButton_flex__23bZ1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"module\":\"WidgetTightOfferFieldContainer_module__AbUtI\",\"container\":\"WidgetTightOfferFieldContainer_container__pgMPI\",\"centered\":\"WidgetTightOfferFieldContainer_centered__3W56k\",\"back\":\"WidgetTightOfferFieldContainer_back__2wXcj\",\"childrenWrapper\":\"WidgetTightOfferFieldContainer_childrenWrapper__2753E\",\"logo\":\"WidgetTightOfferFieldContainer_logo__2bng1\",\"title\":\"WidgetTightOfferFieldContainer_title__G6xIu\",\"subtitle\":\"WidgetTightOfferFieldContainer_subtitle__2JnGe\",\"suptitle\":\"WidgetTightOfferFieldContainer_suptitle__L94eH\",\"titles\":\"WidgetTightOfferFieldContainer_titles__dFgCT\",\"noMargins\":\"WidgetTightOfferFieldContainer_noMargins__3mLfb\",\"children\":\"WidgetTightOfferFieldContainer_children__F12Op\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WidgetOfferFieldContainer_container__2fpzo\",\"centered\":\"WidgetOfferFieldContainer_centered__1lPUr\",\"childrenWrapper\":\"WidgetOfferFieldContainer_childrenWrapper___oa8b\",\"logo\":\"WidgetOfferFieldContainer_logo__Q_Owz\",\"title\":\"WidgetOfferFieldContainer_title__qllMZ\",\"subtitle\":\"WidgetOfferFieldContainer_subtitle__3Vuea\",\"suptitle\":\"WidgetOfferFieldContainer_suptitle__39JDI\",\"children\":\"WidgetOfferFieldContainer_children__3kTzl\",\"titles\":\"WidgetOfferFieldContainer_titles__6eXmh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AssistanceButton_container__26ZBz\"};","export default {\n fr: {\n common: require('./lang/fr/common.js'),\n animal: require('./lang/fr/animal.js'),\n assistance: require('./lang/fr/assistance.js'),\n menu: require('./lang/fr/menu.js'),\n message: require('./lang/fr/messages.js'),\n personnal: require('./lang/fr/personnal.js'),\n delivery: require('./lang/fr/delivery.js'),\n order: require('./lang/fr/order.js'),\n invoices: require('./lang/fr/invoices.js'),\n user: require('./lang/fr/user.js'),\n auth: require('./lang/fr/auth.js'),\n insurance: require('./lang/fr/insurance.js'),\n urls: require('./lang/fr/urls.js'),\n calculator: require('./lang/fr/calculator.js'),\n offer: require('./lang/fr/offer.js'),\n prestations: require('./lang/fr/prestations.js'),\n redirections: require('./lang/fr/redirections.js'),\n breeder: require('./lang/fr/breeder.js'),\n },\n de: {\n common: require('./lang/de/common.js'),\n animal: require('./lang/de/animal.js'),\n assistance: require('./lang/de/assistance.js'),\n menu: require('./lang/de/menu.js'),\n message: require('./lang/de/messages.js'),\n personnal: require('./lang/de/personnal.js'),\n delivery: require('./lang/de/delivery.js'),\n order: require('./lang/de/order.js'),\n invoices: require('./lang/de/invoices.js'),\n user: require('./lang/de/user.js'),\n auth: require('./lang/de/auth.js'),\n insurance: require('./lang/de/insurance.js'),\n urls: require('./lang/de/urls.js'),\n calculator: require('./lang/de/calculator.js'),\n offer: require('./lang/de/offer.js'),\n prestations: require('./lang/de/prestations.js'),\n redirections: require('./lang/de/redirections.js'),\n breeder: require('./lang/de/breeder.js'),\n },\n it: {\n common: require('./lang/it/common.js'),\n animal: require('./lang/it/animal.js'),\n assistance: require('./lang/it/assistance.js'),\n menu: require('./lang/it/menu.js'),\n message: require('./lang/it/messages.js'),\n personnal: require('./lang/it/personnal.js'),\n delivery: require('./lang/it/delivery.js'),\n order: require('./lang/it/order.js'),\n invoices: require('./lang/it/invoices.js'),\n user: require('./lang/it/user.js'),\n auth: require('./lang/it/auth.js'),\n insurance: require('./lang/it/insurance.js'),\n urls: require('./lang/it/urls.js'),\n calculator: require('./lang/it/calculator.js'),\n offer: require('./lang/it/offer.js'),\n prestations: require('./lang/it/prestations.js'),\n redirections: require('./lang/it/redirections.js'),\n breeder: require('./lang/it/breeder.js'),\n },\n};\n","import React, {createContext, useReducer, useMemo} from 'react';\nimport {reducer, initialState} from './userReducer.js';\n\nconst UserContext = createContext();\n\nconst UserContextProvider = ({children}) => {\n const [user, dispatch] = useReducer(reducer, initialState);\n\n const contextValue = useMemo(\n () => {\n return {user, dispatch};\n },\n [user, dispatch],\n );\n\n return (\n {children}\n );\n};\n\nexport {\n UserContext, \n UserContextProvider\n}\n","const initialState = {\n form: {\n step: 'widget-step-1',\n holder_title: '',\n holder_email: '',\n holder_first_name: '',\n holder_last_name: '',\n holder_phone: '',\n holder_city: '',\n holder_zip_code: '',\n insurance_type: '',\n insurance_month_cost: null,\n insurance_franchise: 25000,\n pet_species: '',\n pet_age_category: '',\n pet_name: '',\n pet_animal_id: '',\n pet_animal_id_2: '',\n agent_code: '',\n email_offer: false,\n },\n selectedInsuranceValues: []\n}\n\nconst reducer = (state = initialState, action) => {\n\n switch (action.type) {\n case 'SET_FORM' :\n \n let step = action.step\n ? { step: action.step }\n : {}\n\n return {\n ...state,\n form: {\n ...state.form,\n ...action.data,\n ...step\n }\n } \n\n case 'SET_CODE_AGENT_AND_PET_ID' :\n\n return {\n ...state,\n form: {\n ...state.form,\n agent_code: action.codeAgent?.slice(0, 4),\n promo_code: action.promo,\n pet_id: action.petId,\n }\n } \n\n case 'SELECT_HEALTH' :\n\n return {\n ...state,\n form: {\n ...state.form,\n insurance_franchise: action.data,\n pet_id: action.petId,\n insurance_type: 'classic'\n }\n } \n\n case 'SET_ACTIVE_STEP' :\n\n return {\n ...state,\n form: {\n ...state.form,\n step: action.data\n }\n }\n\n case 'SET_INSURANCE_VALUES' :\n\n return {\n ...state,\n selectedInsuranceValues: [\n ...action.data\n ]\n }\n\n case 'SET_EMAIL_OFFER_STATE' :\n\n return {\n ...state,\n form: {\n ...state.form,\n email_offer: action.data\n }\n }\n\n default :\n throw new Error()\n }\n}\n\nexport { \n initialState, \n reducer \n}\n","import React, \n { \n createContext, \n useReducer, \n useMemo \n } from 'react'\n \nimport { \n reducer, \n initialState \n} from './calculatorReducer.js'\n\nconst CalculatorContext = createContext()\n\nconst CalculatorContextProvider = ({ children }) => {\n const [ calculator, dispatch ] = useReducer(reducer, initialState)\n\n const contextValue = useMemo(\n () => ({ calculator, dispatch }),\n [calculator, dispatch],\n )\n\n return (\n \n {children}\n \n )\n}\n\nexport {\n CalculatorContext, \n CalculatorContextProvider\n}\n","const initialState = {\n loginChecked: false,\n fullPageViewChecked: false\n}\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n\n case 'LOGIN_CHECKED' :\n return {\n ...state,\n loginChecked: true\n }\n case 'FULL_PAGE_VIEW_CHECKED' :\n return {\n ...state,\n fullPageViewChecked: true\n }\n \n default :\n throw new Error()\n }\n}\n\nexport {\n initialState, \n reducer\n}\n","const initialState = {\n address: {\n address_id: null,\n title: '',\n first_name: '',\n last_name: '',\n line: '',\n line_2: '',\n zip_code: '',\n city: '',\n post_address_strid: null,\n post_address_house_key: null,\n address_id: null,\n update_delivery_addresses_for: null\n },\n owner: {\n title: '',\n first_name: '',\n last_name: '',\n line: '',\n line_2: '',\n zip_code: '',\n city: '',\n birthdate: null,\n post_address_strid: null,\n post_address_house_key: null,\n mobile_phone: '',\n phone: '',\n email: '',\n transferred_at: null,\n keep_insurance: '',\n other_concerned_pets: null\n },\n 'bank-details': {\n iban: 'CH',\n bank_id: null,\n bank_name: null,\n bank_zip_code: null,\n bank_city: null,\n }\n}\n\nlet form\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case 'SET_ACTIVE_FORM' :\n return {\n ...state,\n form: {\n ...state.form,\n step: action.data.step,\n validate: false\n },\n activeForm: { \n route: action.data.route, \n step: action.data.step\n }\n }\n\n case 'SET_FORM' :\n return {\n ...state,\n [action.form]: {\n ...state[action.form],\n ...action.data\n }\n }\n\n case 'RESET_FORMS' :\n return initialState\n\n case 'SET_INSURANCE_VALUES' :\n\n return {\n ...state,\n selectedInsuranceValues: [\n ...action.data\n ]\n }\n\n case 'SELECT_HEALTH' :\n \n return {\n ...state,\n form: {\n ...state.form,\n insurance_franchise: action.data,\n insurance_type: 'classic'\n }\n }\n\n case 'SET_YEARS_RANGE' :\n return {\n ...state,\n form: {\n ...state.form,\n pet_age_category: action.data\n },\n }\n\n case 'SET_BANK_ID' :\n return {\n ...state,\n form: {\n ...state.form,\n holder_bank_id: action.data\n },\n }\n\n case 'SET_ADDRESS' :\n return {\n ...state,\n address: {\n ...state.address,\n address_id: action.data.id,\n line: action.data.line,\n line_2: action.data.line_2,\n zip_code: action.data.zip_code,\n city: action.data.city\n },\n }\n\n case 'SET_ADDRESS_FROM_API' :\n form = action.form || 'form'\n return {\n ...state,\n [form]: {\n ...state[form],\n ...action.data\n }\n }\n\n case 'SET_USER_ID' :\n form = action.form || 'form'\n return {\n ...state,\n [form]: {\n ...state[form],\n ...action.data\n }\n }\n\n case 'SET_ADDRESSEE' :\n const firstname = state.form[`${action.prefix}_first_name`]\n const lastname = state.form[`${action.prefix}_last_name`]\n return {\n ...state,\n form: {\n ...state.form,\n [`${action.prefix}_addressee`]: `${firstname ? firstname + ' ' : ''}${lastname ? lastname : ''}` \n },\n }\n\n case 'RESET_VALUE' :\n return {\n ...state,\n form: {\n ...state.form,\n [action.data]: undefined\n },\n } \n\n case 'SET_TYPED_SELECT' :\n return {\n ...state,\n form: {\n ...state.form,\n [action.key]: action.data\n }\n }\n\n default :\n throw new Error()\n }\n}\n\nexport {\n initialState, \n reducer\n}\n","import React, { createContext, useReducer, useMemo } from 'react'\nimport { reducer, initialState } from './gtmEventsReducer.js'\n\nconst GtmEventsContext = createContext()\n\nconst GtmEventsContextProvider = ({ children }) => {\n const [gtmEvents, dispatch] = useReducer(reducer, initialState)\n\n const contextValue = useMemo(\n () => ({ gtmEvents, dispatch }),\n [gtmEvents, dispatch],\n )\n\n return (\n \n { children }\n \n )\n}\n\nexport {\n GtmEventsContext, \n GtmEventsContextProvider\n}\n","import axios from 'axios'\n\nlet axiosInstance = axios\naxiosInstance.defaults.baseURL = process.env.REACT_APP_API_ENDPOINT\naxiosInstance.defaults.headers.post['Content-Type'] = 'application/json'\naxiosInstance.defaults.headers.post['Accept'] = 'application/json'\n\nexport default axiosInstance","import { axios } from \"@animalia/instances\"\n\nexport const cleanEmptyValuesBeforeSubmit = form => {\n Object\n .entries(form)\n .forEach(([key, value]) => {\n if (\n !value \n && key !== 'pet_age_category'\n && key !== 'holder_address_id'\n && key !== 'pet_animal_id'\n && key !== 'pet_weight'\n && key !== 'pet_animal_id_2'\n && key !== 'pet_other_race'\n && key !== 'pet_other_race_2'\n && key !== 'promo_code'\n && key !== 'agent_code'\n && key !== 'holder_iban'\n && key !== 'holder_bank_id'\n && key !== 'holder_bank_name'\n && key !== 'holder_bank_zip_code'\n && key !== 'holder_bank_city'\n ) {\n delete form[key]\n }\n })\n}\n\nexport const getErrors = async (form, validator, fields) => {\n if (!validator || !fields?.length) {\n return null\n }\n\n const errors = await Promise.all(\n fields.map(async field => {\n try {\n await validator.validateAt(field, form)\n } catch (error) {\n return error\n }\n })\n )\n\n return errors.filter(item => !!item)\n}\n\nexport const ibanValidation = value => {\n return new Promise(resolve => {\n (async () => {\n const query = value?.replace(/ /g,'')\n if (!query || query == 'CH') {\n resolve(true)\n }\n try {\n await axios.get(`/banks/iban?iban=${query}`)\n resolve(true)\n } catch (error) {\n if (error.response.status == 404) {\n resolve(true)\n } else {\n resolve(false)\n }\n }\n })()\n })\n}","import currency from 'currency.js'\n\nexport const matchKey = (form, key, parseValuesInt = false) => {\n if(parseValuesInt) {\n return (item) => parseInt(item[key]) === parseInt(form[key])\n } else {\n return (item) => item[key] === form[key]\n }\n}\n\nexport const getPriceCentsToString = (price, bar = false) => {\n const cents = price%100\n const francs = (price-cents)/100\n const centsString = cents.toString().length < 2 ? cents.toString() + '0' : cents.toString()\n const needBar = cents === 0\n return `${francs}.${needBar && bar ? '-' : centsString}`\n}\n\nexport const getPricePerMonth = (price, monthString, option) => {\n const priceString = generatePriceString(price, true)\n const bigPriceString =\n !option?.disabled \n ? `${priceString} / ${monthString}` \n : ''\n\n return bigPriceString\n}\n\nexport async function asyncForEach(array, callback) {\n for (let index = 0; index < array.length; index++) {\n await callback(array[index], index, array);\n }\n}\n\nexport const generateNamesObject = (names, prefix) => {\n let object = {}\n names.forEach(name => {\n object[name] = prefix \n ? prefix + '_' + name \n : name\n })\n return object\n}\n\nexport const summaryAddressInHTML = (formValue, prefixName) => {\n const names = generateNamesObject(['first_name', 'last_name', 'line', 'line_2', 'zip_code', 'city'], prefixName)\n return `\n ${formValue[names.first_name] || formValue[names.last_name] ? `
${formValue[names.first_name] || ''} ${formValue[names.last_name] || ''}
` : ''}\n ${formValue[names.line] ? `
${formValue[names.line]}
` : ''}\n ${formValue[names.line_2] ? `
${formValue[names.line_2]}
` : ''}\n
${formValue[names.zip_code] ? formValue[names.zip_code] : '' } ${formValue[names.city] ? formValue[names.city] : ''}
\n `\n}\n\nexport const cleanFormWithSchema = (form, schema) => {\n let res = form\n const keys = Object.keys(schema.fields)\n\n Object.keys(form).forEach(key => {\n if (!keys.find(item => item === key)) {\n delete form[key]\n } else if (\n key === 'holder_post_address_strid' ||\n key === 'holder_post_address_house_key'\n ) {\n form[key] = form[key] && form[key].toString()\n }\n })\n\n return res\n}\n\nexport const prefixNameConverter = (form, prefixIn, prefixOut) => {\n let newForm = {}\n Object.entries(form).forEach(([key, value]) => {\n const newKey =\n prefixIn\n ? prefixOut\n ? key.replace(prefixIn, prefixOut)\n : key.replace(`${prefixIn}_`, '')\n : `${prefixIn}_${key}`\n \n newForm[newKey] = value\n })\n return newForm\n}\n\nexport const getAddressFields = (form, prefix) => {\n let address = {}\n\n const fields = [\n 'title',\n 'first_name',\n 'last_name',\n 'city',\n 'line',\n 'line_2',\n 'post_address_id',\n 'post_address_strid',\n 'post_address_house_key',\n 'address_id',\n 'zip_code',\n 'country'\n ]\n\n const formKeys = generateNamesObject(fields, prefix)\n fields.forEach(item => {\n address[item] = form[formKeys[item]]\n })\n\n return address\n}\n\nexport const currencyCHFFormat = (output, swissFormat) => {\n return swissFormat ? output.replace('.00', '.-') : output\n}\n\nexport const generatePriceString = (intPrice, fromCents) => {\n return currency(intPrice, { \n symbol: 'CHF ',\n separator: '\\'',\n decimal: '.',\n fromCents: fromCents\n }).format()\n}\n\nexport const currencyOutput = value => currency(value, { \n symbol: 'CHF ',\n separator: '\\'',\n decimal: '.',\n fromCents: true,\n increment: .1\n}).format()\n\nexport const getPriceAndCalculData = (price, frequency, swissFormat, getRawValues) => {\n let surprimeMultiplier = 0\n let percent = null\n const freq = parseInt(frequency)\n\n const currencyOutput = value => currency(value, { \n symbol: swissFormat ? 'CHF ' : '',\n separator: '\\'',\n decimal: '.',\n fromCents: true,\n increment: .1\n }).format()\n\n if (freq && freq > 1) {\n surprimeMultiplier = freq / 100\n percent = freq + '%'\n }\n\n const annualPrice = price*12\n const surprime = Math.round(annualPrice*surprimeMultiplier / 10) * 10\n const priceWithSurprime = annualPrice + surprime\n const federalTimber = Math.round((priceWithSurprime*0.05) / 10) * 10\n const totalPrice = priceWithSurprime + federalTimber\n\n return {\n percent: percent,\n monthPrice: getRawValues ? price : currencyOutput(price),\n annualPrice: getRawValues ? annualPrice : currencyOutput(annualPrice),\n surprime: getRawValues ? surprime : currencyOutput(surprime),\n priceWithSurprime: getRawValues ? priceWithSurprime : currencyOutput(priceWithSurprime),\n federalTimber: getRawValues ? federalTimber : currencyOutput(federalTimber),\n totalPrice: getRawValues ? totalPrice : currencyOutput(totalPrice)\n }\n}\n\nexport const getStringifiedObjectValue = (o, s) => {\n s = s.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n s = s.replace(/^\\./, '') // strip a leading dot\n const a = s.split('.')\n for (const i = 0, n = a.length; i < n; ++i) {\n const k = a[i]\n if (k in o) {\n o = o[k]\n } else {\n return\n }\n }\n return o\n}\n\nexport const cleanEmptyFormData = formValue => {\n Object.entries(formValue).forEach(([key, value]) => {\n // check if value isn't defined and if it isn't a false from boolean \n if (!value && value !== false) {\n delete formValue[key]\n }\n })\n}\n\nconst getArrayIds = array => [\n ...array.map(item => item.id)\n]\n\nexport const arraysEqual = (aArr, bArr) => {\n const a = getArrayIds(aArr)\n const b = getArrayIds(bArr)\n\n if (a === b) return true\n if (a == null || b == null) return false\n if (a.length !== b.length) return false\n\n for (var i = 0; i < a.length; ++i) {\n if (a[i] !== b[i]) return false\n }\n\n return true\n}\n\nexport const hideOfferScreens = moment => \n moment().isSame('2022-03-14', 'day') &&\n moment().isBetween(\n moment('19:00:00', 'hh:mm:ss'),\n moment('23:59:59', 'hh:mm:ss')\n )","import { insuranceValues } from \"@animalia/assets\"\nimport { findAndSetAgeRange } from \"..\"\nimport { matchKey } from \"./utils\"\n\nexport const convertPriceToCents = price => {\n const price100 = price * 100\n const price100round = Math.round(price100)\n\n return price100round\n}\n\n// Calculator view \nexport const setCodeAgentAndPetId = (dispatch, params) => {\n dispatch({\n type: 'SET_CODE_AGENT_AND_PET_ID',\n codeAgent: params.get('codeAgent'),\n petId: params.get('petId'),\n promo: params.get('promo')\n }) \n}\n\n// Stepper \n// on each form update \nexport const updateForm = (dispatch, data) => {\n let newData = data\n\n // if (data.insurance_type) {\n // const selectedInsuranceType = \n // insuranceValues\n // .filter(matchKey(data, 'pet_species'))\n // .filter(matchKey(data, 'pet_age_category'))\n // .find(matchKey(data, 'insurance_franchise', true))\n\n // const price = convertPriceToCents(selectedInsuranceType[data.insurance_type])\n\n // newData.insurance_month_cost = price\n // }\n\n dispatch({\n type: 'SET_FORM',\n data: newData\n })\n}\n\nexport const setActiveStep = (dispatch, data) => {\n dispatch({\n type: 'SET_ACTIVE_STEP',\n data: data\n })\n}\n\n// Navigation \nexport const setInsuranceValues = (dispatch, data) => {\n\n dispatch({\n type: 'SET_INSURANCE_VALUES',\n data: data\n })\n}\n\n// form \nexport const selectClassicPrice = (dispatch, data) => {\n dispatch({\n type: 'SELECT_HEALTH',\n data: data\n })\n}\n\nexport const setEmailOffer = (dispatch, value) => {\n dispatch({ \n type: 'SET_EMAIL_OFFER_STATE',\n data: value\n })\n}\n\nexport const prefillCalculatorForm = (dispatch, pet) => {\n const data = {\n pet_species: pet.species,\n pet_age_category: findAndSetAgeRange(null, pet.birthdate)\n }\n dispatch({\n type: 'SET_FORM',\n data: data,\n step: !!pet && 'widget-step-1-2'\n })\n}","export default __webpack_public_path__ + \"static/media/pressnapf.eb7d70db.png\";","export default __webpack_public_path__ + \"static/media/hotelcard.6e3e2bfb.svg\";","export default __webpack_public_path__ + \"static/media/tonivet.05ce6765.svg\";","export default __webpack_public_path__ + \"static/media/tractive-logo.9c057341.svg\";","export default __webpack_public_path__ + \"static/media/nab-logo.b5b4c301.png\";","export default __webpack_public_path__ + \"static/media/hotelcard-logo.b974bef5.png\";","function Order(order) {\n const STATUS_ACTIVE = 'active'; //Active\n const STATUS_INACTIVE = 'inactive'; //New\n const STATUS_STANDBY = 'standby'; //En attente de paiement\n const STATUS_CANCELLED = 'cancelled'; //Annulée\n\n let self = {\n ...order,\n\n isActive: () => self.status === STATUS_ACTIVE,\n\n isInactive: () => self.status === STATUS_INACTIVE,\n\n isStandBy: () => self.status === STATUS_STANDBY,\n\n isCancelled: () => self.status === STATUS_CANCELLED,\n\n hasOpenDeliveries: () => {\n return (\n self.deliveries.filter(\n delivery =>\n ['pending', 'payment-on-hold', 'planned'].indexOf(\n delivery.status\n ) >= 0\n ).length > 0\n );\n },\n\n needUpdate: pet => {\n if (!self.updated_at) {\n return false;\n }\n\n return (\n new Date(pet.updated_at).setSeconds(0, 0) >\n new Date(self.updated_at).setSeconds(0, 0)\n );\n },\n\n nextDelivery: () => {\n if (self.deliveries && self.deliveries.length > 0) {\n return self.deliveries.find(\n delivery =>\n ['pending', 'payment-on-hold', 'planned'].indexOf(\n delivery.status\n ) >= 0\n );\n }\n\n return false;\n },\n\n discount: () => {\n let coupon = null;\n let formatedPrice, price;\n\n if (typeof self.coupons === 'undefined' || self.coupons.length === 0) {\n return null;\n }\n\n coupon = self.coupons[0];\n\n // is coupon still valid ?\n const dateLimit = new Date(self.created_at).setMonth(\n new Date(self.created_at).getMonth() + coupon.duration\n );\n\n if (new Date() > dateLimit) {\n return null;\n }\n\n return {\n value: coupon.value,\n type: coupon.type,\n duration: coupon.duration,\n };\n },\n };\n\n return self;\n}\n\nexport default Order;\n","import * as yup from 'yup';\nimport i18n from 'i18next';\n\nconst STATUS_NEW = 'new';\nconst STATUS_SENDING_FILES = 'sending_files';\nconst STATUS_FILES_MERGED = 'files_merged';\nconst STATUS_FILES_SENT = 'files_sent';\nconst STATUS_SENT = 'sent';\nconst STATUS_SCANNED = 'files_scanned';\nconst TYPE_BILL = 'bill';\nconst TYPE_MEDICAL_RECORD = 'medical_record';\n\nconst medicalFileShape = yup.object().shape({\n label: yup.string().required(),\n type: yup.string().oneOf([TYPE_BILL]),\n});\n\nconst billShape = yup.object().shape({\n label: yup.string().required(),\n type: yup.string().oneOf([TYPE_MEDICAL_RECORD]),\n amount: yup.number().integer().min(500).required(),\n involves_multiple_pets: yup.boolean().required(),\n involves_multiple_claims: yup.boolean().required(),\n involves_a_vaccine: yup.boolean().required(),\n billing_years: yup.array().of(yup.number()),\n claims: yup.array().of(yup.number()),\n});\n\nfunction Document(doc) {\n let self = {\n ...doc,\n isBill: () => self.type === TYPE_BILL,\n isMedicalRecord: () => self.type === TYPE_MEDICAL_RECORD,\n /**\n * Check if the file has been sent to Laravel (not Documentum)\n * This means that the file is ready to be displayed to the user.\n */\n isSent: () =>\n self.status === STATUS_FILES_MERGED ||\n self.status === STATUS_SENT ||\n self.status === STATUS_SCANNED ||\n self.status === STATUS_FILES_SENT,\n\n isCreated() {\n return typeof this.id !== 'undefined';\n },\n\n /**\n * Check if the document is under the processing time\n */\n isUnderProcessingTime(processing_time) {\n const estimatedDate = new Date();\n estimatedDate.setDate(estimatedDate.getDate() + processing_time);\n estimatedDate.setHours(0, 0, 0);\n\n const sentDate = new Date(doc.updated_at);\n sentDate.setHours(0, 0, 0);\n\n return sentDate < estimatedDate;\n },\n\n /**\n * Gets the estimated date of processing\n */\n getEstimatedProcessingDate(processing_time) {\n const date = new Date(doc.updated_at);\n date.setDate(date.getDate() + processing_time);\n date.setHours(0, 0, 0);\n\n return date.toLocaleDateString(i18n.language, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n });\n },\n\n getAmount() {\n if (self.isCreated()) {\n return parseFloat(this.amount / 100).toFixed(2);\n } else {\n return parseFloat(this.amount).toFixed(2);\n }\n },\n\n /**\n * Get a summary of filled fields\n */\n getSummary: () => {\n let fields = null;\n if (self.isBill()) {\n fields = billShape.fields;\n } else if (self.isMedicalRecord()) {\n fields = medicalFileShape.fields;\n }\n\n if (!fields) {\n return {};\n }\n\n return Object.keys(fields).reduce((acc, field) => {\n if (typeof self[field] !== 'undefined') {\n let value = self[field];\n\n /**\n * we apply some format to specific fields\n */\n switch (field) {\n case 'type':\n return acc;\n break;\n\n case 'label':\n if (self.isMedicalRecord()) {\n acc.push({key: 'label_medicalFile', value: value});\n return acc;\n }\n break;\n\n case 'billing_years':\n value = value.join(', ');\n break;\n\n case 'involves_multiple_pets':\n case 'involves_multiple_claims':\n case 'involves_a_vaccine':\n value = value ? i18n.t('common.yes') : i18n.t('common.no');\n break;\n\n case 'amount':\n const amount = self.getAmount();\n if (amount === 'NaN') {\n return acc;\n }\n value = 'CHF ' + amount.replace('.00', '.-');\n break;\n }\n\n acc.push({key: field, value: value});\n }\n return acc;\n }, []);\n },\n\n formatForAPI: () => {\n let formatted = self;\n\n if (typeof self.amount !== 'undefined') {\n formatted.amount = self.getAmount() * 100;\n }\n\n return formatted;\n },\n\n formatAmount: () => {\n return `CHF ${self.getAmount().replace('.00', '.-')}`;\n },\n };\n\n return self;\n}\n\nexport default Document;\n","import Pet from './pet.js';\nimport Order from './order.js';\nimport Delivery from './delivery.js';\n\nfunction User(pets, i18n, t) {\n let self = {\n petsList: pets,\n\n /**\n * Checks that the user has completed his mandatory profile\n */\n hasCompleteProfile: () => {},\n\n /**\n * Get all user pet's\n */\n pets: () => self.petsList.map(pet => Pet(pet, 18n, t)),\n\n /**\n * Get all user orders\n */\n orders: () =>\n self.petsList.reduce((acc, pet) => {\n const petOrders = pet.orders.map(o => Order(o));\n acc.push(...petOrders);\n return acc;\n }, []),\n\n /**\n * Get all user deliveries\n */\n deliveries: () =>\n self.orders().reduce((acc, order) => {\n const deliveries = order.deliveries.map(d => Delivery(d));\n acc.push(...deliveries);\n return acc;\n }, []),\n\n /**\n * Get active orders\n */\n activeOrders: () => self.orders().filter(order => order.isActive()),\n\n /**\n * Get planned deliveries\n */\n plannedDeliveries: () =>\n self.deliveries().filter(delivery => delivery.isPlanned()),\n\n canDeleteAccount: () => {\n return (\n self.activeOrders().length === 0 &&\n self.plannedDeliveries().length === 0\n );\n },\n };\n\n return self;\n}\n\nexport default User;\n","import * as yup from 'yup';\nimport Document from './document.js';\nimport i18n from 'i18next';\n\nconst TYPE_ACCIDENT = 'accident';\nconst TYPE_HEALTH = 'health';\nconst TYPE_VACCINE = 'vaccine';\nconst TYPE_EXTERNAL = 'external';\n\nconst THIRD_PARTY_STATUS_KNOWN = 'known';\nconst THIRD_PARTY_STATUS_UNKNOWN = 'unknown';\nconst THIRD_PARTY_STATUS_NONE = 'none';\n\nconst thirdPartyShape = yup.object().shape({\n type: yup.string().oneOf(['accident_third_party']),\n first_name: yup.string().required(),\n last_name: yup.string().required(),\n street: yup.string().nullable(),\n zip_code: yup.string().nullable(),\n city: yup.string().nullable(),\n country: yup.string().nullable(),\n email: yup.string().nullable(),\n phone: yup.string().nullable(),\n});\n\nconst basicClaimShape = {\n type: yup\n .string()\n .oneOf([TYPE_ACCIDENT, TYPE_HEALTH, TYPE_VACCINE, TYPE_EXTERNAL]),\n label: yup.string().required(),\n is_external: yup.boolean().required(),\n};\n\nconst vaccineShape = yup.object().shape({\n ...basicClaimShape,\n comment: yup.string().nullable(),\n});\n\nconst illnessShape = yup.object().shape({\n ...basicClaimShape,\n diagnosis: yup.string().nullable(),\n symptoms: yup.string().nullable(),\n treatment: yup.string().required(),\n comment: yup.string().nullable(),\n});\n\nconst accidentShape = yup.object().shape({\n ...basicClaimShape,\n diagnosis: yup.string().required(),\n treatment: yup.string().required(),\n occurred_at: yup.date().required(),\n interval: yup.string().required(),\n sequence: yup.string().required(),\n third_party_status: yup\n .string()\n .oneOf([\n THIRD_PARTY_STATUS_KNOWN,\n THIRD_PARTY_STATUS_UNKNOWN,\n THIRD_PARTY_STATUS_NONE,\n ]),\n comment: yup.string().nullable(),\n});\n\nconst accidentWithThirdPartyShape = yup.object().shape({\n ...basicClaimShape,\n diagnosis: yup.string().required(),\n occurred_at: yup.date().required(),\n interval: yup.string().required(),\n sequence: yup.string().required(),\n third_party_status: yup\n .string()\n .oneOf([\n THIRD_PARTY_STATUS_KNOWN,\n THIRD_PARTY_STATUS_UNKNOWN,\n THIRD_PARTY_STATUS_NONE,\n ]),\n third_party: thirdPartyShape,\n comment: yup.string().nullable(),\n});\n\nconst externalShape = yup.object().shape({\n ...basicClaimShape,\n claim_year: yup.number().required(),\n});\n\nfunction Claim(claim) {\n let self = {\n ...claim,\n\n init: () => {\n if (typeof self.is_external === 'undefined') {\n self.is_external = false;\n }\n\n if (typeof self.documents !== 'undefined') {\n self.documents = self.documents.map(d => Document(d));\n }\n\n if (self.isCreated()) {\n if (self.third_party === null) {\n delete self.third_party;\n }\n // hasDiagnostic is not saved in database but we can find what is\n // its value from diagnostic field\n if (self.isIlness() && typeof self.hasDiagnostic === 'undefined') {\n self.hasDiagnostic = self.diagnosis ? 'yes' : 'no';\n }\n }\n },\n\n /**\n * Check if the claim is of type vaccine\n */\n isVaccine: () => self.type === TYPE_VACCINE,\n\n /**\n * Check if the claim is of type illness\n */\n isIlness: () => self.type === TYPE_HEALTH,\n\n /**\n * Check if the claim is of type accident\n */\n isAccident: () => self.type === TYPE_ACCIDENT,\n\n /**\n * Check if the claim is of type external\n */\n isExternal: () => self.is_external === true,\n\n /**\n * Check if the claim is of type external\n */\n isCreated: () => typeof self.id !== 'undefined',\n\n getLabel: () => {\n return self.isVaccine() ? i18n.t('insurance.types.vaccine') : self.label;\n },\n\n /**\n * for Accidents, there could be a third party\n * Check if there is a third party\n */\n hasThirdParty: () => {\n if (!self.isAccident()) {\n return false;\n }\n\n if (\n typeof self.third_party_status !== 'undefined' &&\n self.third_party_status === THIRD_PARTY_STATUS_KNOWN\n ) {\n return true;\n }\n\n return false;\n },\n\n /**\n * prepare the claim to be used in a form\n */\n formatForForm: () => {\n if (self.isCreated()) {\n const date = new Date(self.occurred_at);\n self.date = date;\n self.hour = date.toLocaleString('en-us', {\n hour12: false,\n hour: '2-digit',\n minute: '2-digit',\n });\n self.interval = {value: self.interval};\n }\n },\n\n /**\n * prepare the claim to be sent to the API\n */\n formatForAPI: () => {\n if (\n self.isAccident() &&\n !self.isExternal() &&\n typeof self.date !== 'undefined'\n ) {\n self.occurred_at = new Date(self.date);\n //accidents needs to concatenate date\n if (typeof self.hour !== 'undefined') {\n const [hours, minutes] = self.hour.split(':');\n\n if (hours && minutes) {\n self.occurred_at.setHours(hours);\n self.occurred_at.setMinutes(minutes);\n }\n }\n }\n\n if (\n self.isAccident() &&\n !self.isExternal() &&\n typeof self.interval !== 'undefined' &&\n typeof self.interval.value !== 'undefined'\n ) {\n self.interval = self.interval.value;\n }\n\n if (typeof self.third_party === 'undefined' && self.hasThirdParty()) {\n self.third_party = {\n type: 'accident_third_party',\n first_name: self.first_name || null,\n last_name: self.last_name || null,\n street: self.street || null,\n zip_code: self.zip_code || null,\n city: self.city || null,\n country: self.country || null,\n email: self.email || null,\n phone: self.phone || null,\n };\n }\n\n if (!self.hasThirdParty()) {\n delete self.third_party;\n }\n\n return self;\n },\n\n getDetails: () => {\n const items = [];\n\n items.push(\n new Date(self.created_at).toLocaleDateString(i18n.language, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n })\n );\n\n items.push(i18n.t('insurance.types.' + self.type));\n\n items.push(\n i18n.t('insurance.xInvoices', {\n count: self.documents.length,\n })\n );\n\n return items.join(' | ');\n },\n\n /**\n * Make sure the claim is in a valid shape\n */\n validate: () => {\n try {\n if (self.isExternal()) {\n externalShape.validateSync(self);\n } else if (self.isVaccine()) {\n vaccineShape.validateSync(self);\n } else if (self.isIlness()) {\n illnessShape.validateSync(self);\n } else if (self.isAccident()) {\n if (self.hasThirdParty()) {\n accidentWithThirdPartyShape.validateSync(self);\n } else {\n accidentShape.validateSync(self);\n }\n } else {\n return false;\n }\n } catch (err) {\n console.error(err);\n return false;\n }\n\n return true;\n },\n\n /**\n * Get a summary of filled fields\n */\n getSummary: () => {\n let fields = basicClaimShape.fields;\n if (self.isExternal()) {\n fields = externalShape.fields;\n } else if (self.isVaccine()) {\n fields = vaccineShape.fields;\n } else if (self.isIlness()) {\n fields = illnessShape.fields;\n } else if (self.isAccident()) {\n if (self.hasThirdParty()) {\n fields = accidentWithThirdPartyShape.fields;\n } else {\n fields = accidentShape.fields;\n }\n }\n\n if (!fields) {\n return [];\n }\n\n self.formatForAPI();\n\n return Object.keys(fields).reduce((acc, field) => {\n if (typeof self[field] !== 'undefined') {\n let value = self[field];\n\n /**\n * we apply some format to specific fields\n */\n switch (field) {\n // fields we dont want to display\n case 'is_external':\n return acc;\n break;\n\n case 'type':\n value = i18n.t('insurance.types.' + value);\n break;\n\n case 'third_party':\n value = self.formatThirdParty(value);\n if (value.length === 0) {\n return acc;\n }\n break;\n\n case 'occurred_at':\n let params = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n };\n\n const date = new Date(value);\n if (\n date.getHours() + date.getMinutes() !== 0 ||\n typeof self.hour !== 'undefined'\n ) {\n params.hour = '2-digit';\n params.minute = '2-digit';\n }\n\n value = date.toLocaleDateString(i18n.language, params);\n break;\n\n case 'third_party_status':\n value = i18n.t('insurance.disaster.anyThirdParty.' + value);\n break;\n\n case 'interval':\n const label =\n typeof value.value !== 'undefined' ? value.value : value;\n value = i18n.t('insurance.disaster.date.' + label);\n break;\n }\n\n acc.push({key: field, value: value});\n }\n return acc;\n }, []);\n },\n\n formatThirdParty: person => {\n if (!person) {\n return '';\n }\n if (!self.hasThirdParty()) {\n return '';\n }\n\n const {\n last_name,\n first_name,\n street,\n zip_code,\n city,\n country,\n email,\n phone,\n } = person;\n let lines = [];\n\n if (last_name || first_name) {\n let name = [];\n if (last_name) {\n name.push(last_name);\n }\n if (first_name) {\n name.push(first_name);\n }\n lines.push(name.join(' '));\n }\n\n if (street) {\n lines.push(street);\n }\n\n if (zip_code || city) {\n let area = [];\n if (zip_code) {\n area.push(zip_code);\n }\n if (city) {\n area.push(city);\n }\n lines.push(area.join(' '));\n }\n\n if (country) {\n lines.push(country);\n }\n\n if (email) {\n lines.push(email);\n }\n\n if (phone) {\n lines.push(phone);\n }\n\n return lines.join('
');\n },\n };\n\n self.init();\n\n return self;\n}\n\nexport default Claim;\n","\nimport { cleanEmptyValuesBeforeSubmit } from '@animalia/actions'\nimport { axios } from '@animalia/instances'\n\nconst createOffer = async ({ form: { value }, petId, language, pet, user, newStep }) => {\n\n let response, \n formValue, \n stepToSend = (newStep || value.step) === 'widget-step-3'\n ? petId\n ? 'widget-step-3-logged-in'\n : 'widget-step-3-guest'\n : value.step\n\n if (petId && user) {\n formValue = {\n ...value,\n step: stepToSend,\n pet_name: pet?.name,\n pet_species: pet?.species,\n pet_gender: pet?.gender,\n pet_birthdate: pet?.birthdate,\n pet_animal_type: pet?.animal_type,\n pet_animal_id: pet?.animal_id,\n pet_other_race: pet?.other_race,\n pet_animal_id_2: pet?.animal_id_2,\n pet_other_race_2: pet?.other_race_2,\n pet_weight: pet?.weight,\n holder_title: user?.attributes?.['custom:title'],\n holder_first_name: user?.attributes?.['given_name'],\n holder_last_name: user?.attributes?.['family_name'],\n holder_mobile_phone: user?.attributes?.['phone_number'],\n holder_email: user?.attributes?.['email'],\n lang: language\n }\n } else {\n formValue = {\n ...value,\n lang: language\n }\n }\n cleanEmptyValuesBeforeSubmit(formValue)\n try {\n if (petId) {\n formValue.pet_id = petId\n response = await axios.post('/quotes', formValue)\n } else {\n response = await axios.post('/public/quotes', formValue, {\n headers: {\n 'Authorization': 'Bearer ' + process.env.REACT_APP_OFFER_GUEST_TOKEN\n }\n })\n }\n \n // return qid \n return response?.data?.quote?.qid\n } catch (error) {\n throw error\n }\n}\n\nexport default createOffer ","import * as yup from 'yup'\n\nconst phoneRegExp = /\\+(9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\\d{1,14}$/\n\nlet calculatorSchema = yup.object().shape({\n pet_species: yup.string().required('offer.error.pet_species_required').matches(/(cat|dog)/),\n pet_age_category: yup.string().required('offer.error.general'),\n insurance_franchise: yup.number().required('offer.error.general'),\n insurance_type: yup.string().required('offer.error.insurance_type_required').matches(/(compact|classic|comfort)/, 'offer.error.general'),\n insurance_payment_frequency: yup.string().matches(/(annual|biannual|quarterly)/).required('offer.error.insurance_payment_frequency_required'),\n insurance_enters_in_force_at: yup.date().min(new Date()).required('offer.error.insurance_enters_in_force_at_required'),\n holder_id: yup.string().nullable(),\n pet_breed: yup.string().required('offer.error.general'),\n pet_animal_id: yup.string().when(['pet_breed'], {\n is: (pet_breed) => pet_breed !== 'unknown',\n then: yup.string().required('offer.error.pet_animal_id_required')\n }),\n pet_animal_id_2: yup.string().when(['pet_breed'], {\n is: (pet_breed) => pet_breed == 'mixed',\n then: yup.string().required('offer.error.pet_animal_id_required')\n }),\n pet_name: yup.string()\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(/^[a-zA-Z0-9\\- ]*$/, 'offer.error.no_special_char')\n .matches(/^.{0,128}$/, 'offer.error.max_128')\n // .matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase')\n .test('len', 'offer.error.more_char', val => val?.length >= 2)\n .required('offer.error.pet_name_required'),\n holder_title: yup.string().required('offer.error.title_required').matches(/(mr|ms|mrs)/),\n holder_first_name: yup.string()\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase')\n .test('len', 'offer.error.more_char', val => val?.length >= 2)\n .required('offer.error.first_name_required'),\n holder_last_name: yup.string()\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase')\n .test('len', 'offer.error.more_char', val => val?.length >= 2)\n .required('offer.error.last_name_required'),\n holder_email: yup.string().email('offer.error.email_invalid').required('offer.error.general'),\n holder_mobile_phone: yup.string().matches(phoneRegExp, 'format: +41000000000').required('offer.error.holder_phone_required'),\n holder_phone: yup.string().nullable(),\n holder_zip_code: yup.string().required('offer.error.zip_code_required'),\n holder_city: yup.string().required('offer.error.city_required'),\n})\n\nexport default calculatorSchema","import * as yup from 'yup';\n\nexport default yup.object().shape({\n firstname: yup.string().required(),\n lastname: yup.string().required(),\n line: yup.string().required(),\n line_2: yup.string().nullable(),\n zip_code: yup.number().required(),\n city: yup.string().required(),\n});\n","import * as yup from 'yup';\n\nexport default yup.object().shape({\n species: yup\n .string()\n .required()\n .matches(/(cat|dog)/),\n gender: yup\n .string()\n .required()\n .matches(/(male|female)/),\n name: yup.string().required(),\n birthdate: yup.date().required(),\n animal_type: yup.string().oneOf(['breed', 'bastard']).required(),\n animal: yup.object().when('animal_type', {\n is: 'breed',\n then: yup.object().required(),\n otherwise: yup.object().nullable(),\n }),\n weight: yup.number().when('animal_type', {\n is: 'bastard',\n then: yup.number().integer().positive().max(100).required(),\n otherwise: yup.number().nullable(),\n }),\n activity: yup.string().oneOf(['passive', 'normal', 'active']).required(),\n sterilized: yup.string().oneOf(['0', '1']).required(),\n options: yup.string().oneOf(['none', 'sensitive', 'grain-free']).required(),\n product: yup.number().required(),\n percentageQuantity: yup.number().oneOf([80, 90, 100, 110, 120]).required(),\n});\n","import * as yup from 'yup'\n\nlet animalStepSchema = yup.object().shape({\n pet_species: yup.string().default('').required(),\n pet_age_category: yup.string().default('').required('')\n})\n\nexport default animalStepSchema","import * as yup from 'yup'\n\nlet insuranceStepSchema = yup.object().shape({\n insurance_franchise: yup.string().required('offer.error.general'),\n insurance_type: yup.string().when('insurance_franchise', {\n is: '50000',\n then: yup.string().oneOf(['compact', 'classic', 'comfort']).required('offer.error.general'),\n otherwise: yup.string().oneOf(['classic', 'comfort']).required('offer.error.general')\n })\n})\n\nexport default insuranceStepSchema","import * as yup from 'yup'\n\nlet clientStepSchema = yup.object().shape({\n pet_name: yup.string().default('').required(),\n holder_first_name: yup.string().default('').required(),\n holder_last_name: yup.string().default('').required(),\n holder_email: yup.string().email().required()\n})\n\nexport default clientStepSchema","import * as yup from 'yup'\nimport differenceInYears from 'date-fns/differenceInYears'\nimport { ibanValidation } from '@animalia/actions'\n\nconst ifNullThen = schema => value => {\n if (value === null) {\n return schema\n }\n}\nconst phoneRegExp = /\\+(9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\\d{1,14}$/\n\nlet offerSchema = yup.object().shape({\n step: yup.string().required(),\n qid: yup.string().nullable(),\n pet_id: yup.number().nullable(),\n pet_species: yup.string().required('offer.error.pet_species_required').matches(/(cat|dog)/),\n pet_gender: yup.string().required('offer.error.pet_gender_required').matches(/(male|female)/),\n pet_name: yup.string()\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(/^[a-zA-Z0-9\\- ]*$/, 'offer.error.no_special_char')\n .matches(/^.{0,128}$/, 'offer.error.max_128')\n // .matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase')\n .test('len', 'offer.error.more_char', val => val?.length >= 2)\n .required('offer.error.pet_name_required'),\n pet_birthdate: yup.date().typeError('offer.error.insurance_enters_in_force_at_required').max(new Date(), 'offer.error.invalid_date').required('offer.error.pet_birthdate_required'),\n pet_age_category: yup.string().nullable(),\n pet_animal_type: yup.string().matches(/(breed|bastard|unknown)/).required('offer.error.pet_is_purebred_required'),\n pet_animal_id: yup.string().when(['pet_animal_type', 'pet_other_race'], {\n is: (pet_animal_type, pet_other_race) => pet_animal_type !== 'unknown' && !pet_other_race,\n then: yup.string().required('offer.error.pet_animal_id_required')\n }),\n pet_animal_id_2: yup.string().when(['pet_animal_type', 'pet_other_race_2'], {\n is: (pet_animal_type, pet_other_race_2) => pet_animal_type == 'bastard' && !pet_other_race_2,\n then: yup.string().required('offer.error.pet_animal_id_required')\n }),\n pet_other_race: yup.string().transform(value => !value ? null : value).nullable(true).matches(/^[A-Z]/, 'offer.error.uppercase').matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase'),\n pet_other_race_2: yup.string().transform(value => !value ? null : value).nullable(true).matches(/^[A-Z]/, 'offer.error.uppercase').matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase'),\n pet_weight: yup.number().transform(value => !value ? null : value).nullable(true),\n // .when(['pet_animal_type', 'pet_other_race'], {\n // is: (pet_animal_type , pet_other_race) => pet_animal_type !== 'breed' || !!pet_other_race,\n // then: yup.number().required('offer.error.pet_weight_required').typeError('offer.error.pet_weight_number_required')\n // }),\n insurance_franchise: yup.number().required('offer.error.general'),\n insurance_type: yup.string().required('offer.error.insurance_type_required').matches(/(compact|classic|comfort)/),\n insurance_cost: yup.number().required(),\n insurance_payment_frequency: yup.number().oneOf([ 1, 2, 4 ]).nullable(),\n insurance_enters_in_force_at: yup.date().typeError('offer.error.insurance_enters_in_force_at_required').min(new Date(), 'offer.error.invalid_date').required('offer.error.insurance_enters_in_force_at_required'),\n agency_code: yup.string().nullable(),\n promo_code: yup.string().nullable(),\n agent_code: yup.string().max(4, 'offer.error.max_char_4').nullable(),\n holder_id: yup.string().nullable(),\n holder_address_id: yup.string().nullable(),\n holder_title: yup.string().required('offer.error.title_required').matches(/(mr|ms|mrs)/),\n holder_first_name: yup.string().test('len', 'offer.error.more_char', val => val?.length >= 2).required('offer.error.first_name_required'),\n holder_last_name: yup.string().test('len', 'offer.error.more_char', val => val?.length >= 2).required('offer.error.last_name_required'),\n holder_post_address_id: yup.string().nullable(),\n holder_post_address_house_key: yup.string().nullable(),\n holder_post_address_strid: yup.string().nullable(),\n holder_line: yup.string().when('holder_address_id', ifNullThen(yup.string().required('offer.error.line_required'))),\n holder_line_2: yup.string().nullable(),\n holder_zip_code: yup.string().when('holder_address_id', ifNullThen(yup.string().required('offer.error.zip_code_required'))),\n holder_city: yup.string().when('holder_address_id', ifNullThen(yup.string().required('offer.error.city_required'))),\n holder_country: yup.string().nullable(),\n holder_birthdate: yup.date()\n .typeError('offer.error.invalid_date')\n .test('dob', 'offer.error.min_18', value => differenceInYears(new Date(), value) >= 18)\n .max(new Date(), 'offer.error.invalid_date')\n .required('offer.error.birthdate_required'),\n holder_nationality: yup.string(),\n holder_email: yup.string().nullable(),\n holder_phone: yup.string().nullable(),\n holder_mobile_phone: yup.string().matches(phoneRegExp, 'format: +41000000000').required('offer.error.holder_phone_required'),\n holder_iban: yup.string()\n .test('checkIban', 'offer.error.wrong_iban', ibanValidation)\n .nullable(),\n holder_bank_id: yup.string().nullable(),\n type: yup.string().nullable(),\n holder_bank_name: yup.string().nullable(),\n holder_bank_zip_code: yup.string().nullable(),\n holder_bank_city: yup.string().nullable(),\n validate: yup.boolean().required().oneOf([true]),\n cga_1: yup.boolean().required().oneOf([true]),\n cga_2: yup.boolean().required().oneOf([true]),\n lang: yup.string().nullable()\n})\n\nexport default offerSchema","import * as yup from 'yup'\nimport differenceInYears from 'date-fns/differenceInYears'\nimport { ibanValidation } from '@animalia/actions'\n\nconst phoneRegExp = /\\+(9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\\d{1,14}$/\n\nconst ifNullThen = schema => value => {\n if (!value) {\n return schema\n }\n}\n\nlet offlineOfferSchema = yup.object().shape({\n step: yup.string().required(),\n qid: yup.string().nullable(),\n pet_id: yup.number().nullable(),\n pet_species: yup.string().required('offer.error.pet_species_required').matches(/(cat|dog)/),\n pet_gender: yup.string().required('offer.error.pet_gender_required').matches(/(male|female)/),\n pet_name: yup.string()\n .required('offer.error.pet_name_required')\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(/^[a-zA-Z0-9\\- ]*$/, 'offer.error.no_special_char')\n .matches(/^.{0,128}$/, 'offer.error.max_128')\n // .matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase')\n .test('len', 'offer.error.more_char', val => val?.length >= 2),\n pet_birthdate: yup.date().max(new Date(), 'offer.error.invalid_date').required('offer.error.pet_birthdate_required'),\n pet_age_category: yup.string().nullable(),\n pet_animal_type: yup.string().nullable().matches(/(breed|bastard|unknown)/).required('offer.error.pet_is_purebred_required'),\n pet_animal_id: yup.string().when(['pet_animal_type', 'pet_other_race'], {\n is: (pet_animal_type, pet_other_race) => pet_animal_type !== 'unknown' && !pet_other_race,\n then: yup.string().required('offer.error.pet_animal_id_required')\n }),\n pet_animal_id_2: yup.string().when(['pet_animal_type', 'pet_other_race_2'], {\n is: (pet_animal_type, pet_other_race_2) => pet_animal_type == 'bastard' && !pet_other_race_2,\n then: yup.string().required('offer.error.pet_animal_id_required')\n }),\n pet_other_race: yup.string().transform(value => !value ? null : value).nullable(true).matches(/^[A-Z]/, 'offer.error.uppercase').matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase'),\n pet_other_race_2: yup.string().transform(value => !value ? null : value).nullable(true).matches(/^[A-Z]/, 'offer.error.uppercase').matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase'),\n pet_weight: yup.number().transform(value => !value ? null : value).nullable(true),\n // .when(['pet_animal_type', 'pet_other_race'], {\n // is: (pet_animal_type , pet_other_race) => pet_animal_type !== 'breed' || !!pet_other_race,\n // then: yup.number().required('offer.error.pet_weight_required').typeError('offer.error.pet_weight_number_required')\n // }),\n insurance_franchise: yup.number().required('offer.error.general'),\n insurance_type: yup.string().required('offer.error.insurance_type_required').matches(/(compact|classic|comfort)/),\n insurance_cost: yup.number().required(),\n insurance_payment_frequency: yup.number().oneOf([ 1, 2, 4 ]).required('offer.error.insurance_payment_frequency_required'),\n insurance_enters_in_force_at: yup.date().min(new Date(), 'offer.error.invalid_date').required('offer.error.insurance_enters_in_force_at_required'),\n agency_code: yup.string().nullable(),\n promo_code: yup.string().nullable(),\n agent_code: yup.string().max(4, 'offer.error.max_char_4').nullable(),\n holder_title: yup.string().required('offer.error.title_required').matches(/(mr|ms|mrs)/),\n holder_first_name: yup.string().test('len', 'offer.error.more_char', val => val?.length >= 2).required('offer.error.first_name_required'),\n holder_last_name: yup.string().test('len', 'offer.error.more_char', val => val?.length >= 2).required('offer.error.last_name_required'),\n holder_post_address_id: yup.string().nullable(),\n holder_post_address_house_key: yup.string().nullable(),\n holder_post_address_strid: yup.string().nullable(),\n holder_line: yup.string().when('holder_address_id', ifNullThen(yup.string().required('offer.error.line_required'))),\n holder_line_2: yup.string().nullable(),\n holder_zip_code: yup.string().when('holder_address_id', ifNullThen(yup.string().required('offer.error.zip_code_required'))),\n holder_city: yup.string().when('holder_address_id', ifNullThen(yup.string().required('offer.error.city_required'))),\n holder_country: yup.string().nullable(),\n holder_birthdate: yup.date()\n .required('offer.error.birthdate_required')\n .test('dob', 'offer.error.min_18', value => differenceInYears(new Date(), value) >= 18)\n .max(new Date(), 'offer.error.invalid_date'),\n holder_nationality: yup.string(),\n holder_phone: yup.string().nullable().when('holder_mobile_phone', ifNullThen(yup.string().matches(phoneRegExp, 'format: +41000000000').required('offer.error.holder_phone_required'))),\n holder_mobile_phone: yup.string().nullable().when('holder_phone', ifNullThen(yup.string().matches(phoneRegExp, 'format: +41000000000').required('offer.error.holder_phone_required'))),\n holder_iban: yup.string()\n .test('checkIban', 'offer.error.wrong_iban', ibanValidation)\n .nullable(),\n holder_bank_id: yup.number().nullable(),\n holder_is_vaudoise_customer: yup.boolean().nullable(),\n holder_is_pet_keeper: yup.boolean().nullable(),\n lang: yup.string().required('offer.error.general')\n}, ['holder_phone', 'holder_mobile_phone'])\n\nexport default offlineOfferSchema","import * as yup from 'yup'\nimport differenceInYears from 'date-fns/differenceInYears'\n\nconst phoneRegExp = /\\+(9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\\d{1,14}$/\nconst ifNullThen = schema => value => {\n if (!value) {\n return schema\n }\n}\n\nlet ownerSchema = yup.object().shape({\n title: yup.string().required('offer.error.title_required').matches(/(mr|ms|mrs)/),\n first_name: yup.string()\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase')\n .test('len', 'offer.error.more_char', val => val?.length >= 2)\n .required('offer.error.first_name_required'),\n last_name: yup.string()\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase')\n .test('len', 'offer.error.more_char', val => val?.length >= 2)\n .required('offer.error.last_name_required'),\n post_address_strid: yup.string().nullable(),\n post_address_house_key: yup.string().nullable(),\n address_id: yup.string().nullable(),\n line: yup.string().required('offer.error.line_required'),\n line_2: yup.string().nullable(),\n zip_code: yup.string().required('offer.error.zip_code_required'),\n city: yup.string().required('offer.error.city_required'),\n country: yup.string().nullable(),\n birthdate: yup.date()\n .typeError('offer.error.invalid_date')\n .test('dob', 'offer.error.min_18', value => differenceInYears(new Date(), value) >= 18)\n .max(new Date(), 'offer.error.invalid_date')\n .required('offer.error.birthdate_required'),\n email: yup.string().required('offer.error.general'),\n phone: yup.string().nullable().when('mobile_phone', ifNullThen(yup.string().matches(phoneRegExp, 'format: +41000000000').required('offer.error.holder_phone_required'))),\n mobile_phone: yup.string().nullable().when('phone', ifNullThen(yup.string().matches(phoneRegExp, 'format: +41000000000').required('offer.error.holder_phone_required'))),\n transferred_at: yup.date()\n .typeError('offer.error.invalid_date')\n .min(new Date(new Date().setHours(0,0,0,0)), 'offer.error.invalid_date')\n .required('offer.error.birthdate_required'),\n keep_insurance: yup.boolean().typeError('offer.error.general').required('offer.error.general'),\n other_concerned_pets: yup.array().of(yup.number()).nullable()\n}, ['phone', 'mobile_phone'])\n\nexport default ownerSchema","import * as yup from 'yup'\n\nconst ifNullThen = schema => value => {\n if (!value) {\n return schema\n }\n}\n\nlet addressSchema = yup.object().shape({\n title: yup.string().when('address_id', ifNullThen(yup.string().required('offer.error.title_required').matches(/(mr|ms|mrs)/))),\n first_name: yup.string().nullable().when('address_id', ifNullThen(yup.string().required('offer.error.first_name_required'))),\n last_name: yup.string().nullable().when('address_id', ifNullThen(yup.string().required('offer.error.last_name_required'))),\n addressee: yup.string().nullable().when('address_id', ifNullThen(yup.string().required())),\n address_id: yup.string().nullable(),\n line: yup.string().nullable().when('address_id', (addressId, field) => addressId ? field : field.required('offer.error.line_required')),\n line_2: yup.string().nullable().nullable(),\n city: yup.string().nullable().when('address_id', (addressId, field) => addressId ? field : field.required('offer.error.city_required')),\n post_address_strid: yup.string().nullable().when('address_id', (addressId, field) => addressId ? field : field.required('offer.error.general')),\n post_address_house_key: yup.string().nullable().when('address_id', (addressId, field) => addressId ? field : field.required('offer.error.general')),\n zip_code: yup.string().nullable().when('address_id', (addressId, field) => addressId ? field : field.required('offer.error.zip_code_required')),\n country: yup.string().nullable().when('address_id', (addressId, field) => addressId ? field : field.required('offer.error.general')),\n update_delivery_addresses_for: yup.array().of(yup.number()).nullable(),\n valid_form: yup.string().nullable(),\n})\n\nexport default addressSchema","import * as yup from 'yup'\nimport { ibanValidation } from '@animalia/actions'\n\nlet bankDetailsSchema = yup.object().shape({\n iban: yup.string()\n .test('checkIban', 'offer.error.wrong_iban', ibanValidation)\n .required('offer.error.iban_required'),\n bank_id: yup.string().nullable(),\n bank_name: yup.string().nullable(),\n bank_zip_code: yup.string().nullable(),\n bank_city: yup.string().nullable()\n})\n\nexport default bankDetailsSchema","import * as yup from 'yup';\n\nexport default yup.object().shape({\n species: yup\n .string()\n .required('offer.error.pet_species_required')\n .matches(/(cat|dog)/),\n gender: yup\n .string()\n .required('offer.error.pet_gender_required')\n .matches(/(male|female)/),\n name: yup\n .string()\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .test('len', 'offer.error.more_char', val => val?.length >= 2)\n .required(),\n birthdate: yup.date().required('offer.error.pet_birthdate_required'),\n animal_type: yup\n .string()\n .matches(/(breed|bastard|unknown)/)\n .required('offer.error.pet_is_purebred_required'),\n animal_id: yup.string().when(['animal_type', 'other_race'], {\n is: (animal_type, other_race) => animal_type !== 'unknown' && !other_race,\n then: yup.string().required('offer.error.pet_animal_id_required'),\n }),\n animal_id_2: yup.string().when(['animal_type', 'other_race_2'], {\n is: (animal_type, other_race_2) =>\n animal_type == 'bastard' && !other_race_2,\n then: yup.string().required('offer.error.pet_animal_id_required'),\n }),\n other_race: yup\n .string()\n .transform(value => (!value ? null : value))\n .nullable(true)\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(\n /^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/,\n 'offer.error.only_one_uppercase'\n ),\n other_race_2: yup\n .string()\n .transform(value => (!value ? null : value))\n .nullable(true)\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(\n /^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/,\n 'offer.error.only_one_uppercase'\n ),\n weight: yup\n .number()\n .transform(value => (!value ? null : value))\n .nullable(true),\n // .when(['animal_type', 'other_race'], {\n // is: (animal_type, other_race) => animal_type !== 'breed' || !!other_race,\n // then: yup\n // .number()\n // .required('offer.error.pet_weight_required')\n // .typeError('offer.error.pet_weight_number_required'),\n // }),\n activity: yup\n .string()\n .oneOf(['passive', 'normal', 'active'])\n .required('offer.error.general'),\n sterilized: yup.boolean().required('offer.error.general'),\n});\n","import * as yup from 'yup';\n\nexport default yup.object().shape({\n species: yup\n .string()\n .required('offer.error.pet_species_required')\n .matches(/(cat|dog)/),\n gender: yup\n .string()\n .required('offer.error.pet_gender_required')\n .matches(/(male|female)/),\n name: yup\n .string()\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(/^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/, 'offer.error.only_one_uppercase')\n .test('len', 'offer.error.more_char', val => val?.length >= 2)\n .required(),\n birthdate: yup.date().required('offer.error.pet_birthdate_required'),\n animal_type: yup\n .string()\n .matches(/(breed|bastard|unknown)/)\n .required('offer.error.pet_is_purebred_required'),\n animal_id: yup.string().when(['animal_type', 'other_race'], {\n is: (animal_type, other_race) => animal_type !== 'unknown' && !other_race,\n then: yup.string().required('offer.error.pet_animal_id_required'),\n }),\n animal_id_2: yup.string().when(['animal_type', 'other_race_2'], {\n is: (animal_type, other_race_2) =>\n animal_type == 'bastard' && !other_race_2,\n then: yup.string().required('offer.error.pet_animal_id_required'),\n }),\n other_race: yup\n .string()\n .transform(value => (!value ? null : value))\n .nullable(true)\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(\n /^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/,\n 'offer.error.only_one_uppercase'\n ),\n other_race_2: yup\n .string()\n .transform(value => (!value ? null : value))\n .nullable(true)\n .matches(/^[A-Z]/, 'offer.error.uppercase')\n .matches(\n /^(?:[^A-Z]*[A-Z]){0,1}[^A-Z]*$/,\n 'offer.error.only_one_uppercase'\n ),\n weight: yup\n .number()\n .transform(value => (!value ? null : value))\n .nullable(true)\n .when(['animal_type', 'other_race'], {\n is: (animal_type, other_race) => animal_type !== 'breed' || !!other_race,\n then: yup\n .number()\n .required('offer.error.pet_weight_required')\n .typeError('offer.error.pet_weight_number_required'),\n }),\n activity: yup\n .string()\n .oneOf(['passive', 'normal', 'active'])\n .required('offer.error.general'),\n sterilized: yup.boolean().required('offer.error.general'),\n options: yup\n .string()\n .matches(/(none|grain-free|sensitive)/)\n .required('offer.error.general'),\n product: yup\n .number('offer.error.general')\n .required('offer.error.general')\n .nullable(),\n percentageQuantity: yup\n .number()\n .oneOf([80, 90, 100, 110, 120])\n .required('offer.error.general'),\n firstDeliveryDate: yup.object().required(),\n acceptcgu: yup.boolean().oneOf([true]).required(),\n});\n","import * as yup from 'yup'\n\nlet personalDataSchema = yup.object().shape({\n name: yup.string().required('offer.error.general'),\n breeding_type: yup.string().required('offer.error.general'),\n breeds: yup.array().of(yup.string()).required('offer.error.general'),\n zip_code: yup.string().required('offer.error.general'),\n city: yup.string().required('offer.error.general'),\n street: yup.string().required('offer.error.general'),\n street_number: yup.string().required('offer.error.general'),\n country: yup.string().required('offer.error.general'),\n email: yup.string().required('offer.error.general'),\n post_address_house_key: yup.number().required('offer.error.general'),\n post_address_strid: yup.number().required('offer.error.general'),\n phone: yup.string().required('offer.error.general'),\n message: yup.string().required('offer.error.general')\n})\n\nexport default personalDataSchema","import { setActiveStep, setInsuranceValues, selectClassicPrice } from './calculatorContext'\nimport { insuranceValues } from '@animalia/assets'\nimport { createOffer } from '@animalia/services'\nimport { matchKey } from './utils'\n\n// calculator view \nexport const hasCodeAgent = form => !!form.agent_code\n\n// navigation\n\n// if first step is active, return boolean\nexport const isFirst = activeStep => {\n return activeStep === 'widget-step-1'\n}\n\nexport const isFormSend = activeStep => {\n return activeStep === 'offer-sent'\n}\n\n// go to previous step \nexport const prevStep = (dispatch, steps, activeStep) => {\n if (isFirst(activeStep)) return false\n const activeStepIndex = steps.findIndex(item => item.ref === activeStep)\n const prevStepIndex = activeStepIndex - 1\n const prevStepRef = steps[prevStepIndex].ref\n setActiveStep(dispatch, prevStepRef) \n}\n\n// check form, and go to insurance step \nexport const insuranceStep = async (dispatch, form) => {\n // calculatorSchema\n setActiveStep(dispatch, 'widget-step-2')\n}\n\nexport const getInsuranceValues = async (dispatch, form) => {\n const filteredInsuranceValues = \n insuranceValues\n .filter(matchKey(form, 'pet_species'))\n .filter(matchKey(form, 'pet_age_category'))\n setInsuranceValues(dispatch, filteredInsuranceValues)\n}\n\n// check form, and go to client step \nexport const clientStep = async (dispatch, form) => {\n setActiveStep(dispatch, 'widget-step-3-guest')\n /* next slide when useEffect(() => {}, [selectedInsuranceValues]) catch changes */\n}\n\nexport const raceStep = async (dispatch, form) => {\n setActiveStep(dispatch, 'widget-step-1-2')\n}\n\n// on form submit \nexport const submitForm = async ({\n dispatch, \n data, \n closeModalAndGoTo, \n petId, \n goToOfferSent, \n language, \n pet, \n user, \n setIsLoading,\n setOfferQuid,\n step\n}) => {\n\n const quid = await createOffer({\n form: data,\n petId: petId, \n language: language, \n pet: pet, \n user: user, \n newStep: step\n })\n \n setIsLoading(false)\n\n if (quid) {\n if (setOfferQuid) {\n setOfferQuid(quid)\n }\n\n if (closeModalAndGoTo) {\n // if user conclude insurance directly form myaccount\n closeModalAndGoTo(quid, petId)\n } else if (data?.value?.step === 'widget-step-2' && !goToOfferSent) {\n // if user conclude insurance\n if ( window.location !== window.parent.location ) {\n // The page is in an iFrames\n window.parent.location.href = `${process.env.REACT_APP_MY_ACCOUNT_URL}/public/redirect/${quid}?lang=${language}`\n } \n else { \n // The page is not in an iFrame\n window.location.href = `${process.env.REACT_APP_MY_ACCOUNT_URL}/public/redirect/${quid}?lang=${language}`\n }\n } else {\n // if user want to get offer by mail \n setActiveStep(dispatch, 'offer-sent')\n }\n }\n\n}\n\nexport const onDeductibleChange = (dispatch, form) => event => {\n const value = parseInt(event.target.value)\n const isDeductibleNot500 = value !== 50000\n const isBasicOffer = form.insurance_type === 'compact'\n\n // to avoid the disabled plan to be selected \n if (isDeductibleNot500 && isBasicOffer) {\n selectClassicPrice(dispatch, value)\n }\n}\n\nexport const getAgeCategoryLabel = key => {\n switch (key) {\n case '2-':\n return 'calculator.yearsRange.u2'\n case '3-4':\n return 'calculator.yearsRange.u4'\n case '5-6':\n return 'calculator.yearsRange.u6'\n case '7-8':\n return 'calculator.yearsRange.u8'\n case '9-10':\n return 'calculator.yearsRange.u10'\n case '11-12':\n return 'calculator.yearsRange.u12'\n case '13+':\n return 'calculator.yearsRange.o13'\n default:\n break;\n }\n}","import { axios } from '@animalia/instances'\nimport * as yup from 'yup'\nimport moment from 'moment'\n\nlet newCertificateSchema = yup.object().shape({\n breed_id: yup.string().required('offer.error.general'),\n owner_email: yup.string().required('offer.error.general'),\n owner_birthdate: yup.date().required('offer.error.general'),\n owner_title: yup.string().oneOf(['mr', 'mrs']).required('offer.error.general'),\n owner_first_name: yup.string().required('offer.error.general'),\n owner_last_name: yup.string().required('offer.error.general'),\n owner_street: yup.string().required('offer.error.general'),\n owner_street_number: yup.string().required('offer.error.general'),\n owner_zip_code: yup.string().required('offer.error.general'),\n owner_city: yup.string().required('offer.error.general'),\n owner_country: yup.string().required('offer.error.general'),\n owner_post_address_strid: yup.string().required('offer.error.general'),\n owner_post_address_house_key: yup.string().required('offer.error.general'),\n pet_gender: yup.string().oneOf(['male', 'female']).required('offer.error.general'),\n pet_species: yup.string().oneOf(['dog', 'cat']).required('offer.error.general'),\n pet_name: yup.string()\n .test('checkPetNameUnique', 'breeder.certificates.petNameAlreadyExist', async value => {\n const certificates = await axios.get('/breeders/certificates')\n return !certificates?.data?.certificates?.find(certificate => certificate.pet_name === value)\n })\n .required('offer.error.general'),\n pet_birthdate: yup.date()\n .min(\n // min substract 6 months\n moment().subtract(6, 'months').toDate(),\n 'breeder.certificates.petBirthdateMin6Months'\n )\n .required('offer.error.general'),\n pet_exit_date: yup.date()\n .when('pet_birthdate', (pet_birthdate, schema) => {\n return schema\n .min(\n moment(pet_birthdate).add(56, 'days').toDate(),\n 'breeder.certificates.petExitDateMax56DaysBirthdate'\n )\n .max(\n moment(pet_birthdate).add(6, 'months').toDate(),\n 'breeder.certificates.petExitDateMax180DaysBirthdate'\n )\n })\n .required('offer.error.general'),\n locale: yup.string()\n .oneOf(['de', 'fr', 'it'])\n .required('offer.error.general'),\n})\n\nexport default newCertificateSchema\n","import moment from 'moment';\n\nconst gaData = [\n {\n name: 'Insurance conclusion form',\n slug: 'offer-screen',\n steps: [\n {\n id: '1.b',\n slug: 'type',\n name: 'Pet type',\n },\n {\n id: '2.b',\n slug: 'portrait',\n name: 'Pet portrait',\n },\n {\n id: '3.b',\n slug: 'races',\n name: 'Pet race',\n },\n {\n id: '4.b',\n slug: 'insurance-type',\n name: 'Insurance selection',\n },\n {\n id: '5.b',\n slug: 'payment-type',\n name: 'Payment type',\n },\n {\n id: '6.b',\n slug: 'contact-details',\n name: 'Contact details',\n },\n {\n id: '7.b',\n slug: 'contract-step-summary',\n name: 'Contract summary',\n },\n {\n id: '8.b',\n slug: 'offer-concluded',\n name: 'Insurance concluded',\n },\n ],\n },\n {\n name: 'Abo Gourmand conclusion form from myaccount',\n slug: 'ag-conclusion-myaccount',\n steps: [\n {\n id: '1.c.2',\n slug: 'food-type',\n name: 'Food type',\n },\n {\n id: '2.c.2',\n slug: 'product',\n name: 'Product choice',\n },\n {\n id: '3.c.2',\n slug: 'quantity',\n name: 'Quantity',\n },\n {\n id: '4.c.2',\n slug: 'summary',\n name: 'Summary',\n },\n {\n id: '5.c.2',\n slug: 'address',\n name: 'Address',\n },\n {\n id: '6.c.2',\n slug: 'cards',\n name: 'Payment Type',\n },\n {\n id: '7.c.2',\n slug: 'thankyou',\n name: 'Food Abo concluded',\n },\n ],\n },\n {\n name: 'Abo Gourmand connexion form 1',\n slug: 'ag-connexion-1',\n steps: [\n {\n id: '1.g',\n slug: 'login',\n name: 'Customer account connexion',\n },\n ],\n },\n {\n name: 'Abo Gourmand connexion 2',\n slug: 'ag-connexion-2',\n steps: [\n {\n id: '1.g.2',\n slug: 'signup',\n name: 'Customer account creation',\n },\n {\n id: '2.g.2',\n slug: 'personal',\n name: 'Customer account personal data',\n },\n {\n id: '3.g.2',\n slug: 'confirmation',\n name: 'Account control code',\n },\n ],\n },\n {\n name: 'Accident form',\n slug: 'accident',\n steps: [\n {\n id: '1.e.2',\n slug: 'animal-select',\n name: 'Selection animal',\n },\n {\n id: '1.f',\n slug: 'type',\n name: 'Disaster type',\n },\n {\n id: '2.f',\n slug: 'disaster_title',\n name: 'Disaster title',\n },\n {\n id: '3.f',\n slug: 'accident_diagnosis',\n name: 'Accident diagnosis',\n },\n {\n id: '4.f',\n slug: 'accident_treatment',\n name: 'Accident treatment',\n },\n {\n id: '5.f',\n slug: 'accident_date',\n name: 'Accident date',\n },\n {\n id: '6.f',\n slug: 'how_accident_happened',\n name: 'Accident story',\n },\n {\n id: '7.f',\n slug: 'any_third_party',\n name: 'Accident third party',\n },\n {\n id: '1.f.2',\n slug: 'who_is_the_third_party',\n name: 'Personal data third party',\n },\n {\n id: '1.f.4',\n slug: 'comments_on_disaster',\n name: 'Disaster comments',\n },\n {\n id: '1.f.5',\n slug: 'summary',\n name: 'Disaster summary',\n },\n {\n id: '1.g',\n slug: 'intro',\n name: 'Sinister type',\n formName: 'Add Invoice new sinister',\n },\n {\n id: '13.e.2',\n slug: 'documents',\n name: 'Pet folder',\n },\n {\n id: '1.g.2',\n name: 'Existing disaster',\n slug: 'existing_disaster',\n formName: 'Add invoice existing sinister from myaccount',\n },\n ],\n },\n {\n name: 'Illness form',\n slug: 'illness',\n steps: [\n {\n id: '1.e.2',\n slug: 'animal-select',\n name: 'Selection animal',\n },\n {\n id: '2.e.2',\n slug: 'type',\n name: 'Disaster type',\n },\n {\n id: '3.e.2',\n slug: 'disaster_title',\n name: 'Disaster title',\n },\n {\n id: '4.e.2',\n slug: 'health_diagnosis',\n name: 'Health diagnosis',\n },\n {\n id: '5.e.2',\n slug: 'health_treatment',\n name: 'Health treatment',\n },\n {\n id: '6.e.2',\n slug: 'comments_on_disaster',\n name: 'Illness form comments',\n },\n {\n id: '7.e.2',\n slug: 'summary',\n name: 'Illness form summary',\n },\n {\n id: '8.e.2',\n slug: 'intro',\n name: 'Selection action',\n },\n {\n id: '9.e.2',\n slug: 'documents',\n name: 'Pet folder',\n },\n ],\n },\n {\n name: 'Add Invoice new sinister',\n slug: 'add-invoice-new-sinister',\n steps: [\n {\n id: '1.e.2',\n name: 'Selection animal',\n slug: 'animal-select',\n },\n {\n id: '2.e.2',\n name: 'Sinister type',\n slug: 'intro',\n },\n {\n id: '3.e.2',\n name: 'Disaster type',\n slug: 'disaster_title',\n },\n ],\n },\n {\n name: 'End add invoice',\n slug: 'end-add-invoice',\n steps: [\n {\n id: '2.g.5',\n name: 'Invoice detail',\n slug: 'details',\n },\n {\n id: '1.g.7',\n name: 'Invoice year',\n slug: 'year',\n },\n {\n id: '2.g.7',\n name: 'Invoice summary',\n slug: 'summary',\n },\n {\n id: '3.g.7',\n name: 'Invoice sending information',\n slug: 'confirmation',\n },\n ],\n },\n {\n name: 'Add invoice existing sinister',\n slug: 'add-invoice-existing-sinister',\n steps: [\n {\n id: '1.e.2',\n name: 'Selection animal',\n slug: 'animal-select',\n },\n {\n id: '2.e.2',\n name: 'Sinister type',\n slug: 'intro',\n },\n {\n id: '3.e.2',\n name: 'Exisiting disaster',\n slug: 'existing_disaster',\n },\n {\n id: '4.e.2',\n name: 'Existing sinister form summary',\n slug: 'summary',\n },\n {\n id: '5.e.2',\n name: 'Selection action',\n slug: 'intro',\n },\n ],\n },\n {\n name: 'Add existing sinister',\n slug: 'add-existing-sinister',\n steps: [\n {\n id: '1.e.2',\n name: 'Selection animal',\n slug: 'animal-select',\n },\n {\n id: '2.e.2',\n name: 'Sinister type',\n slug: 'intro',\n },\n {\n id: '3.e.2',\n name: 'Existing disaster',\n slug: 'existing_disaster',\n },\n {\n id: '4.e.2',\n name: 'Exisiting disaster title',\n slug: 'existing_disaster_title',\n },\n {\n id: '5.e.2',\n name: 'Add existing sinister',\n slug: 'intro',\n },\n ],\n },\n {\n name: 'Insurance Connexion form 1',\n slug: 'insurance-connexion-form-1',\n steps: [\n {\n id: '1.d',\n name: 'Animal select',\n slug: 'animal-select',\n },\n ],\n },\n {\n name: 'Insurance Connexion form 2',\n slug: 'insurance-connexion-form-2',\n steps: [\n {\n id: '1.d.2',\n name: 'Customer account available',\n slug: 'validate',\n },\n {\n id: '2.d.2',\n name: 'Customer account not available',\n slug: 'validate',\n },\n {\n id: '1.d',\n name: 'Animal select',\n slug: 'animal-select',\n },\n {\n id: '1.e.2',\n name: 'Customer account available',\n slug: 'already-account',\n },\n ],\n },\n {\n name: 'Insurance Connexion form 3',\n slug: 'insurance-connexion-form-3',\n steps: [\n {\n id: '1.e.3',\n name: 'Customer account connexion',\n slug: 'login',\n },\n ],\n },\n {\n name: 'Insurance Connexion form 4',\n slug: 'insurance-connexion-form-4',\n steps: [\n {\n id: '1.e.4',\n name: 'Customer account creation',\n slug: 'signup',\n },\n {\n id: '2.e.4',\n name: 'Customer account personal data',\n slug: 'personal',\n },\n {\n id: '3.e.4',\n name: 'Account control code',\n slug: 'confirmation',\n },\n ],\n },\n {\n name: 'Request offer',\n slug: 'request-offer',\n steps: [\n {\n id: '1.a',\n name: 'Pet info',\n slug: 'widget-step-1',\n },\n {\n id: '2.a',\n name: 'Insurance type',\n slug: 'widget-step-2',\n },\n {\n id: '3.a',\n name: 'Personal info',\n slug: 'widget-step-3',\n },\n {\n id: '3.a',\n name: 'Personal info',\n slug: 'widget-step-3-guest',\n },\n {\n id: '4.a',\n name: 'Request offer confirmation',\n slug: 'offer-sent',\n },\n ],\n },\n // ready items\n {\n name: 'Insurance Request',\n slug: 'start-widget',\n steps: [\n {\n id: 1,\n name: 'animal-step',\n slug: 'widget-step-1',\n },\n {\n id: 2,\n name: 'insurance-step',\n slug: 'widget-step-2',\n },\n {\n id: 3,\n name: 'client-step',\n slug: 'widget-step-3-guest',\n },\n {\n id: 4,\n name: 'offer-sent',\n slug: 'offer-sent',\n },\n ],\n },\n {\n name: 'Start Widget from my account',\n slug: 'start-widget-my-account',\n steps: [\n {\n id: '1.a.2',\n name: 'Pet info',\n slug: 'widget-step-1',\n },\n {\n id: '2.a.2',\n name: 'Insurance type',\n slug: 'widget-step-2',\n },\n {\n id: '1.b.2',\n name: 'Insurance type',\n formName: 'Request insurance offer from MyAccount',\n slug: 'offer-sent',\n },\n ],\n },\n {\n name: 'Insurance indirect conclusion',\n slug: 'insurance-indirect-conclusion',\n steps: [\n {\n id: '1.e',\n name: 'Animal-select',\n slug: 'animal-select',\n },\n {\n id: '2.c',\n name: 'Pet type',\n slug: 'type',\n },\n {\n id: '3.c',\n name: 'Pet portrait',\n slug: 'portrait',\n },\n {\n id: '4.c',\n name: 'Pet race',\n slug: 'races',\n },\n {\n id: '5.c',\n name: 'Insurance selection',\n slug: 'insurance-type',\n },\n {\n id: '6.c',\n name: 'Payment type',\n slug: 'payment-type',\n },\n {\n id: '7.c',\n name: 'Contact details',\n slug: 'contact-details',\n },\n {\n id: '8.c',\n name: 'Contract summary',\n slug: 'contract-step-summary',\n },\n {\n id: '9.c',\n name: 'Insurance concluded',\n slug: 'offer-concluded',\n },\n ],\n },\n {\n name: 'Insurance Subscription',\n slug: 'insurance-subscription',\n steps: [\n {\n id: 1,\n name: 'animal-steps-type',\n slug: 'type',\n },\n {\n id: 2,\n name: 'animal-steps-portrait',\n slug: 'portrait',\n },\n {\n id: 3,\n name: 'animal-steps-races',\n slug: 'races',\n },\n {\n id: 4,\n name: 'insurance-steps-type',\n slug: 'insurance-type',\n },\n {\n id: 5,\n name: 'insurance-steps-payment-type',\n slug: 'payment-type',\n },\n {\n id: 6,\n name: 'insurance-steps-contact-details',\n slug: 'contact-details',\n },\n {\n id: 7,\n name: 'insurance-steps-contract-step-summary',\n slug: 'contract-step-summary',\n },\n {\n id: 8,\n name: 'offer-concluded',\n slug: 'offer-concluded',\n },\n ],\n },\n {\n name: 'Insurance indirect conclusion myaccount',\n slug: 'insurance-indirect-conclusion-myaccount',\n steps: [\n {\n id: '1.c',\n name: 'Offer',\n formName: 'Insurance indirect conclusion',\n slug: 'public-offer',\n },\n {\n id: '2.c',\n name: 'Pet type',\n slug: 'type',\n },\n {\n id: '3.c',\n name: 'Pet portrait',\n slug: 'portrait',\n },\n {\n id: '4.c',\n name: 'Pet race',\n slug: 'races',\n },\n {\n id: '5.c',\n name: 'Insurance selection',\n slug: 'insurance-type',\n },\n {\n id: '6.c',\n name: 'Payment type',\n slug: 'payment-type',\n },\n {\n id: '7.c',\n name: 'Contact details',\n slug: 'contact-details',\n },\n {\n id: '8.c',\n name: 'Contract summary',\n slug: 'contract-step-summary',\n },\n {\n id: '9.c',\n name: 'Insurance concluded',\n slug: 'offer-concluded',\n },\n ],\n },\n {\n name: 'Abo Gourmand conclusion',\n slug: 'abo-gourmand-conclusion',\n steps: [\n {\n id: '1.f',\n name: 'Pet type',\n slug: 'type',\n },\n {\n id: '2.f',\n name: 'Pet portrait',\n slug: 'portrait',\n },\n {\n id: '3.f',\n name: 'Pet race',\n slug: 'races',\n },\n {\n id: '4.f',\n name: 'Pet activity',\n slug: 'activity',\n },\n {\n id: '5.f',\n name: 'Pet sterilisation',\n slug: 'sterilized',\n },\n {\n id: '6.f',\n name: 'Food type',\n slug: 'food-type',\n },\n {\n id: '7.f',\n name: 'Product choice',\n slug: 'product',\n },\n {\n id: '8.f',\n name: 'Quantity',\n slug: 'quantity',\n },\n {\n id: '9.f',\n name: 'Summary',\n slug: 'summary',\n },\n {\n id: '10.f',\n name: 'Address',\n slug: 'address',\n },\n {\n id: '11.f',\n name: 'Payment type',\n slug: 'cards',\n },\n {\n id: '12.f',\n name: 'Abo gourmand conclusion',\n slug: 'thankyou',\n },\n ],\n },\n {\n name: 'Abo Gourmand conclusion myaccount',\n slug: 'abo-gourmand-conclusion-myaccount',\n steps: [\n {\n id: '1.f.2',\n name: 'Food type',\n slug: 'food-type',\n },\n {\n id: '2.f.2',\n name: 'Product choice',\n slug: 'product',\n },\n {\n id: '3.f.2',\n name: 'Quantity',\n slug: 'quantity',\n },\n {\n id: '4.f.2',\n name: 'Summary',\n slug: 'summary',\n },\n {\n id: '5.f.2',\n name: 'Address',\n slug: 'address',\n },\n {\n id: '6.f.2',\n name: 'Payment type',\n slug: 'cards',\n },\n {\n id: '7.f.2',\n name: 'Abo gourmand conclusion',\n slug: 'thankyou',\n },\n ],\n },\n {\n name: 'Abo Gourmand connexion 1',\n slug: 'abo-gourmand-connexion-1',\n steps: [\n {\n id: '1.g',\n name: 'Customer account connexion',\n slug: 'login',\n },\n ],\n },\n {\n name: 'Abo Gourmand connexion 2',\n slug: 'abo-gourmand-connexion-2',\n steps: [\n {\n id: '1.g.2',\n name: 'Customer account creation',\n slug: 'signup',\n },\n {\n id: '2.g.2',\n name: 'Customer account personal data',\n slug: 'personal',\n },\n {\n id: '3.g.2',\n name: 'Account control code',\n slug: 'confirmation',\n },\n ],\n },\n {\n name: 'Account creation',\n slug: 'account-creation',\n steps: [\n {\n id: '1.h',\n name: 'Customer account creation',\n slug: 'signup',\n },\n {\n id: '2.h',\n name: 'Customer account personal data',\n slug: 'personal',\n },\n {\n id: '3.h',\n name: 'Account control code',\n slug: 'confirmation',\n },\n {\n id: '4.h',\n name: 'Account created',\n slug: 'account-created',\n },\n ],\n },\n {\n name: 'Add a pet',\n slug: 'add-pet',\n steps: [\n {\n id: '1.h.2',\n name: 'Pet type',\n slug: 'type',\n },\n {\n id: '2.h.2',\n name: 'Pet portrait',\n slug: 'portrait',\n },\n {\n id: '3.h.2',\n name: 'Pet breed',\n slug: 'races',\n },\n {\n id: '4.h.2',\n name: 'Pet activity',\n slug: 'activity',\n },\n {\n id: '5.h.2',\n name: 'Pet sterilisation',\n slug: 'sterilized',\n },\n {\n id: '6.h.2',\n name: 'Pet summary',\n slug: 'summary',\n },\n ],\n },\n {\n name: 'Edit a pet',\n slug: 'edit-pet',\n steps: [\n {\n id: '1.h.3',\n name: 'Pet type',\n slug: 'type',\n },\n {\n id: '2.h.3',\n name: 'Pet portrait',\n slug: 'portrait',\n },\n {\n id: '3.h.3',\n name: 'Pet breed',\n slug: 'races',\n },\n {\n id: '4.h.3',\n name: 'Pet activity',\n slug: 'activity',\n },\n {\n id: '5.h.3',\n name: 'Pet sterilization',\n slug: 'sterilized',\n },\n {\n id: '6.h.3',\n name: 'Pet summary',\n slug: 'summary',\n },\n ],\n },\n {\n name: 'Add medical file',\n slug: 'add-medical-file',\n steps: [\n {\n id: '1.g.3',\n name: 'Exisiting disaster title',\n slug: 'intro',\n formName: 'Add invoice existing sinister outside myaccount',\n },\n {\n id: '1.h.1',\n name: 'Add medical file',\n slug: 'add_files',\n },\n {\n id: '2.h.1',\n name: 'Add medical file title',\n slug: 'title',\n },\n {\n id: '3.h.1',\n name: 'Medical file summary',\n slug: 'summary',\n },\n ],\n },\n {\n name: 'Add new invoice',\n slug: 'add-new-invoice',\n steps: [\n {\n id: '1.g.4',\n name: 'Selection invoice type',\n slug: 'intro',\n formName: 'Add invoice vaccines/prevention',\n },\n {\n id: '1.g.5',\n name: 'Invoice add files',\n slug: 'add_files',\n },\n {\n id: '1.g.6',\n name: 'Invoice selection',\n slug: 'existing',\n },\n {\n id: '2.g.5',\n name: 'Invoice detail',\n slug: 'details',\n },\n {\n id: '1.g.7',\n name: 'Invoice year',\n slug: 'year',\n },\n {\n id: '2.g.7',\n name: 'Invoice summary',\n slug: 'summary',\n },\n {\n id: '3.g.7',\n name: 'Invoice sending confimation',\n formName: 'End add invoice',\n slug: 'confirmation',\n },\n ],\n },\n];\n\nexport const getGaData = (id, step, key = 'id') => {\n return gaData?.find(i => i.slug === id)?.steps?.find(i => i.slug === step)?.[\n key\n ];\n};\n\nexport const getGaDataId = (id, step) => {\n return gaData?.find(i => i.slug === id)?.steps?.find(i => i.slug === step)\n ?.id;\n};\n\nexport const getGaDataName = (id, step) => {\n return gaData?.find(i => i.slug === id)?.steps?.find(i => i.slug === step)\n ?.name;\n};\n\nexport const getGaDataFormName = (id, step) => {\n if (step) {\n const formName = gaData\n ?.find(i => i.slug === id)\n ?.steps?.find(i => i.slug === step)?.formName;\n\n if (formName) {\n return formName;\n }\n }\n\n return gaData?.find(i => i.slug === id)?.name;\n};\n\nexport const getGaDataPetAgeWidget = value => {\n switch (value) {\n case '2-':\n return '3 months to 2 years';\n case '3-4':\n return '3 years to 4 years';\n case '5-6':\n return '5 years to 6 years';\n case '7-8':\n return '7 years to 8 years';\n case '9-10':\n return '9 years to 10 years';\n case '11-12':\n return '11 years to 12 years';\n case '13+':\n return '13 years and more';\n default:\n return null;\n }\n};\n\nexport const getGaDataPetAge = birthdate => {\n const ages = [\n '3 months to 2 years',\n '3 years to 4 years',\n '5 years to 6 years',\n '7 years to 8 years',\n '9 years to 10 years',\n '11 years to 12 years',\n '13 years and more',\n ];\n // return the correct age range, depending on the birthdate. If the birthdate is not valid, return null\n const age = !!birthdate && moment().diff(moment(birthdate), 'years');\n if (age == 0 && typeof age == 'number') return ages[0];\n if (!age) return '';\n if (age < 3) return ages[0];\n if (age < 5) return ages[1];\n if (age < 7) return ages[2];\n if (age < 9) return ages[3];\n if (age < 11) return ages[4];\n if (age < 13) return ages[5];\n if (age >= 13) return ages[6];\n return '';\n};\n\nexport const getGaDataFranchise = value => {\n if (value == 250 || value == 500 || value == 1000) return value;\n return value / 100;\n};\n","import { convertPriceToCents, generateNamesObject, matchKey } from '..'\nimport { axios } from '@animalia/instances'\nimport { Pet } from '@animalia/models'\nimport { insuranceValues } from '@animalia/assets'\n\nconst calculateAge = (birthday, insuranceStart) => {\n let birth = birthday.getTime \n ? birthday \n : new Date(birthday)\n\n let birthYear = birth.getUTCFullYear()\n let insStart = insuranceStart &&\n insuranceStart?.getTime\n ? insuranceStart\n : new Date(insuranceStart)\n \n let insStartYear = insStart?.getUTCFullYear && insStart.getUTCFullYear()\n \n let age = (insStartYear ? insStartYear : new Date().getUTCFullYear()) - birthYear\n\n return age\n}\n\nexport const findAndSetAgeRange = (dispatch, data, insuranceStart) => {\n let yearsRange\n const age = calculateAge(data, insuranceStart)\n\n if (age <= 2) {\n yearsRange = '2-'\n } else if (age <= 4) {\n yearsRange = '3-4'\n } else if (age <= 6) {\n yearsRange = '5-6'\n } else if (age <= 8) {\n yearsRange = '7-8'\n } else if (age <= 10) {\n yearsRange = '9-10'\n } else if (age <= 12) {\n yearsRange = '11-12'\n } else {\n yearsRange = '13+'\n }\n\n if (dispatch) {\n dispatch({\n type: 'SET_YEARS_RANGE',\n data: yearsRange\n })\n } else {\n return yearsRange\n }\n}\n\nexport const setBankId = (dispatch, data) => {\n dispatch({\n type: 'SET_BANK_ID',\n data: data\n })\n}\n\nexport const setDate = (dispatch, name, value, form = 'form') => {\n dispatch({\n type: 'SET_FORM',\n form: form,\n data: {\n [name]: value\n }\n })\n}\n\nexport const setAddressee = (dispatch, prefix) => {\n dispatch({\n type: 'SET_ADDRESSEE',\n prefix: prefix\n })\n}\n\nexport const setAddress = (dispatch, prefix, data) => {\n if (!data?.id) {\n data.title = ''\n data.first_name = ''\n data.last_name = ''\n data.line = ''\n data.line_2 = ''\n data.zip_code = ''\n data.city = ''\n }\n\n dispatch({\n type: 'SET_ADDRESS',\n data: data,\n prefix: prefix\n })\n}\n\nexport const setAddressFromAPI = (dispatch, prefix, data, form) => {\n const names = generateNamesObject([\n 'address_id',\n 'post_address_id',\n 'post_address_strid',\n 'post_address_house_key',\n 'line',\n 'line_2',\n 'zip_code',\n 'city',\n 'country'\n ], prefix)\n\n let obj = {\n [names.address_id]: data.id || null,\n [names.post_address_strid]: data.STRID?.toString(),\n [names.post_address_house_key]: data.HouseKey?.toString(),\n [names.line]: data.StreetName || data.HouseNo\n ? `${data.StreetName || ''} ${data.HouseNo || ''}${data.HouseNoAddition || ''}`\n : '',\n [names.zip_code]: data.ZipCode || '',\n [names.city]: data.TownName || '',\n [names.country]: data.CountryCode || '',\n }\n\n dispatch({\n type: 'SET_ADDRESS_FROM_API',\n form: form,\n data: obj\n })\n}\n\nexport const setAddressFromRegistredAddress = (dispatch, prefix, data, form) => {\n const names = generateNamesObject([\n 'address_id',\n 'post_address_strid',\n 'post_address_house_key',\n 'line',\n 'line_2',\n 'zip_code',\n 'city',\n 'country'\n ], prefix)\n\n let obj = {\n [names.address_id]: data.id || null,\n [names.post_address_strid]: data.post_address_strid,\n [names.post_address_house_key]: data.post_address_house_key,\n [names.line]: `${data.line || ''}`,\n [names.line_2]: data.line_2 || '',\n [names.zip_code]: data.zip_code || '',\n [names.city]: data.city || '',\n [names.country]: data.country || '',\n }\n\n dispatch({\n type: 'SET_ADDRESS_FROM_API',\n form: form || 'form',\n data: obj\n })\n}\n\nexport const setUserId = (dispatch, prefix, data, form) => {\n const names = generateNamesObject(['title', 'first_name', 'last_name'], prefix)\n\n dispatch({\n type: 'SET_USER_ID',\n form: form,\n data: {\n [names.title]: data.title,\n [names.first_name]: data.first_name,\n [names.last_name]: data.last_name,\n }\n })\n} \n\nexport const prefillEditForm = (dispatch, data, form) => {\n dispatch({\n type: 'SET_FORM',\n data: data,\n form: form\n })\n}\n\nexport const prefillForm = (user, dispatch, data = {}, form, formValue) => { \n const birthdate = data?.birthdate && new Date(data.birthdate)\n const species = data.species || formValue?.pet_species\n const gender = data.gender || formValue?.pet_gender\n const animalType = data.animal_type || formValue?.pet_animal_type\n const petOtherRace = data?.other_race || formValue?.pet_other_race\n const petOtherRace2 = data?.other_race_2 || formValue?.pet_other_race_2\n const holderBirthdate = user?.attributes?.birthdate && new Date(user.attributes.birthdate)\n const phoneNumber = user?.attributes?.phone_number\n const email = user?.attributes?.email\n const isChipped = !!data.is_chipped\n const chipNumber = data.chip_number\n const weightKg = data.weight \n ? (parseInt(data.weight) / 1000) \n : null\n \n const animalId = petOtherRace\n ? 'other'\n : data?.animal_id || formValue?.pet_animal_id\n\n const animalId2 = petOtherRace2\n ? 'other'\n : data?.animal_id_2 || formValue?.pet_animal_id_2\n \n let dataObj = {\n prefill: true,\n pet_id: data.id,\n pet_species: species,\n pet_gender: gender,\n pet_name: data.name,\n pet_birthdate: birthdate,\n pet_animal_type: animalType,\n pet_animal_id: animalId,\n pet_animal_id_2: animalId2,\n pet_other_race: petOtherRace,\n pet_other_race_2: petOtherRace2,\n pet_weight: weightKg,\n pet_is_chipped: isChipped,\n pet_chip_number: chipNumber,\n holder_birthdate: holderBirthdate,\n holder_mobile_phone: phoneNumber,\n holder_email: email\n }\n\n Object.entries(dataObj).forEach(([key, value]) => {\n if (!value) {\n delete dataObj[key]\n }\n })\n\n dispatch({\n type: 'SET_FORM',\n form: form || 'form',\n data: dataObj\n })\n}\n\nexport const prefillFormFromOffer = (user, dispatch, data, petId) => {\n const holderBirthdate = user?.attributes?.birthdate && new Date(user.attributes.birthdate)\n const phoneNumber = user?.attributes?.phone_number\n \n let filteredData = data,\n rest = {\n holder_birthdate: filteredData.holder_birthdate && new Date(filteredData.holder_birthdate),\n holder_mobile_phone: user?.attributes?.phone_number,\n holder_email: user?.attributes?.email,\n agent_code: filteredData?.agent_code?.slice(0, 4),\n pet_birthdate: filteredData.pet_birthdate && new Date(filteredData.pet_birthdate),\n keeper_birthdate: filteredData.keeper_birthdate && new Date(filteredData.keeper_birthdate),\n insurance_enters_in_force_at: filteredData.insurance_enters_in_force_at && new Date(filteredData.insurance_enters_in_force_at)\n }\n\n Object.keys(filteredData).forEach(key => {\n if (!filteredData[key]) {\n delete filteredData[key]\n }\n })\n\n Object.keys(rest).forEach(key => {\n if (!rest[key]) {\n delete rest[key]\n }\n })\n\n const animalId = !!filteredData.pet_other_race\n ? 'other'\n : filteredData.pet_animal_id\n\n const animalId2 = !!filteredData.pet_other_race_2\n ? 'other'\n : filteredData.pet_animal_id_2\n\n dispatch({\n type: 'SET_FORM',\n form: 'form',\n data: {\n ...filteredData,\n ...rest,\n pet_id: parseInt(petId),\n pet_animal_id: animalId,\n pet_animal_id_2: animalId2,\n holder_birthdate: holderBirthdate,\n holder_mobile_phone: phoneNumber\n }\n })\n}\n\nexport const resetValue = (dispatch, data) => {\n dispatch({\n type: 'RESET_VALUE',\n data: data\n })\n}\n\nexport const setTypedSelect = (dispatch, key, data, objectKey) => {\n if (objectKey && !!data) {\n dispatch({\n type: 'SET_TYPED_SELECT',\n key: key,\n data: data,\n objectKey: objectKey\n })\n } else {\n dispatch({\n type: 'SET_TYPED_SELECT',\n key: key,\n data: data\n })\n }\n}\n\nexport const getErrors = async (form, validator, fields) => {\n if (!validator || !fields?.length) {\n return null\n }\n\n const errors = await Promise.all(\n fields.map(async field => {\n try {\n await validator.validateAt(field, form)\n } catch (error) {\n return error\n }\n })\n )\n\n return errors.filter(item => !!item)\n}\n\nexport const setIbanForm = (dispatch, prefixName, data, form) => {\n\n const names = generateNamesObject([\n 'bank_id',\n 'bank_name',\n 'bank_zip_code',\n 'bank_city',\n ], prefixName)\n\n const changes = {\n [names.bank_name]: data?.bank_long_name || null,\n [names.bank_id]: data?.id || null,\n [names.bank_zip_code]: data?.zip_code || null,\n [names.bank_city]: data?.place || null\n }\n\n dispatch({\n type: 'SET_FORM',\n form: form || 'form',\n data: changes\n })\n \n}\n\nexport const clearAddressFields = (dispatch, prefix) => {\n const names = generateNamesObject([\n 'line',\n 'line_2',\n 'city',\n 'zip_code',\n 'country'\n ], prefix)\n dispatch({\n type: 'SET_FORM',\n form: 'form',\n data: {\n [names.line]: '',\n [names.line_2]: '',\n [names.city]: '',\n [names.zip_code]: '',\n [names.country]: ''\n }\n })\n}\n\nexport const fetchOrderToPets = async (pets, callback) => {\n let callbackResponse\n\n if (Array.isArray(pets)) {\n callbackResponse = []\n\n for (let index = 0; index < pets.length; index++) {\n let pet = pets[index]\n const quoteStatus = await Pet(pet).quoteStatus(axios)\n pet.quoteConcluded = quoteStatus === 'concluded'\n \n callbackResponse.push(pet)\n }\n\n } else {\n let pet = pets\n const quoteStatus = await Pet(pet).quoteStatus(axios)\n pet.quoteConcluded = quoteStatus === 'concluded'\n \n callbackResponse = pet\n }\n\n callback(callbackResponse)\n}\n\nexport const updateSelectedOffers = async (formValue, dispatch, lang) => {\n let breeds = []\n\n if (!!formValue.pet_animal_id && !!formValue.pet_animal_id_2) {\n breeds = [formValue.pet_animal_id, formValue.pet_animal_id_2]\n } else if (!!formValue.pet_animal_id) {\n breeds = [formValue.pet_animal_id]\n }\n\n const data = {\n lang: lang?.substring(0, 2),\n holder_zip_code: formValue.holder_zip_code,\n holder_city: formValue.holder_city,\n pet_species: formValue.pet_species,\n pet_age_category: formValue.pet_age_category || formValue.pet_birthdate,\n pet_breeds: breeds,\n insurance_type: formValue.insurance_type,\n insurance_franchise: formValue.insurance_franchise,\n insurance_payment_frequency: formValue?.insurance_payment_frequency\n }\n\n const response = await axios.post(`${process.env.REACT_APP_API_ENDPOINT}/quotes/calculate-premiums`, data)\n if (response?.status !== 200) {\n return new Error('Error, could not fetch premiums')\n }\n\n const premiums = response.data.premiums\n\n if (premiums?.length && premiums.length == 1) {\n const offer = premiums[0]\n let data = {\n offer: offer,\n insurance_franchise: offer.insurance_franchise,\n insurance_type: offer.insurance_type,\n insurance_cost: offer.annual_premium.total_amount,\n insurance_month_cost: offer.monthly_premium.net_amount\n }\n\n if (\n (formValue.insurance_payment_frequency === 2 && offer.annual_premium.net_amount < 20000) || \n (formValue.insurance_payment_frequency === 4 && offer.annual_premium.net_amount < 40000)\n ) {\n data.insurance_payment_frequency = 1 \n }\n\n dispatch({\n type: 'SET_FORM',\n form: 'form',\n data: data\n })\n }\n\n // if (formValue.insurance_payment_frequency) {\n // const offerObj =\n // insuranceValues\n // .filter(matchKey(formValue, 'pet_species'))\n // .filter(matchKey(formValue, 'pet_age_category'))\n // .find(matchKey(formValue, 'insurance_franchise'))\n\n // const price = formValue?.insurance_type && offerObj?.[formValue.insurance_type]\n // const priceToCents = Math.round(convertPriceToCents(price) / 5) * 5\n \n // let data = {\n // insurance_month_cost: priceToCents\n // }\n\n // if (\n // (formValue.insurance_payment_frequency === 2 && priceToCents*12 < 20000) || \n // (formValue.insurance_payment_frequency === 4 && priceToCents*12 < 40000)\n // ) {\n // data.insurance_payment_frequency = 1 \n // }\n\n // dispatch({\n // type: 'SET_FORM',\n // form: 'form',\n // data: data\n // })\n\n // }\n}","import React from 'react'\nimport styles from './Caption.module.sass'\nimport classNames from 'classnames'\n\nconst Caption = ({ children, html, bold, align = 'left', faded, error }) => {\n\n const classes = [\n styles.container,\n bold && styles.bold,\n faded && styles.faded,\n error && styles.error\n ].filter(item => !!item)\n \n if (html) return (\n
\n ) \n\n return (\n
\n { children }\n
\n )\n}\n\nexport default Caption\n","import React from 'react';\nimport styled, {css} from 'styled-components';\n\nconst Input = styled.input`\n display: none;\n\n &:checked + label {\n color: #db9a2f;\n background-color: #fff9e5;\n\n .check {\n background-color: #db9a2f;\n\n &:before {\n content: '';\n display: block;\n border-right: 2px solid #fff;\n border-bottom: 2px solid #fff;\n transform: rotate(45deg) translate(2px, -2px);\n transform-origin: center;\n height: 8px;\n width: 4px;\n }\n }\n }\n`;\n\nconst Label = styled.label`\n color: #b2b6c1;\n border: 2px solid currentColor;\n border-radius: 2px;\n padding: 15px;\n font-weight: 500;\n font-size: 14px;\n display : ${props => (props.hasDescription ? 'grid' : 'block')};\n grid-template-columns: ${props =>\n props.iconSmall ? '80px 1fr' : '125px 1fr'};\n user-select:none;\n cursor:pointer;\n}\n`;\n\nconst Left = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n align-items: ${props => (props.iconSmall ? 'flex-start' : 'center')};\n\n svg {\n margin: ${props => (props.iconMargin ? '20px 0' : null)};\n }\n`;\n\nconst Right = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n border-left: 2px solid currentColor;\n padding-left: 15px;\n font-size: 12px;\n`;\n\nconst LabelWithCheck = styled.div`\n display: flex;\n flex-flow: row no-wrap;\n align-items: cented;\n line-height: 1;\n`;\n\nconst Check = styled.div`\n border: 2px solid currentColor;\n width: 12px;\n height: 12px;\n flex: 0 0 12px;\n margin-right: 5px;\n border-radius: 20px;\n`;\n\nexport default ({\n name,\n value,\n label,\n description,\n icon,\n iconMargin = true,\n iconSmall,\n onChange,\n checked,\n}) => {\n return (\n <>\n \n \n \n {icon}\n \n \n {label}\n \n \n {description && {description}}\n \n \n );\n};\n","import React from 'react';\n\nexport default () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n","import React from 'react';\n\nexport default () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n","import React from 'react';\n\nexport default ({color = 'currentColor'}) => {\n return (\n \n \n \n );\n};\n","import React from 'react';\nimport {theme} from '@animalia/components';\n\nexport default ({\n color = 'dark',\n accent = 'accent-1',\n width = 165,\n height = 30,\n}) => {\n const logocolor = theme.global.colors.background[color];\n const logoaccent = theme.global.colors[accent];\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React from 'react';\nimport {theme} from '@animalia/components';\n\nexport default ({color = 'currentColor'}) => {\n return (\n \n \n \n );\n};\n","export default __webpack_public_path__ + \"static/media/download-appstore-fr.39bbe856.svg\";","export default __webpack_public_path__ + \"static/media/download-appstore-de.d5d0e551.svg\";","export default __webpack_public_path__ + \"static/media/download-appstore-it.d71a027e.svg\";","export default __webpack_public_path__ + \"static/media/download-googleplay-fr.8402d4a5.png\";","export default __webpack_public_path__ + \"static/media/download-googleplay-de.a27f5ad7.png\";","export default __webpack_public_path__ + \"static/media/download-googleplay-it.0ddded8f.png\";","import React, {useState} from 'react';\nimport DatePicker from 'react-datepicker';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport { it, fr, de } from 'date-fns/locale'\nimport {useTranslation} from 'react-i18next';\nimport {Auth} from 'aws-amplify';\nimport {\n Anchor,\n Grid,\n Select,\n Form,\n FormField,\n TextInput,\n Text,\n Heading,\n Box,\n Button,\n} from 'grommet';\nimport PasswordField from './passwordField.js';\nimport styled from 'styled-components';\nimport getError from './error.js';\n\nconst PhoneInput = styled(TextInput)`\n border: 0;\n &:focus {\n box-shadow: none;\n }\n`;\n\nconst locales = {\n it,\n fr,\n de,\n};\n\nconst Login = ({onSubmit, defaultValues}) => {\n const [birthdate, setBirthdate] = useState();\n const [value, setValue] = React.useState({\n ...defaultValues,\n phone_prefix: {\n value: '+41',\n label: '+41',\n },\n });\n const {t, i18n} = useTranslation();\n const [error, setError] = useState();\n\n return (\n <>\n {t('auth.personnalInfo')}\n setValue(nextValue)}\n onSubmit={({value}) => {\n let formValue = {\n 'custom:title': value['custom:title'].value,\n family_name: value.family_name,\n given_name: value.given_name,\n phone_number:\n value.phone_prefix.value +\n value.phone_number.replace(/[^0-9+]/i, ''),\n locale: value.locale.value || '',\n birthdate: '',\n };\n\n if (typeof birthdate !== 'undefined') {\n birthdate.setHours(12, 0, 0);\n formValue.birthdate = birthdate.toISOString().slice(0, 10);\n }\n\n onSubmit(formValue);\n }}>\n \n \n \n \n \n \n \n \n \n \n {\n if (value.replace(/\\s+/g, '').length < 7) {\n return t('auth.checkFormatPhone');\n }\n\n if (/[^0-9]/.test(value.replace(/\\s+/g, ''))) {\n return t('auth.checkFormatPhone');\n }\n\n if (isNaN(parseInt(value))) {\n return t('auth.checkFormatPhone');\n }\n }}\n required>\n \n \n \n \n \n \n {\n if (date) {\n date.setHours(12, 0, 0);\n setBirthdate(date);\n }\n }}\n value={value.birthdate}\n dateFormatCalendar=\"MMMM\"\n showMonthDropdown\n showYearDropdown\n dropdownMode=\"select\"\n maxDate={new Date()}\n locale={locales[i18n.language]}\n scrollableYearDropdown\n dateFormat=\"dd.MM.yyyy\"\n className=\"datepicker\"\n />\n \n \n \n \n
\n ) : (\n \n 3 && { gridDouble: true })}\n options={franchises}\n children={WidgetTightRadioGroup}\n />\n \n )}\n \n {insuranceValues.length ? (\n <>\n \n <div style={{fontSize: '0.875rem', textAlign: 'center'}}>\n {' '}\n {labels.insurance}{' '}\n </div>\n \n \n \n \n \n \n \n ) : null}\n \n \n {!hideOfferScreens(moment) && (\n \n )}\n {\n nextStep();\n }}\n label={labels.send_offer_by_email}\n />\n \n \n \n );\n};\n\nexport default ClientStep;\n","import React from 'react'\n\nconst StepModel = ({ Component, reference, pet, user, formValue, error, dispatch, goToPrevStep, goToNextStep, goToFirstStep, closeModalAndGoTo, isLoading, setIsLoading, offerQuid }) => {\n \n if (formValue.step === reference) return (\n \n )\n\n return null\n}\n\nexport default StepModel\n","import React, { useContext } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { CalculatorContext } from '@animalia/contexts'\nimport { WidgetButton } from '@animalia/components'\nimport { isFirst, isFormSend, prevStep, insuranceStep, clientStep } from '@animalia/actions'\n\nconst StepperNavigation = ({ children, steps, pet }) => {\n const { t } = useTranslation()\n const { calculator: { form }, dispatch } = useContext(CalculatorContext)\n \n // navigation functions \n const goToPrevStep = () => prevStep(dispatch, steps, form.step)\n const goToInsuranceStep = () => insuranceStep(dispatch, form)\n const goToClientStep = () => clientStep(dispatch, form)\n\n // labels \n const labels = {\n goToInsuranceStep: t('calculator.navigation.goToInsuranceStep'),\n submitFromInsuranceStep: t('calculator.navigation.submitFromInsuranceStep'),\n sendOfferByEmail: t('calculator.navigation.sendOfferByEmail'),\n prev: t('calculator.navigation.prev'),\n next: t('calculator.navigation.next')\n }\n\n // components \n const NavigationButtons = () => {\n switch (form.step) {\n case 'widget-step-1':\n \n return (\n <>\n \n \n )\n\n case 'widget-step-2':\n return (\n <>\n \n {\n !pet &&\n \n }\n \n )\n case 'widget-step-3-guest':\n return (\n \n )\n default :\n return null\n }\n }\n\n return (\n
\n { children }\n
\n )\n}\n\nexport default StepperNavigation\n","import React, {useContext, useEffect, useRef, useState} from 'react';\nimport {Form} from 'grommet';\nimport {CalculatorContext} from '@animalia/contexts';\n\nimport {AnimalStep, RaceStep, ClientStep, InsuranceStep, OfferSent} from '../steps';\n\nimport StepModel from './StepModel';\nimport StepperNavigation from './StepperNavigation';\n\nimport {\n updateForm,\n submitForm,\n getInsuranceValues,\n prevStep,\n insuranceStep,\n clientStep,\n raceStep,\n getErrors,\n prefillCalculatorForm,\n setActiveStep,\n getGaDataFormName,\n getGaDataName,\n getGaDataId,\n getGaDataPetAge,\n getGaDataFranchise,\n getGaDataPetAgeWidget,\n} from '@animalia/actions';\nimport {calculatorSchema} from '@animalia/validators';\nimport {useHistory, useLocation} from 'react-router';\nimport {getOfferOptionsData} from '@animalia/components/actions/buttons';\nimport {useTranslation} from 'react-i18next';\n\nconst steps = [\n {\n ref: 'widget-step-1',\n Component: AnimalStep,\n fields: ['pet_species', 'pet_age_category'],\n },\n {\n ref: 'widget-step-1-2',\n Component: RaceStep,\n fields: [\n 'pet_breed',\n 'pet_animal_id',\n 'pet_animal_id_2',\n 'holder_zip_code',\n 'holder_city',\n ]\n },\n {\n ref: 'widget-step-2',\n Component: ClientStep,\n fields: ['insurance_franchise', 'insurance_type'],\n },\n {\n ref: 'widget-step-3-guest',\n Component: InsuranceStep,\n fields: [\n 'pet_name',\n 'holder_title',\n 'holder_first_name',\n 'holder_last_name',\n 'holder_email',\n 'holder_mobile_phone',\n 'holder_phone',\n ],\n },\n {\n ref: 'offer-sent',\n Component: OfferSent,\n },\n];\nconst Stepper = ({pet, closeModalAndGoTo, i18n, user, agentCode}) => {\n const history = useHistory();\n const location = useLocation();\n const agentCodeUrl = new URLSearchParams(window.location.search).get(\n 'codeAgent'\n );\n const {t} = useTranslation();\n const [offerQuid, setOfferQuid] = useState(null);\n const {\n calculator: {form, selectedInsuranceValues},\n dispatch,\n } = useContext(CalculatorContext);\n const formRef = useRef(form);\n const gaCheckedRef = useRef(false);\n const [isLoading, setIsLoading] = useState(false);\n\n const [error, setError] = useState(null);\n // handlers\n const onUpdateForm = data => updateForm(dispatch, data);\n const onSubmitForm = async data => {\n let fields;\n if (form.step === 'widget-step-2') {\n if (window.dataLayer) {\n window.dataLayer.push({\n event: 'click_insurance_req_subscribe_btn',\n });\n }\n\n fields = [\n ...steps\n .filter(item => item.ref.match(/widget-step-(1|2)/))\n .flatMap(item => item.fields),\n ];\n } else if (form.step === 'widget-step-3-guest') {\n fields = [\n ...steps\n .filter(item => item.ref.match(/widget-step-(1|2|3-guest)/))\n .flatMap(item => item.fields),\n ];\n }\n\n if (!fields) {\n return false;\n }\n\n const errors = await getErrors(form, calculatorSchema, fields);\n if (errors?.length) {\n for (const error of errors) {\n if (window.dataLayer) {\n window.dataLayer.push({\n event: 'generate_form_error',\n page_title: document.title,\n page_location: window.location.href,\n page_referrer: window.location.href,\n page_referrer:\n form.step == 'widget-step-1'\n ? document.referrer\n : window.location.href,\n page_language: i18n.language?.slice(0, 2),\n logged_in: !!user?.loggedin,\n // hostname_of_parent_window: window.opener?.location?.hostname,\n form_name: getGaDataFormName('start-widget'),\n form_error: `${error?.path}: ${t(error?.message)}`,\n step_id: getGaDataId('start-widget', form.step),\n step_name: getGaDataName('start-widget', form.step),\n type_of_pet: formRef.current?.pet_species,\n age_of_pet: !!pet\n ? getGaDataPetAge(pet?.birthdate)\n : getGaDataPetAgeWidget(formRef.current?.pet_birthdate),\n franchise: getGaDataFranchise(formRef.current?.insurance_franchise),\n first_prime: formRef.current?.insurance_cost\n ? formRef.current?.insurance_cost / 100\n : null,\n insurance_coverage: formRef.current?.insurance_type,\n disaster_type: '',\n agent_code: agentCodeUrl || '0000',\n });\n }\n }\n setError(errors);\n return false;\n } else {\n setError(null);\n }\n\n setIsLoading(true);\n\n submitForm({\n dispatch: dispatch,\n data: data,\n closeModalAndGoTo: closeModalAndGoTo,\n petId: pet?.id,\n goToOfferSent: null,\n language: i18n?.language?.substr(0, 2),\n pet: pet,\n user: user,\n setIsLoading: setIsLoading,\n setOfferQuid: setOfferQuid,\n });\n };\n\n const goToPrevStep = () => prevStep(dispatch, steps, form.step);\n const goToFirstStep = () => {\n if (pet?.id)\n history.push({\n pathname: '/',\n state: {\n from: window.location.pathname,\n },\n });\n else setActiveStep(dispatch, 'widget-step-1');\n };\n\n const goToNextStep = action => async () => {\n const {fields} = steps.find(item => item.ref === form.step);\n\n if (!fields) {\n return false;\n }\n\n const errors = await getErrors(form, calculatorSchema, fields);\n\n if (errors?.length) {\n for (const error of errors) {\n if (window.dataLayer) {\n window.dataLayer.push({\n event: 'generate_form_error',\n page_title: document.title,\n page_location: window.location.href,\n page_referrer: window.location.href,\n page_referrer:\n form.step == 'widget-step-1'\n ? document.referrer\n : window.location.href,\n page_language: i18n.language?.slice(0, 2),\n logged_in: !!user?.loggedin,\n // hostname_of_parent_window: window.opener?.location?.hostname,\n form_name: getGaDataFormName('start-widget'),\n form_error: `${error?.path}: ${t(error?.message)}`,\n step_id: getGaDataId('start-widget', form.step),\n step_name: getGaDataName('start-widget', form.step),\n type_of_pet: formRef.current?.pet_species,\n age_of_pet: getGaDataPetAgeWidget(formRef.current?.pet_birthdate),\n franchise: getGaDataFranchise(formRef.current?.insurance_franchise),\n first_prime: formRef.current?.insurance_cost\n ? formRef.current?.insurance_cost / 100\n : null,\n insurance_coverage: formRef.current?.insurance_type,\n disaster_type: '',\n agent_code: agentCodeUrl || '0000',\n });\n }\n }\n setError(errors);\n return false;\n } else {\n setError(null);\n }\n\n switch (action) {\n case 'calculate':\n insuranceStep(dispatch, form);\n break;\n\n case 'sendOfferByMail':\n clientStep(dispatch, form);\n break;\n case 'races':\n raceStep(dispatch, form);\n break;\n case 'sendOfferByMailMyAccount':\n submitForm({\n dispatch: dispatch,\n data: {value: form},\n closeModalAndGoTo: null,\n petId: pet?.id,\n goToOfferSent: true,\n language: i18n?.language,\n pet: pet,\n user: user,\n setIsLoading: setIsLoading,\n setOfferQuid: setOfferQuid,\n step: 'widget-step-3',\n });\n break;\n\n default:\n break;\n }\n\n // GA onClick event\n switch (action) {\n case 'calculate':\n if (window.datalayer) {\n window.dataLayer.push({\n event: 'click_insurance_req_calculate_btn',\n });\n }\n break;\n case 'sendOfferByMail':\n if (window.dataLayer) {\n window.dataLayer.push({\n event: 'click_insurance_req_email_btn',\n });\n }\n break;\n default:\n break;\n }\n };\n\n useEffect(() => {\n if (pet) {\n prefillCalculatorForm(dispatch, pet);\n } else if (agentCode) {\n dispatch({\n type: 'SET_FORM',\n data: {\n ...form,\n agent_code: agentCodeUrl || '0000',\n },\n });\n }\n }, []);\n\n useEffect(() => {\n formRef.current = form;\n if (error) {\n (async () => {\n const {fields} = steps.find(item => item.ref === form.step);\n const errors = await getErrors(form, calculatorSchema, fields);\n if (errors?.length) {\n setError(errors);\n return false;\n } else {\n setError(null);\n }\n })();\n }\n }, [form]);\n\n // use effects\n useEffect(() => {\n if (form.pet_species && form.pet_age_category) {\n getInsuranceValues(dispatch, form);\n }\n }, [form.pet_species, form.pet_age_category]);\n\n useEffect(() => {\n // if (form.insurance_type) {\n // const choices = getOfferOptionsData(form, selectedInsuranceValues, t);\n // const selected = choices.find(item => item.value === form.insurance_type);\n // const annualCost = parseFloat(selected.price_per_month) * 100 * 12;\n // const annualCostFederalTimber = annualCost * 1.05;\n\n // dispatch({\n // type: 'SET_FORM',\n // data: {\n // ...form,\n // insurance_cost: annualCostFederalTimber,\n // },\n // });\n // }\n }, [form.insurance_type]);\n\n useEffect(() => {\n //if GTM not loaded than return (for widget)\n if (!window.dataLayer) return;\n\n if (gaCheckedRef.current) {\n window.dataLayer.push({\n event: 'page_view',\n page_title: document.title,\n page_location: window.location.href,\n page_referrer: window.location.href,\n page_language: i18n.language?.slice(0, 2),\n form_name: getGaDataFormName('start-widget', form.step),\n step_id: getGaDataId('start-widget', form.step),\n step_name: getGaDataName('start-widget', form.step),\n });\n } else {\n gaCheckedRef.current = true;\n }\n\n window.dataLayer.push({\n event: 'enter_step',\n page_title: document.title,\n page_location: window.location.href,\n page_referrer:\n form.step == 'widget-step-1' ? document.referrer : window.location.href,\n page_language: i18n.language?.slice(0, 2),\n logged_in: !!user?.loggedin,\n form_name: getGaDataFormName('start-widget', form.step),\n form_error: false,\n step_id: getGaDataId('start-widget', form.step),\n step_name: getGaDataName('start-widget', form.step),\n type_of_pet: formRef.current?.pet_species,\n age_of_pet: !!pet\n ? getGaDataPetAge(pet?.birthdate)\n : getGaDataPetAgeWidget(formRef.current?.pet_age_category),\n franchise: getGaDataFranchise(formRef.current?.insurance_franchise),\n first_prime: formRef.current?.insurance_cost\n ? formRef.current?.insurance_cost / 100\n : null,\n insurance_coverage: formRef.current?.insurance_type,\n disaster_type: '',\n agent_code: agentCodeUrl || '0000',\n });\n }, [form.step]);\n\n return (\n \n \n \n {steps.map(({ref, Component}) => (\n \n ))}\n \n \n \n );\n};\n\nexport default Stepper;\n","import { GroupFormLayout, Title, WidgetSelect, WidgetSelectGroup, WidgetTightButton, WidgetTightFlexibleGrid, WidgetTightFormField, WidgetTightOfferFieldContainer, WidgetTightRadioButtonGroup, WidgetTightRadioGroup } from \"@animalia/components\"\nimport { Box, Select, TextInput } from \"grommet\";\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from 'react-i18next'\nimport { axios } from '@animalia/instances'\nimport { getErrors } from \"@animalia/actions\";\n\nconst RaceStep = ({ formValue, dispatch, goToPrevStep, goToNextStep, error }) => {\n const { t, i18n } = useTranslation()\n const [races, setRaces] = useState([])\n const [search, setSearch] = useState('')\n const [search2, setSearch2] = useState('')\n const [zipCodes, setZipCodes] = useState([])\n const [zipcodeValue, setZipcodeValue] = useState(formValue.holder_zip_code)\n \n const onSearchHandle = text => {\n setSearch(text)\n }\n\n const onSearchHandle2 = text => {\n setSearch2(text)\n }\n\n const labels = {\n suptitle: t('calculator.race.suptitle'),\n calculate: t('calculator.navigation.goToInsuranceStep'),\n editForm: t('calculator.navigation.prev'),\n pet_breed: t('calculator.race.pet_breed'),\n pet_mixed: t('calculator.race.pet_mixed'),\n pet_unknown: t('calculator.race.pet_unknown'),\n breed: t('calculator.race.breed'),\n breed_2: t('calculator.race.breed_2'),\n zipcode: t('calculator.race.zipcode'),\n city: t('calculator.race.city'),\n }\n\n const valueKeyConfig = {\n key: 'value',\n reduce: true,\n }\n\n const breedTypeOptions = formValue.pet_species === 'dog'\n ? [\n {\n label: labels.pet_breed,\n value: 'breed'\n },\n {\n label: labels.pet_mixed,\n value: 'mixed'\n },\n {\n label: labels.pet_unknown,\n value: 'unknown'\n }\n ] : [\n {\n label: labels.pet_breed,\n value: 'breed'\n },\n {\n label: labels.pet_unknown,\n value: 'unknown'\n }\n ]\n \n const filteredOptions = (elements, search) => elements.filter(item => !search || item.label.toLowerCase().includes(search.toLowerCase())\n // || item.keywords?.toLowerCase().includes(search.toLowerCase()\n )\n\n const onZipCodeChange = async (event) => {\n setZipcodeValue(event.target.value)\n if (event.target.value.length < 2) {\n setZipCodes([])\n return\n }\n\n const reqObject = {\n ONRP: 0,\n ZipCode: event.target.value,\n ZipAddition: '',\n TownName: '',\n STRID: 0,\n StreetName: '',\n HouseKey: 0,\n HouseNo: '',\n HouseNoAddition: ''\n }\n const response = await axios.post(process.env.REACT_APP_API_POST_ENDPOINT, JSON.stringify(reqObject))\n if (response.status === 200 && response.data) {\n const citiesFound = \n response\n ?.data\n ?.body\n ?.data\n ?.QueryAutoComplete3Result\n ?.AutoCompleteResult\n ?.map(item => ({\n city: item.TownName,\n value: item.ZipCode,\n label: `${item.ZipCode} ${item.TownName}`\n }))\n ?.filter((item, pos, self) => self.indexOf(item) == pos)\n\n setZipCodes(citiesFound)\n }\n }\n\n const onZipCodeSuggestionSelect = ({ suggestion }) => {\n const { city, value: zipcode } = suggestion\n setZipcodeValue(zipcode)\n\n setZipCodes([])\n \n dispatch({\n type: 'SET_FORM',\n data: {\n holder_zip_code: zipcode,\n holder_city: city\n }\n })\n }\n\n useEffect(() => {\n (async () => {\n try {\n const response = await axios.get('/animals?ul=' + i18n.language.substr(0, 2))\n setRaces([\n ...response.data.animals\n .filter(item => item.species === formValue.pet_species)\n .sort((a, b) => a.race.localeCompare(b.race))\n .map(item => ({value: item.id, label: item.race})),\n {\n value: -1,\n label: 'Autres',\n },\n ])\n } catch (error) {\n throw new Error(error)\n }\n \n })()\n }, [])\n \n\n return (\n \n
\n \n \n <div style={{ fontSize: '0.875rem', textAlign: 'center' }}> { labels.breed } </div>\n \n \n \n \n \n \n \n {\n formValue.pet_breed === 'breed' || formValue.pet_breed === 'mixed'\n ? (\n \n \n \n )\n : null\n }\n {\n formValue.pet_breed === 'mixed'\n ? (\n \n \n \n )\n : null\n }\n \n \n \n \n <div style={{ fontSize: '0.875rem', textAlign: 'center' }}> Adresse </div>\n \n \n \n \n \n onZipCodeSuggestionSelect(event)}\n />\n \n \n \n \n \n \n
\n \n \n \n \n )\n}\n\nexport default RaceStep","import React, { useEffect, useContext } from 'react'\nimport { WidgetTightButton, WidgetTightFormField, WidgetTightOfferFieldContainer, WidgetTightAddressSingle, Caption } from '@animalia/components'\nimport { CalculatorContext } from '@animalia/contexts'\nimport { setEmailOffer } from '@animalia/actions'\nimport { useTranslation } from 'react-i18next'\nimport { Box, TextInput } from 'grommet'\nimport styles from './InsuranceStep.module.sass'\n\nconst InsuranceStep = ({ formValue, error, goToPrevStep, isLoading }) => {\n const { dispatch } = useContext(CalculatorContext)\n const { t } = useTranslation()\n\n // labels \n const labels = {\n petName: t('offer.pet.name'),\n next: t('offer.navigation.next'),\n editForm: t('calculator.navigation.prev'),\n conditions: t('calculator.conditions')\n }\n\n // use effects \n useEffect(() => {\n // if we reach this step, user fields should be required \n setEmailOffer(dispatch, true)\n return () => {\n // set false when we leave\n setEmailOffer(dispatch, false)\n }\n\n }, [])\n\n return (\n \n {/* pet name */}\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default InsuranceStep\n","import {\n getGaDataFormName,\n getGaDataFranchise,\n getGaDataId,\n getGaDataName,\n getGaDataPetAge,\n getGaDataPetAgeWidget,\n} from '@animalia/actions';\nimport {\n Caption,\n Title,\n WidgetTightButton,\n WidgetTightOfferFieldContainer,\n} from '@animalia/components';\nimport {Box} from 'grommet';\nimport React, {useEffect} from 'react';\nimport {useTranslation, Trans} from 'react-i18next';\nimport {useHistory, useLocation} from 'react-router-dom';\n\nconst OfferSent = ({\n formValue,\n goToPrevStep,\n goToFirstStep,\n closeModalAndGoTo,\n offerQuid,\n pet,\n}) => {\n const {i18n, t} = useTranslation();\n const history = useHistory();\n const location = useLocation();\n const gaForm = !!pet ? 'start-widget-my-account' : 'start-widget';\n const labels = {\n back: t('calculator.navigation.prev'),\n thanks: t('calculator.thanks'),\n offer_in_mailbox: (\n \n ),\n ok: t('calculator.navigation.ok'),\n offer_conclusion_1: (\n \n ),\n offer_conclusion_2: t('calculator.offer_conclusion_2'),\n seeOffer: t('calculator.navigation.seeOffer'),\n };\n\n const onClick = () => {\n if (!!closeModalAndGoTo) {\n closeModalAndGoTo();\n } else {\n goToFirstStep();\n }\n };\n\n const goToOffer = () =>\n window.open(\n `${process.env.REACT_APP_MY_ACCOUNT_URL}/public/offer/${offerQuid}`\n );\n\n const goToOfferPage = () =>\n history.push({\n pathname: `/public/offer/${offerQuid}`,\n state: {\n from: window.location.pathname,\n },\n });\n\n useEffect(() => {\n if(window.dataLayer) {\n window.dataLayer.push({\n event: 'request_insurance_offer',\n page_title: document.title,\n page_location: window.location.href,\n page_referrer: window.location.href,\n page_language: i18n.language?.slice(0, 2),\n logged_in: !!pet,\n form_name: 'Insurance Request',\n step_id: 4,\n step_name: 'offer-sent',\n type_of_pet: formValue.pet_species,\n age_of_pet: pet?.birthdate\n ? getGaDataPetAge(pet?.birthdate)\n : getGaDataPetAgeWidget(formValue.pet_age_category),\n franchise: getGaDataFranchise(formValue.insurance_franchise),\n first_prime: formValue.insurance_cost ? formValue.insurance_cost / 100 : null,\n insurance_coverage: formValue.insurance_type,\n agent_code: formValue.agent_code || '0000',\n });\n }\n }, []);\n\n if (!!closeModalAndGoTo)\n return (\n \n \n {labels.thanks}\n
\n {labels.offer_conclusion_1}\n
\n
\n {labels.offer_conclusion_2}\n
\n
\n \n
\n
\n );\n\n return (\n \n \n \n );\n};\n\nexport default OfferSent;\n","import React, { useEffect, useState } from 'react'\nimport { useContext } from 'react'\nimport { useLocation, useParams } from 'react-router-dom'\nimport { CalculatorContext } from '@animalia/contexts'\nimport { setCodeAgentAndPetId } from '@animalia/actions'\nimport { hasCodeAgent } from '@animalia/actions'\nimport Stepper from './stepper/Stepper'\nimport { useTranslation } from 'react-i18next'\n\nconst CalculatorView = () => {\n const { calculator: { form }, dispatch } = useContext(CalculatorContext)\n const location = useLocation()\n const { locale } = useParams()\n const { i18n } = useTranslation()\n const [viewState, setViewState] = useState(null)\n const [params] = useState(new URLSearchParams(location.search))\n\n // use effects \n useEffect(() => {\n // before showing view, check if there is a valid code agent \n setCodeAgentAndPetId(dispatch, params) \n }, [])\n\n useEffect(() => {\n // handle locale lang change \n if (locale) {\n i18n.changeLanguage(locale)\n } else {\n i18n.changeLanguage('fr')\n }\n }, [locale])\n\n useEffect(() => {\n // when code agent set in form, update view\n if (hasCodeAgent(form)) {\n\n // code agent is defined \n setViewState('ready')\n } else {\n\n // code agent is undefined\n setViewState('undefined')\n }\n }, [form.agent_code])\n\n\n switch (viewState) {\n case 'ready' :\n return (\n \n )\n case 'undefined' :\n return (\n
Please check the code agent parameter
\n )\n default :\n return (\n
Loading
\n )\n }\n}\n\nexport default CalculatorView\n","import i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport detector from 'i18next-browser-languagedetector'\nimport lang from '@animalia/lang'\n\ni18n\n .use(detector)\n .use(initReactI18next)\n .init({\n resources: {\n fr: {\n translation: {\n ...lang.fr,\n },\n },\n de: {\n translation: {\n ...lang.de,\n },\n },\n it: {\n translation: {\n ...lang.it,\n },\n },\n },\n fallbackLng: 'fr',\n interpolation: {\n escapeValue: false,\n },\n\n detection: {\n lookupQuerystring: 'lang',\n order: [\n 'querystring',\n 'cookie',\n 'localStorage',\n 'sessionStorage',\n 'navigator',\n 'htmlTag',\n 'path',\n 'subdomain',\n ],\n caches: ['cookie', 'localStorage'],\n cookieDomain: 'localhost',\n },\n })\n","import React, {useEffect, useRef} from 'react';\nimport {BrowserRouter as Switch, Route, useParams} from 'react-router-dom';\nimport {\n CalculatorContextProvider,\n GtmEventsContextProvider,\n} from '@animalia/contexts';\nimport CalculatorView from './views/calculator/CalculatorView';\nimport {Grommet} from 'grommet';\nimport {MetaProvider, theme} from '@animalia/components';\nimport 'sass-reset';\nimport './i18n';\nimport {useTranslation} from 'react-i18next';\nimport TagManager from 'react-gtm-module';\n\nconst App = () => {\n const base = '/:locale(fr|de|it)?';\n const {i18n} = useTranslation();\n // get url parameters\n const params = new URLSearchParams(window.location.search);\n const codeAgent = params.get('codeAgent');\n\n useEffect(() => {\n const tagManagerArgs = {\n gtmId: 'GTM-P3W98L5',\n dataLayer: {\n page_title: document.title,\n page_location: window.location.href,\n page_referrer: document.referrer,\n page_language: i18n.language?.slice(0, 2),\n form_name: 'Insurance Request',\n step_id: 1,\n step_name: 'animal-step',\n agent_code: codeAgent,\n },\n };\n\n if (window == window.top) {\n TagManager.initialize(tagManagerArgs);\n }\n }, []);\n\n if (window == window.top) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default App;\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport { I18n } from 'aws-amplify'\nimport lang from '@animalia/lang'\nimport App from './App'\n\nI18n.putVocabularies({\n fr: lang.fr.auth,\n de: lang.de.auth,\n it: lang.it.auth,\n})\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n)","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"conclusion-icon_button__94EKm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"FressnapfDownloadButton_container__LjcNw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"AsideStepsSummary_wrapper__1VS9s\",\"container\":\"AsideStepsSummary_container__KG1nJ\",\"fieldContainer\":\"AsideStepsSummary_fieldContainer__3kWZK\",\"title\":\"AsideStepsSummary_title__2AnyQ\",\"value\":\"AsideStepsSummary_value__1-tRl\",\"small\":\"AsideStepsSummary_small__3MY8X\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"box\":\"UserMenu_box__31N1F\",\"menuSection\":\"UserMenu_menuSection__1kVEh\",\"menuTitle\":\"UserMenu_menuTitle__2b3ZZ\",\"menuItem\":\"UserMenu_menuItem__3vvaM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"ConcludedOfferBanner_container__3xvZK\",\"item\":\"ConcludedOfferBanner_item__34eAf\",\"buttonGroup\":\"ConcludedOfferBanner_buttonGroup__2K3o_\",\"block\":\"ConcludedOfferBanner_block__82cCX\",\"flex\":\"ConcludedOfferBanner_flex__24Xe6\"};"],"sourceRoot":""}