{"version":3,"sources":["constants.js","theme/theme.constants.js","services/utils.js","authConfigB2C.js","serviceWorker.js","actions/accountLogin.js","actions/billingPayments.js","actions/claims.js","actions/claimsGeneric.js","actions/common.js","actions/editPayment.js","actions/figoPetTag.js","actions/fileClaims.js","actions/foundLostPet.js","actions/home.js","actions/inboxAndDocs.js","actions/login.js","actions/multibrand.js","actions/myAccount.js","actions/myPets.js","actions/myVets.js","actions/oneInc.js","actions/personalInformation.js","actions/policies.js","actions/resetPassword.js","actions/session.js","actions/settings.js","actions/orcaInsurance.js","services/constants.js","services/api.js","sagas/billing.js","services/featureFlagsForSagas.js","sagas/claims.js","sagas/claimsGeneric.js","sagas/common.js","sagas/figoPetTag.js","sagas/foundLostPet.js","sagas/home.js","sagas/inboxAndDocs.js","sagas/orcaInsurance.js","sagas/policies.js","sagas/myPets.js","sagas/myVets.js","sagas/oneInc.js","sagas/resetPassword.js","services/mixpanel.js","sagas/session.js","sagas/settings.js","sagas/multibrand.js","rootSagas.js","reducers/accountLogin.js","reducers/billingPayments.js","reducers/claims.js","reducers/claimsGeneric.js","reducers/common.js","reducers/editPayment.js","reducers/figoPetTag.js","reducers/fieleClaims.js","reducers/foundLostPet.js","reducers/home.js","reducers/inboxAndDocs.js","reducers/multibrand.js","reducers/myAccount.js","reducers/myPets.js","reducers/myVets.js","reducers/oneInc.js","reducers/orcaInsurance.js","reducers/personalInformation.js","components/changeCoverage/powerups/powerups.constans.js","reducers/policies.js","reducers/resetPassword.js","reducers/session.js","reducers/settings.js","reducers/index.js","store.js","hooks/useMixpanel.js","components/home/components/PetsHealthCard.js","components/home/utils.js","components/home/components/Greetings.js","components/home/components/ResourceCard.js","components/navigation/routes.constants.js","assets/close-button.svg","hooks/useResponsive.js","components/common/ModalContainer.js","components/common/DownloadModal.js","assets/qr-code-new.png","assets/app-store-black.png","assets/google-play-black.png","components/home/components/Resources.js","hooks/useAlphabeticalSortedPets.js","hooks/useAlphabeticalSortedPetsWithPolicy.js","hooks/useB2CInfo.js","hooks/useDebounceSearch.js","hooks/useOneIncScript.js","hooks/useOnEscEvent.js","hooks/usePostMessage.js","hooks/useQuery.js","hooks/useLogoutSessionCleaner.js","hooks/useWebViewMultibrand.js","hooks/usePetPolicies.js","hooks/usePMS.js","components/common/FigoLottie.js","components/common/FigoLoadingOverlay.js","hooks/useFeatureFlags.js","components/home/HomeScreen.js","components/pageNotFound/PageNotFound.js","assets/sideMenu/insurance.svg","assets/sideMenu/home.svg","assets/sideMenu/claims.svg","assets/sideMenu/inbox-docs.svg","assets/sideMenu/my-account.svg","assets/sideMenu/logout.svg","assets/sideMenu/headset.svg","components/sideMenu/SideMenuItem.js","assets/sideMenu/cat.svg","assets/sideMenu/dog.svg","assets/sideMenu/add.svg","components/sideMenu/SideMenuActionButton.js","components/common/ScrollableDiv.js","assets/myPets/drop-down-arrow.svg","components/myPets/FigoSelectSearchable.js","assets/information-icon.svg","assets/back-arrow.svg","assets/myPets/calendar-black-icon.svg","components/myPets/AgeInputSelector.js","components/common/petCloud/GroupButtonSelector.js","components/common/LoadingButton.js","components/common/petCloud/ActionButton.js","components/common/petCloud/GenericModal.js","components/common/petCloud/PetCloudInputAnimated.js","components/common/petCloud/RadioInputWithLabel.js","assets/myAccount/input-error-icon.svg","components/common/petCloud/PetCloudInput.js","components/myPets/AddAPetModal.js","components/myPets/hooks/useAddAPetModal.js","components/sideMenu/YourPetsSection.js","components/sideMenu/contactUs/common/CardProvider.js","components/sideMenu/contactUs/common/ContactInformationRow.js","components/sideMenu/contactUs/common/ScheduleRow.js","components/sideMenu/contactUs/common/ScheduleRowTitle.js","components/sideMenu/contactUs/common/HoursOfOperationTitle.js","components/sideMenu/contactUs/contactUs.constants.js","components/sideMenu/contactUs/ContactUsCompany.js","assets/brandProviderLogos/figo-logo.svg","assets/brandProviderLogos/ppi-logo.png","assets/brandProviderLogos/ppi-one-pack-logo.svg","assets/brandProviderLogos/akc-logo.svg","components/sideMenu/contactUs/ContactUsHome.js","components/sideMenu/contactUs/ContactUsModal.js","components/sideMenu/contactUs/hooks/useContactUsModal.js","assets/back-arrow-blue.png","components/sideMenu/SideMenu.js","assets/log-out.png","components/common/Shimmer.js","components/claims/claimsDetails/ClaimInfoItem.jsx","assets/brandLogos/dark-background/figo-logo.svg","assets/figo-logo-white.svg","assets/brandLogos/dark-background/petpartners-logo.svg","assets/brandLogos/dark-background/akc-logo.svg","assets/brandLogos/dark-background/spot-logo.svg","assets/brandLogos/simplified/akc-simplified.svg","assets/brandLogos/simplified/ppi-simplified.svg","assets/brandLogos/simplified/spot-simplified.svg","assets/brandLogos/white/akc-logo-white.svg","assets/brandLogos/white/ppi-logo-white.svg","assets/brandLogos/white/ppi-onepack.svg","assets/brandLogos/white/spot-logo-white.svg","theme/theme.utils.js","assets/billingPayments/dog-placeholder.png","assets/billingPayments/cat-placeholder.png","components/claims/claimsDetails/DetailsList.js","assets/fileClaim/plus.png","assets/fileClaim/doc-navy.svg","assets/fileClaim/plus-navy.svg","assets/fileClaim/delete-sm.svg","assets/fileClaim/radio-check-leaf.svg","assets/fileClaim/cross-hydrant.svg","assets/fileClaim/upload-circle.svg","components/claims/steps/InputFile.js","components/claims/claimsDetails/AddFilesButton.js","components/common/TouchableDiv.js","components/claims/claimsDetails/CancelButton.js","components/claims/claimsDetails/SubmitAttachmentButton.js","components/claims/claimsDetails/AddAttachmentModal.js","assets/inboxDocsMultibrand/iconsFolder/avi.svg","assets/inboxDocsMultibrand/iconsFolder/empty.svg","assets/inboxDocsMultibrand/iconsFolder/html.svg","assets/inboxDocsMultibrand/iconsFolder/jpeg.svg","assets/inboxDocsMultibrand/iconsFolder/mov.svg","assets/inboxDocsMultibrand/iconsFolder/mp3.svg","assets/inboxDocsMultibrand/iconsFolder/pdf.svg","assets/inboxDocsMultibrand/iconsFolder/png.svg","assets/inboxDocsMultibrand/iconsFolder/txt.svg","assets/inboxDocsMultibrand/iconsFolder/doc.svg","assets/inboxDocsMultibrand/iconsFolder/xls.svg","assets/inboxDocsMultibrand/iconsFolder/zip.svg","components/inboxAndDocs/recentActivity/RecentFileIcon.js","assets/myPets/add-icon-blue.svg","components/claims/claimsDetails/ClaimsAttachments.js","assets/myAccount/nav-arrow.svg","components/myPets/common/PetCloudBreadcrumbs.js","assets/claims/warning-icon.svg","components/claims/claimsDetails/AttentionNeeded.js","components/claims/claimsDetails/ClaimsDetails.js","components/insurance/multiplePets/PetCard.js","components/insurance/multiplePets/MultiplePetsSelector.js","components/insurance/InsuranceScreen.js","assets/policy/add-white.svg","assets/policy/add-onyx.svg","assets/policy/active-green.svg","assets/policy/cancelled-red.svg","assets/policy/future-brown.svg","assets/policy/past-black.svg","components/insurance/coverageOverview/CoveragePolicyStatus.js","assets/billingPayments/info.png","assets/info-icon.svg","components/common/IconTooltip.js","assets/policy/info-circle.svg","components/insurance/coverageOverview/CoverageInfoFeeCancelled.js","components/insurance/coverageOverview/CoverageFigoInfoFee.js","assets/policy/check-green.svg","components/insurance/coverageOverview/CoverageFigoProgressBar.js","components/insurance/coverageOverview/CoverageOverviewField.js","components/insurance/coverageOverview/CoverageInfoFee.js","components/insurance/coverageOverview/CoverageGroupInfoFee.js","assets/arrow-right-to-paint.svg","components/insurance/ViewMoreButton.js","components/insurance/coverageOverview/CoverageOverview.js","components/insurance/coverageOverview/changeCoverage.utils.js","components/insurance/CurrentPetPolicy.js","components/common/petCloud/LoadingActionButtonMyPets.js","components/insurance/UninsuredPet.js","components/insurance/YoungPetModal.js","components/insurance/NoPolicyPets.js","components/insurance/CancelPolicyModal.js","components/insurance/changeCoverage/ChangeCoverageErrorModal.js","assets/close.svg","assets/myPets/selected.svg","components/myPets/addVetModal/FoundVetItem.js","assets/search-icon.svg","components/myPets/addVetModal/SearchInput.js","assets/myPets/close-icon.svg","components/myPets/addVetModal/hooks/useCustomVetForm.js","components/myPets/addVetModal/AddVetManuallyModal.js","components/myPets/addVetModal/AddVetModal.js","assets/claims/ok.svg","components/claims/primaryVet/ConfirmPrimaryVetModal.js","assets/myVets/veterinary-briefcase.svg","components/claims/primaryVet/NoVetModal.js","assets/myVets/search-icon.svg","components/myPets/addVetModal/MyPetsSearchInput.js","components/myPets/addVetModal/AddVetManualComponents.js","components/myPets/addVetModal/MyPetsAddVetManuallyModal.js","components/myPets/addVetModal/AddAVetConfirm.js","components/myPets/addVetModal/AddAVetForm.js","components/myPets/addVetModal/AddAVetModal.js","components/myPets/addVetModal/MyPetsAddVetModal.js","components/claims/primaryVet/AddPrimaryVet.js","components/insurance/modifiers/ModfierModalInfoItemContent.js","assets/policy/included-check-white.svg","components/insurance/modifiers/ModifierWellnessButton.js","components/insurance/modifiers/ModifierWellnessGroup.js","components/common/petCloud/ContentfulComponent.js","components/insurance/modifiers/ModifierModalInfo.js","components/insurance/PolicyModals.js","components/insurance/PolicyHeader.js","components/common/HtmlContent.js","assets/policy/included-check.svg","assets/policy/not-included-cross.svg","components/insurance/powerups/PowerupInfoCard.js","components/insurance/powerups/Powerups.js","assets/policy/information-icon.svg","assets/policy/information-alert-icon.svg","components/insurance/policyNotificationsUtils .js","components/insurance/PolicyNotifications.js","assets/claimbot/medical-records.svg","assets/claimbot/paid-invoice.svg","components/claims/FirstFigoClaimModal.js","components/claims/FileClaimButton.js","assets/brandProviderLogos/costco-insurance-agency.svg","components/common/costcoMemberQuote/CostcoMemberQuoteModal.js","assets/billingPayments/credit-card.svg","assets/billingPayments/saving-bank.svg","components/common/petCloud/LoadingActionButton.js","components/insurance/billingAndPayments/PaymentMethodCard.jsx","components/insurance/billingAndPayments/BillingInformation.js","components/insurance/billingAndPayments/BillingPremiumCostRow.js","components/insurance/billingAndPayments/BillingPremiumCostFigo.js","components/insurance/billingAndPayments/BillingPremiumCostOrca.js","components/insurance/billingAndPayments/BillingAndPayments.jsx","components/myAccount/BillingAndPayments/hooks/useBillingAndPayments.js","assets/billingPayments/cash-payment-sign.svg","components/insurance/reimbursement/ReimbursementMethodCard.jsx","components/myAccount/reimbursement/hooks/useReimbursementScreen.js","components/insurance/reimbursement/Reimbursement.jsx","components/common/iframe/Iframe.js","components/insurance/changeCoverage/ChangeCoverageFrame/ChangeCoverageFrame.jsx","components/common/providersSelector/ProvidersSelector.js","components/insurance/PolicySummary.js","components/claims/NoClaimsPlaceholder.js","assets/claims/filter-controller.svg","assets/claims/chevron-down-blue.svg","assets/claims/check-mark-gray.svg","components/claims/FilterClaims.js","components/claims/NoMatchingFIlters.js","assets/fileClaim/right-arrow.svg","assets/claims/empty-ellipsis.svg","assets/claims/check-circle-blue.svg","components/claims/Stepper.js","components/claims/MultibrandClaimCard.js","components/claims/ClaimsScreenComponent.js","assets/changeCoverage/blue-circle.svg","components/changeCoverage/changeCoveragePreview/PowerupCard.js","components/insurance/changeCoverage/ChangeCoverageDetails.js","components/insurance/changeCoverage/ChangeCoverageButtons.js","components/changeCoverage/constants.js","components/insurance/changeCoverage/hooks/useCoverageModal.js","components/insurance/changeCoverage/ChangeCoverageScreenPreview.js","components/changeCoverage/changeCoverageOptions/useDisableSubmit.js","components/changeCoverage/utils.js","components/insurance/changeCoverage/hooks/useCoverageOptions.js","assets/info-blue-light.svg","components/common/CustomTooltip.js","assets/plans/info.svg","assets/plans/check.svg","components/changeCoverage/changeCoverageOptions/selectorPills/SelectorPill.js","components/changeCoverage/changeCoverageOptions/selectorPills/SelectorPills.js","assets/changeCoverage/info-red.svg","components/changeCoverage/sliders/DeductibleReimbursement.js","assets/changeCoverage/info-deep-blue.svg","components/common/PowerUpSwitch.js","assets/changeCoverage/pet-protect-copay-active.svg","components/changeCoverage/changeCoverageOptions/PetProtectCopayModal.js","components/changeCoverage/changeCoverageOptions/PetCopayCoverageSection.js","assets/info-white.svg","components/changeCoverage/powerups/PowerUpTitle.js","components/changeCoverage/powerups/WhatsCoveredLinkUpdate.js","assets/radio-selected.svg","assets/radio-deselected.svg","components/common/RadioButton.js","components/changeCoverage/powerups/UpdatedCardPowerup.js","components/changeCoverage/powerups/CardPowerupSection.js","assets/policy/dog-selected.svg","assets/policy/cat-selected.svg","assets/policy/policy-alert.svg","components/changeCoverage/reviewChangesModal/ReviewChangesModal.js","components/changeCoverage/changeCoverageOptions/RateErrorModal.js","assets/check.svg","components/changeCoverage/changeCoverageOptions/SubmitChanges.js","webpack:///./src/assets/policy/dog-selected.svg?d74f","webpack:///./src/assets/policy/cat-selected.svg?bfec","assets/changeCoverage/arrow-right-black.svg","components/insurance/changeCoverage/changeCoverageSubmit/PreviewSubmitUpdatedPlan.js","assets/changeCoverage/alert-icon.svg","components/insurance/changeCoverage/changeCoverageSubmit/PreviewSubmitNote.js","components/insurance/changeCoverage/changeCoverageSubmit/ChangeCoveragePreviewSubmit.js","components/insurance/changeCoverage/hooks/useCoveragePreviewSubmit.js","components/insurance/changeCoverage/changeCoverageOptions/ChangeCoverageScreenFooter.js","assets/alert.png","components/common/UnsavedChangesPrompt.js","components/insurance/changeCoverage/changeCoverageOptions/ChangeCoverageScreenOptions.js","hooks/usePolicyBrand.js","components/insurance/changeCoverage/ChangeCoverageInsuranceScreen.js","hooks/useBackButton.js","components/common/PolicyListItem.js","components/insurance/OtherPolicies.js","components/insurance/OrcaGetQuoteFrame.js","assets/add-circle-blue.svg","components/insurance/AddPetScreen.js","components/insurance/AddPetScreenIFrame.js","components/insurance/InsuranceNavigation.js","components/claims/claimbot/components/StepperMultibrand.js","components/claims/claimbot/components/ClaimbotStepper.js","components/claims/claimbot/components/FileClaimbotEvie.js","components/claims/claimbot/components/FinishButton.js","components/claims/claimbot/components/PetSelector.js","components/claims/claimbot/components/DateInput.js","components/claims/claimbot/components/ClaimSelector.js","assets/radio-checked.png","assets/radio-unchecked.png","components/claims/claimbot/components/TextInput.js","components/claims/claimbot/components/TextInputSingleLine.js","assets/claimbot/check-circle.svg","assets/claimbot/delete-cross.svg","components/claims/claimbot/components/AttachmentItem.js","assets/fileClaim/cloud-add.svg","components/claims/claimbot/components/DragZone.js","assets/claimbot/upload-circle.svg","components/claims/claimbot/components/AttachmentSelector.js","components/claims/claimbot/components/AmountInput.js","assets/claimbot/arrow-check-white.svg","components/claims/claimbot/components/TwoOptionsSelector.js","components/claims/claimbot/components/MultipleOptionsSelector.js","components/claims/claimbot/components/ClaimSummary.js","assets/claimbot/draw-pencil.svg","assets/claimbot/keyboard.svg","components/claims/claimbot/claimbot.constants.js","components/claims/claimbot/components/SignAndSubmit.js","assets/claimbot/submit-error.svg","assets/claimbot/submit-success.svg","components/claims/claimbot/components/ClaimSubmitted.js","components/claims/claimbot/components/PolicySelector.js","components/claims/claimbot/claimbot.utils.js","components/claims/claimbot/hooks/useFileClaimbotScreen.js","components/claims/claimbot/FileClaimbotScreen.js","hooks/useBreadcrumbNavigation.js","assets/inboxDocsMultibrand/iconsFolder/add.svg","assets/inboxDocs/black-folder.svg","assets/inboxDocsMultibrand/download-circle-black.svg","assets/inboxDocsMultibrand/edit-black.svg","assets/inboxDocsMultibrand/move-arrow-black.svg","assets/inboxDocsMultibrand/tag-black.svg","assets/inboxDocsMultibrand/thrash-black.svg","components/common/OverlayContainer.js","assets/inboxDocs/triple-dots.svg","components/common/TripleDotMenuOption.js","components/common/TripleDotMenu.js","assets/chevron-fill.svg","assets/check-onyx.svg","components/common/dropdown/ListItem.js","components/common/dropdown/Dropdown.js","components/inboxAndDocs/modals/MoveModal.js","components/common/FigoInput.js","components/inboxAndDocs/modals/RenameModal.js","components/inboxAndDocs/modals/DeleteModal.js","components/inboxAndDocs/InboxAndDocsMenu.js","assets/inboxDocsMultibrand/iconsFolder/custom-icon.svg","assets/inboxDocsMultibrand/iconsFolder/policy.svg","assets/inboxDocsMultibrand/iconsFolder/vet-bills.svg","assets/inboxDocsMultibrand/iconsFolder/pictures-icon.svg","assets/inboxDocsMultibrand/iconsFolder/medical-records-icon.svg","assets/inboxDocsMultibrand/iconsFolder/shots-certificates-icon.svg","assets/inboxDocsMultibrand/iconsFolder/claims-icon.svg","components/inboxAndDocs/Folder.js","components/inboxAndDocs/inboxAndDocs.utils.js","services/inboxAndDocs.js","assets/inboxDocsMultibrand/iconsFolder/trash.svg","assets/inboxDocsMultibrand/iconsFolder/upload.svg","components/inboxAndDocs/UploadFilesButton.js","components/inboxAndDocs/FoldersSection.js","assets/inboxDocsMultibrand/inbox.svg","assets/inboxDocs/arrow.svg","components/inboxAndDocs/InboxSection.js","components/inboxAndDocs/recentActivity/RecentFile.js","components/inboxAndDocs/recentActivity/RecentActivity.js","components/common/breadcrumbs/BreadcrumbItem.js","components/common/breadcrumbs/Breadcrumbs.js","assets/inboxDocs/nav-next-arrow-blue.png","assets/inboxDocsMultibrand/download-circle-blue.svg","assets/inboxDocsMultibrand/mark-as-read.svg","assets/inboxDocsMultibrand/move-arrow-blue.svg","assets/inboxDocsMultibrand/tag-blue.svg","assets/inboxDocsMultibrand/thrash-blue.svg","assets/checkbox-check-blue.svg","assets/checkbox-unchecked.svg","components/common/Checkbox.js","assets/inboxDocsMultibrand/arrow-down-black.svg","components/inboxAndDocs/foldersContent/fileListTable/PetSelectorMultisSelection.js","components/inboxAndDocs/foldersContent/fileListTable/HeaderButtonFileAction.js","assets/inboxDocsMultibrand/trash-white.svg","components/inboxAndDocs/foldersContent/fileListTable/PermanentlyDeleteButton.js","assets/inboxDocsMultibrand/restore.svg","components/inboxAndDocs/foldersContent/fileListTable/RestoreButton.js","components/inboxAndDocs/foldersContent/fileListTable/TrashHeaderContainer.js","components/inboxAndDocs/foldersContent/fileListTable/InboxAndDocsTableHeader.js","assets/inboxDocsMultibrand/arrows-black.svg","components/inboxAndDocs/foldersContent/HeaderFieldContent.js","assets/inboxDocsMultibrand/check-unchecked.svg","assets/inboxDocsMultibrand/check-checked.svg","components/inboxAndDocs/foldersContent/fileListTable/InboxAndDocsTable.js","assets/plus.svg","assets/myPets/dog-placeholder-oval.png","assets/myPets/cat-placeholder-oval.png","assets/myPets/camera.svg","components/common/UploadPhotoButton.js","components/myPets/PetItemCardImage.js","components/inboxAndDocs/foldersContent/fileListTable/InboxAndDocsItemRow.js","components/common/inputFiles/InputFilesButton.js","components/common/ActionModal.js","components/inboxAndDocs/modals/TagPetModal.js","assets/clouds-icon.svg","components/inboxAndDocs/foldersContent/fileViewer/FileViewer.js","assets/inboxDocsMultibrand/close.svg","assets/inboxDocsMultibrand/download-arrow.svg","components/inboxAndDocs/foldersContent/fileViewer/FileViewerIFrame.js","components/inboxAndDocs/foldersContent/fileViewer/ViewFileContent.js","components/inboxAndDocs/foldersContent/InboxAndDocsFileList.js","assets/inboxDocs/empty-folder.svg","components/inboxAndDocs/InboxAndDocsEmptyScreen.js","components/common/inputFiles/Dropzone.js","components/inboxAndDocs/modals/uploadFiles/FolderSelector.js","components/inboxAndDocs/modals/uploadFiles/RelatedPetsSelector.js","components/inboxAndDocs/modals/uploadFiles/UploadFilesModal.js","components/inboxAndDocs/modals/AddFolderModal.js","components/inboxAndDocs/InboxAndDocsScreen.js","components/myAccount/BillingAndPayments/PolicyCard.js","components/myAccount/BillingAndPayments/MultiPoliciesPayments.js","assets/figo-logo.svg","components/myAccount/BillingAndPayments/BillingDetailsCard.js","components/myAccount/BillingAndPayments/PaymentMethod.js","assets/updatePayment/bank-active.svg","components/common/OneIncDefaultPaymentMethod.js","assets/updatePayment/bank-card.png","components/common/OneIncModal.js","assets/billingPayments/default-check.svg","components/myAccount/BillingAndPayments/PaymentMethodCard.js","components/settings/EditPaymentMultiPolicyModal.js","components/myAccount/BillingAndPayments/BillingInfoScreen.js","components/myAccount/BillingAndPayments/BillingAndPaymentsDetails/BillingDetailsScreen.js","components/common/petCloud/EmptyScreen.js","components/myAccount/BillingAndPayments/BillingAndPaymentsScreen.js","components/myAccount/MyAccountCardItem.js","assets/myAccount/figo-card-logo.svg","assets/myAccount/akc-card-logo.svg","assets/myAccount/pet-partners-card-logo.svg","components/myAccount/insuranceAccount/InsuranceAccountCards.js","assets/myAccount/pet-cloud-card-logo.svg","assets/myAccount/credit-card.svg","assets/myAccount/credit-card-sync.svg","assets/myAccount/reimbursement/reimbursement-logo.svg","components/myAccount/MyAccountScreen.js","components/myAccount/petCloudAccount/petCloudAccountEdit/PetCloudNameEdit.js","components/myAccount/petCloudAccount/petCloudAccountEdit/ConfirmChangesModal.js","assets/myAccount/alert-triangle-icon.png","assets/myAccount/shield-icon.png","assets/myAccount/tooltip.svg","components/myAccount/petCloudAccount/petCloudAccountEdit/ForgotPasswordModal.js","components/myAccount/petCloudAccount/petCloudAccountEdit/PetCloudLoginEmailEdit.js","assets/myAccount/password-visible.svg","assets/myAccount/password-hidden.svg","components/myAccount/petCloudAccount/petCloudAccountEdit/ConfirmEmailChangesModal.js","components/myAccount/petCloudAccount/petCloudAccountEdit/PetCloudEmailEdit.js","components/myAccount/hooks/useMyAccountInfo.js","components/myAccount/petCloudAccount/petCloudAccountEdit/PetCloudPasswordEdit.js","components/myAccount/petCloudAccount/PetCloudAccountRow.js","assets/upload-circle.svg","assets/error.svg","assets/success.svg","components/common/imageEditorMyPets/InputImageMyPets.js","assets/myPets/add-circle.svg","assets/myPets/subtract-circle.svg","components/common/imageEditorMyPets/SliderImageMyPets.js","assets/myPets/round-arrow.svg","components/common/imageEditorMyPets/ImageEditableMyPets.js","components/common/imageEditorMyPets/ImageEditorMyPets.js","components/myAccount/petCloudAccount/PetCloudAccountScreen.js","components/myAccount/insuranceAccount/InsuranceAccountRow.js","components/myAccount/insuranceAccount/InsuranceAccountShimmer.js","assets/on-error-icon.svg","assets/on-success-icon.svg","components/myAccount/insuranceAccount/InsuranceRequestChangeBanner.js","components/myAccount/insuranceAccount/InsuranceAccountUpdateForm.js","services/zipcode.js","components/myAccount/insuranceAccount/InsuranceAccountRequestChange.js","components/myAccount/insuranceAccount/InsuranceAccountScreen.js","components/myAccount/insuranceAccount/hooks/useInsuranceAccount.js","components/myAccount/reimbursement/ReimbursementPolicyDetails.js","assets/myAccount/reimbursement/check-payment-logo.svg","assets/myAccount/reimbursement/saving-bank-logo.svg","assets/myAccount/reimbursement/edit-pencil.svg","components/myAccount/reimbursement/editOptions/ReimbursementEditOption.js","components/myAccount/reimbursement/editOptions/ReimbursementEditMenu.js","assets/myAccount/reimbursement/check-white.svg","components/myAccount/reimbursement/editModal/ReimbursementMethodContainer.js","components/myAccount/reimbursement/editModal/hooks/useDirectDepositContent.js","components/myAccount/reimbursement/editModal/EditReimbursementModalButtons.js","components/myAccount/reimbursement/editModal/DirectDepositContent.js","components/myAccount/reimbursement/editModal/CheckContent.js","components/myAccount/reimbursement/editModal/ReimbursementEditModal.js","components/myAccount/reimbursement/ReimbursementMethodSection.js","components/myAccount/reimbursement/reimbursementDetails/ReimbursementDetailsFrame.jsx","components/myAccount/reimbursement/multibrandList/ReimbursementMultibrandList.js","components/myAccount/reimbursement/ReimbursmentScreen.js","components/myAccount/paymentHistory/PaymentHistoryPolicyCard.js","components/myAccount/paymentHistory/PaymentHistoryPolicies.js","assets/myAccount/arrow-chevron-down.svg","components/myAccount/paymentHistory/PaymentHistoryList/PaymentHistoryDetailsRow.js","components/myAccount/paymentHistory/PaymentHistoryList/PaymentHistoryPageButton.js","components/myAccount/paymentHistory/PaymentHistoryList/PaymentHistoryRow.js","components/myAccount/paymentHistory/PaymentHistoryList/PaymentHistoryList.js","components/myAccount/paymentHistory/hooks/usePaymentHistory.js","components/myAccount/paymentHistory/PaymentHistoryScreen.js","components/myAccount/MyAccountNavigation.js","assets/myPets/cards/figo-pet-tag.svg","assets/myPets/cards/insurance.svg","assets/myPets/cards/microchip.svg","assets/myPets/cards/my-vets.svg","assets/myPets/family-picture-placeholder.svg","assets/myPets/family-picture-placeholder-mobile.svg","components/myPets/petProfile/PetProfileFamilyPictureMyPets.js","components/myPets/PetProfileImage.js","assets/myPets/pencil.svg","assets/myPets/quotation.svg","components/myPets/petProfile/PetProfileInfoCardMyPets.js","assets/myPets/check-icon.svg","assets/myPets/add-icon.svg","components/common/MyPetsButton.js","components/myPets/petProfile/PetProfileProgressMyPets.js","components/myPets/PetProfileCompleted.js","components/myPets/petProfile/MyOwnPetsValidation.js","assets/myVets/placeholder-image.svg","assets/myVets/my-pets-bin.svg","components/myPets/myVets/MyVetCardItem.js","components/myPets/myVets/MyVetsPlaceholder.js","assets/myVets/add.svg","components/myPets/myVets/MyVetsComponent.js","assets/myPets/pencil-icon.svg","components/myPets/microchip/MicrochipScreen.js","assets/myPets/cross-icon.svg","components/common/FigoSelect.js","components/myPets/petProfile/MicroChipModal.js","components/myPets/hooks/usePetTagModal.js","components/myPets/petTag/PetTagModal.js","components/myPets/petTag/PetTagScreen.js","components/myPets/petProfile/PetProfileCard.js","components/myPets/petProfile/PetProfileScreenMyPets.js","components/myPets/DeleteAPetModal.js","components/myPets/NavigationMyPets.js","assets/sideMenu/petcloud-paw.svg","assets/sideMenu/petcloud-text.svg","assets/impersonate-banner/alert-circle.svg","components/navigation/ImpersonateBanner.js","components/navigation/Header.js","assets/error-dog.svg","components/genericError/GenericError.js","components/common/HeaderCommon.js","assets/found-lost-pet/figo-logo-light-background.png","components/foundLostPet/FooterFoundLostPet.js","assets/found-lost-pet/pattern-bar.png","components/common/inputFiles/InputCapsule.js","components/foundLostPet/FoundLostPetPetInformation.js","assets/found-lost-pet/family.png","components/foundLostPet/FoundLostPetFamilyRow.js","components/foundLostPet/FoundLostPetContactFormInput.js","components/foundLostPet/FoundLostPetContactForm.js","components/foundLostPet/FoundLostPet.js","hooks/useLogoutAndRedirection.js","components/settings/AcceptTermsOfServiceModal.js","assets/billingPayments/arrow-down-disabled.svg","components/settings/SuccessButton.js","assets/sideMenu/burger-menu.svg","components/common/UrgentMessages.js","components/navigation/SessionRouter.js","components/login/LoginScreen.js","assets/updatePayment/pet-patient.png","components/updatePaymentMethod/UpdatePaymentMethodScreen.js","components/navigation/RedirectCustomerId.js","assets/login/app-icon.png","components/login/BannerApp.js","assets/google-play.svg","assets/app-store.svg","components/login/DownloadMobileApps.js","assets/mail.svg","components/common/PublicFooter.js","assets/login/login-background.svg","assets/pet-cloud-logo.svg","components/login/LoginMobile.js","components/changeCoverage/changeCoverageOptions/RenewalFloatingBarTop.js","components/navigation/MobileHeader.js","assets/changeCoverage/check.svg","components/changeCoverage/assets/tablet_confirmation.svg","components/changeCoverage/assets/tablet_confirmation_balloon.svg","components/changeCoverage/assets/mobile_confirmation.svg","components/changeCoverage/assets/mobile_confirmation_balloon.svg","components/common/Wrapper.js","components/changeCoverage/changeCoverageSubmitted/SubmitSuccess.js","components/changeCoverage/ChangeCoverageScreen.js","assets/sharePost/figo-logo.png","assets/sharePost/app-store-apple.png","assets/sharePost/google-play.png","components/sharePost/SharePost.js","assets/sharePost/default-pic.png","assets/login/email.svg","assets/login/apple-store.svg","assets/login/playstore.svg","components/resetPassword/FooterPetCloud.js","components/resetPassword/HeaderPetcloud.js","assets/downloadMobileApps/pet-collage.svg","assets/google-play-navy.svg","assets/apple-store-navy.svg","components/downloadMobileApplications/DownloadMobileApplications.js","assets/downloadMobileApps/petcloud-qr-code.png","assets/downloadMobileApps/check-arrow-white.png","components/common/ContentfulPage.js","components/contentfulPages/TermsOfUseScreen.js","components/contentfulPages/PrivacyPolicyScreen.js","components/navigation/PublicRouter.js","assets/error-modal-header.png","components/common/CustomModal.js","assets/settings/trash.png","components/common/MessageModal.js","components/common/ImpersonateSession.js","AppRouter.js","i18n.js","App.jsx","index.js"],"names":["POLICY_STATUS","active","cancelled","expired","future","past","unPolicy","MULTIBRAND_POLICY_STATUS","PAYMENT_METHOD_IDS","BANK_ACCOUNT","CREDIT_CARD","PAYMENT_METHOD_NAMES","PAYMENT_PLANS","PAYMENT_PLANS_BY_NAME","REIMBURSEMENT_METHODS","check","deposit","none","PET_TYPE","CAT","DOG","PET_TYPE_ID","PET_TYPE_MULTIBRAND","PET_GENDER","FILE_CLAIMS_STEPS","id","parentStep","ACCOUNT_TYPES","CHECKING","SAVINGS","ALLOWED_EXT","FILES_TYPES_ACCEPTED","csv","doc","docx","html","jpeg","jpg","pdf","png","txt","xls","xlsx","GOOGLE_PLAY_URL","APP_STORE_URL","SMS_APP_LINKS","CONTACT_FIGO_URL","CONTACT_US_URL","ONE_INC_PAYMENT_CATEGORY","ONE_INC_EMPTY_ACH","Address","AddressFirstName","BillingInfoType","City","LastName","MaskedAccountNumber","MaskedCardNumber","PaymentProfileId","State","Zip","ONE_INC_EMPTY_CC","ADD_PET_MODAL_STEPS","PASSWORD_ERROR","INBOX_DOCS","PROTECTED_FOLDERS","ACTION_BUTTONS_CONTAINER_ID","MY_ACCOUNT","MY_ACCOUNT_EDIT","PERMISSIONS_INBOX_DOCS","EDIT_FILE_PERMISSIONS","DEFAULT_FILE_PERMISSION","DEFAULT_FOLDERS_INBOX_AND_DOCS","INBOX_DOCS_FILE_CATEGORY","INBOX_DOCS_PRIVATE_FOLDERS","WELLNESS_MODIFIER_ID","READ_FILE_SOURCE","claims","inboxDocs","toolbar","ACCEPTED_FILES","CLAIM_STATUS_ACTION","NAME_MAX_LENGTH","FILTER_TYPES","PRODUCT_FAMILY","EXPLORE_PROVIDERS","google","manuallyAdded","pointInterest","IMAGE_UPLOAD_TYPE","background","customerProfile","petProfile","post","APP_STORE_LINK","GOOGLE_PLAY_LINK","DEPOSIT_REIMBURSEMENT","WEB_VIEW_TYPES","billingAndPayment","changeCoverage","paymentMethod","reimbursementMethod","figoGetQuote","addingNewPetToPolicy","newQuoteForPet","POST_MESSAGE_TYPES","CLAIM_STATUS_BY_TEXT","attentionNeeded","closed","completed","done","inReview","received","records","PMS","MARKETING_CHANNEL_ID","akc","figo","ppi","ppiOnePack","spot","doNothing","serializeForUri","obj","arguments","length","undefined","Object","keys","map","key","encodeURI","join","sleep","time","Promise","resolve","setTimeout","maskFaxNumber","faxValue","parts","replace","match","maskPhoneNumber","string","phone","areaCodeMatch","exec","firstPartMatch","secondPartMatch","findSelectedModifier","_ref","modifiers","contentModifierSelected","find","element","isSelected","getDateBasicFormat","date","format","moment","isEmailValid","email","RegExp","test","String","trim","toLowerCase","delay","ms","currencyFormat","_ref2","fixed","value","Number","isNaN","toFixed","formattedValue","Math","abs","testNumberWithDecimal","validateNumbersOnly","input","toBase64","file","reject","reader","FileReader","readAsDataURL","onload","encoded","result","toString","repeat","onerror","error","boolParse","isBool","toLocaleLowerCase","includes","getMimefile","extension","async","downloadFileInPage","_ref3","base64Data","blobUrl","fileName","fileUrl","url","response","fetch","method","referrerPolicy","blob","window","URL","createObjectURL","aElement","document","createElement","setAttribute","href","click","revokeObjectURL","_","app","paycheck","useNewClaimbot","useSecondaryPetParent","useTrackingEvents","isMobile","userAgent","navigator","userAgentPart","substr","getNameInitials","name","names","split","initials","slice","toUpperCase","getCroppedImg","imageSrc","pixelCrop","rotation","image","Image","addEventListener","src","canvas","ctx","getContext","safeArea","max","width","height","translate","rotate","PI","drawImage","data","getImageData","putImageData","round","x","y","toDataURL","getNullSafeDate","validatePhone","objectToBase64","btoa","JSON","stringify","sortListByName","_ref6","fieldName","list","ascendent","sort","prev","current","lastName","newName","sortInboxAndDocsFileList","_ref8","rawList","sortType","fileList","filter","Metadata","Extension","folderList","folder","folderListSorted","fileListSorted","_ref7","prevDate","Date","currentDate","sortListByDate","Size","addOrRemoveItemFromList","_ref9","itemList","newItem","newListResponse","generateFileTreeOptions","_ref10","folders","level","hiddenFolderId","newArr","forEach","item","_item$Folders","Id","concat","label","Name","Childrens","Folders","fileSizeToMB","_ref11","fileSize","possesiveAdaptationI18n","word","removeEmojis","stringToClean","getClaimDataForMixPanel","_ref12","selectedPet","policyNumber","claimData","push","validateZipCode","formatDate","getBrandNameByChannelId","channelId","object","textPascalCaseFormat","text","startCase","camelCase","objectToPascalCase","originalObject","Array","isArray","reduce","acc","validateExpirationToken","token","tokenExpired","decodeJwt","jwtDecode","now","exp","b2cPolicies","authorities","forgotPassword","authority","redirectUrl","impersonation","location","origin","signUpSignIn","authorityDomain","process","msalConfig","auth","clientId","knownAuthorities","navigateToLoginRequestUrl","postLogoutRedirectUri","hostname","redirectUri","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","message","containsPii","LogLevel","Error","console","Info","info","Verbose","debug","Warning","warn","customerScope","webviewScope","loginRequestScopes","scopes","Boolean","actions","createActions","CONFIRM_PASSWORD_CHANGED","EMAIL_CHANGED","EMAIL_UPDATED","NEW_PASSWORD_CHANGED","OLD_PASSWORD_CHANGED","PASSWORD_UPDATED","PET_CLOUD_EMAIL_CHANGED","PET_CLOUD_EMAIL_RESET","PET_CLOUD_EMAIL_UPDATED","RECOVER_PASSWORD","RESET_EMAIL","RESET_INFO","UPDATE_EMAIL","UPDATE_EMAIL_ERROR","UPDATE_PASSWORD","UPDATE_PASSWORD_ERROR","UPDATE_PET_CLOUD_EMAIL","UPDATE_PET_CLOUD_EMAIL_ERROR","emailUpdated","confirmPasswordChanged","emailChanged","passwordUpdated","newPasswordChanged","oldPasswordChanged","petCloudEmailChanged","petCloudEmailUpdated","recoverPassword","resetInfo","resetEmail","updateEmail","petCloudEmailReset","updateEmailError","updatePassword","updatePasswordError","updatePetCloudEmail","updatePetCloudEmailError","APPLY_ALL_POLICIES_CHECK_CHANGED","BILLING_INFO_LOAD_FAILED","BILLING_INFO_LOADED","BILLING_PAYMENT_RESETED","CHANGE_REIMBURSEMENT_ACCOUNT_NUMBER","CHANGE_REIMBURSEMENT_ACCOUNT_TYPE","CHANGE_REIMBURSEMENT_CONFIRM_ACCOUNT_NUMBER","CHANGE_REIMBURSEMENT_METHOD_TYPE","CHANGE_REIMBURSEMENT_ROUTING_NUMBER","CHANGE_ROUTING_NUMBER_ERROR","CLOSE_EDIT_REIMBURSEMENT_METHOD_MODAL","GET_ALL_BRANDS_DATA","GET_ALL_BRANDS_DATA_FAILED","GET_ALL_BRANDS_DATA_LOADED","LOAD_PAYMENT_HISTORY","LOAD_PLAN_SUMMARY_DETAILS","LOAD_POLICY_DETAILS","LOAD_REIMBURSEMENT_METHOD","OPEN_EDIT_REIMBURSEMENT_METHOD_MODAL","PAYMENT_HISTORY_CLEARED","PAYMENT_HISTORY_LOAD_FAILED","PAYMENT_HISTORY_LOADED","PAYMENT_METHOD_ACCOUNT_NUMBER_CHANGED","PAYMENT_METHOD_ACCOUNT_NUMBER_CONFIRMATION_CHANGED","PAYMENT_METHOD_ACCOUNT_NUMBER_CONFIRMATION_ERROR_CHANGED","PAYMENT_METHOD_ACCOUNT_NUMBER_ERROR_CHANGED","PAYMENT_METHOD_ACCOUNT_TYPE_CHANGED","PAYMENT_METHOD_CARD_NUMBER_CHANGED","PAYMENT_METHOD_CARD_NUMBER_ERROR_CHANGED","PAYMENT_METHOD_CITY_CHANGED","PAYMENT_METHOD_CITY_ERROR_CHANGED","PAYMENT_METHOD_CVV_NUMBER_CHANGED","PAYMENT_METHOD_CVV_NUMBER_ERROR_CHANGED","PAYMENT_METHOD_DATA_CLEARED","PAYMENT_METHOD_EDIT_MODAL_VISIBLE_CHANGED","PAYMENT_METHOD_ERROR_MODAL_VISIBLE_CHANGED","PAYMENT_METHOD_EXPIRATION_DATE_CHANGED","PAYMENT_METHOD_EXPIRATION_DATE_ERROR_CHANGED","PAYMENT_METHOD_FIRST_NAME_CHANGED","PAYMENT_METHOD_FIRST_NAME_ERROR_CHANGED","PAYMENT_METHOD_LAST_NAME_CHANGED","PAYMENT_METHOD_LAST_NAME_ERROR_CHANGED","PAYMENT_METHOD_PAST_DUE_MODAL_VISIBLE_CHANGED","PAYMENT_METHOD_PAYMENT_METHOD_TYPE_CHANGED","PAYMENT_METHOD_ROUTING_NUMBER_CHANGED","PAYMENT_METHOD_ROUTING_NUMBER_ERROR_CHANGED","PAYMENT_METHOD_STATE_CHANGED","PAYMENT_METHOD_STATE_ERROR_CHANGED","PAYMENT_METHOD_STREET_ADDRESS_CHANGED","PAYMENT_METHOD_STREET_ADDRESS_ERROR_CHANGED","PAYMENT_METHOD_STREET_ADDRESS2_CHANGED","PAYMENT_METHOD_STREET_ADDRESS2_ERROR_CHANGED","PAYMENT_METHOD_SUCCESS_MODAL_VISIBLE_CHANGED","PAYMENT_METHOD_UPDATE_ATTEMPTED","PAYMENT_METHOD_UPDATED","PAYMENT_METHOD_ZIP_CODE_CHANGED","PAYMENT_METHOD_ZIP_CODE_ERROR_CHANGED","PET_SELECTED","POLICY_DETAILS_BENEFITS_LOADED","POLICY_DETAILS_LOAD_FAILED","POLICY_DETAILS_LOADED","POLICY_SELECTED","REIMBURSEMENT_METHOD_ATTEMPT","REIMBURSEMENT_METHOD_LOADED","REIMBURSEMENT_METHOD_ROUTING_VALIDATION_FAILED","REIMBURSEMENT_METHOD_UPDATE_FAILED","REIMBURSEMENT_METHOD_UPDATED","UPDATE_PAYMENT_METHOD","UPDATE_REIMBURSEMENT_METHOD","applyAllPoliciesCheckChanged","billingInfoLoaded","billingInfoLoadFailed","billingPaymentReseted","changeReimbursementAccountNumber","changeReimbursementAccountType","changeReimbursementConfirmAccountNumber","changeReimbursementMethodType","changeReimbursementRoutingNumber","changeRoutingNumberError","closeEditReimbursementMethodModal","loadPaymentHistory","loadPlanSummaryDetails","loadPolicyDetails","loadReimbursementMethod","getAllBrandsData","getAllBrandsDataFailed","getAllBrandsDataLoaded","openEditReimbursementMethodModal","paymentHistoryCleared","paymentHistoryLoaded","paymentHistoryLoadFailed","paymentMethodAccountNumberChanged","paymentMethodAccountNumberConfirmationChanged","paymentMethodAccountNumberConfirmationErrorChanged","paymentMethodAccountNumberErrorChanged","paymentMethodAccountTypeChanged","paymentMethodCardNumberChanged","paymentMethodCardNumberErrorChanged","paymentMethodCityChanged","paymentMethodCityErrorChanged","paymentMethodCvvNumberChanged","paymentMethodCvvNumberErrorChanged","paymentMethodDataCleared","paymentMethodEditModalVisibleChanged","paymentMethodErrorModalVisibleChanged","paymentMethodExpirationDateChanged","paymentMethodExpirationDateErrorChanged","paymentMethodFirstNameChanged","paymentMethodFirstNameErrorChanged","paymentMethodLastNameChanged","paymentMethodLastNameErrorChanged","paymentMethodPastDueModalVisibleChanged","paymentMethodPaymentMethodTypeChanged","paymentMethodRoutingNumberChanged","paymentMethodRoutingNumberErrorChanged","paymentMethodStateChanged","paymentMethodStateErrorChanged","paymentMethodStreetAddress2Changed","paymentMethodStreetAddress2ErrorChanged","paymentMethodStreetAddressChanged","paymentMethodStreetAddressErrorChanged","paymentMethodSuccessModalVisibleChanged","paymentMethodUpdateAttempted","paymentMethodUpdated","paymentMethodZipCodeChanged","paymentMethodZipCodeErrorChanged","petSelected","policyDetailsBenefitsLoaded","policyDetailsLoaded","policyDetailsLoadFailed","policySelected","reimbursementMethodAttempt","reimbursementMethodLoaded","reimbursementMethodRoutingValidationFailed","reimbursementMethodUpdated","reimbursementMethodUpdateFailed","updatePaymentMethod","updateReimbursementMethod","ADD_ATTACHMENT_TO_CLAIM","CLAIM_POLICY_CHANGED","CLAIM_REQUESTED","CLAIMS_RESULTS_LOADED_ERROR","CLAIMS_RESULTS_LOADED_MORE","CLAIMS_RESULTS_LOADED_SUCCESS","FAILED_TO_LOAD_CLAIM_STEPS","GET_CLAIM_ATTACHMENTS","GET_CLAIM_ATTACHMENTS_FAILED","GET_CLAIM_ATTACHMENTS_LOADED","GET_CLAIM_BY_ID","GET_CLAIM_BY_ID_FAILED","GET_CLAIM_BY_ID_LOADED","GET_CLAIM_BY_ID_REQUESTED","GET_CLAIMS","GET_CLAIMS_FAILED","GET_CLAIMS_LOADED","IS_FIRST_TIME_ON_CLAIMS","LOAD_NEW_CLAIM_STEPS","NEW_CLAIM_CANCELLED","NEW_CLAIM_STEPS_LOADED","POLICY_SELECTED_ON_CLAIMS","REQUEST_CLAIM_BY_ID","REQUEST_CLAIMS_RESULTS","RESET_CHECKED_OPTION","RESTART_CLAIMS_DETAILS","SAVE_SELECTED_PET","SET_IS_CHECKED_OPTION_CLOSED","SET_IS_CHECKED_OPTION_OPEN","SET_SELECTED_PET_ID","SET_SELECTED_PET_INDEX","addAttachmentToClaim","claimPolicyChanged","claimRequested","claimsResultsLoadedError","claimsResultsLoadedMore","claimsResultsLoadedSuccess","failedToLoadClaimSteps","getClaimAttachments","getClaimAttachmentsFailed","getClaimAttachmentsLoaded","getClaimById","getClaimByIdFailed","getClaimByIdLoaded","getClaimByIdRequested","getClaims","getClaimsFailed","getClaimsLoaded","isFirstTimeOnClaims","loadNewClaimSteps","newClaimCancelled","newClaimStepsLoaded","policySelectedOnClaims","requestClaimById","requestClaimsResults","resetCheckedOption","restartClaimsDetails","saveSelectedPet","setIsCheckedOptionClosed","setIsCheckedOptionOpen","setSelectedPetId","setSelectedPetIndex","CLAIM_ADDITIONAL_STEPS_HANDLED","CLAIM_ADDITIONAL_STEPS_LOADED","CLAIM_GET_POLICY_BY_DATE","CLAIM_POLICY_BY_DATE_FAILED","CLAIM_POLICY_BY_DATE_LOADED","CLAIM_STEPS_LOAD_FAILED","CLAIM_STEPS_LOADED","CLAIM_STEPS_VIEWED","CLAIMBOT_SELECTED_PET","CLAIMBOT_SELECTED_VALUE","CLEAR_CLAIM_STEPS","GENERAL_INFORMATION_LOADED","HAS_FIGO_CLAIMS_FAILED","HAS_FIGO_CLAIMS_LOADED","LOAD_ADDITIONAL_CLAIMBOT_STEPS","LOAD_CLAIM_STEPS","LOAD_HAS_FIGO_CLAIMS","SUBMIT_CLAIM","SUBMIT_CLAIM_FAILED","SUBMIT_CLAIM_SUCCESS","claimAdditionalStepsHandled","claimAdditionalStepsLoaded","claimGetPolicyByDate","claimbotSelectedPet","claimbotSelectedValue","claimPolicyByDateFailed","claimPolicyByDateLoaded","claimStepsLoaded","claimStepsLoadFalied","claimStepsViewed","clearClaimSteps","generalInformationLoaded","hasFigoClaimsFailed","hasFigoClaimsLoaded","loadAdditionalClaimbotSteps","loadClaimSteps","loadHasFigoClaims","submitClaim","submitClaimFailed","submitClaimSuccess","APPLICATION_MESSAGES_LOADED","CLEAR_ALL_CUSTOMER_CACHE","CLEAR_USER_CACHE","CONTENTFUL_PAGE_LOADED","DISMISS_ALERT","GENERAL_DATA_LOADED","GET_CONTENTFUL_PAGE","GET_GENERAL_DATA","GET_PUBLIC_SIDE_IMAGE","GET_SHARE_POST_DATA","GET_SHARE_POST_DATA_FAILED","GET_SHARE_POST_DATA_SUCCESS","LINK_MESSAGE_SENT","PUBLIC_SIDE_IMAGE_LOADED","SEND_LINK_MESSAGE","SEND_MESSAGE_RESTARTED","SHOW_ALERT","SHOW_GENERIC_ERROR","applicationMessagesLoaded","clearAllCustomerCache","clearUserCache","contentfulPageLoaded","dismissAlert","generalDataLoaded","getContentfulPage","getGeneralData","getPublicSideImage","getSharePostData","getSharePostDataFailed","getSharePostDataSuccess","linkMessageSent","publicSideImageLoaded","sendLinkMessage","sendMessageRestarted","showAlert","showGenericError","CLOSE_MULTI_POLICIES_MODAL","LOAD_MULTI_POLICIES","LOAD_POLICIES_CARD_INFORMATION","LOAD_POLICIES_PAYMENT_NUMBER","OPEN_MULTI_POLICIES_MODAL","SORT_POLICIES","SWITCH_CHECKBOX_STATE","closeMultiPoliciesModal","loadMultiPolicies","loadPoliciesCardInformation","loadPoliciesPaymentNumber","openMultiPoliciesModal","sortPolicies","switchCheckboxState","CONTACTS_FORM_INITIALIZED","DELETE_TAG_NUMBER","DELETE_TAG_NUMBER_FAILED","DELETE_TAG_NUMBER_REQUESTED","EDIT_MODE_SET","FAMILY_MEMBER_NAME_ERROR_MESSAGE_SETTED","FAMILY_MEMBER_NAME_SETTED","FAMILY_MEMBER_PHONE_NUMBER_ERROR_MESSAGE_SETTED","FAMILY_MEMBER_PHONE_NUMBER_SETTED","FIGO_TAG_MODAL_HIDDEN","FIGO_TAG_MODAL_SHOWN","FIRST_STEP_SHOWED","GET_PET_TAG_INFO","MESSAGE_TO_FINDER_SETTED","PET_ID_SETTED","PET_TAG_INFO_EDIT_MODE_SET","PET_TAG_INFO_LOAD_FAILED","PET_TAG_INFO_LOADED","PET_TAG_INFO_POST_FAILED","PET_TAG_INFO_POST_REQUESTED","PET_TAG_INFO_POSTED","PET_TAG_INFO_REQUESTED","PET_TAG_SETTED","REMOVE_STEP_SHOWED","SECOND_STEP_SHOWED","SET_PET_TAG_INFO","TAG_NUMBER_DELETED","TAG_NUMBER_ERROR_MESSAGE_SETTED","TAG_NUMBER_MODE_SET","contactsFormInitialized","deleteTagNumber","deleteTagNumberFailed","deleteTagNumberRequested","editModeSet","familyMemberNameErrorMessageSetted","familyMemberNameSetted","familyMemberPhoneNumberErrorMessageSetted","familyMemberPhoneNumberSetted","figoTagModalHidden","figoTagModalShown","firstStepShowed","getPetTagInfo","messageToFinderSetted","petIdSetted","petTagInfoEditModeSet","petTagInfoLoaded","petTagInfoLoadFailed","petTagInfoPosted","petTagInfoPostFailed","petTagInfoPostRequested","petTagInfoRequested","petTagSetted","setPetTagInfo","removeStepShowed","secondStepShowed","tagNumberDeleted","tagNumberErrorMessageSetted","tagNumberModeSet","ADD_ATTACHMENTS_LOAD","CLAIM_DATE_CHANGED","CLAIM_REIMBURSEMENT_CHECK_CHANGED","CLAIM_REIMBURSEMENT_DIRECT_CHANGED","CREATE_CLAIM","FILE_CLAIM_COMPLETED","FILE_CLAIM_NOT_COMPLETED","FILE_CLAIMS_AMOUNT_CHANGED","FILE_CLAIMS_ANOTHER_PET_INSURANCE_CHANGED","FILE_CLAIMS_ANOTHER_PET_INSURANCE_SELECTED","FILE_CLAIMS_ATTACHMENT_ADDED","FILE_CLAIMS_ATTACHMENT_REMOVED","FILE_CLAIMS_ATTACHMENT_UPDATED","FILE_CLAIMS_DETAILS_CHANGED","FILE_CLAIMS_NAME_CHANGED","FILE_CLAIMS_RESTART","FILE_CLAIMS_TYPE_CHANGED","INITIAL_TIME_SET","SELECTED_PET_CHANGED","TERM_AND_CONDITION_ONE_SELECTED","TERM_AND_CONDITION_TWO_SELECTED","addAttachmentsLoad","claimDateChanged","claimReimbursementCheckChanged","claimReimbursementDirectChanged","createClaim","fileClaimCompleted","fileClaimNotCompleted","fileClaimsAmountChanged","fileClaimsAnotherPetInsuranceChanged","fileClaimsAnotherPetInsuranceSelected","fileClaimsAttachmentAdded","fileClaimsAttachmentRemoved","fileClaimsAttachmentUpdated","fileClaimsDetailsChanged","fileClaimsNameChanged","fileClaimsRestart","fileClaimsTypeChanged","initialTimeSet","selectedPetChanged","termAndConditionOneSelected","termAndConditionTwoSelected","CONTACT_PET_FAMILY","LOST_PET_TAG_CHANGED","RESTART_PET_TAG_SEARCH","SEARCH_PET_TAG","SEARCH_PET_TAG_ATTEMPT","SEARCH_PET_TAG_FAILED","SEARCH_PET_TAG_FOUND","SEARCH_PET_TAG_RESET","SEND_MESSAGE_FAILED","SEND_MESSAGE_SUCCEED","contactPetFamily","lostPetTagChanged","restartPetTagSearch","searchPetTag","searchPetTagAttempt","searchPetTagFailed","searchPetTagFound","searchPetTagReset","sendMessageFailed","sendMessageSucceed","ARTICLES_CLEANED","ARTICLES_LOAD_FAILED","ARTICLES_LOADED","GET_ARTICLES","GET_CONTACT_BRAND_DATA","GET_CONTACT_BRAND_DATA_LOADED","GET_PET_WISDOM","GET_PET_WISDOM_ATTEMPT","PET_WISDOM_FAILED","PET_WISDOM_LOADED","articlesCleaned","articlesLoaded","articlesLoadFailed","getArticles","getContactBrandData","getContactBrandDataLoaded","getPetWisdom","getPetWisdomAttempt","petWisdomFailed","petWisdomLoaded","CHANGE_NAME","CHANGE_NAME_FAILED","CHANGE_NAME_RESTARTED","CHANGE_NAME_SUCCESS","CREATE_FOLDER","CREATE_FOLDER_FAILED","CREATE_FOLDER_RESET","CREATE_FOLDER_SUCCESS","DELETE_FAILED","DELETE_FILES","DELETE_FOLDER","DELETE_RESTARTED","DELETE_SUCCESS","DOWNLOAD_FILES","ERROR_VIEW_FILE","FILE_PERMISSIONS_LOADED","FILE_TO_UPLOAD_REMOVED","FILE_TO_UPLOAD_UPDATED","FILES_DOWNLOADED","FILES_MARKED_AS_READ","FILES_MOVED","FILES_TO_UPLOAD_ADDED","FILES_UPLOADED","FOLDER_LOADED","FOLDER_MOVED","FOLDER_STRUCTURE_LOADED","GET_RECENT_FILES","LOAD_FOLDER_CONTENT","LOAD_FOLDER_FAILED","LOAD_FOLDER_STRUCTURE","MARK_FILES_AS_READ","MARK_FILES_AS_READ_ATTEMPTED","MOVE_FILES","MOVE_FILES_FAILED","MOVE_FILES_RESTARTED","MOVE_FOLDER","MOVE_FOLDER_RESTARTED","OPEN_MEDIA_FILE_TO_BLOB","RECENT_FILES_LOAD_FAILED","RECENT_FILES_LOADED","RECENT_FILES_REQUESTED","REFRESH_FOLDER_CONTENT","SHOW_VIEW_FILE","SHOWED_VIEW_FILE","TAG_PET_FILE","TAG_PET_FILE_FAILED","TAG_PET_FILE_RESTARTED","TAG_PET_FILE_SUCCESS","UPLOAD_FILES","UPLOAD_FILES_RESTARTED","changeName","changeNameFailed","changeNameRestarted","changeNameSuccess","createFolder","createFolderFailed","createFolderReset","createFolderSuccess","deleteFailed","deleteFiles","deleteFolder","deleteRestarted","deleteSuccess","downloadFiles","errorViewFile","filePermissionsLoaded","filesDownloaded","filesMarkedAsRead","filesMoved","filesToUploadAdded","filesUploaded","fileToUploadRemoved","fileToUploadUpdated","folderLoaded","folderMoved","folderStructureLoaded","getRecentFiles","loadFolderContent","loadFolderFailed","loadFolderStructure","markFilesAsRead","markFilesAsReadAttempted","moveFiles","moveFilesFailed","moveFilesRestarted","moveFolder","moveFolderRestarted","openMediaFileToBlob","recentFilesLoaded","recentFilesLoadFailed","recentFilesRequested","refreshFolderContent","showedViewFile","showViewFile","tagPetFile","tagPetFileFailed","tagPetFileRestarted","tagPetFileSuccess","uploadFiles","uploadFilesRestarted","STARTUP","STARTUP_FROM_CACHE","startup","startupFromCache","GET_MULTIBRAND_WEB_VIEW","WEB_VIEW_MULTIBRAND_ATTEMPT","WEB_VIEW_MULTIBRAND_FAILED","WEB_VIEW_MULTIBRAND_RESET","WEB_VIEW_MULTIBRAND_RESULT_LOADED","WEB_VIEW_MULTIBRAND_SUCCESS","getMultibrandWebView","webViewMultibrandAttempt","webViewMultibrandFailed","webViewMultibrandReset","webViewMultibrandResultLoaded","webViewMultibrandSuccess","DISPLAY_CONFIRM_CHANGES_MODAL","DISPLAY_EMAIL_CHANGE_MODAL","DISPLAY_FORGOT_PASSWORD_MODAL","DISPLAY_UNSAVED_MODAL","MY_ACCOUNT_EMAIL_CHANGED","MY_ACCOUNT_HAS_CHANGES","displayConfirmChangesModal","displayEmailChangeModal","displayForgotPasswordModal","displayUnsavedModal","myAccountEmailChanged","myAccountHasChanges","ADD_PET","ADD_PET_FAILED","ADD_PET_RESTARTED","BREED_DATA_LOADED","DELETE_PET","DELETE_PET_FAILED","EDIT_PET","LOAD_BREED_LIST","LOAD_MICROCHIP_DATA","LOAD_PET_PROFILE","MICROCHIP_DATA_CLEARED","MICROCHIP_DATA_LOADED","MICROCHIP_FAILED","MICROCHIP_MODAL_VISIBLE","MICROCHIP_SAVED","PET_ADDED","PET_DELETED","PET_EDITED","PET_PHOTO_REMOVED","PET_PROFILE_FAILED","PET_PROFILE_LOAD_ATTEMPT","PET_PROFILE_LOADED","PET_PROFILE_REDIRECTED","REMOVE_PET_PHOTO","REMOVE_PET_PHOTO_FAILED","SAVE_MICROCHIP","SELECTED_PET","addPet","addPetFailed","addPetRestarted","breedDataLoaded","deletePet","deletePetFailed","editPet","loadBreedList","loadMicrochipData","loadPetProfile","microchipDataCleared","microchipDataLoaded","microchipFailed","microchipModalVisible","microchipSaved","petAdded","petDeleted","petEdited","petPhotoRemoved","petProfileLoadAttempt","petProfileLoaded","petProfileRedirected","petProfileFailed","removePetPhoto","removePetPhotoFailed","saveMicrochip","ADD_CUSTOM_TO_FAVORITES","ADD_CUSTOM_TO_FAVORITES_FAILED","ADD_MANUALLY_VET_TO_FAVORITES","ADD_POINT_INTEREST_FAILED","ADD_TO_FAVORITES","ADD_TO_FAVORITES_FAILED","ADDED_TO_FAVORITES","CHECK_IF_HAS_PRIMARY_VET","CLEAN_MY_VETS_ERRORS","GET_ALL_FAVORITES","GET_ALL_FAVORITES_ATTEMPT","HAS_PRIMARY_VET_CHECKED","PRIMARY_VET_SAVE_FAILED","PRIMARY_VET_SAVED","REMOVE_VET","REMOVE_VET_FAILED","REMOVE_VET_SUCCESS","SAVE_PRIMARY_VET","SEARCH_PRIMARY_VET","SEARCH_VETS","SET_FAVORITES","VALIDATE_ZIP_CODE","VALIDATE_ZIP_CODE_ATTEMPT","VALIDATE_ZIP_CODE_FAILED","VALIDATE_ZIP_CODE_SUCCESS","VET_CUSTOM_SAVED_CLEARED","VET_ZIP_CODE_CHANGED","VETS_SEARCH_CLEARED","VETS_SEARCHED","addCustomToFavorites","addCustomToFavoritesFailed","addedToFavorites","addManuallyVetToFavorites","addPointInterestFailed","addToFavorites","addToFavoritesFailed","checkIfHasPrimaryVet","cleanMyVetsErrors","getAllFavorites","getAllFavoritesAttempt","hasPrimaryVetChecked","primaryVetSaved","primaryVetSaveFailed","removeVet","removeVetFailed","removeVetSuccess","savePrimaryVet","searchPrimaryVet","searchVets","setFavorites","validateZipCodeAttempt","validateZipCodeFailed","validateZipCodeSuccess","vetCustomSavedCleared","vetsSearchCleared","vetsSearched","vetZipCodeChanged","CREATE_ONE_INC_SESSION","ONE_INC_DEFAULTS_PAYMENT_FAILED","ONE_INC_DEFAULTS_PAYMENT_LOADED","ONE_INC_LOAD_DEFAULT_PAYMENTS","ONE_INC_PAYMENT_BANK_SAVED","ONE_INC_PAYMENT_CREDIT_CARD_SAVED","ONE_INC_PAYMENT_RESET","ONE_INC_SESSION_CREATED","ONE_INC_SESSION_REMOVED","createOneIncSession","oneIncDefaultsPaymentFailed","oneIncDefaultsPaymentLoaded","oneIncLoadDefaultPayments","oneIncPaymentBankSaved","oneIncPaymentCreditCardSaved","oneIncPaymentReset","oneIncSessionCreated","oneIncSessionRemoved","ACCEPT_ADDRESS_UPDATE","ADDRESS_UPDATED","ADDRESS1_CHANGED","ADDRESS2_CHANGED","APPLY_ADDRESS_UPDATE","AVATAR_PICTURE_REMOVED","CANCEL_ADDRESS_UPDATE","CHANGE_PROFILE_PICTURE","CHANGE_PROFILE_PICTURE_FAILED","CHANGE_PROFILE_PICTURE_RESTART","CHANGE_PROFILE_PICTURE_SUCCESS","CITY_CHANGED","CLOSE_ENDORSEMENT_SUCCESS_MODAL","CONFIRM_ADDRESS_CHANGE_MODAL_CHANGED","COVER_PICTURE_REMOVED","DISPLAY_ENDORSEMENT_MESSAGE_MODAL","DISPLAY_ENDORSEMENT_SUCCESS_MODAL","DO_PET_LOAD","ENDORSEMENT_LOADED","FIRST_NAME_CHANGED","FIRST_NAME_RESET","LAST_NAME_CHANGED","LAST_NAME_RESET","NAMES_UPDATED","PETS_LOAD_ATTEMPT","PETS_LOADED","PETS_LOADED_FINISHED","PHONES_UPDATED","PRIMARY_PHONE_CHANGED","REFRESH_PERSONAL_INFORMATION","REFRESH_PETS","REMOVE_AVATAR_PICTURE","REMOVE_AVATAR_PICTURE_FAILED","REMOVE_COVER_PICTURE","REMOVE_COVER_PICTURE_FAILED","RESET_ADDRESS","RESET_ENDORSEMENT_DATA","RESET_NAME","RESET_PHONE","SAVE_USER_INFO_ADDRESS","SECONDARY_PHONE_CHANGED","SECONDARY_PHONE_RESET","SOCIAL_PROFILE_LOAD_ATTEMPT","SOCIAL_PROFILE_LOADED","SOCIAL_PROFILE_LOADED_FINISHED","STATE_CHANGED","STORE_STATES","UPDATE_ADDRESS","UPDATE_INSURANCE_INFORMATION","UPDATE_INSURANCE_INFORMATION_FAILED","UPDATE_INSURANCE_INFORMATION_SUCCESS","UPDATE_NAMES","UPDATE_PHONES","UPDATE_PHONES_ERROR","ZIPCODE_CHANGED","acceptAddressUpdate","addressUpdated","address1Changed","address2Changed","applyAddressUpdate","cancelAddressUpdate","confirmAddressChangeModalChanged","cityChanged","closeEndorsementSuccessModal","displayEndorsementSuccessModal","displayEndorsementMessageModal","endorsementLoaded","doPetLoad","firstnameChanged","firstNameChanged","lastnameChanged","lastNameChanged","namesUpdated","petsLoaded","petsLoadAttempt","petsLoadedFinished","phonesUpdated","refreshPersonalInformation","primaryPhoneChanged","refreshPets","resetEndorsementData","resetAddress","socialProfileLoadAttempt","firstNameReset","lastNameReset","resetName","resetPhone","secondaryPhoneReset","saveUserInfoAddress","secondaryPhoneChanged","socialProfileLoaded","socialProfileLoadedFinished","storeStates","stateChanged","updateAddress","updateNames","updatePhones","updatePhonesError","avatarPictureRemoved","changeProfilePicture","changeProfilePictureFailed","changeProfilePictureRestart","changeProfilePictureSuccess","coverPictureRemoved","removeAvatarPicture","removeAvatarPictureFailed","removeCoverPicture","removeCoverPictureFailed","updateInsuranceInformation","updateInsuranceInformationFailed","updateInsuranceInformationSuccess","zipcodeChanged","ALL_PETS_GROUPED","CHANGE_COVERAGE_MULTIMODAL_FAILED","CHANGE_COVERAGE_MULTIMODAL_LOADED","CHANGE_COVERAGE_PREVIEW_LOADED","CHANGE_DEDUCTIBLE_LEGEND","CLEAR_POLICY_NOTIFICATIONS","DEDUCTIBLE_CHANGED","GET_CHANGE_COVERAGE_MULTIMODAL","GET_CHANGE_COVERAGE_PREVIEW","GET_CHANGE_COVERAGE_PREVIEW_ERROR","GET_MULTIBRAND_DEFAULT_POLICY","GET_MULTIBRAND_DEFAULT_POLICY_ERROR","GET_MULTIBRAND_DEFAULT_POLICY_LOADED","GET_MULTIBRAND_POLICIES","GET_MULTIBRAND_POLICIES_ERROR","GET_MULTIBRAND_POLICIES_LOADED","GET_POLICY_DETAIL","GET_POLICY_DETAIL_ERROR","GET_POLICY_DETAIL_LOADED","GET_WAITING_PERIODS","INITIAL_POWER_UPS","LOAD_MULTI_MODAL_DATA","LOAD_PLAN_SUMMARY_SEE_MORE_INFO","LOAD_PLAN_SUMMARY_SEE_MORE_INFO_ATTEMPT","LOAD_POLICIES_OVERVIEW","LOAD_POLICY_NOTIFICATIONS","LOAD_WHAT_WE_COVER_INFO","LOAD_WHAT_WE_COVER_INFO_ATTEMPT","LOGGED_IN_WITHOUT_PETS_RESET","MULTI_MODAL_DATA_LOADED","PETS_GROUPED","PLAN_SUMMARY_SEE_MORE_CLICKED","PLAN_SUMMARY_SEE_MORE_INFO_LOADED","POLICIES_ERROR","POLICIES_OVERVIEW_LOADED","POLICY_DETAIL_CLEANED","POLICY_NOTIFICATIONS_LOADED","POWER_UP_SELECTED","QUOTE_POWER_UP_CHANGED","QUOTE_TOTAL_RECALCULATED","RATE_COVERAGE","RATE_COVERAGE_ERROR","RATE_COVERAGE_SUCCESS","RATE_QUOTE_UPDATE_ATTEMPT","RATE_QUOTE_UPDATE_LOADED","REFRESH_POLICIES","REIMBURSEMENT_CHANGED","RESTART_RATE","REVIEW_CHANGES_VISIBLE_CHANGED","SELECTED_PLAN_CHANGED","STORE_ALL_POLICIES","STORE_POLICIES","SUBMIT_CHANGE_COVERAGE","SUBMIT_CHANGE_COVERAGE_FAILED","SUBMIT_CHANGE_COVERAGE_SUCCESS","UPDATE_POWER_UP","VALIDATE_CHANGE_COVERAGE","VALIDATE_CHANGE_COVERAGE_CLEARED","VALIDATE_CHANGE_COVERAGE_FAILED","VALIDATE_CHANGE_COVERAGE_SUCCESS","WAITING_PERIODS_LOADED","WHAT_WE_COVER_INFO_LOADED","YOUNG_PET_MODAL_CLOSED","YOUNG_PET_MODAL_OPEN","allPetsGrouped","changeCoverageMultimodalFailed","changeCoverageMultimodalLoaded","changeCoveragePreviewLoaded","changeDeductibleLegend","clearPolicyNotifications","deductibleChanged","getChangeCoverageMultimodal","getChangeCoveragePreview","getChangeCoveragePreviewError","getMultibrandDefaultPolicy","getMultibrandDefaultPolicyError","getMultibrandDefaultPolicyLoaded","getMultibrandPolicies","getMultibrandPoliciesError","getMultibrandPoliciesLoaded","getPolicyDetail","getPolicyDetailError","getPolicyDetailLoaded","getWaitingPeriods","initialPowerUps","loadMultiModalData","loadPlanSummarySeeMoreInfo","loadPlanSummarySeeMoreInfoAttempt","loadPoliciesOverview","loadPolicyNotifications","loadWhatWeCoverInfo","loadWhatWeCoverInfoAttempt","loggedInWithoutPetsReset","multiModalDataLoaded","petsGrouped","planSummarySeeMoreClicked","planSummarySeeMoreInfoLoaded","policiesError","policiesOverviewLoaded","policyDetailCleaned","policyNotificationsLoaded","powerUpSelected","quotePowerUpChanged","quoteTotalRecalculated","rateCoverage","rateCoverageError","rateCoverageSuccess","rateQuoteUpdateAttempt","rateQuoteUpdateLoaded","refreshPolicies","reimbursementChanged","restartRate","reviewChangesVisibleChanged","selectedPlanChanged","storeAllPolicies","storePolicies","submitChangeCoverage","submitChangeCoverageFailed","submitChangeCoverageSuccess","updatePowerUp","validateChangeCoverage","validateChangeCoverageCleared","validateChangeCoverageFailed","validateChangeCoverageSuccess","waitingPeriodsLoaded","whatWeCoverInfoLoaded","youngPetModalClosed","youngPetModalOpen","CHECK_PASSWORD_SETUP","DO_RESET_PASSWORD","GET_NEW_PASSWORD_TOKEN","GET_NEW_PASSWORD_TOKEN_FAILED","NEW_PASSWORD_TOKEN_GENERATED","PASSWORD_SETUP_CHECKED","PASSWORD_SETUP_RESTARTED","RESET_PASSWORD_FAILED","RESET_PASSWORD_SUCCESS","RESET_PASSWORD_TOKEN_LOADED","SET_UP_NEW_PASSWORD","SET_UP_NEW_PASSWORD_FAILED","SET_UP_NEW_PASSWORD_SUCCESS","VALID_RESET_PASSWORD_TOKEN","checkPasswordSetup","doResetPassword","getNewPasswordToken","getNewPasswordTokenFailed","newPasswordTokenGenerated","passwordSetupChecked","passwordSetupRestarted","resetPasswordFailed","resetPasswordSuccess","resetPasswordTokenLoaded","setUpNewPassword","setUpNewPasswordFailed","setUpNewPasswordSuccess","validResetPasswordToken","ACCEPT_TERMS_OF_SERVICE","ATTEMPT_PRIVATE_TOKEN","ATTEMPT_TEMPORARY_TOKEN","BANNER_VISIBLE_CHANGED","CLEAR_ERROR","CLOSE_MODAL","CONVERT_IMPERSONATE_CUSTOMER_ID","CUSTOMER_INFORMATION_FAILED","CUSTOMER_INFORMATION_LOADED","DO_LOGIN","DO_LOGIN_IMPERSONATE","DO_LOGOUT","FORCE_LOGOUT","GET_AUTH_CONFIG_ATTEMPT","GET_AUTH_CONFIG_LOADED","GET_AUTH_METHOD_CONFIGURATION","GET_PRIVATE_TOKEN","GET_PROFILE","GET_TEMPORARY_TOKEN","LOAD_CUSTOMER_INFORMATION","LOAD_DATA_FOR_PRIVATE_TOKEN","LOG_IN","LOG_OUT","PRIVATE_TOKEN_COMPLETED","PRIVATE_TOKEN_FAILED","REFRESH_TOKEN","RESET_LOGIN_ERROR","SAVE_IMPERSONATE_CUSTOMER_ID","SAVE_USER_INFO","SAVE_USER_TERMS_OF_SERVICE","SESSION_ERROR","SESSION_EXPIRED","SET_PRIVATE_TOKEN","SET_TEMPORARY_TOKEN","STARTUP_FINISHED","TEMPORARY_TOKEN_COMPLETED","TEMPORARY_TOKEN_FAILED","TEMPORARY_TOKEN_RESET","TERMS_OF_SERVICE_ACCEPTED","TOKEN_CLAIM_LOADED","TOKEN_CUSTOMER_LOADED","TOKEN_POLICY_LOADED","TOKEN_REFRESHED","UPDATE_SESSION","acceptTermsOfService","attemptPrivateToken","attemptTemporaryToken","bannerVisibleChanged","clearError","closeModal","convertImpersonateCustomerId","customerInformationFailed","customerInformationLoaded","doLogin","doLogout","forceLogout","getAuthConfigAttempt","getAuthConfigLoaded","getPrivateToken","getProfile","getTemporaryToken","loadCustomerInformation","loadDataForPrivateToken","logIn","logOut","oneTimePasscodeFailed","oneTimePasscodeRestarted","oneTimePasscodeValidated","privateTokenCompleted","privateTokenFailed","resetLoginError","saveImpersonateCustomerId","saveUserInfo","saveUserTermsOfService","sendOneTimePasscode","sendOneTimePasscodeFailed","sendOneTimePasscodeSuccess","sessionError","sessionExpired","setPrivateToken","setTemporaryToken","startupFinished","temporaryTokenCompleted","temporaryTokenFailed","temporaryTokenReset","termsOfServiceAccepted","tokenClaimLoaded","tokenCustomerLoaded","tokenPolicyLoaded","tokenRefreshed","updateSession","GET_FEATURE_FLAGS","GET_FEATURE_FLAGS_FAILED","GET_FEATURE_FLAGS_LOADED","LOAD_ZIP_CODE_DETAILS","LOAD_ZIP_CODE_DETAILS_FAILED","LOAD_ZIP_CODE_DETAILS_RESTARTED","RESET_INFORMATION","ZIP_CODE_DETAILS_LOADED","getFeatureFlags","getFeatureFlagsFailed","getFeatureFlagsLoaded","loadZipCodeDetails","loadZipCodeDetailsFailed","loadZipCodeDetailsRestarted","resetInformation","zipCodeDetailsLoaded","BREED_MULTIBRAND_VALIDATION_FAILED","BREED_MULTIBRAND_VALIDATION_SUCCEED","GET_ORCA_POWER_UP","ORCA_GET_POWER_UP_ATTEMPT","ORCA_GET_POWER_UP_FAILED","ORCA_GET_POWER_UP_LOADED","RESET_VALIDATION_BREED_MULTIBRAND","VALIDATE_BREED_MULTIBRAND","breedMultibrandValidationFailed","breedMultibrandValidationSucceed","getOrcaPowerUp","orcaGetPowerUpAttempt","orcaGetPowerUpFailed","orcaGetPowerUpLoaded","resetValidationBreedMultibrand","validateBreedMultibrand","USER_COMPANY_KEY","USER_INFO_KEY","IMPERSONATE_KEY","IMPERSONATE_EMAIL","BANNER_PREFERENCES_KEY","CUSTOMER_API_TOKEN","CLAIMS_API_TOKEN","POLICY_API_TOKEN","API_TOKEN","WEBVIEW_API_TOKEN","SOCIAL_API_TOKEN","contentfulPages","BASE_IP","CLIENT_NAME","saveDataOnSession","sessionStorage","setItem","saveData","localStorage","getData","getItem","removeData","removeItem","removeAllData","clear","IDOR_HEADER_V2","X_API_KEY_ADMIN","API_HEADER_V1","API_HEADER_V2","call","anonymous","dispatch","extraHeaders","responseJson","returnObject","fullUrl","tokenKey","accessToken","getApiToken","headers","authorization","version","devError","statusCode","success","requestData","body","IsValid","status","json","detail","returnableData","ok","get","getApiV2","queryParams","postApiV2","delApiV2","patchApiV2","getIDORV2","path","postBlob","postV2","del","patch","apiCallWithApiKey","params","options","Authorization","res","getAnonymous","postAnonymous","Data","put","billingSaga","store","all","takeLatest","getFeatureFlagByName","ffName","featureFlags","select","settings","flags","useCustomerApiForSagas","useCustomerInboxDocsApiV2ForSagas","_featureFlags$flags2","PetCloudCustomerApiV2InboxAndDocs","useClaimApiV2ForSagas","_featureFlags$flags3","_ref4","PetCloudClaimsApiV2","useCustomerApiV2MyPetsForSagas","_featureFlags$flags4","_ref5","PetCloudCustomerApiV2MyPets","useClaimsApiV1ForSagas","_featureFlags$flags5","PetCloudClaimsApiV1","useCustomerApi150617V1ForSagas","_featureFlags$flags7","PetCloudCustomer150617ApiV1","usePolicyApiV1ForSagas","useClaimsAPIV2T155969ForSagas","_featureFlags$flags8","PetCloudClaimsAPIV2T155969","usePolicyApiV1T153269ForSagas","usePetCloudManualVetFlowForSagas","useCustomerV1T176413ForSagas","getClaimsUser","payload","loadMore","offset","page","petId","query","totalCalimsResponse","totalClaims","getAttachmentsByClaim","action","claimId","cliamId","getClaimByNumber","claimNumber","submitClaimError","claimError","userId","os","platform","content","ClaimFailError","DeviceInfo","family","FrontEndError","Json","AttachmentsCount","Attachments","User","fileClaims","billingPayments","personalInformation","userInfo","CustomerId","paymentType","PreferredReimbursementMethod","lostDate","lostDateDay","getDate","lostDateMount","getMonth","lostDateFormated","getFullYear","postBody","AmtClaimed","amount","attachments","DownloadBinary","binary","Filename","filename","Filesize","size","ClaimType","claimTypeText","CoverageCodeId","claimType","Description","claimsDetails","Euthanized","EuthanizedAdvised","HospitalAdmittedDate","HospitalDischargeDate","HospitalDuration","IllnessStartDate","LossDate","NotifiedOthers","NotifiedPolice","OtherInsurance","anotherPetInsurance","PaymentType","PolicyNumber","RelatedTreamentDscr","SaveAsDefault","VacationCancelled","VacationPlanned","AttachmentsError","OtherInsuranceDscr","ACHAccountNumber","AccountNumber","ACHAccountType","AccountType","ACHRoutingNumber","RoutingNumber","isSuccess","Message","saveAttachment","ClaimId","t","_file$extension","usePetCloudClaimsApiV1T164407ForSagas","ContentType","FileContent","FileName","percentage","uploadValid","valid","errorMsg","files","progress","loading","getClaimsDataLegacy","getClaimsDatav2","payloadFormatted","marketChannelIds","pageNumber","petIds","payloadFormated","Items","getClaimsData","toBeExecuted","useClaimsAPIV2T159603ForSagas","fetchClaimsResults","claimsData","fetchClaimById","PetCloudClaimsV1T1T174557","usePetCloudClaimsV1T1T174557ForSagas","claimSteps","useClaimApiV2","loadInitialClaimbotSteps","generalInformation","loadGeneralInformationClaimbot","initialSteps","step","InitialSteps","claimTypeId","keyName","otherSteps","ClaimTypeId","KeyName","Petid","doLoadAdditionClaimbotSteps","useClaimsApiV2","_featureFlags$flags6","useClaimsApiV2ForSagas","PolicyMarketingChannelId","backendError","frontendError","userResponses","bodyRequest","userResponse","boolParsing","att","ClaimsAPIV1T165578","useClaimsAPIV1T165578ForSagas","exception","hasClaimFigo","toPhone","postId","ImageUrl","PoliciesInfo","getApplicationMessages","usePetCloudRNNotificationV1T159707ForSagas","commonSaga","DUPLICATED_TAG_NUMBER_ERROR","getFigoPetTagInfo","setFigoPetTagInfo","urlPref","petTagInfo","deleteFigoTagNumber","doSearchPetTag","_petTagResponse","petTag","useCustomerApiV2MyPets","petTagResponse","BreedName","breedName","Cit","city","imageUrl","Note","note","PetAge","petAge","PetName","petName","Type","type","_petTagResponse2","_petTagResponse3","menssage","lostPetTag","phoneNumber","finderName","requestOptions","FinderName","PetTag","Phone","published","skip","getContactData","brandInformation","companyId","isSocialApi","useSocialV1T169153ForSagas","existSocialScope","getPublished","apiCallMethod","insuranceCompanies","Companies","companiesDistinct","from","Set","homeSaga","useCustomerInboxDocsApiV2","responseData","filesIds","source","fileId","isRead","FileId","IsRead","destinationFolderId","service","FileIds","MoveFolderId","folderIdToMove","requestV1","FolderIdToMove","MoveToParentForumTopicId","requestV2","folderId","parentFolderId","useCustomerApiV2","isFolder","itemId","request","FolderId","NewFolderName","NewFileName","FolderName","errorMessage","downloadMedia","resourceId","open","MediaUrl","singleFile","singleFileInfo","fileIds","folderIds","defaultZipName","toISOString","usePetCloudCustomerV1T176448","usePetCloudCustomerV1T176448ForSagas","responseUrlBlob","useCustomerApi","parseInt","FolderIds","downloadPayload","zipName","fileDownloadName","fileContents","newBlob","Blob","currentFolderId","petIdList","PetsIds","parentId","folderName","simulateLoading","fileKey","newValues","uploadFile","_ref13","hideDelete","uploadFilesPerBatch","_ref14","orderIds","batchSize","currentBatch","batch","contentType","OrderIds","nextBatch","loadBlobFile","_ref15","Url","productKey","e","isPolicyApi","usePetCloudPolicyV1T172596ForSagas","webviewsData","respWebviewsData","hasMultipleOrcaPolicies","HasMultipleOrcaPolicies","policyProvider","PolicyProvider","getPetPolicies","policies","pet","PetInformation","PetId","Policy","BillingInformation","groupPets","policiesData","allPets","pets","getPolicySummary","usePolicySummaryV1","usePolicySummaryV1ForSagas","apiUrl","validPolicies","policyData","policiesToUpdate","Status","getPoliciesPaymentNumber","loadPolicyBenefits","urlService","usePolicyApiV1","usePolicyApiV1T153276","_featureFlags$flags11","PetCloudPolicyApiV1T153276","usePolicyApiV1T153276ForSagas","usePolicyApiV1T153274","_featureFlags$flags9","PetCloudT153274","usePolicyApiV1T153274ForSagas","effectiveDate","stateAbbr","usePolicyApiV1T153269","usePolicyApiV1T159611","usePolicyApiV1T159611ForSagas","apiMethod","_response$Data","isValid","Valid","_ref16","usePolicyV1T176256ForSagas","_ref17","_ref18","policyId","policiesSaga","petToAdd","addedPetId","petBreedsUrlBase","dogBreeds","catBreeds","companiesResponse","companies","MicrochipId","OrderId","getPetProfile","myPets","selectedPetId","petProfileId","zipCode","queryParms","category","latitude","longitude","radius","searchPetFriendly","sortBy","term","usePetCloudSocialV1T186305ForSagas","Places","usePetCloudVetValidationT173886ForSagas","categoryId","placeId","providerId","getFavorites","address","fax","state","vetName","stateId","usePetCloudCustomerV1T169318","usePetCloudCustomerV1T169318ForSagas","addPointInterestURL","addPointInterestResponse","PointInterestId","userDateTime","isVisitedVet","isReponseValid","searchPrimaryVets","useCustomerApiV1T162824","_featureFlags$flags10","PetCloudCustomerApiV1T162824","useCustomerApiV1T162824ForSagas","zipcode","selectedVetId","isCustomVet","vetCompany","vetCity","usePetCloudManualVetFlow","isValidResponse","HasManualVet","StateId","VetCity","VetCompany","SelectedVetID","portalOneSessionKey","Result","loadDefaultpayments","BillingInfoList","billingInfoList","DefaultPaymentProfileIdACH","defaultTokenACH","DefaultPaymentProfileIdCC","defaultTokenCC","haveDefault","isTwoDefaults","bankAccountDefault","creditCardDefault","ConfirmNewPassword","confirmPassword","Email","NewPassword","newPassword","Token","customerEmail","customerHasPassword","HasSavedPassword","EV1","policyBrand","pms","eventName","EV4","claimDescription","dateOfLoss","lastBotText","lastInputFromUser","MIXPANEL_LOGIN_EVENTS","b2cStarted","b2cSuccess","getApiTokens","getPersonalInfo","getPersonalInfoError","getPersonalInfoSuccess","getTerms","getTermsError","getTermsSuccess","invalidCustomerId","registerB2C","registerB2CError","registerB2CSuccess","sendLog","syncUserInformationStoreWithRedux","accountLogin","createLogAuth","dataDogTag","httpStatus","mixpanelKey","useCustomerAPIV1","mixpanel","track","urlLog","formattedError","HttpStatusCode","OperatingSystem","UserAgent","getUserInformation","useCustomerApiV1","personalInfoNullSafe","Line1","Line2","Phone1","Phone2","OtherPhoneNumber","PhoneNumber","Company","impersonateEmail","adminEmail","customerId","CustomerGuid","_response","_response2","_response3","getUserTermsOfService","loadCachedBannerVisible","visible","parse","startUpApp","handleB2CToken","termOfService","personalInfo","b2cToken","isImpersonate","AppVersion","Grant_Type","Impersonate","OsType","Password","doBannerVisibleChanged","bannerPreferences","doLoadMultiModalData","session","allPolicies","publicToken","loadDataPrivateToken","usePetCloudCustomerV1T174565ForSagas","TOKEN_LEGACY","CUSTOMER_LEGACY","privateToken","tokenScope","Scope","convertCustomerId","termsOfServiceVersionId","TermsVersionId","_featureFlags$flags","PetCloudCustomerApiV1","useCustomerApiV1ForSagas","marketingChannelId","_response$Data2","_response$Data3","_response$Data4","_response$Data5","_response$Data6","_response$Data7","_response$Data8","_response$Data9","addressPart1","AddressPart1","addressPart2","AddressPart2","displayName","DisplayName","fullName","FullName","originId","OriginId","phoneNumber1","PhoneNumber1","phoneNumber2","PhoneNumber2","getStates","validateHomeDataChanged","address1","address2","firstName","FirstName","isFirstNameValid","isLastNameValid","isPrimaryPhoneValid","isSecondaryPhoneValid","primaryPhone","secondaryPhone","IsNameEditable","ZipCode","trimStart","trimEnd","requestBody","successCallback","backendErrorCallback","errorCallback","common","newEmail","showConfirmChangesModal","LoginEmail","password","oldPassword","petCloudEmail","_action$payload","noEndorsement","PriceChange","UserAddressEndorsements","multiplePets","getPaymentHistory","itemsOfFirstPage","itemsPerPage","pageIndex","paymentHistory","paymentHistoryCurrentPage","paymentHistoryData","paymentHistoryTotalItems","TotalItems","paymentHistoryTotalPages","TotalPages","getPolicyInfo","paymentPayload","PolicyId","getBillingInfo","saveReimbursementMethod","reimbursementData","useClaimsAPIV2T155969","policy","selectedPolicy","useClaimsApiV1","routingNumberUrl","routingNumberResponse","paymentMethodData","isCreditCard","paymentCategory","dataCreditCard","cardExpirationMonth","cardExpirationYear","cardholderName","customerName","cardType","lastFourDigits","tokenId","dataAcc","LastFourDigits","TokenId","oneIncCreditCardDTO","OneIncEftDTO","paymentMethodEnum","policyResponse","messageResponse","policiesUpdated","SocialInfo","petsResponse","doSocialProfileLoad","profileResponse","imageBase64","isCover","ImageType","uploadImageResponse","linkImageToUserResponse","CoverPictureUid","ProfilePictureUid","petCloudFlags","entries","startsWith","p","k","v","settingsSaga","getWebViewUrl","webViewType","isCustomerApi","usePetCloudCustomerV1T173084ForSagas","WEBVIEW_WITH_SCOPES","CUSTOMER_SCOPE","POLICY_SCOPE","webViewToken","CompanyId","Params","ScopeTokens","WebViewType","policyToken","customerToken","urlResponse","multibrandSaga","sagas","LOAD_ADDITIONAL_CLAIM_STEPS","takeEvery","LOAD_DATA_FORM_PRIVATE_TOKEN","spawn","INITIAL_STATE","areEmailUpdated","arePasswordsMatching","arePasswordsUpdated","arePetCloudEmailUpdated","emailUpdateError","isEmailBeingUpdated","isPasswordsBeingUpdated","isPetCloudEmailBeingUpdated","isPetCloudEmailValid","newPasswordHasEightCharacters","newPasswordHasLetters","newPasswordHasNumbers","newPasswordHasSpaces","passwordUpdateError","passwordUpdateErrorType","petCloudEmailUpdateError","EMAIL_REGEX","handleActions","PetCloudEmail","INITIAL_STATE_PAYMENT_METHOD_DATA","accountNumber","accountNumberConfirmation","accountNumberConfirmationError","accountNumberError","accountType","cardNumber","cardNumberError","cityError","cvvNumber","cvvNumberError","expirationDate","expirationDateError","firstNameError","lastNameError","paymentMethodSelected","routingNumber","routingNumberError","streetAddress","streetAddress2","streetAddress2Error","streetAddressError","zipCodeError","allBrandsData","billingDetails","editReimbursementMethodModalVisible","isApplyAllPolicies","loadingAllBrandsData","loadingBillingInfo","loadingPaymentHistory","loadingPolicyDetails","loadingReimbursementMethod","noMoreResults","paymentHistoryPage","paymentHistoryPolicyNumber","paymentMethodEditModalVisible","paymentMethodErrorModalVisible","paymentMethodPastDueModalVisible","paymentMethodSuccessModalVisible","policyDetails","ConfirmAccountNumber","reimbursementMethodUpdateSuccess","requestUpdatePaymentMethod","updatePaymentMethodMessageResponse","updateReimbursementMethodError","updateReimbursementMethodErrorMessage","updatingPaymentMethod","updatingReimbursementMethod","selectedReimbursementMethodTab","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","stateError","_ref31","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","_ref39","_ref40","_ref41","_ref42","_ref43","attachmentsByClaim","claimById","AccountInfo","BilledAmount","ClaimNumber","ClaimStatus","NumberOfAttachments","PaidAmount","Pet","ReportedDate","claimsResults","items","totalCount","isCheckedOptionClosed","isCheckedOptionOpen","isFirstTimeOnClaimsScreen","isLoadingClaimsAfterCreatingOne","isLoadingDetails","isLoadingMore","loadingClaimSteps","newClaim","eligiblePets","isLoadedClaimTypes","steps","newClaimModalVisible","newClaimStarted","petID","petIndex","_payload$data","TotalCount","s","InputData","PetsInfoMultiple","ss","petValidDates","a","b","EffectiveDate","getTime","additionalStepsHandled","agentInformation","customerInformation","figoClaimValidations","validated","loadingAdditionalSteps","loadingPolicyByDate","loadingSteps","petsInfo","policyByDate","policyError","answered","responsesUpdated","displayValue","AgentInfo","CustomerInfo","PetsInfo","alert","imageSize","inputErrorCallback","inputLabel","inputType","maxLength","overlayClose","placeholder","primaryAction","primaryText","secondaryAction","secondaryText","subText","subtitle","title","applicationMessages","comingSoon","isSendingMessage","messageSent","contentfulPage","generalData","landing","sideImage","sharePost","isLoading","postAuthorName","postAuthorPicPath","postContents","postDate","postPhotoPath","zipCodeDetails","loadingZipCodeDetails","_payload$description","description","PostAuthorName","PostAuthorPicturePath","PostContents","PostDate","PostId","PostPhotoPath","isVisible","policiesList","isToUpdate","last4","PaymentMethod","sameBillingAddress","userInformation","showLoading","emptyEmergencyContact","hasNameError","hasPhoneNumberError","isRequired","nameErrorMessage","phoneNumberErrorMessage","currentModalStep","isFirstStep","isRemoveStep","isSecondStep","emergencyContactsForm","isDeleteTagNumberRequestStarted","isEditMode","isFigoTagModalVisible","isLoadingPetInfo","isPetTagInfoRequestStarted","isTagNumberError","isTagNumberMode","MessageToFinder","TagNumber","successPetTagDelete","successPetTagPost","tagNumberErrorMessage","contact","index","DELTE_TAG_NUMBER_REQUESTED","contactKey","isNewContact","newContact","familyMemberOneFullName","familyMemberOneFullNameErrorMessage","familyMemberOnePhoneNumberErrorMessage","familyMemberThreeFullName","familyMemberTwoFullName","isFamilyMemberOneFullNameError","isFamilyMemberOnePhoneNumberError","isFamilyMemberThreeFullNameError","isFamilyMemberThreePhoneNumberError","isFamilyMemberTwoFullNameError","isFamilyMemberTwoPhoneNumberError","FamilyMember1","FamilyMember2","FamilyMember3","messageToFinder","tagNumber","EmergencyContacts","anotherPetInsuranceCheckbox","checkboxYes","initialTime","isCheckReimbursementMethodDataAvailable","isComplete","isDirectReimbursementMethodDataAvailable","isSendingClaim","isTermAndConditionOneSelected","isTermAndConditionTwoSelected","uploadAttLoading","uploadAttSuccess","attachment","claimTypeDescription","loadingLostPetData","lostPetData","lostPetDataError","sendMessageAttempted","sendMessageSuccess","articles","articlesRequested","contactInfo","currentSkip","getPetWisdomFailed","isPetWisdomLoading","limit","loadingArticles","loadingMore","petWisdomInfo","tags","totalItems","Skip","Limit","TagsAndColors","tag","TagName","Total","firstLoad","nameChangeError","nameChangeLoading","nameChangedSuccessfully","newFolder","errorOnAction","folderDeleteLoading","itemDeletedSuccesfully","itemDeleteLoading","downloadingFiles","viewFileData","viewFileLoading","viewFileVisible","filePermissions","filesAttached","folderContent","markingFilesAsRead","filesMovedSuccesfully","movingFiles","uploadedSuccessfully","uploading","folderStructure","isRecentFilesLoading","recentFilesError","recentFiles","fileTaggedSuccesfully","tagPetLoading","WEB_VIEW_INITIAL_STATE","webViewData","showEmailChangeModal","showForgotPasswordModal","showUnsavedModal","petCloudAccount","loginEmail","pageHasChanges","breedData","microchipCompanies","microchipData","showMicrochipModal","petProfileLoading","isSavingCustomVet","vetCustomSaved","customVetFailed","pointInterestFailed","addVetError","isSavingVet","vetSaved","checkingPrimaryVet","favoriteVets","isLoadingFavorites","removePetSuccess","checkedPrimaryVet","hasPrimaryVet","isRemovingPet","SEARCH_PRIMARY_VETS","isLoadingVets","lastZipcodeLoaded","vetsFound","isValidatingZipCode","isValidZipCode","isEditingZipCode","vet","BackgroundImage","Thumbnail","Provider","Title","PlaceName","bankAccount","creditCard","defaultPayments","loadingDefaultMethods","paymentName","showModal","getQuoteValidation","requested","powerUpDetails","powerUpDetailsLoading","acceptAddressUpdateLoading","addressUpdateError","areNamesUpdated","arePhonesUpdated","cancelingAddressUpdate","endorsementData","endorsementMessageModalVisible","endorsementSuccessModalVisible","errorAddress","errorUpdateInsuranceInformation","FirstNameHasNumbers","isAddress1Valid","isAddress2Valid","isCityValid","isConfirmAddressChangeModalVisible","isMultiplePetsModal","isNamesBeingUpdated","isPhonesBeingUpdated","isZipCodeValid","LastNameHasNumbers","loadingUpdateInsuranceInformation","namesUpdateError","petsLoading","phonesUpdateError","pictureEditing","PrimaryPhoneHasLetters","profile","profileLoading","SecondaryPhoneHasLetters","states","zipCodeHasLetters","NAME_REGEX","ONLY_NUMBERS_REGEX","PHONE_REGEX","ZIP_CODE_REGEX","POWER_UPS_RELATION","DISMINISHING_DEDUCTIBLE","EXTRA_CARE_PACK_PSM_ID","PETPROTECT_COPAY","VETERINARY_EXAM_FEES_PSM_ID","WELLNESS_DENTAL_PSM_ID","WELLNESS_PSM_ID","PRODUCT_VALUES","FPI_VALUES","IHC_VALUES","BENEFIT_FEE_TYPE","WELLNESS_COVERAGE_LIMIT_FPI","BASIC","PLUS","WELLNESS_MULTIMODAL_ID","INITIAL_SELECTED_VALUES","annualAmountPlan","deductibleDescription","deductibleId","isMonthly","loadingOverview","monthlyAmountPlan","petQuoteId","reimbursementDescription","reimbursementId","selectedAnnualBenefit","selectedPlan","total","totalAnnual","totalMonthly","deductibleLegend","initialCoverageValues","loadingSubmit","multimodalData","multimodalDataError","powerUpLoadings","preview","loaded","quoteSelectedValues","rate","insuranceProduct","petQuoteResponseList","rateCreated","reviewChangesVisible","changeCoverageValidation","defaultPolicy","isYoungPetModalVisible","loadingDefaultPolicy","loadingOtherPolicy","loadingPlanSummary","loadingPoliciesOverView","loadingSeeMoreInfo","loadingWhatWeCoverInfo","loggedInWithoutPets","multibrandPolicies","multiModalData","otherPolicyDetail","planSummarySeeMoreInfo","policiesOverView","policyBenefits","policyNotifications","showPlanSummarySeeMore","waitingPeriods","whatWeCoverInfo","GET_CHANGE_COVERAGE_MULTIMODAL_DATA","policiesWithCardInfo","oldModifier","modifier","InsuranceModifiers","IsSelected","Plans","plan","Plan","AnnualPremium","MonthlyPremium","RatingOptions","rating","DeductibleId","ReimbursementId","_petQuote$InsuranceMo","_petQuote$annualPremi","_petQuote$monthlyPrem","petQuote","planSelected","modifierQuote","annualPremium","deductibleName","Deductible","InsuranceModifierTypeId","IsVisible","powerUp","_modifierQuote$find","isIncluded","AppText","monthlyPremium","ReimbursementName","Reimbursement","MaxAnnual","planId","hasPolicies","checkingPassword","passwordChecked","loadingResetPassword","loadingToken","tokenValid","resetPasswordComplete","resetPasswordError","bannerVisible","impersonateCustomerId","impersonatingAdminEmail","isExpired","isRefreshingToken","isTokenRefreshed","modal","privacyPolicyLink","retrievingSession","startingUp","termsOfServiceLink","userHasTermsOfService","PrivacyPolicyLink","TermsOfServiceLink","UserHasTermsOfService","combineReducers","claimsGeneric","editPayment","figoPetTag","foundPetLost","home","inboxAndDocs","multibrand","myAccount","myVets","oneInc","orcaInsurance","resetPassword","initializeStore","initialState","sagaMiddleware","createSagaMiddleware","createStore","reducer","applyMiddleware","run","rootSagas","MixpanelContext","createContext","useMixpanel","useContext","POLICY_STATUS_STR","useTrackOnMount","event","dependencies","useSelector","shallowEqual","sendEvent","useEffect","trackEvent","MixpanelProvider","children","useDispatch","init","petsWithPolicies","useMemo","PolicyStatusId","petsWithPolicySuperProp","dob","DOB","orderSuperProp","ActiveFuture","Cancelled","claimsSuperProp","claimsWithStatus","ClaimsInfo","claim","claimStatusId","claimsStatus","customerTypeProp","customerType","CustomerType","statusProfile","Enabled","filteredPolicies","flatMap","petsWithActiveOrFuturePolicies","ProductFamilyId","superProperties","$email","$name","Username","$os","$os_version","$userId","distinct_id","peopleProps","petsDetails","catsWithPolicy","PetTypeId","dogsWithPolicy","register","identify","people","set","_jsx","PetsHealthCard","useTranslation","className","_jsxs","getGreetingKey","today","morning","setHours","afternoon","evening","greetingKey","Greetings","_Fragment","ResourceCard","buttonLabel","onClick","B2C_TOKEN_REGISTER","CHANGE_COVERAGE","CHANGE_COVERAGE_SUBMIT_SUCCESS","CHANGE_COVERAGE_WEB","ADD_ORCA_PET","ADD_ORCA_PET_IFRAME","CLAIMS","ERROR","FILE_CLAIMBOT","FOUND_LOST_PET","HOME","INSURANCE","MY_PETS","MICROCHIP","MY_VETS","PET_TAG","TERMS_OF_USE","PRIVACY_POLICY","MOBILE_WIDTH","useResponsive","isTablet","setIsTablet","useState","innerWidth","setIsMobile","handleResize","useCallback","removeEventListener","MODAL_CONTAINER_ANIMATION_TYPE","ModalContainer","animationType","cancelable","classCloseIcon","closeButtonStyle","contentStyle","customCloseIcon","disableClickOutside","handleOutClick","idPrefix","idTitle","isMultiModal","show","bottom","setBottom","animation","appear","disappear","animationName","setAnimationName","idOuter","dialogId","closeId","containerId","style","overflow","scroll","removeProperty","resetModalState","handleCloseModal","target","FocusTrap","role","tabIndex","onAnimationEnd","alt","closeIcon","DownloadModal","onClose","rel","Resources","history","useHistory","downLoadModalVisible","setDownLoadModalVisible","onCloseDownloadModal","onFileAClaimCick","onViewMyInsuranceCick","onDownloadAppCick","useAlphabeticalSortedPets","previousPet","nextPet","prevStatus","useAlphabeticalSortedPetsWithPolicy","useB2CInfo","accounts","instance","useMsal","sleepTime","setSleepTime","logoutB2C","b2cAuthority","logoutRequest","account","getActiveAccount","logoutRedirect","tokenRequestB2C","apiToken","apiResponse","acquireTokenSilent","forceRefresh","idToken","getAllTokens","getProxyToken","forgotPasswordB2C","useDebounceSearch","searchFunction","timeout","searchResults","useConstant","AwesomeDebouncePromise","useOneIncScript","onLoadCallback","scriptAsync","scriptDefer","scriptId","scriptInnerHTML","scriptSrc","scriptType","getElementById","script","defer","innerHTML","appendChild","loadEmbeddedScript","useOnEscEvent","callback","handleKeyDown","keyCode","OS","usePostMessage","vendor","opera","MSStream","getOperatingSystem","webkit","messageHandlers","dismissWebView","postMessage","ReactNativeWebView","useQuery","URLSearchParams","useLocation","search","marketChannelId","useWebviewMultibrand","setState","setTitle","hasFetched","useRef","getWebView","reset","titleText","usePetPolicies","selectedPolicyIndex","hasPets","getAlphabeticalSortedPets","noPolicyPets","policyPetsIds","AgeInDays","findIndex","policyCancelled","unPolicyPet","usePMS","_data$","_data$$Policy","PolicyManagementSystem","FigoLottie","animationData","loadingSpinner","loop","defaultOptions","autoplay","rendererSettings","preserveAspectRatio","Lottie","isClickToPauseDisabled","FigoLoadingOverlay","FeatureFlagContext","FeatureFlagProvider","useFeatureFlag","featureKey","context","useSubmitRequestAccountChanges","useWebViewReskin","useManualVet","HomeScreen","PageNotFound","_path","_path2","Container","Row","Col","_extends","assign","bind","i","prototype","hasOwnProperty","apply","this","SvgInsurance","svgRef","titleId","props","viewBox","fill","xmlns","ref","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ForwardRef","SvgHome","SvgClaims","_path3","SvgInboxDocs","_g","_defs","SvgMyAccount","clipPath","SvgLogout","SvgHeadset","SideMenuItem","_path4","_path5","_path6","_path7","Icon","NavLink","activeClassName","exact","to","SvgCat","SvgDog","SvgAdd","SideMenuActionButton","React","Fragment","iconClassName","ScrollableDiv","divRef","fixedScrollbar","scrollbarMargin","ignoredKeys","nodeName","indexOf","preventDefault","FigoSelectSearchable","ariaProps","arrowIcon","classNameContainer","classNameHeader","disabled","elementDisplayName","elementValue","onBlur","onSelectionChanged","placeholderClassname","selectedValue","setOpen","searchInput","setSearchInput","itemsFiltered","setItemsFiltered","itemSelectedId","setItemSelectedId","itemSelectedName","setItemSelectedName","searchRef","dropdownHeaderRef","selectedItemRef","containerItemRef","toggle","focus","scrollTo","offsetTop","handleOnClickItem","handleOnKeyPressItem","handleSearchInputChanged","inputSearch","breedDataFiltered","filterItems","handleArrowKeyPressed","factor","temp","selection","handleOutsideClick","ItemList","onKeyDown","onKeyPress","ItemListNotFound","headerValue","onChange","renderHeaderDropdown","selectorIcon","resultsNotFound","renderItems","AgeInputSelector","handleInputError","onDatePickerSelectionChange","selectedDate","inputHasFocus","setInputHasFocus","customInputRef","datePickerRef","autoCorrectedDatePipe","createAutoCorrectedDatePipe","CalendarCustomInput","forwardRef","autoFocus","allProps","MaskedInput","guide","keepCharPositions","mask","pipe","calendarIcon","DatePicker","customInput","maxDate","onClickOutside","onFocus","which","onSelect","selected","GroupButtonSelector","labelRef","onSelectionChange","values","onClickButton","isActive","icon","loadingAnimationOptions","blueSpinner","loadingBlue","loadingAnimation","successAnimationOptions","successAnimation","LoadingButton","onSuccessAnimationEnd","submit","textStyle","variant","rest","handleAnimationEnd","Button","eventListeners","ActionButton","isDeleteButton","isSecondaryButton","leftIcon","leftIconClassName","noMargin","onSuccess","styleName","styleNameText","button","renderLeftIcon","GenericModal","containerClassName","isDeleteAction","loadingPrimary","onPrimaryClick","onPrimarySuccess","onSecondaryClick","primaryButtonDisabled","primaryButtonText","secondaryButtonDisabled","secondaryButtonText","successPrimary","PetCloudInputAnimated","extraItemClass","inputClass","labelClass","inputProps","htmlFor","RadioInputWithLabel","classContainer","isChecked","checked","PetCloudInput","errorClassName","inputName","inputRef","isTextArea","optionalText","renderError","errorIcon","AddAPetModal","isGPI","modalAddPetVisible","onCloseModalAddPet","petInformation","onDelete","onContactUsClick","petNameRef","petGenderRef","petWeightRef","petBioRef","modalTitle","isPetInsured","IsInsured","handleModalAddPetClose","handlePetBreedSelectionChanged","handlePetGenderSelectionChange","handlePetNameChanged","handlePetNameOnBlur","handlePetsBioChange","handlePetTypeSelectedChanged","handlePetWeightChanged","handlePetWeightOnBlur","handlePetWeightOnFocus","handleSavePet","onBirthdaySelectorBlur","onDatePickerChange","petBio","petBirthdayError","petBirthdaySelected","petBreedError","petBreedList","petBreedSelected","petGenderError","petGenderSelected","petNameError","petTypeError","petTypeSelected","petWeight","petWeightError","refreshPetsSuccess","saveButtonDisabled","setPetTypeSelected","setPetTypeError","setPetGenderSelected","setPetGenderError","setPetBreedSelected","setPetBreedError","setPetName","setPetNameError","setPetWeight","setPetWeightError","setPetBirthdaySelected","setPetBirthdayError","setPetBio","setPetId","REQUIRED_ERROR","emptyBreed","newBreedList","breedSelected","breed","BreedId","BreedInformation","PetType","Gender","DateOfBirth","petWeightClean","Weight","newPetBreed","newPetGender","cleanValue","errorPetName","newPetName","newPetType","cleanNumber","poundValue","TypeId","Birthday","Notes","Picture","newDate","useAddAPetModal","petTypeSelectorValues","left","DogIcon","right","CatIcon","genderSelectorValues","infoIcon","handleEditContactSupport","petDateOfBirth","breedId","petDescription","petImageSelected","petSpecies","petGender","EV10","YourPetsSection","onMenuItemPress","showAddPetModal","setShowAddPetModal","prevShow","AddIcon","CardProvider","providerIcon","providerIconStyle","arrow","ContactInformationRow","leftText","link","rightText","ScheduleRow","ScheduleRowTitle","containerClass","HoursOfOperationTitle","CONTACT_US_STEPS","AKC","FIGO","PPI","PPI_ONE_PACK","CONTACT_US_STEPS_BY_NUMBER","getTitleFromLink","ContactUsCompany","_contactInfo$HoursOfO","_contactInfo$ContactI","extraText","logo","logoClass","HoursOfOperation","childNum","Value","ContactInformation","Action","ContactUsHome","onProviderClick","companiesMemo","company","figoInfo","figoLogo","akcInfo","akcLogo","ppiInfo","ppiLogo","ppiOnePackInfo","ppiOnePackLogo","ContactUsModal","companyStep","custom","customDescription","customTitle","hasHeader","onBackClick","renderContent","shouldRenderBackButton","currentStep","setCurrentStep","useContactUsModal","close","SideMenu","logout","useLogoutSessionCleaner","handleResetClaimsAndPolicySelections","handlePrimaryAction","setContactUsVisible","HomeIcon","routes","InsuranceIcon","ClaimsIcon","EV2","InboxDocsIcon","MyAccountIcon","onContactUsClose","contactUsVisible","HeadsetIcon","LogoutIcon","Shimmer","styles","borderRadius","margin","compRef","defaultProps","ClaimInfoItem","direction","bold","getThemeLogoById","themeId","themeLogo","dark","figoLogoDark","simplified","white","figoLogoWhite","akcDark","akcWhiteLogo","partnersLogoDark","ppiWhiteLogo","ppiOPWhite","spotDark","spotLogo","spotWhiteLogo","CLAIM_COMPLETED","OrcaDetail","getImage","DateSubmitted","ClaimedAmount","AmountPaid","OnsetDate","TreatmentStartDate","Diagnosis","FigoDetail","ClaimTypeDescription","DetailsList","Diagnoses","MarketingChannelId","viewClaimsDetailsEvent","_Diagnoses$","claimStatusLabel","paidAmount","EV6","themeLogos","ProfileImage","catDefaultImage","dogDefaultImage","FileRow","isModal","loadingAtt","successSave","renderFileName","radioCheckIcon","crossIcon","getFileStatus","deleteIcon","backgroundColor","InputFile","acceptFiles","fileDefinition","onFileAdd","onFileDelete","showCounter","isDragging","setIsDragging","dropzoneCoverRef","dropzoneRef","modalClass","handleDragover","stopPropagation","handleDragenter","dataTransfer","types","handleDragleave","fromElement","toElement","dropzoneElement","dropzoneCoverElement","handleDrop","clearData","handleDropOnCover","handleFileChange","handleFileDelete","renderDropzone","docNavyImage","plusNavyImage","currentCover","currentDropzone","fileCount","uploaded","plusImage","accept","multiple","uploadIcon","Trans","components","i18nKey","ns","AddFilesButton","addFile","TouchableDiv","CancelButton","handleShowModal","SubmitAttachmentButton","fileClaimsAttachments","attachmentWithNoError","filesSize","attachmentsSize","classNameStyles","disabledBtn","attach","AddAttachmentModal","setShowModalAddAttachments","showModalAddAttachements","closeButtonClassName","convertToBinary","binaryDoc","validateFile","maxSize","validation","extMatch","uniqueKey","fileKeyToRemove","RecentFileIcon","fileExtension","fileExtensionList","empty","avi","mov","mp3","excel","zip","ClaimsAttachments","viewClaimAttachmentsEvent","numberOfAttachments","EV7","handleMarkAttachmentAsRead","filePath","EV8","FileNameAndExtension","_attachment$Extension","UpdatedOnUtc","addIconBlue","PetCloudBreadcrumbs","activeRoute","rootRoute","rootRouteLink","handleRootClick","goBack","navArrowIcon","AttentionNeeded","ClaimsDetails","loadDataCallback","getDataClaim","PetCard","age","gender","picture","weight","isDog","petCardImage","MultiplePetsSelector","subTitle","handlePetSelect","petBreed","petProfileImage","petType","InsuranceScreen","handleMultiplePetsSelect","_arrayData$petIndex","_selectedPetData$Poli","multibrandPets","isFigo","some","Policies","arrayData","multibrandPetList","Breed","PetGender","petGenderId","ProfileUrl","loadingSpinnerBlue","petAndPolicyInfo","singlePolicy","Redirect","CoveragePolicyStatus","statusIcon","statusClass","activeIcon","cancelledIcon","futureIcon","pastIcon","TOOL_TIP_POSITION","center","containerArrowPosition","end","start","LEFT","RIGHT","DOWN","TOP","DOWN_LEFT","TOP_LEFT","IconTooltip","activeOnTouch","arrowClass","buttonClass","mainClass","teal","textClassName","xPosition","yPosition","tooltipVisible","setTooltipVisible","getDescriptionPosition","top","containerWidth","getArrowContainerPosition","getArrowStyle","handleClose","iconSrc","infoIconDark","onMouseEnter","onMouseLeave","CoverageInfoFeeCancelled","cancellationDate","payAmount","CoverageFigoInfoFee","isCancelled","petPolicies","annualCoverage","PolicyDisplayNumber","Benefit","deductible","reimbursement","TotalPremium","CancellationDate","PolicyStartDate","PolicyEndDate","CoverageFigoProgressBar","overviewValue","AnnualBenefit","AvailableBenefits","benefitsValue","deductibleCoverage","deductibleMet","deductiblePaid","deductiblePaidPercentage","policyOverView","DeductibleBalance","IsUnlimited","isUnlimited","fullBenefit","checkIcon","CoverageOverviewField","CoverageInfoFee","Copay","IncidentLimit","PetCoverages","ProductName","coverages","CoverageGroupInfoFee","GroupName","SvgArrowRightToPaint","ViewMoreButton","isLink","Wrapper","Link","ArrowRight","CoverageOverview","marketingChanneld","onOpenIframe","StatusDisplay","handleChangeCoverage","IsTrialPolicy","incidentLimit","renderChangeCoverage","renderLeftSide","CurrentPetPolicy","currentPet","placeholderImage","LoadingActionButton","UninsuredPet","showLearnMore","onGetQuote","petBreedName","petImage","interpolation","escapeValue","YoungPetModal","NoPolicyPets","onlyFigo","handleGetQuote","CancelPolicyModal","firstPart","secondPart","buttonText","greenText","ChangeCoverageErrorModal","FoundVetItem","added","addedLabel","distance","showDistance","selectedIcon","SearchInput","emptyMessage","hideInput","itemListRender","itemSelected","itemsFound","onSearch","onSelected","renderSelectedItem","inputValue","setInputValue","closeDropdown","handleSelection","searchICon","PlaceId","useCustomVetForm","handleSuccesCustomVetModal","clearSuccessLoading","cityName","stateName","vetAddressError","vetAddressValue","vetCompanyError","vetCompanyName","vetEmailError","vetEmailValue","vetFaxValue","vetPhoneError","vetPhoneValue","vetZipCodeError","vetZipCodeValue","useReducer","handleAddressChange","handleAddressError","required","handleCityError","handleCityNameChange","handleEmailChange","handleEmailError","handleFaxChange","cleanText","onlyNumbersValue","handlePhoneChange","handlePhoneError","handleStateError","handleStateNameChange","selectedIndex","nativeEvent","handleSuccess","handleVetCompanyError","handleVetCompanyNameChange","handleZipCodeChange","handleZipCodeError","AddVetInputContainer","inputContainerCSS","inputTitle","StatesList","usState","StateName","AddVetManuallyModal","onSavePrimaryVet","primaryVet","showCancelButton","invalidForm","isCustom","AddVetModal","customVetShowCancelButton","displaySelectOnRows","hideZipcode","selectedVet","setAddVetModalOpen","onSelectedVet","userZipCode","setZipCode","willChangeZipCode","setWillChangeZipCode","setZipCodeError","isManuallyModalOpen","setIsManuallyModalOpen","handleCancel","handleSaveChangeZipCode","handleOpenAddVetManuallyModal","Distance","ConfirmPrimaryVetModal","onBack","onConfirm","vetAddress","okIcon","NoVetModal","onAddVetClick","isManualVetRedesign","placeHolderIcon","MyPetsSearchInput","otherProps","isFocused","setIsFocused","searchIcon","inputLegend","MyPetsVetManualAdd","isFilled","setIsFilled","hidden","LoadingActionButtonMyPets","AddAVetConfirm","handleEditButton","vetProvider","vetAddressValue1","vetAddressValue2","phoneValue","AddAVetForm","vetFaxError","AddAVetModal","MyPetsAddVetModal","previousZipCodeRef","favoriteVetIds","handleSave","handleCloseAddVetManuallyModal","VetModalActions","has","vetInfoState","AddressLine1","AddressLine2","AddPrimaryVet","showNoVetModal","setShowNoVetModal","showAddVet","setShowAddVet","showConfirmationModal","setShowConfirmationModal","setSelectedVet","goBackToVetSelector","closeModals","addPrimaryVet","ModifierModalInfoItemContent","isBold","titleRef","subtitleRef","contentLoaded","setContentLoaded","htmlContent","htmlContainer","ModifierWellnessButton","handleOnClick","isBasic","buttonClassName","imageClassname","ModifierWellnessGroup","categoryList","isWhatsCovered","menuSelected","onClickMenu","wellnessBasicId","_categoryList$filter$","InsuranceModifierId","wellnessPlusId","_categoryList$filter$2","ContentfulComponent","dangerouslySetInnerHTML","__html","ModifierModalInfo","initialMenuSelected","wellnessBenefits","setMenuSelected","titleContainerStyle","multiModalContent","PolicyOptionalDetailsDto","InsuranceMultiModalCategoryDtoList","OptionalsBenefit","categoryDto","isWellnessMenu","_wellnessBenefits$","coverageLimitId","CoverageLimitId","currentCategory","CategoryHeader","InsuranceMultiModalItemsDtoList","IsIncluded","OptionalBenefitsDetailsItems","SubTitle","headerTitle","Subtitle","included","headerImage","categoryContent","_headerTitle$title","renderWellnessContent","IsBold","ItemSubtext","ItemSubText","ItemLabel","DescriptionHTML","PolicyModals","multiModalCategoryId","multiModalVisible","myVetsInfo","onClosePrimaryVetModal","onMultiModalClose","showPrimaryVetModal","cancelPolicyModalVisible","setCancelPolicyModalVisible","showChangeCoverageErrorModal","setChangeCoverageErrorModal","multiModalDataSelected","benefit","GeneralPolicyInfo","PowerUps","_selectedPolicy$Power","wellnessModifier","OptionalBenefits","PolicyHeader","getCompanyLogo","HtmlContent","elementType","classList","add","PowerupInfoCard","contentfulKey","optionalBenefits","onClickLearnMore","wellnessTypeId","includedIcon","notIncludedIcon","renderIncluded","selectedId","Powerups","benefits","Included","_benefits$OptionalBen","includedWellness","ContentfulKey","highlightPrice","textParts","dateRegex","part","dates","highlightedParts","highlightDate","regex","matches","highlighted","highlightWithRegex","PolicyNotifications","getFuturePolicy","futurePolicy","breadCrumbData","extraData","getNotificationAction","renderMessage","highlightedMessage","renderPolicyNotifications","notifications","notification","policyOrangeAlertIcon","policyInfoIcon","FirstFigoClaimModal","onCancelPress","onContinuePress","medicalRecords","paidInvoice","FileClaimButton","setShowModal","firstFigoClaimModalVisible","setFirstFigoClaimModalVisible","hasAnyFigoPolicy","comp","doLoadSteps","addIcon","onCloseFirstFigoClaim","onContinueFirstFigoClaimPress","CostcoMemberQuoteModal","onContinueWithCostco","onContinueWithStandardQuote","onClosePress","costcoIcon","CreditCard","SavingBank","bankNumber","savingBank","AddPaymentMethod","isRedirectAvailable","onAddPaymentMethod","handlePaymentMethod","PaymentMethodCard","lastNumbers","methodType","RowInformation","paymentPlan","nextBillingDate","BillingPremiumCostRow","descriptionClassName","styleContainer","titleClassName","BillingPremiumCostFigo","annualTotal","monthlyInstallmentFee","monthlyPremiumCost","monthlyTotal","isMonthlyPlan","BillingPremiumCostOrca","bottomInfo","topInfo","totalPayAmount","Amount","BillingAndPayments","MarketChannelId","NextBillingDate","billingInformationFigo","_policyFound$Policy","billingName","policyFound","CCFirstName","CCLastName","PaymentPlan","billingInformationOrca","_coverages$PaymentBre","_coverages$PaymentBre2","PetCoveragesByPet","BillingCycle","PaymentOption","FirstNameOnCard","LastNameOnCard","PaymentBreakdown","TotalPremiumCost","CostLineItems","TotalPayAmount","ExpirationMonth","ExpirationYear","LastFour","PaymentMethodName","hasPaymentMethod","onOpenPaymentMethod","policyInfo","pathname","MY_ACCOUNT_ROUTE","breadCrumbId","breadCrumbName","breadCrumbNameExtraData","useBillingAndPayments","paymentMethodCardCases","padStart","default","paymentMethodCardProps","PayAmount","InstallmentFee","Check","addressCheck","DirectDeposit","AddReimbursementMethod","onReimbursementMethod","handleAddReimbursementMethod","ReimbursementMethodCard","directDeposit","useReimbursementScreen","breadCrumbs","reimbursementOption","AccountNumberLastFour","Details","RoutingNumberLastFour","Zipcode","onClickReimbursementCard","onAddBreadcrumbItem","onOpenReimbursementMethod","_allBrandsData$find","startDate","endDate","policyPets","Pets","PolicyStatus","PolicyTerm","PolicyData","ReimbursementOption","CheckAddress","ReimbursementMethodId","hasReimbursementMethod","handleReimbursementMethod","reimbursementMethodCardCases","reimbursementMethodCardProps","Iframe","allowFullScreen","iFrameRef","getToken","isExpiredValidToken","contentWindow","apis","api","requestType","onMessage","HTTPS_KEY","ChangeCoverageFrame","webViewOrigin","useLayoutEffect","ProviderListItem","ProvidersSelector","onProviderSelected","PolicySummary","_policyData$selectedP14","_policyData$selectedP15","_policyData$selectedP16","_policyData$selectedP17","onClosePPIGroupModal","onGetQuoteByBrand","showPPIGroupModal","useParams","setSelectedPolicy","setMultiModalvisible","setMultiModalCategoryId","setShowPrimaryVetModal","openChangeCoverageFrame","setOpenChangeCoverageFrame","showProviderSelector","setShowProviderSelector","showCostcoMemberQuoteModal","setShowCostcoMemberQuoteModal","showMultiplePoliciesError","setShowMultiplePoliciesError","handleOpenIframe","loadingInfo","_petData$policies","petData","onCloseIframe","zipCodeMemo","_location$state","changeCoverageId","isCostcoAvailable","webviewData","GetQuoteCostcoUrl","quoteUrl","GetQuoteUrl","handleGetAQuote","_policy","_policy3","_policy3$PetCoverages","_policy4","_policy5","_policy6","_policy7","_policy7$PetCoverages","_policy8","selectedPetData","_petData$policies2","_item$PowerUps","_billingDetails$CCCar","_policy2","CoverageSummary","Extras","powerup","CCExpMonth","CCExpYear","CCCardNumber","PetCoverage","ExpirationDate","PolicySourceId","CoverageStartDate","SelectedPaymentOptionId","SelectedReimbursementOptionId","coveragesByPet","summary","coverageSummary","extras","BenefitAmount","coverage","_policy9","_policy9$Reimbursemen","details","getSelectedPolicyDirectory","directory","dir","_directory$Childrens","_directory$Folders","selectedDirectory","getPolicyDocumentsFolder","policyDocumentsURL","_policyData$selectedP","_policyData$selectedP2","PolicyFolderDescription","PolicyFolderId","_policyData$selectedP3","INBOX_DOCS_ROUTE","defaultFolder","_policyData$selectedP4","onCloseErrorModal","handleAddPetClick","addIconOnyx","renderAddAPetButton","_policyData$selectedP5","_policyData$selectedP6","_policyData$selectedP7","renderFileAClaimButton","_policyData$selectedP9","_policyData$selectedP10","_policyData$selectedP11","_policyData$selectedP12","_policyData$selectedP13","_policyData$selectedP8","isNotPpiOnePack","renderPolicyInfo","closeProviderSelector","webview","onCloseCostcoMemberModalPress","renderContactUsModal","NoClaimsPlaceholder","FilterClaims","isFilterMenuOpen","setFilterMenuOpen","toggleFilterMenu","filterIcon","filterArrow","toggleCheckedOptionOpen","toggleCheckedOptionClosed","NoMatchingFilters","CLAIM_STATUS","Step","stepValue","Stepper","convertedStatus","_statusFound$","statusFound","getLineStyle","checkStatus","currentStatus","baseStyle","openLineStyle","recordsLineStyle","reviewLineStyle","inRecordsComplete","inReviewComplete","inDoneComplete","checkMark","notCheckIcon","STATUS_DISPLAY","attention","ClaimHeader","goToClaimDetails","isClosed","ClaimDataRow","ClaimOrcaData","petsNames","ClaimFigoData","amountPaid","claimAmount","reimbursementType","paid","ClaimData","claimInfo","MultibrandClaimCard","useRouteMatch","formattedDate","correctedDate","ClaimGroupTitle","claimStatus","claimOpen","ClaimsCards","claimGroups","claimGroup","ClaimsScreenComponent","totalShownClaims","setTotalShownClaims","currentPage","setCurrentPage","openClaimsOnly","closedClaimsOnly","totalOpenClaims","totalClosedClaims","fetchClaims","statusClaim","mapData","allClaims","areAllClaimsEmpty","every","filteredClaims","closedClaimsData","openClaimsData","openClaims","closedClaims","loadingContent","_filteredClaims$find","_filteredClaims$find$","_filteredClaims$find2","_filteredClaims$find3","shownOpenClaims","c","shownClosedClaims","onLoadMore","prevPage","newPage","hasMoreClaims","_closed$items","renderClaimsCount","currentlyDisplayedClaims","group","count","PowerupCard","handleLearnMoreClick","blueCircleIcon","ChangeCoverageDetails","annualBenefit","lastDate","price","priceValue","decimals","integer","ChangeCoverageButtons","disabledPrimaryButton","loadingPrimaryButton","onClickPrimaryButton","onClickSecondaryButton","successPrimaryButton","MULTIMODAL_SECTIONS","useCoverageModal","multiModalSectionSelected","setMultiModalSectionSelected","setMultiModalVisible","petInfo","_Plans$find","Deductibles","Reimbursements","reimbursementDesc","deductibleDesc","multimodalDataSelected","InsuranceMultiModalSectionDtoList","powerupInfo","PMSModifierId","TitleText","OptionalBenefitsDetailsItem","wellnessModifiers","BundleInsuranceModifiers","handlePetProtectCopayInfoClick","handleVetFeesClick","handleWellnessClick","newCategoryId","ChangeCoverageScreenPreview","onChangeCoverageClick","onKeepClick","powerups","VeterinaryInformation","HaveVeterinaryFees","WellnessInformation","HaveWellness","NewPremiumEffectiveDate","LastDateToChange","PlanName","Premium","PerIncidentCopayInformation","HavePerIncidentCopay","wellnessId","beforeDate","renewalDate","isWellnessFPI","productId","isProductFPI","toTruncate","trunc","CustomTooltip","borderColor","position","iconRef","containerLocation","offsetLeft","handleHoverIn","handleHoverOut","borderStyle","borderWidth","borderTopColor","borderTopStyle","borderTopWidth","borderTop","SelectorPill","itemExtraData","handleChange","SelectorPills","tooltipDescription","onOptionClick","titleForId","ULTIMATE_PLAN","DeductibleReimbursement","plans","quoteSelected","deductibles","setDeductibles","plansItems","downgradePlan","quoteValues","initialIndex","isUltimateSelected","planMemo","updateDeductible","noDeductibleReimbursement","deductibleAvailable","Invalid","available","DeductibleName","reverse","updateReimbursement","reimbursementAvailable","ratingOptions","deductiblesFilter","deductiblesAvailables","currentDeductible","reimbursementPercentage","nameLegend","onDeductibleChange","reimbursements","setReimbursements","reimbursementsFilter","onReimbursementChange","onCoverageChange","infoRedIcon","PowerUpSwitch","customClassname","switchBallColor","switchRef","PetProtectCopayModal","onCancel","copayImg","PetCopayCoverageSection","howItWorksClick","modifierData","onAddPowerup","modalVisible","setModalVisible","childPowerUp","InformationText","infoImg","PowerUpTitle","localSelected","WhatsCoveredLinkUpdate","isHeader","RadioButton","selectedRadio","deselectedRadio","UpdatedCardPowerup","bundleModifierAdd","bundleModifierCheckSelection","handleAddPowerup","handleRemovePowerup","hideInfoImage","onClickWhatsCovered","petQuoteSelected","powerUpInfo","isMounted","setMounted","setLocalSelected","handleInfoPowerup","handleAddPowerupOption","handleRemovePowerupOption","powerupCardClassname","infoSelected","_powerUpInfo$BundleIn","contentModifiers","IsActive","bundleModifiers","FeeAmount","renderOptions","CardPowerupSection","onVetFeesClick","handleToggle","selectedModifier","defaultModifier","getFeeAmountChildren","benefitType","selectedModifiers","BenefitFeeType","isModifierSelected","getPriceWithoutFees","coverageFeeValue","getCoverageFee","insuranceModifiers","modifierIds","powerUps","feeFactor","feeFixed","calculateCoverageFeeUpdated","accumulator","currentValue","priceWithoutFees","getCoverageByBenefitFeeType","powerupTitle","renderPowerups","shouldDisplayInfoImage","powerUpSelectedHandle","ReviewChangesModal","disableSubmit","isAnnual","_petQuoteResponseList","quoteModifiers","_quoteModifiers$find","priceWithFormat","monthlyDecimal","monthlyInteger","decimal","annualPrice","monthlyPrice","handleSubmit","vetFees","hasVetFees","allModifiers","insuranceModifer","extraCarePack","extraCarePackSelected","extraCarePackChildren","child","HasVetFees","QuotePlan","dogIcon","catIcon","RateErrorModal","tErrorText","SubmitChanges","successIcon","SvgDogSelected","fillRule","clipRule","SvgCatSelected","PreviewSubmitUpdatedPlan","fees","initialTotalPriceWithFees","totalPriceWithFees","IconPet","renderName","initialValue","updatedValue","classNameValue","renderValues","arrowRight","initialPowerup","initial","fee","PreviewSubmitNote","ContactUsButton","alertIcon","ChangeCoveragePreviewSubmit","_initialCoverageValue","isUpdated","parseFloat","InsuranceProductFee","InsuranceFee","totalFees","next","useCoveragePreviewSubmit","effDate","ChangeCoverageScreenFooter","handleGoBack","onReviewChangesClick","priceText","renderPrice","UnsavedChangesPrompt","currentStepNumber","modalClassName","policyBrandName","textCancel","textConfirm","Card","ChangeCoverageScreenOptions","onRateCreationError","validatePromptWarning","useDisableSubmit","equalModifiers","initialSelected","currentSelected","power","cleanUpRate","handleCloseMultiModal","handleCloseSubmit","handleErrorModalClose","handleReviewChangesClick","onReviewChangesClosed","petProtectCopayModifier","rateErrorModalVisible","shouldPromptWarning","setRateErrorModalVisible","rateError","_foundPolicy$Policy$P","foundPolicy","policyItem","previosQuoteModifiers","currentModifier","petModifier","diminishingDeductible","diminishingDeductibleChild","wellnessPowerup","isFPI","petProtectCopayPowerup","ppipFather","ppipChildren","BenefitParentId","ppicChildrenIds","previousPPIC","prevModifier","wellnessfather","wellnessChildren","wellnessChildrenIds","previousWellness","childrenWellness","_crntLocation","nextLocation","useCoverageOptions","renderNavigationPrompt","NavigationPrompt","afterConfirm","disableNative","when","usePolicyBrand","ChangeCoverageInsuranceScreen","sortedPetsWithPolicy","policiesLoading","isPolicyOwner","isOwner","handleBackButton","handleChangeCoverageButton","handleKeepCoverageButton","_findPetId$PetInforma","findPetId","initialLocationKey","handlePopState","useBackButton","petIndexToSelect","handlePolicySelect","indexBillingPayment","Switch","Route","PolicyListItem","endsOn","marketingChannel","startsOn","formattedStartDate","formattedEndDate","OtherPolicies","petFound","petPoliciesData","EffectiveOn","ExpiresOn","PolicyStatusDisplay","petPolicy","goToPolicy","OrcaGetQuoteFrame","AddPetScreen","onAddANewPetPress","handlePetSelection","plusIcon","AddPetScreenIFrame","go","InsuranceNavigation","showAddCoverageModal","setShowAddCoverageModal","getFigoQuote","foundPet","getOrcaQuote","handleGetQuoteByBrand","EV53","closeAddCoverageModal","StepperMultibrand","numberOfSteps","ClaimbotStepper","backButtonLabel","goBackDisabled","goForwardisabled","submitted","nextButtonLabel","onNextStepClick","onPreviousStepClick","currentStepName","FileClaimbotEvie","agentImage","agentText","messageWithFormat","FinishButton","PetSelector","onPetItemPress","Age","PictureUrl","DateInput","minDate","onSelectedValidDate","min","inRange","ClaimSelectorItem","onItemPress","ClaimSelector","claimTypes","claimTypeSelected","onSelectClaimType","TextInput","onTextInputChanged","textInputValue","formattedText","TextInputSingleLine","AttachmentItem","onRemoveAttachment","onDeletePress","deleteCross","DragZone","onAddFiles","cloudAdd","AttachmentSelector","onAddAttachment","addFiles","display","AmountInput","number","useCurrencyFormat","setDisplayValue","inputMode","TwoOptionsSelector","onOneOptionSelected","optionSelected","twoOptions","leftOption","rightOption","onPress","option","validStep","ArrowImage","arrowCheckWhite","leftSelected","rightSelected","MultipleOptionsSelector","ClaimSummaryRow","ClaimSummary","claimSummaryInfo","row","SvgKeyboard","STEP_KEY_NAME","ALL_ATTACHMENT_STEPS","STEP_TYPES_TO_SKIP_FROM_HISTORY","STEPS_TO_SKIP_FROM_HISTORY","REIMBURSEMENT_METHOD_TYPE","REIMBURSEMENT_METHOD_ACCOUNT_TYPE","SIGNATURE_TYPE","SignAndSubmit","onSignatureTextChanged","onSignatureTypeSelection","signature","signatureText","signatureTypeSelected","Keyboard","maxSignatureLength","ClaimSubmitted","timeSpentBeforeSubmit","duration","diff","asMinutes","claimResult","EV5","PolicySelector","onPolicyItemPress","formatDateClaimSummary","getDateOrToday","currentTogglerVisibleFn","useFileClaimbotScreen","_claimsGeneric$agentI","currentStepValid","setCurrentStepValid","stepsHistory","setStepsHistory","setAgentText","setGoBackDisabled","setGoForwardDisabled","finished","setFinished","userSelection","setUserSelection","setSelectedPet","setSelectedDate","setClaimTypeSelected","setTextInputValue","setAttachments","amountInput","setAmountInput","setOptionSelected","setSignature","datesCaptured","setDatesCaptured","setTwoOptions","multipleOptions","setMultipleOptions","setSignatureTypeSelected","setSignatureText","setRoutingNumber","setAccountNumber","unknowStepVisible","setUnknowStepVisible","finishButtonVisible","setFinishButtonVisible","petSelectorVisible","setPetSelectorVisible","dateInputVisible","setDateInputVisible","claimSelectorVisible","setClaimSelectorVisible","textInputVisible","setTextInputVisible","textInputSingleLineVisible","setTextInputSingleLineVisible","attSelectorVisible","setAttSelectorVisible","amountInputVisible","setAmountInputVisible","twoOptSelectVisible","setTwoOptSelectVisible","multiOptSelectVisible","setMultiOptSelectVisible","claimSummaryVisible","setClaimSummaryVisible","signAndSubmitVisible","setSignAndSubmitVisible","claimSubmittedVisible","setClaimSubmittedVisible","routingNumberVisible","setRoutingNumberVisible","accountNumberVisible","setAccountNumberVisible","policySelectorVisible","setPolicySelectorVisible","setPolicySelected","marketChannelIdSelected","stepNum","stp","PetValidDates","ClaimTypes","petInfoByPolicy","selectedPetPolicies","reimbursementMethodUser","EftInfo","eftInfo","prefReimbMethod","baseTransEntry","synteticSelectPolicyStep","MessageText","NextTrueKeyName","getDateWithFormat","validateOnlyFigoPolicies","pol","onlyFigoPolicies","coverageDateRange","maxCoverageDate","minCoverageDate","injectPolicySelectorStep","stepWithSelection","NextFalseKeyName","ParentStepKeyName","firsStep","storeSelectedValue","_currentStep$Input","_currentStep$Input2","customDisplayName","customKeyName","hideDisplayName","Input","StoredField","SummaryField","selectPolicy","orcaPolicyId","petPolicyNumber","nextStep","goToNextStepByClaimType","getNextStep","newCurrentStep","newStepNonDuplicated","nextStepName","newStepByMarketChannel","storeStepInHistory","skipByInputType","skipByStep","goToNextStep","showPolicySelector","selectPet","font","textAlign","fillText","dataUrl","newSignature","updateBinaryAttachments","newAtts","doToBase64","then","handleChatbotStep","holdResponse","_claimsGeneric$select","formated","addAgentMessageWithFormat","userHasPetsWithPolicyValidation","userHasMoreThanOnePet","_step$userSelection","optionsWithFormat","opt","showMultiOptSelect","Options","onSubmitClaim","onAccountNumberChanged","numberValidation","attList","attListToAdd","newAttachmentList","onAmountInputChanged","storeAccountInformationFixed","routNumb","accNum","isCheck","paymentTypeDisplayValue","previousStep","pop","onRoutingNumberChanged","routingNumValidation","routing","checksumTotal","charAt","isRoutingNumberValid","dateValue","formatDateSubmitClaim","FileClaimbotScreen","useBreadcrumbNavigation","navigationParam","homeData","routeFormat","navTree","navData","str","defaultValue","atob","base64ToObject","urlParams","q","getRouteParams","itemsToAdd","param","newData","newRoute","findItem","allParents","array","searchId","newTree","foundItems","createRoute","isExact","currentValues","onBreadcrumbItemClick","newIndex","newDataObj","onDirectNavigation","newDestinyItem","newNavDataItems","newNavData","homeItem","newItems","camelCaseStr","lastItem","OverlayContainer","TripleDotMenuOption","handleOnClickOption","handleClick","isDisabled","TripleDotMenu","displayingFolderContent","setIsVisible","displayUp","setDisplayUp","tripleDots","menuRef","bottomPosition","getBoundingClientRect","innerHeight","ListItem","liRef","Dropdown","showShimmer","setActiveDescendant","currentRef","selectedItemId","getAttribute","scrollItemListToView","prevOpen","handleItemClick","handleKeyPress","newId","arrowDownFilled","MoveModal","goToNewFolder","isTrashScreen","selectedFoldersIds","selectedItemsIds","showError","setShowError","movingFolder","optionsGenerated","fullTree","node","newOption","FigoInput","asElement","controlId","counterClassName","hit","unit","unitClassName","withCounter","Form","Group","Label","InputGroup","Control","as","Append","Text","RenameModal","itemName","fieldError","setFieldError","setIsLoading","setName","isEmpty","setIsEmpty","noChangedDetected","handleOnClose","DeleteModal","itemExtension","selectedFolderIds","deleteTitle","deleteMessage","InboxAndDocsMenu","folderPermissions","goToFolder","itemInfo","onEditTagPetClick","moveModalVisible","setMoveModalVisible","renameModalVisible","setRenameModalVisible","deleteModalVisible","setDeleteModalVisible","itemsToDelete","foldersToDelete","isCustomerInboxDocsApiV2","filePermissionsByFolder","currentFolder","permissions","CanAddFile","CanAddFolder","CanEdit","FilePermissions","menuOptions","permissionsConfig","permission","trashIcon","isReadOnlyVisible","downloadIcon","tagIcon","moveIcon","editIcon","folderIcon","reloadParent","UnreadFiles","dateAdded","Folder","render","policyIcon","vetBillsIcon","picturesIcon","medicalRecordsIcon","shotsAndCertificatesIcon","claimsIcon","customIcon","renderFolderIcon","UnReadDocs","LastAddedDate","FolderPermissions","goToSelectedFolder","breadcrumbs","selectedFolder","flatFoldersChildren","inputArray","flatArray","UploadFilesButton","uploaderIcon","FoldersSection","onAddFolder","onOpenUpload","addFolderIcon","InboxSection","inbox","amountFiles","inboxIcon","RecentFile","dateFormat","fileInfo","IsReadOnly","dateFormated","filePermissionsSiblingFiles","filePermissionsFixed","RecentActivity","recentFile","DateAdded","DownloadUrl","ParentFolderId","BreadcrumbItem","itemActiveClassName","itemClassName","onNav","Breadcrumbs","customNavArrow","labelField","onNavItemClick","breadcrumb","Checkbox","checkboxLabelCustom","checkBlue","uncheckedIcon","PetSelectorMultisSelection","itemListChecked","onItemClick","onResetFilterClick","handleDropDownContainer","ItemListElement","isRounded","arrowDown","HeaderButtonFileAction","handleButtonClick","PermanentlyDeleteButton","onPermanentlyDeleteClick","buttonStyling","RestoreButton","onRestoreFilesClick","restoreIcon","TrashHeaderContainer","InboxAndDocsTableHeader","cleanSelection","allFiles","allFolders","isEmptyFolder","onPetSelected","onTagPetClick","petList","petListChecked","petSelectedTitle","showMoveModal","setShowMoveModal","showModalDelete","setShowDeleteModal","isTrashFolder","isPrivateFolder","haveFiles","haveFolders","haveAnyMark","tagPetDisabled","markAsReadDisabled","downloadDisabled","trashHeaderDisabled","moveHeaderDisabled","deleteHeaderDisabled","handleDownloadFileClick","downloadInfo","handleMarkAsReadFileClick","handleMoveFileClick","handleTagFileClick","currentFile","previousPetIdTagged","PetsId","handleDeleteFileClick","renderOnlyHeader","handleCloseMoveModal","handleCloseDeleteModal","getFileNameSelected","_fileList$files","docsHeaderContainerCSS","actionButtonsContainer","createPortal","markAsReadIcon","moveFileIcon","tagFileIcon","deleteFileIcon","conditionalHeaderRender","HeaderFieldContent","hasFilter","isAscendingFilter","isFilterActive","arrows","PRIVATE_FOLDERS","InboxAndDocsTable","allRowsSelected","dateAddedFilter","fileSizeFilter","isEmptyTrash","nameFilter","onAllRowSelection","onFileDateAddedFilterClick","onFileNameFilterClick","onFileSizeFilterClick","checkboxes","chboxSelected","unselected","chboxUnselected","nameColumnText","styling","container","header","UploadPhotoButton","iconOnly","isProfilePicture","CameraIcon","PetItemCardImage","hideAddPhoto","imageClassName","initialsClassName","isProfile","onAddPhotoClick","touchable","petTypePlaceholder","catPlaceHolder","dogPlaceHolder","petInitials","InboxAndDocsItemRow","changeLocation","itemRow","onAssignTagPetClick","onFileRowClick","onRowSelection","docStyling","handleFolderClick","handleAssignPetTagClick","AssignPetsButton","PetImage","docsAssignedStyle","rowStyle","renderIconAndName","_Metadata$Extension","blackFolderIcon","EV40","cleanDate","gtmDate","LastUpdate","bytes","floor","log","formatBytes","maxPetAssignedReached","petImages","ClassName","renderAssignedPets","InputFilesButton","ActionModal","acceptedFiles","cancelButtonText","confirmButtonText","saveButtonClass","showCloseButton","useInputFileButton","TagPetModal","fileToTagPet","onCloseTagPetModal","onSuccessTagPetModal","previousPetTagged","setPetListChecked","petSelectedQuantity","isCustomerApiV2","selectorTitle","handleAssignTagPetClose","petsIds","prevIds","prevPet","checkedPetsIds","newList","FileViewer","customErrorComponent","fileType","fileViewerKey","isPDF","pages","setPages","onDocumentLoadSuccess","numPages","ErrorComponent","cloudsImage","Suspense","fallback","Document","onLoadSuccess","workerSrc","el","Page","imageStyle","renderImages","FileViewerIFrame","fileViewerId","iFrameProps","styleProps","isTxtFile","ViewFileContent","hideStyle","setHideStyle","renderIFrame","setRenderIFrame","viewFileRef","onDownloadClick","renderHeader","_file$Metadata$Extens","showIFrame","onError","InboxAndDocsFileList","goToFolderDirect","selectedFilter","setSelectedFilter","itemRowListSelected","setItemRowListSelected","tagPetModalVisible","setTagPetModalVisible","setFileToTagPet","setPreviousPetTagged","FILE_VIEWER_ACCEPTED_FILES","fileListPerPet","filesAndDocsSelected","handleFileViewerVisible","fileItem","handleRowSelection","handleAssignTagPetClick","previousPets","fileListByDate","newPetList","quantity","getPetSelectorTitle","quantitySelected","totalQuantity","_filesAndDocsSelected","PRIVATE_FOLDER","InboxAndDocsEmptyScreen","handleAddFiles","headerEmptyFolderCSS","emptyFolder","Dropzone","coverClassName","dropzoneClassName","documentHeight","setDocumentHeight","updateDocumentHeight","scrollY","FolderSelector","onFolderSelected","handleFolderSelected","RelatedPetsSelector","petsIdsSelected","onPetSelectedChange","handlePetSelectedChanged","Step1","inputFileRef","goNextStep","Step2","filesToDisplay","onDeleteFile","UploadFilesModal","isHome","setPetIdsSelected","isSelectingFolder","setIsSelectingFolder","setError","showConfirmation","petIdChanged","prevPets","goToUpload","goToSelectFolder","handleUploadFiles","uploadSource","EV39","folderAndAssignValid","folderSelectionValid","handlePrimaryActionClick","handleCancelClick","AddFolderModal","onRefresh","newFolderName","setNewFolderName","internalError","setInternalError","onNewFolderNameChanged","onSubmitAddFolder","onNewFolderSuccess","InboxAndDocsScreen","_breadcrumbs$navData$","_breadcrumbs$navData$2","showAddFolder","setShowAddFolder","showUploadFilesModal","setShowUploadFilesModal","selectedUploadFolder","setSelectedUploadFolder","loadingFolders","currentFolderName","folderInfo","breadcrumbsSectionId","isPolicyDocumentsReadOnly","maxSizeMB","openUploadFilesModal","onNewFolderCreated","itemFolder","dropzone","renderInboxAndDocsContent","PolicyCard","isNotPPIOnePack","MultiPoliciesPayments","BillingPayments","BillingDetailsCard","_policyInformation$Po","_policyInformation$Po2","_policyInformation$Po3","_policyInformation$Po4","_BillingPayments$Next","policyInformation","useMobileReskin","detailItemClassName","_billingDetails$ACHAc","PAYMENT_TYPE","OneIncDefaultPaymentMethod","forceClose","isCreditCardDefault","oneIncReducer","onNewAddPaymentMethod","onSaveComplete","setLoading","setShow","lastShowModal","setLasShowModal","defaultPaymentMethod","selectedPaymentMethod","setSelectedPaymentMethod","onDefaultPaymentMethodUpdated","handleOnCancelModal","handleUseOtherPaymentMethod","renderOneItemDetails","renderCreditCardDeatils","maskedNumber","substring","renderCheckBox","renderBankAccountDetails","bankAccountIcon","spinner","renderTwoCardDetails","closeDefaultCount","OneIncModal","hasPastPaymentDue","onUpdatePaymentMethod","div","closeDefaultModal","setCloseDefaultModal","DiamondClientId","oneIncPaymentData","getRequestUpdatePaymentMethod","showMultiplePolicyModal","PayMethod","handleSaveComplete","saveByDefault","handleUpdatePaymentMethod","handleSaveByDefault","sessionId","$","on","billingAddressStreet","billingZip","clientReferenceData1","confirmationDisplay","policyHolderName","portalOne","savePaymentMethod","loadingWheel","billingDetailsValidation","isBankAccount","bankIcon","creditCardIcon","EditPaymentMultiPolicyModal","listSort","petPoliciesSorted","noAgencyBillPoliciesOneInc","selectedPayment","onSave","BillingInfoScreen","getPolicyInformation","BillingDetailsScreen","breadCrumbsInfo","breadCrumbsData","EmptyScreen","BillingAndPaymentsScreen","isBillingDetails","MyAccountCardItem","InsuranceAccountCards","cardTitle","cardKey","cardIcon","figoIcon","akcIcon","CustomerSourceId","petPartnersIcon","MyAccountScreen","isPPIG","onCardClick","petCloudIcon","creditCardSyncIcon","reimbursementIcon","PetCloudNameEdit","onClickCancel","firstNameValue","setFirstNameValue","lastNameValue","setLastNameValue","enableButton","handleFirstNameChanged","handleLastNameChanged","handleNamesUpdated","handleSaveClick","handleShowConfirmChangesModal","ConfirmChangesModal","handleContinueClick","handleModalCancelAction","isError","ForgotPasswordModal","emailValue","setEmailValue","emailError","setEmailError","isForgotLoading","setIsForgotLoading","successReset","setSuccessReset","invalidEmail","handleCancelAction","handlePasswordResetError","resetError","handleSuccessReset","handleConfirmAction","handleCloseSuccessModal","modalDescription","tooltipIcon","renderModal","PetCloudLoginEmailEdit","disabledButton","handleOnEmailBlur","handleUpdateError","handleUpdateSuccess","onClickSave","handleConfirmChangesAction","ConfirmEmailChangesModal","isPetCoudEmail","passwordValue","setPasswordValue","updateError","setUpdateError","isPasswordVisible","setIsPasswordVisible","handleVisiblePassword","handlePasswordOnChange","visibleIcon","hiddenIcon","PetCloudEmailEdit","handleEmailUpdated","handleEmailUpdateFailed","useMyAccountInfo","isEditingName","setIsEditingName","isEditingEmail","setIsEditingEmail","isEditingPhone","setIsEditingPhone","isEditingPCEmail","setIsEditingPCEmail","isEditingPassword","setIsEditingPassword","isCurrentHidden","setIsCurrentHidden","isNewHidden","setIsNewHidden","isConfirmHidden","setIsConfirmHidden","activeEdition","setActiveEdition","showImageEditor","setShowImageEditor","resetEditFields","isEditingAny","nameInitials","profileUrl","firstNameInitial","lastNameInitial","handleNameEditing","handleEmailEditing","handleEditingPhone","handleEditingPCEmail","handleEditingPassword","handleVisibleCurrentPassword","handleVisibleNewPassword","handleVisibleConfirmPassword","handleCancelModal","handleDiscardModal","handleShowImageEditor","handleCloseImageEditor","handleRemovePicture","handleSavePicture","newImage","handleChangePictureSuccess","isPhotoError","isPhotoSaved","isSavingPhoto","PetCloudPasswordEdit","currentPassword","setCurrentPassword","setNewPassword","setConfirmPassword","disableButton","handleOnClickForgot","handleInputChanged","PetCloudAccountRow","actionLabel","isEditing","onClickActionButton","profilePicture","renderValueContainer","InputImageMyPets","onFileChange","hasError","simulateDelay","inputElement","handleDeleteFile","SliderMyPets","handleWidth","minusIcon","sliderValue","ImageEditableMyPets","classNameButtonContainer","classNameSliderContainer","crop","cropHeight","cropWidth","onCropChange","onCropComplete","onRotation","onZoom","rotationStep","zoom","handleRotation","stepDegrees","Cropper","aspect","classes","cropAreaClassName","cropShape","cropSize","showGrid","roundArrow","ImageEditorMyPets","classCropperContainer","classInputContainer","classRotateButtonsContainer","classSliderContainer","imageHeight","imageWidth","initialPicture","isSaving","onRemove","photoType","saveSuccess","imageSource","setImageSource","invalidSource","setInvalidSource","imageSourceData","setImageSourceData","imageDestination","setImageDestination","setStep","setCrop","croppedAreaPixels","setCroppedAreaPixels","setRotation","setZoom","handleModalImageEditorClose","handleImageChanged","imageDataUrl","readFile","prevStep","handleCropChange","newCrop","handleCropComplete","newCroppedAreaPixels","degreesStep","prevRotation","handleSaveSuccess","imageName","imageToSave","generatePreview","handleRemove","handleZoom","newZoom","ImageActions","handleConfirmRemove","handleKeepImage","getStepContent","imageAreaHeight","imageAreaWidth","classNameButtonConainer","PetCloudAccountScreen","primaryUnsavedButtonText","secondaryUnsavedButtonText","shouldPrompt","InsuranceAccountRow","companyLogo","isFirstRow","onPushToEditDetails","InsuranceAccountShimmer","InsuranceRequestChangeBanner","isRequestSubmitted","labelToFieldsMap","SELECT_OPTION","InsuranceAccountUpdateForm","_checkboxes$","_checkboxes$2","toggleUpdateForm","submitRequestChanges","checkboxData","initialFormData","SecondAddress","SecondaryFirstName","SecondaryLastName","setCheckboxes","formData","setFormData","isPhoneValid","setIsPhoneValid","setIsDisabled","areCheckboxesChecked","isEmailDisabled","isPhoneDisabled","updateButtonState","areAllInputsValid","field","currentFieldValue","handleCheckboxChange","prevCheckboxes","checkbox","handleInputChange","_checkboxes$3","_checkboxes$4","numericZip","checkLength","zipString","code","zipcodeAbbreviation","getStateAbbreviation","prevData","onSubmit","InsuranceAccountRequestChange","submitAccountChanges","InsuranceAccountScreen","isUpdateFormOpen","setUpdateFormOpen","nameOnAccount","useInsuranceAccountScreen","isUpdateAccount","ReimbursementPolicyDetails","policyStatus","policyTerm","policyStatusId","ReimbursementEditOption","ReimbursementEditMenu","prevState","ReimbursementMethodContainer","isBankAccountActive","isCheckActive","bankAccountTabClassname","checkTabClassname","useDirectDepositContent","routingNumberRef","bankAccountRef","confirmAccountRef","setAccountNumberError","confirmAccountNumberError","setConfirmAccountNumberError","isBankFormInvalid","validateRoutingNumber","formValidation","handleAccountNumberChange","confirmAccountNumber","validateBankAccountNumber","validity","handleAccountTypeChange","handleConfirmAccountNumberChange","handleEditReimbursementAccept","handleEditReimbursementCancel","handleEditReimbursementSuccess","handleRoutingNumberChange","EditReimbursementModalButtons","DirectDepositContent","pattern","CheckContent","addressValue","ReimbursementEditModal","ReimbursementMethodSection","handleEditReimbursementClick","savingBankLogo","addressLine1","addressLine2","accountNumberLastFour","ReimbursementDetailsFrame","ReimbursementMultibrandList","onClickCard","openReimbursementFrame","setOpenReimbursementFrame","policiesToShow","handleOnClickCard","ReimbursementScreen","isReimDetails","currentPolicy","_currentPolicy$policy","_currentPolicy$policy2","_currentPolicy$policy3","_currentPolicy$Policy","_currentPolicy$Policy2","_currentPolicy$Policy3","PaymentHistoryPolicyCard","PaymentHistoryPolicies","PaymentHistoryDetailsRow","amountValue","detailsValue","totalTitle","PaymentHistoryPageButton","handlePageButtonClick","PaymentHistoryRow","descriptionValue","handleDetailsClick","isFooter","methodValue","paymentHistoryCurrentItems","showDetails","totalPages","ITEMS_PER_PAGE","PREV_PAGE","baseTotalItems","baseItems","currentItems","PaymentHistoryList","usePaymentHistory","setShowDetails","currentRow","setCurrentRow","BillingDate","PaymentDetails","PaymentHistoryScreen","isPaymentList","MyAccountNavigation","locationState","renderMyAccountContent","PetProfileFamilyPictureMyPets","picturePlaceholder","familyPicturePlaceholder","familyPicturePlaceholderMobile","PetProfileImage","PetProfileInfoCardMyPets","familyMembers","familyPicture","handleOnAddFamilyCoverClick","handleOnEditPetClick","petBirthday","petBreedId","isUploading","setIsUploading","handleAddPhoto","closeAddPhoto","useImperativeHandle","pencil","quotes","petImageData","MyPetsButton","PetProfileProgressMyPets","percentageComplete","setValue","interval","setInterval","clearInterval","PetProfileCompleted","MyOwnPetsValidation","MyVetCardItem","handleRemoveVet","vetAddress1","vetAddress2","vetEmail","vetFax","vetImage","vetState","vetTelephone","vetZipCode","placeHolder","MyVetsPlaceholder","handleAddVetClick","MyVetsComponent","loadingDelete","setLoadingDelete","selectedVetToRemove","setSelectedVetToRemove","addVetModalOpen","hasNoVets","showRemovePetCard","hideRemovePetCard","handleCloseAddVetModal","vetPlaceId","addVetIcon","vetInfo","ProviderId","Address1","Address2","MicrochipScreen","paramId","ChipId","hasMicrochip","provider","openMicrochipModal","ListName","pencilIcon","FigoSelect","renderOptionList","MicroChipModal","chipID","setChipID","companyIdState","companyID","setCompanyID","setInitialData","renderCompanyListWithoutDefaultCompany","handleChipIDChange","handleCompanySelect","handleSaveChip","handleSaveChipSuccess","crossImage","usePetTagModal","setSaveButtonDisabled","hasObjectEmptyValues","isFamilyMember1Fill","isFamilyMember2Fill","isFamilyMember3Fill","editMode","addButtonDisabled","familyMemberInfo","emptyMember","member","handleFamilyMemberNameInput","_emergencyContactsFor","handleFamilyMemberPhoneNumberInput","_emergencyContactsFor2","handleMessageToFinderInput","handleOnBlurPetTag","handlePetTagClose","handlePetTagInput","handleSavePetTagButton","nameErrorFound","phoneErrorFound","requiredError","invalidPhoneError","findErrors","figoTag","PetTagModal","PetTagScreen","openPetTagModal","PetProfileCardLink","PetProfileCardButton","PetProfileCard","paragraph","PetProfileScreenMyPets","petInfoRef","profileVisited","petOwnerFollowed","customerGuid","followStatus","ownPet","petOwnerId","EV15","petValue","policyOverview","handleAddPetPhotoClick","handleAddMicrochipClick","handleOnClickInsurance","impersonate","petsOrderIds","getQuoteUrl","orderId","goToGetQuotesD2C","completeProfileSteps","CoverPicture","MicrochipDto","isDescription","_petProfile$PetTagInf","PetTagInfoDto","prevStp","nextStp","renderMyPetsProgressContent","currentPercentageProgress","completedStepsList","isCompleted","getPercentageProgress","CardGrid","getContent","cardContent","insuranceIcon","myVetsIcon","microchipIcon","splice","figoPetTagIcon","renderPetProfile","_petProfile$DisplayDO","DisplayDOB","DeleteAPetModal","isInsured","EV11","NavigationMyPets","setModalAddPetVisible","modalAddFamilyCoverVisible","setModalAddFamilyCoverVisible","modalDeletePetVisible","setModalDeletePetVisible","setPetInformation","initialStep","setInitialStep","actualPet","IsDog","getPetInformation","closeDeleteModal","firstPetId","onContactUsOpen","petTypeId","ImpersonateBanner","isImpersonateLocalStorage","Header","centered","petCloudPaw","petCloudText","GenericError","hasPersonalInformation","ErrorDogImage","HeaderCommon","hideSignIn","FooterFoundLostPet","currentYear","InputCapsule","customStyleClass","FoundLostPetPetInformation","columnDesign","petAddress","petCity","petProfilePicture","placeHolderPet","datPlaceholder","dogPlaceholder","petBiography","FoundLostPetFamilyRow","familyIcon","FoundLostPetContactFormInput","customInputType","isMultiLineMessage","onInputValueChange","FoundLostPetContactForm","nameError","setNameError","setPhone","phoneError","setPhoneError","setMessage","messageError","setMessageError","FoundLostPet","isContactPetFamilyOpen","setContactPetFamilyOpen","petTagError","setPetTagError","useLogoutAndRedirection","fullCurrentPath","notFoundTagError","handlePetTagChanged","handleSearchPetSubmit","handleTextMyFamilyClick","messageSentSuccessfully","AcceptTermsOfServiceModal","setVisible","termsOfService","connector","ending","privacyPolicy","Component","URGENT_MESSAGES_KEY","UrgentMessages","lastMessagesRaw","lastMessages","MessageBody","sideMenuMinMediaQuery","SessionRouter","constructor","super","toggleSidebar","leftMenuOpen","onScreenSizeChange","closeMenu","screenMatch","toggleMyAccountMenu","addDOMEventListener","myAccountMenuOpen","screenWindow","matchMedia","addListener","componentDidUpdate","prevProps","menuIcon","connect","withRouter","SCOPES","LoginScreen","registerToken","setEmail","mount","setMount","customerV1T176413","loginHintParam","targetEmailParam","extraQueryParameters","targetEmail","loginHint","isAuthenticated","useIsAuthenticated","b2cAuthentication","useMsalAuthentication","InteractionType","logOutAndLog","signInUser","tokenResponse","impersonateToken","_tokenResponse$accoun","_tokenResponse$accoun2","idTokenClaims","impersonatedUser","hasCustomerId","decoded","petCloudCustomerId","impersonatedUserPetCloudCustomerId","_decoded","_decoded2","mixpanelEvent","EV_LOGIN","sUserInfo","startFromCache","UpdatePaymentMethodScreen","policyNumberParam","petIdMobile","localLoading","setLocalLoading","NoActivePolicies","petPatient","isSessionActive","customerIdParam","BannerApp","appName","classShow","setClassShow","isAndroid","setAndroid","setMobile","isSafari","setSafari","FigoIcon","DownloadMobileApps","googlePlayBadge","appStoreBadge","PublicFooter","mailicon","year","LoginMobile","PetCloudBanner","FigoBackground","RenewalFloatingBarTop","totalPrice","annual","monthly","MobileHeader","FigoLogo","SubmitSuccess","tabletPortrait","mobilePortrait","tabletBalloon","mobileBalloon","ChangeCoverageScreen","publicTokenParam","setPolicyNumber","setPublicToken","handleRateError","OPEN_ANCHOR","CLOSE_ANCHOR","SharePost","postContentRef","appleAppStoreLogo","googlePlayLogo","FooterPetCloud","showStoreIcons","emailIcon","appleStoreImg","googleStoreImg","HeaderPetcloud","logoutLabel","onLogoutClick","showLogout","petCloudLogo","DownloadMobileApplications","setPhoneNumber","petCollage","playStore","appStore","replaceAll","ContentfulPage","TermsOfUseScreen","PrivacyPolicyScreen","mobile","onEnter","reload","RedirectCustomerId","CustomModal","changeInputValue","handleInputModalSubmit","onPrimaryAction","onSecondaryAction","handleModalOverlayClick","fluid","errorModalHeaderImage","MessageModal","hideClosebutton","alertImage","onButtonClick","handleOnButtonClick","ImpersonateSession","exireSession","setExpireSession","user","getStorageOrDefault","onfocus","VersionData","head","AppRouter","allTokensLoaded","setAllTokensLoaded","hasSession","getTokensBeforeStartUp","Router","PublicRouter","resources","en","ChangeCoverageEn","ClaimsEn","CommonEn","editReimbursementMethod","EditReimbursementMethodEn","fileClaimbot","FileClaimbot","FileClaims","foundLostPet","genericError","GenericErrorEn","HomeEn","InboxAndDocsEn","insuranceScreen","InsuranceEn","loginScreen","LoginScreenEn","MyAccountEn","MyPetsEn","pageNotFound","PageNotFoundEn","PaymentMethodEn","sessionRouter","SessionRouterEn","settingsScreen","SettingsScreenEn","sideMenu","SideMenuEn","i18n","use","initReactI18next","defaultNS","lng","App","MsalProvider","I18nextProvider","msalInstance","PublicClientApplication","createRoot","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.37e3ebc4.chunk.js","sourcesContent":["export const POLICY_STATUS = {\n active: 1,\n cancelled: 0,\n expired: 3,\n future: 2,\n past: 4,\n unPolicy: -1,\n};\n\nexport const MULTIBRAND_POLICY_STATUS = {\n cancelled: 'Cancelled',\n // eslint-disable-next-line sort-keys\n active: 'Active',\n future: 'Future',\n // eslint-disable-next-line sort-keys\n expired: 'Expired',\n past: 'Past',\n unPolicy: 'UnPolicy',\n};\n\nexport const PAYMENT_METHOD_IDS = {\n ach: 0,\n agencyBill: 2,\n creditCard: 1,\n};\n\nexport const BANK_ACCOUNT = 'Bank Account';\n\nexport const CREDIT_CARD = 'Credit Card';\n\nexport const PAYMENT_METHOD_NAMES = [\n BANK_ACCOUNT,\n CREDIT_CARD,\n 'Agency Bill',\n];\n\nexport const PAYMENT_PLANS = {\n annual: 1,\n monthly: 0,\n};\n\nexport const PAYMENT_PLANS_BY_NAME = {\n annual: 'Annual',\n monthly: 'Monthly',\n};\n\nexport const REIMBURSEMENT_METHODS = {\n check: 1,\n deposit: 2,\n none: 0,\n};\n\nexport const PET_TYPE = {\n CAT: 13,\n DOG: 12,\n};\n\nexport const PET_TYPE_ID = {\n CAT: 1,\n DOG: 0,\n};\n\n/**\n * Multibrand endpoints return the pet type based on this\n */\nexport const PET_TYPE_MULTIBRAND = {\n CAT: 2,\n DOG: 1,\n};\n\nexport const PET_GENDER = {\n FEMALE: 1,\n MALE: 0,\n};\n\nexport const FILE_CLAIMS_STEPS = {\n claimsDetails: {\n id: 4,\n parentStep: 1,\n },\n claimType: {\n id: 2,\n parentStep: 1,\n },\n claimTypeDetail: {\n id: 3,\n parentStep: 1,\n },\n fileClaimFail: {\n id: 9,\n parentStep: 3,\n },\n fileClaimSuccess: {\n id: 10,\n parentStep: 3,\n },\n fileUpload: {\n id: 5,\n parentStep: 1,\n },\n reimbursementMethod: {\n id: 6,\n parentStep: 2,\n },\n review: {\n id: 8,\n parentStep: 3,\n },\n selectPet: {\n id: 1,\n parentStep: 1,\n },\n termsAndConditions: {\n id: 7,\n parentStep: 3,\n },\n};\n\nexport const CLAIM_TYPES = {\n ADVERTISING_REWARD: 4,\n EMERGENCY_BOARDING: 3,\n MORTALITY: 6,\n THEFT_OR_STRAYING: 5,\n VACATION_CANCELLATION: 7,\n VET_FEE: 2,\n};\n\nexport const ACCOUNT_TYPES = {\n CHECKING: 1,\n SAVINGS: 2,\n};\n\nexport const MAX_SIZE_MB = 15;\nexport const ALLOWED_EXT =\n /(\\.pdf|\\.jpg|\\.jpeg|\\.png|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.csv|\\.txt|\\.html)$/i;\nexport const CARD_NUMBER_DASHES_LENGTH = 19;\nexport const CARD_NUMBER_LENGTH = 16;\nexport const CVV_MAX_LENGTH = 4;\nexport const CVV_MIN_LENGTH = 3;\nexport const EXPIRATION_DATE_DASHES_LENGTH = 5;\nexport const EXPIRATION_DATE_LENGTH = 4;\nexport const MAX_CITY_LENGTH = 20;\nexport const EDIT_ROUTING_NUMBER_LENGTH = 9;\nexport const NAME_LENGTH = 60;\nexport const PET_TAG_LENGTH = 5;\nexport const ROUTING_NUMBER_LENGTH = 30;\nexport const STREET_ADDRESS_LENGTH = 30;\nexport const ZIP_CODE_LENGTH = 5;\nexport const FAX_NUMBER_LENGTH = 13;\n\nexport const MONTHLY_FEE = '2.00';\n\nexport const FILES_TYPES_ACCEPTED = {\n csv: '.csv',\n doc: '.doc',\n docx: '.docx',\n html: '.html',\n jpeg: '.jpeg',\n jpg: '.jpg',\n pdf: '.pdf',\n png: '.png',\n txt: '.txt',\n xls: '.xls',\n xlsx: '.xlsx',\n};\n\nexport const GOOGLE_PLAY_URL =\n 'https://play.google.com/store/apps/details?id=com.figoinsurance.petcloud';\n\nexport const APP_STORE_URL =\n 'https://apps.apple.com/us/app/figo-pet-cloud/id1278520013';\n\nexport const SMS_APP_LINKS = 'Download the Pet Cloud app.\\n'\n + 'For iOS: https://appstore.com/petcloud\\n'\n + 'For Android https://play.google.com/store/'\n + 'apps/details?id=com.figoinsurance.petcloud';\n\nexport const FACEBOOK_URL = 'https://www.facebook.com/FigoPet';\n\nexport const TWITTER_URL = 'https://twitter.com/FigoPet';\n\nexport const INSTAGRAM_URL = 'https://www.instagram.com/FigoPet/';\n\nexport const CONTACT_FIGO_URL =\n 'https://figopetinsurance.com/contact-us-figo-pet-insurance';\n\nexport const LEARN_MORE_URL = 'https://figopetinsurance.com/pet-cloud';\n\nexport const FIGO_INSURANCE_URL = 'https://figopetinsurance.com/pet-insurance';\n\nexport const CONTACT_US_URL =\n 'https://figopetinsurance.com/contact-us-figo-pet-insurance';\n\nexport const POLICY_DOCUMENTS_URL = 'Policy%20Documents';\n\nexport const NEW_CLAIM_STEPS = {\n CLAIM_INFO: 3,\n CLAIM_TYPE_SELECTION: 2,\n PET_SELECTION: 1,\n};\n\nexport const ONE_INC_PAYMENT_CATEGORY = {\n bankAccount: 'Echeck',\n creditCard: 'CreditCard',\n};\n\nexport const ONE_INC_DEFAULT_TOKEN = 'DEFAULT';\n\nexport const ONE_INC_EMPTY_ACH = {\n Address: '',\n AddressFirstName: '',\n BillingInfoType: 0,\n City: '',\n LastName: '',\n MaskedAccountNumber: '',\n MaskedCardNumber: '',\n PaymentProfileId: '',\n State: '',\n Zip: '',\n};\n\nexport const ONE_INC_EMPTY_CC = {\n Address: '',\n AddressFirstName: '',\n BillingInfoType: 1,\n City: '',\n LastName: '',\n MaskedAccountNumber: '',\n MaskedCardNumber: '',\n PaymentProfileId: '',\n State: '',\n Zip: '',\n};\n\nexport const ONE_INC_PAYMENT_METHOD = {\n bankAccount: 2,\n creditCard: 1,\n};\n\nexport const ADD_PET_MODAL_STEPS = {\n FIRST_STEP: 1,\n SECOND_STEP: 2,\n THIRD_STEP: 3,\n};\n\nexport const PASSWORD_ERROR = {\n matchesPrevious: 9,\n none: -1,\n};\n\nexport const US_KEYWORD_REGEX = /^[\\x20-\\x7E]*$/g;\n\nexport const INBOX_DOCS = {\n claimDocuments: '8',\n inbox: '1',\n landing: '0',\n medicalRecords: '5',\n pictures: '4',\n policyDocuments: '2',\n shotsCertificates: '6',\n trash: '7',\n vetBills: '3',\n};\n\nexport const PROTECTED_FOLDERS = [\n INBOX_DOCS.policyDocuments,\n INBOX_DOCS.trash,\n INBOX_DOCS.claimDocuments,\n];\n\nexport const ACTION_BUTTONS_CONTAINER_ID =\n 'inbox-docs-action-buttons-container';\n\nexport const MY_ACCOUNT = {\n billingAndPaymentDetails: '8',\n billingAndPayments: '4',\n insuranceAccount: '5',\n landing: '0',\n paymentHistory: '2',\n paymentHistoryList: '3',\n petCloudAccount: '1',\n reimbursement: '6',\n reimbursementDetails: '7',\n update: '9',\n};\n\nexport const MY_ACCOUNT_EDIT = {\n email: '3',\n loginEmail: '1',\n name: '0',\n password: '4',\n phone: '2',\n};\n\nexport const PERMISSIONS_INBOX_DOCS = {\n addFiles: 'addfile',\n addFolder: 'addfolder',\n delete: 'delete',\n download: 'download',\n edittag: 'edittag',\n move: 'move',\n rename: 'rename',\n share: 'share',\n // recent file option (only available on web)\n viewinfolder: 'viewinfolder',\n};\n\nexport const EDIT_FILE_PERMISSIONS = [\n PERMISSIONS_INBOX_DOCS.rename,\n PERMISSIONS_INBOX_DOCS.delete,\n PERMISSIONS_INBOX_DOCS.move,\n PERMISSIONS_INBOX_DOCS.edittag,\n];\n\nexport const DEFAULT_FILE_PERMISSION = [PERMISSIONS_INBOX_DOCS.download];\n\n/**\n * Enumerator used for identify the root or default foders from Inbox and Docs.\n */\nexport const DEFAULT_FOLDERS_INBOX_AND_DOCS = {\n 1: 'Inbox',\n 2: 'PolicyDocuments',\n 3: 'VetBills',\n 4: 'Pictures',\n 5: 'MedicalRecords',\n 6: 'ShotsCertificates',\n 7: 'Trash',\n 8: 'ClaimFolder',\n};\n\nexport const INBOX_DOCS_FILE_CATEGORY = {\n file: 2,\n folder: 1,\n};\n\nexport const INBOX_DOCS_PRIVATE_FOLDERS = [\n INBOX_DOCS.claimDocuments,\n INBOX_DOCS.policyDocuments,\n];\n\nexport const ZERO_YEARS_OLD = 0;\n\nexport const MINIMUM_DAYS_REQUIRED_FOR_QUOTE = 49;\n\nexport const WELLNESS_MODIFIER_ID = 70428;\n\nexport const FOLDER_COLORS = {\n 2: '#2c6085',\n 3: '#eecc38',\n 4: '#e56383',\n 5: '#2fb3b4',\n 6: '#ffa300',\n 8: '#7c52bf',\n custom: '#eceef0',\n};\n\nexport const READ_FILE_SOURCE = {\n claims: 1,\n inboxDocs: 2,\n toolbar: 3,\n};\n\nexport const ACCEPTED_FILES = '.pdf,.jpg,.jpeg,.png,.doc,'\n + '.docx,.xls,.xlsx,.csv,.txt,.html';\n\nexport const CLAIM_STATUS = {\n CLOSED: 4,\n IN_REVIEW: 3,\n OPEN: 1,\n RECORDS: 2,\n};\n\nexport const CLAIM_STATUS_ACTION = {\n CLOSED: 'closed',\n OPEN: 'open',\n};\n\nexport const NAME_MAX_LENGTH = {\n file: 30,\n folder: 50,\n};\n\nexport const FILTER_TYPES = {\n date: 1,\n name: 0,\n size: 2,\n};\n\n/**\n * Type of policy (only for Figo policies)\n */\nexport const PRODUCT_FAMILY = {\n FGO: 1,\n FPI: 3,\n GPI: 4,\n IHC: 2,\n None: 0,\n};\n\nexport const EXPLORE_PROVIDERS = {\n google: 1,\n manuallyAdded: 3,\n pointInterest: 2,\n};\n\nexport const IMAGE_UPLOAD_TYPE = {\n background: 1,\n customerProfile: 3,\n petProfile: 2,\n post: 0,\n};\n\nexport const APP_STORE_LINK = 'https://apps.apple.com'\n + '/us/app/figo-pet-cloud/id1278520013?ls=1';\n\nexport const GOOGLE_PLAY_LINK = 'https://play.google.com'\n + '/store/apps/details?id=com.figoinsurance.petcloud';\n\n/**\n * Identifier for companies\n * policies and claims use MARKETING_CHANNEL_ID\n * */\nexport const DESIGN_TOKEN_TYPE = {\n THEME_AKC: 3,\n THEME_FIGO: 1,\n THEME_PET_PARTNERS: 2,\n THEME_SPOT: 5,\n};\n\nexport const NO_CLAIMS = 0;\n\nexport const DEPOSIT_REIMBURSEMENT = 2;\nexport const CHECK_REIMBURSEMENT = 1;\n\nexport const WEB_VIEW_TYPES = {\n billingAndPayment: '1',\n changeCoverage: '2',\n paymentMethod: '3',\n reimbursementMethod: '4',\n // eslint-disable-next-line sort-keys\n figoGetQuote: '5',\n // eslint-disable-next-line sort-keys\n addingNewPetToPolicy: '6',\n newQuoteForPet: '7',\n};\n\nexport const POST_MESSAGE_TYPES = {\n CLOSE_PAGE: 'close-page',\n POLICY_UPDATED: 'policy-updated',\n QUOTE_CREATED: 'new-quote-created',\n};\n\nexport const MAX_ZIP_LENGTH = 5;\nexport const MAX_PHONE_LENGTH_MASK = 14;\n\nexport const CLAIM_STATUS_BY_TEXT = {\n attentionNeeded: 'Attention Needed',\n closed: 'Closed',\n completed: 'Completed',\n done: 'Done!',\n inReview: 'In Review',\n received: 'Received',\n records: 'Records',\n};\n\nexport const SPECIES_TYPE = {\n cat: 1,\n dog: 0,\n};\n\nexport const GENDER_TYPE = {\n female: 1,\n male: 0,\n};\n\nexport const PMS = {\n diamond: 'Diamond',\n orca: 'Orca',\n};\n","export const THEME_PETCLOUD = 1;\nexport const THEME_FIGO = 2;\nexport const THEME_AKC = 3;\nexport const THEME_PET_PARTNERS = 4;\nexport const THEME_SPOT = 5;\n\n/**\n * Company that provides the policy/claim data\n */\nexport const MARKETING_CHANNEL_ID = {\n akc: 3,\n figo: 1,\n ppi: 2,\n ppiOnePack: 4,\n spot: 5,\n};\n","import moment from 'moment';\nimport { jwtDecode } from 'jwt-decode';\nimport { camelCase, startCase } from 'lodash';\n\nimport {\n DESIGN_TOKEN_TYPE,\n FILES_TYPES_ACCEPTED,\n FILTER_TYPES,\n MAX_ZIP_LENGTH,\n PROTECTED_FOLDERS,\n} from '../constants';\nimport { MARKETING_CHANNEL_ID } from '../theme/theme.constants';\nimport app from '../app.json';\n\nexport function doNothing() {\n // Does exactly what it promises.\n // ... what is \"nothing\" anyway? https://bit.ly/2Hwo3Vj\n}\n\n// serializeForUri({ param0: 'value 0', param1: 'value:1' }) ===\n// 'param0=value%200¶m1=value%3A1'\nexport function serializeForUri(obj = {}) {\n return Object\n .keys(obj)\n .map((key) => `${encodeURI(key)}=${encodeURI(obj[key])}`)\n .join('&');\n}\n\n// This function uses setTimeout but can be combined with await in an async\n// function to wait for some time before continuing execution.\nexport function sleep(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n}\n\nexport function maskFaxNumber(faxValue) {\n const parts = faxValue.replace(/\\D/g, '').match(/(\\d{3})(\\d{3})(\\d{4})/);\n\n if (parts) {\n return `${parts[1]}-${parts[2]}-${parts[3]}`;\n }\n\n return faxValue;\n}\n\nexport function maskPhoneNumber(string = '') {\n if (!string) {\n return '';\n }\n\n let phone = string.replace(/[^0-9]/g, '');\n const areaCodeMatch = /^(\\d{3})(?=\\d+)/.exec(phone);\n const firstPartMatch = /^\\d{3}(\\d{1,3})/.exec(phone);\n const secondPartMatch = /^\\d{6}(\\d{1,4})/.exec(phone);\n\n if (areaCodeMatch) {\n phone = `(${areaCodeMatch[1]})`;\n\n if (firstPartMatch) {\n phone += `-${firstPartMatch[1]}`;\n\n if (secondPartMatch) {\n phone += `-${secondPartMatch[1]}`;\n }\n }\n }\n\n return phone;\n}\n\nexport function findSelectedModifier({ id, modifiers = [] }) {\n const contentModifierSelected = modifiers\n ?.find((element) => element.id === id);\n\n const isChecked = contentModifierSelected\n ? contentModifierSelected.isSelected : false;\n\n return isChecked;\n}\n\nexport function getDateBasicFormat(date, format = 'M/DD/YYYY') {\n return moment(date).format(format);\n}\n\nexport function isEmailValid(email = '') {\n const regexString = '^[a-zA-Z0-9_-]+(\\\\.[a-zA-Z0-9_-]+)*@'\n + '[a-zA-Z0-9_-]+(\\\\.[a-zA-Z0-9_-]+)*\\\\.[a-zA-Z0-9]{1,}$';\n const regex = new RegExp(regexString);\n\n return regex.test(String(email.trim()).toLowerCase());\n}\n\nexport function delay(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function currencyFormat({ fixed = 2, value = 0 }) {\n if (Number.isNaN(Number(value))) {\n return value;\n }\n\n if (value === 0) {\n return `$${value.toFixed(fixed)}`;\n }\n\n let formattedValue = `${Math.abs(value)\n .toFixed(fixed).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')}`;\n formattedValue = value > -1\n ? `$${formattedValue}`\n : `-$${formattedValue}`;\n\n return formattedValue;\n}\n\nexport function testNumberWithDecimal(value) {\n const REGEX_NUMBER = /^(\\d+(\\.\\d{0,2})?|\\.?\\d{1,2})$/;\n\n return REGEX_NUMBER.test(value) || !value;\n}\n\nexport function validateNumbersOnly(input) {\n const ONLY_NUMBER_REGEX = /^\\d+$/g;\n\n return input && input.match(ONLY_NUMBER_REGEX);\n}\n\nexport function validateLettersOnly(input) {\n const ONLY_LETTERS_REGEX = /^[a-z A-Z]*$/g;\n\n return input && input.match(ONLY_LETTERS_REGEX);\n}\n\nexport function validateAlphanumeric(value) {\n const REGEX_ALPHANUMERIC = /^[a-zA-Z0-9]*$/;\n\n return REGEX_ALPHANUMERIC.test(value) || !value;\n}\n\nexport function isValidDiamondStreet(value) {\n const newValue = String(value).replace('P.O.', '').replace('P. O.', '');\n\n // eslint-disable-next-line max-len\n const REGEX_STREET_ADDRESS = /^\\s*((([a-zA-Z]+\\s){1}((?=.*[0-9]+))|([0-9]+\\s){1}((?=.*[a-zA-Z]+)))|((?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)+\\s){1}((?=.*[0-9a-zA-Z]+)))+.*\\s*$/;\n const isStreetAddressValid = REGEX_STREET_ADDRESS.test(newValue.trim());\n\n return isStreetAddressValid;\n}\n\n// For more information about the Routing validation see:\n// http://en.wikipedia.org/wiki/Routing_transit_number\n// value for testing: 021000021\nexport function isRoutingNumberValid(routing) {\n if (routing.length !== 9) {\n return 'errors.mustBeANineDigitNumber';\n }\n\n const checksumTotal =\n (\n 7 * (parseInt(routing.charAt(0), 10)\n + parseInt(routing.charAt(3), 10)\n + parseInt(routing.charAt(6), 10))\n )\n + (\n 3 * (parseInt(routing.charAt(1), 10)\n + parseInt(routing.charAt(4), 10)\n + parseInt(routing.charAt(7), 10))\n )\n + (\n 9 * (parseInt(routing.charAt(2), 10)\n + parseInt(routing.charAt(5), 10)\n + parseInt(routing.charAt(8), 10))\n );\n\n const checksumMod = checksumTotal % 10;\n if (checksumTotal === 0 || checksumMod !== 0) {\n return 'errors.invalidBankRoutingNumber';\n }\n\n return '';\n}\n\nexport function isMarkelPolicy(policy) {\n return policy.startsWith('FGO');\n}\n\nexport const toBase64 = (file) => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n let encoded = reader.result.toString().replace(/^data:(.*,)?/, '');\n if ((encoded.length % 4) > 0) {\n encoded += '='.repeat(4 - (encoded.length % 4));\n }\n resolve(encoded);\n };\n reader.onerror = (error) => reject(error);\n});\n\nexport const boolParse = (value = '') => {\n if (!value) {\n return {\n isBool: false,\n value: null,\n };\n }\n\n const formattedValue = value.toString().toLocaleLowerCase();\n const possibleVales = ['true', 'false'];\n const isBool = possibleVales.includes(formattedValue);\n\n return {\n isBool,\n value: isBool ? (formattedValue === 'true') : null,\n };\n};\n\nexport function isFPIPolicy(policy) {\n if (!policy) {\n return false;\n }\n\n return policy.startsWith('FPI');\n}\n\nexport function getMimefile(extension) {\n switch (extension) {\n case FILES_TYPES_ACCEPTED.pdf:\n return 'application/pdf';\n case FILES_TYPES_ACCEPTED.jpg:\n case FILES_TYPES_ACCEPTED.jpeg:\n case FILES_TYPES_ACCEPTED.png:\n return 'image/jpeg';\n case FILES_TYPES_ACCEPTED.doc:\n case FILES_TYPES_ACCEPTED.docx:\n return 'application/msword';\n case FILES_TYPES_ACCEPTED.xls:\n case FILES_TYPES_ACCEPTED.xlsx:\n return 'application/vnd.ms-excel';\n case FILES_TYPES_ACCEPTED.csv:\n return 'text/csv';\n case FILES_TYPES_ACCEPTED.txt:\n return 'text/plain';\n case FILES_TYPES_ACCEPTED.html:\n return 'text/html';\n default:\n return '';\n }\n}\n\nexport async function downloadFileInPage({\n base64Data = '',\n blobUrl = '',\n fileName = '',\n fileUrl = '',\n}) {\n try {\n let url = '';\n\n if (base64Data) {\n url = `data:text/plain;base64,${base64Data}`;\n } else if (blobUrl) {\n url = blobUrl;\n } else {\n const response = await fetch(\n fileUrl,\n { method: 'get', referrerPolicy: 'no-referrer' },\n );\n const blob = await response.blob();\n url = window.URL.createObjectURL(blob);\n }\n\n const aElement = document.createElement('a');\n aElement.setAttribute('download', fileName);\n aElement.href = url;\n aElement.setAttribute('target', '_blank');\n aElement.click();\n window.URL.revokeObjectURL(url);\n } catch (_) {\n doNothing();\n }\n}\n\nexport function loadEmbeddedScript({\n onLoadCallback,\n scriptAsync,\n scriptDefer,\n scriptId,\n scriptInnerHTML,\n scriptSrc,\n scriptType = 'text/javascript',\n}) {\n if (document.getElementById(scriptId)) {\n return;\n }\n\n let script = document.createElement('script');\n\n if (scriptType === 'text/css') {\n script = document.createElement('style');\n }\n\n script.id = scriptId;\n script.type = scriptType;\n if (scriptSrc) {\n script.src = scriptSrc;\n }\n\n script.async = scriptAsync;\n script.defer = scriptDefer;\n\n if (scriptInnerHTML) {\n script.innerHTML = scriptInnerHTML;\n }\n\n if (onLoadCallback) {\n script.onload = () => onLoadCallback();\n }\n\n document.body.appendChild(script);\n}\n\nexport function removeEmbeddedScripts(...scriptIds) {\n scriptIds.forEach((scriptId) => {\n const script = document.getElementById(scriptId);\n\n if (script) {\n script.remove();\n }\n });\n}\n\nexport function getMaskedAccountNumber(accountNumber, subFix = 'xxxxxxxx') {\n const LAST_4_DIGITS_REGEX = /.(?=.{4})/g;\n\n return `${subFix}${accountNumber.replace(LAST_4_DIGITS_REGEX, '')}`;\n}\n\nexport const isPaycheck = app.paycheck;\n\nexport const {\n useNewClaimbot,\n useSecondaryPetParent,\n useTrackingEvents,\n} = app;\n\nexport function isMobile() {\n /* eslint-disable max-len */\n\n const userAgent = navigator.userAgent;\n const userAgentPart = userAgent.substr(0, 4);\n\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(userAgent)\n || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i.test(userAgentPart);\n}\n\nexport function removeInvalidSpacesOnNames(name) {\n return name.split(' ').filter((item) => !!item).join(' ');\n}\n\nexport function getMonthAndDayFromDate(value) {\n return moment(value).format('MMMM DD');\n}\n\nexport function getDateForPostShare(value) {\n return moment(Number(value)).format('MMM DD [at] h:mm A');\n}\n\nexport function getNameInitials(name = '') {\n if (!name) {\n return '';\n }\n\n const names = name.replace(/[^a-zA-Z0-9 ]/g, '').split(' ');\n let initials = '';\n if (names.length > 1) {\n initials = names[0].slice(0, 1) + names[1].slice(0, 1);\n initials.toUpperCase();\n } else {\n initials = names[0].slice(0, 2);\n }\n return initials;\n}\n\nexport function readFile(file) {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.addEventListener('load', () => resolve(reader.result), false);\n reader.readAsDataURL(file);\n });\n}\n\nconst createImage = (url) => new Promise((resolve, reject) => {\n const image = new Image();\n image.addEventListener('load', () => resolve(image));\n image.addEventListener('error', (error) => reject(error));\n image.setAttribute('crossOrigin', 'anonymous');\n image.src = url;\n});\n\nfunction getRadianAngle(degreeValue) {\n return (degreeValue * Math.PI) / 180;\n}\n\nexport async function getCroppedImg(imageSrc, pixelCrop, rotation = 0) {\n const image = await createImage(imageSrc);\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n const maxSize = Math.max(image.width, image.height);\n const safeArea = maxSize;\n\n // set each dimensions to double largest dimension\n // to allow for a safe area for the image to rotate\n // in without being clipped by canvas context\n canvas.width = safeArea;\n canvas.height = safeArea;\n\n // translate canvas context to a central location on\n // image to allow rotating around the center.\n ctx.translate(safeArea / 2, safeArea / 2);\n ctx.rotate(getRadianAngle(rotation));\n ctx.translate(-safeArea / 2, -safeArea / 2);\n\n // draw rotated image and store data.\n ctx.drawImage(\n image,\n safeArea / 2 - image.width * 0.5,\n safeArea / 2 - image.height * 0.5,\n );\n const data = ctx.getImageData(0, 0, safeArea, safeArea);\n\n // set canvas width to final desired crop size\n // this will clear existing context\n canvas.width = pixelCrop.width;\n canvas.height = pixelCrop.height;\n\n // paste generated rotate image with correct offsets for x,y crop values.\n ctx.putImageData(\n data,\n Math.round(0 - safeArea / 2 + image.width * 0.5 - pixelCrop.x),\n Math.round(0 - safeArea / 2 + image.height * 0.5 - pixelCrop.y),\n );\n\n return canvas.toDataURL('image/jpeg');\n}\n\nexport function getNullSafeDate(date, format = 'M/DD/YYYY') {\n if (date) {\n return getDateBasicFormat(date.split('T')[0], format);\n }\n\n return 'N/A';\n}\n\nexport function goToGetQuotesD2C({\n impersonate = false,\n impersonatingAdminEmail = '',\n LoginEmail,\n petsOrderIds,\n publicToken,\n}) {\n if (petsOrderIds && petsOrderIds.length) {\n const path = 'quoting/getQuote';\n const impersonatingEmail = impersonate ? impersonatingAdminEmail : null;\n const params = {\n impersonate,\n impersonatingAdminEmail: impersonatingEmail,\n orderId: petsOrderIds.join(','),\n };\n\n const paramsUriD2C = serializeForUri(params);\n const getQuoteUrl = `${process.env.REACT_APP_D2C}/${path}`\n + `?${paramsUriD2C}&publicToken=${publicToken}&email=${LoginEmail}`;\n\n window.open(getQuoteUrl, '_blank');\n } else {\n window.open(`${process.env.REACT_APP_D2C}/getQuote`, '_blank');\n }\n}\n\nexport function validatePhone(string) {\n if (!string) {\n return false;\n }\n\n return string.replace(/[()-]/g, '').length === 10;\n}\n\nexport function base64ToObject(str, defaultValue) {\n try {\n return str ? JSON.parse(window.atob(str)) : defaultValue;\n } catch (_) {\n return defaultValue;\n }\n}\n\nexport function objectToBase64(obj) {\n return window.btoa(JSON.stringify(obj));\n}\n\n/**\n * This function returns an array with the name params on the given route\n * @param {string} url Must have the format /urlexample/:parameter1/:parametern\n * @return {array} Returns the next format [\"parameter1\", \"parameter2\"]\n */\nexport function getRouteParams(url) {\n const q = [];\n url.replace(/:([A-Za-z0-9_]+)/g, (_, k) => {\n q.push(k);\n });\n return q;\n}\n\nexport function sortListByName({ fieldName = '', list = [], ascendent = true }) {\n return list.sort((prev, current) => {\n const lastName = String(prev[fieldName]).toUpperCase();\n const newName = String(current[fieldName]).toUpperCase();\n\n if (ascendent) {\n if (lastName < newName) {\n return -1;\n }\n\n if (lastName > newName) {\n return 1;\n }\n }\n\n if (lastName < newName) {\n return 1;\n }\n\n if (lastName > newName) {\n return -1;\n }\n\n return 0;\n });\n}\n\nexport function sortListByDate({ fieldName = '', list = [], ascendent = true }) {\n return list.sort((prev, current) => {\n const prevDate = new Date(prev[fieldName].split('T')[0]);\n const currentDate = new Date(current[fieldName].split('T')[0]);\n\n if (ascendent) {\n return currentDate - prevDate;\n }\n\n return prevDate - currentDate;\n });\n}\n\nexport function sortInboxAndDocsFileList({ rawList, sortType, ascendent = true }) {\n const fileList = rawList\n .filter((file) => !!file.Metadata.Extension) || [];\n const folderList = rawList\n .filter((folder) => !folder.Metadata.Extension) || [];\n\n let folderListSorted = [];\n let fileListSorted = [];\n\n switch (sortType) {\n case FILTER_TYPES.name:\n return sortListByName({ ascendent, fieldName: 'Name', list: rawList });\n case FILTER_TYPES.date:\n return sortListByDate({ ascendent, fieldName: 'LastUpdate', list: rawList });\n case FILTER_TYPES.size:\n return rawList.sort((prev, current) => (ascendent\n ? prev.Metadata.Size - current.Metadata.Size\n : current.Metadata.Size - prev.Metadata.Size));\n default:\n folderListSorted = sortListByName({ fieldName: 'Name', list: folderList });\n fileListSorted = sortListByName({ fieldName: 'Name', list: fileList });\n return [...folderListSorted, ...fileListSorted];\n }\n}\n\nexport const addOrRemoveItemFromList = ({\n itemList = [],\n newItem,\n}) => {\n const exists = itemList.includes(newItem);\n let newListResponse = [];\n\n if (exists) {\n const filteredList =\n itemList.filter((element) => element !== newItem);\n newListResponse = filteredList;\n } else {\n newListResponse = [...itemList, newItem];\n }\n\n return newListResponse;\n};\n\nexport function toPascalCase(camelCaseStr) {\n return camelCaseStr.charAt(0).toUpperCase() + camelCaseStr.slice(1);\n}\n\nexport function formatBytes(bytes) {\n if (bytes === 0) return '0 Bytes';\n\n const kiloByte = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n\n const index = Math.floor(Math.log(bytes) / Math.log(kiloByte));\n\n return `${parseFloat((bytes / (kiloByte ** index)).toFixed(2))} ${sizes[index]}`;\n}\n\nexport const generateFileTreeOptions = ({ folders, level, hiddenFolderId = 0 }) => {\n let newArr = [];\n folders.forEach((item) => {\n if (PROTECTED_FOLDERS.includes(String(item.Id)) || item.Id === hiddenFolderId) {\n return;\n }\n\n newArr = newArr.concat({\n id: item.Id,\n label: item.Name,\n level,\n });\n // TODO: Remove 'Childrens' validation when v2 is complete\n if ((item?.Childrens && item?.Childrens.length)\n || (item?.Folders && item.Folders?.length)) {\n newArr = newArr.concat(...generateFileTreeOptions({\n folders: item?.Childrens || item?.Folders,\n hiddenFolderId,\n level: level + 1,\n }));\n }\n });\n return newArr;\n};\n\nexport function fileSizeToMB({ fileSize }) {\n return Number(fileSize / (1024 * 1024)).toFixed(2);\n}\n\n/**\n * Returns 1 if the words does not need the adaptation, returns 2 otherwise\n * @param {string} word - The word to be adapted\n */\nexport function possesiveAdaptationI18n(word) {\n return word && word.length && word[word.length - 1].toLowerCase() === 's' ? 2 : 1;\n}\n\n/**\n * @param {string} stringToClean\n * @returns {string} The same stringToClean without emojis\n */\nexport function removeEmojis(stringToClean) {\n // eslint-disable-next-line max-len\n const REGEX_EMOJIS = /(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\u0023-\\u0039]\\ufe0f?\\u20e3|\\u3299|\\u3297|\\u303d|\\u3030|\\u24c2|\\ud83c[\\udd70-\\udd71]|\\ud83c[\\udd7e-\\udd7f]|\\ud83c\\udd8e|\\ud83c[\\udd91-\\udd9a]|\\ud83c[\\udde6-\\uddff]|\\ud83c[\\ude01-\\ude02]|\\ud83c\\ude1a|\\ud83c\\ude2f|\\ud83c[\\ude32-\\ude3a]|\\ud83c[\\ude50-\\ude51]|\\u203c|\\u2049|[\\u25aa-\\u25ab]|\\u25b6|\\u25c0|[\\u25fb-\\u25fe]|\\u00a9|\\u00ae|\\u2122|\\u2139|\\ud83c\\udc04|[\\u2600-\\u26FF]|\\u2b05|\\u2b06|\\u2b07|\\u2b1b|\\u2b1c|\\u2b50|\\u2b55|\\u231a|\\u231b|\\u2328|\\u23cf|[\\u23e9-\\u23f3]|[\\u23f8-\\u23fa]|\\ud83c\\udccf|\\u2934|\\u2935|[\\u2190-\\u21ff])/g;\n return stringToClean.replace(REGEX_EMOJIS, '');\n}\n\nexport function isNonFigoUser(company = {}) {\n return company && company.Id !== DESIGN_TOKEN_TYPE.THEME_FIGO;\n}\n\nexport function getMinutesFromInitialTime(initialValue) {\n return moment\n .duration(moment().diff(initialValue)).asMinutes().toFixed(2);\n}\n\nexport function getClaimDataForMixPanel({\n date,\n selectedPet,\n policyNumber,\n}) {\n const claimData = [];\n\n if (selectedPet) {\n claimData.push(`petname-${selectedPet.Name}`);\n }\n\n if (policyNumber) {\n claimData.push(`policynumber-${policyNumber}`);\n }\n\n if (date) {\n claimData.push(`datofloss-${getDateBasicFormat(new Date(Number(date)))}`);\n }\n\n return claimData.join(', ');\n}\n\nexport function validateZipCode(zipCode = '') {\n return zipCode.replace(/\\D/g, '').slice(0, MAX_ZIP_LENGTH);\n}\n\nexport function formatDate(date) {\n return !date ? '-' : moment(date.split('T')[0]).format('MM/DD/YYYY');\n}\n\nexport function getB2CRedirectUrl() {\n if (window.location.hostname === 'localhost') {\n return 'http://localhost:3000';\n }\n\n switch (process.env.REACT_APP_NAME) {\n case 'test-2':\n return 'https://c61-test-2-petcloud-react.azurewebsites.net';\n case 'test-3':\n return 'https://c61-test-3-petcloud-react.azurewebsites.net';\n case 'test-4':\n return 'https://c61-test-4-petcloud-react.azurewebsites.net';\n case 'Prod':\n return 'https://www.mypetcloud.com';\n case 'CPSC':\n return 'https://c61-cpsc-petcloud-react.azurewebsites.net';\n default:\n return 'https://c61-test-3-petcloud-react.azurewebsites.net';\n }\n}\n\n/**\n * Retrieves the first key within the provided object that matches the given value.\n * If no matching value is found, an empty string is returned.\n *\n * @param {Object} object - The object to search through.\n * @param {*} value - The value to match against the object's keys.\n * @returns {string} The key that matches the given value, or an empty string if no match is found.\n */\nexport function getKeyByValue(object, value) {\n return Object.keys(object).find((key) => object[key] === value) || '';\n}\n\nexport function getBrandNameByChannelId(channelId) {\n return getKeyByValue(MARKETING_CHANNEL_ID, channelId);\n}\n\n/**\n * Transform every object keys to PascalCase from the provided object.\n * The main purpose is to handle endpoint responses.\n *\n * @param {Object} originalObject - The object to update their key names.\n * @returns {Object} Original object with updated keys into PascalCase standard.\n */\nconst textPascalCaseFormat = (text) => startCase(camelCase(text)).replace(/ /g, '');\n\nexport function objectToPascalCase(originalObject) {\n if (Array.isArray(originalObject)) {\n return originalObject.map((value) => objectToPascalCase(value));\n }\n if (typeof originalObject === 'object') {\n return Object.keys(originalObject).reduce((acc, current) => {\n const key = textPascalCaseFormat(current);\n const value = originalObject[current];\n acc[key] =\n value !== null && typeof value === 'object' ? objectToPascalCase(value) : value;\n return acc;\n }, {});\n }\n return originalObject;\n}\n\n/**\n * Validate time expiration on B2CToken\n * @param {*} token B2CToken\n * @returns true if expired; false if are valid\n */\nexport const validateExpirationToken = (token) => {\n if (!token) {\n return true;\n }\n\n let tokenExpired = true;\n\n try {\n const decodeJwt = jwtDecode(token);\n const now = Date.now();\n // multiplied by 1000 so that the argument is in milliseconds, not seconds\n const expire = decodeJwt.exp * 1000;\n\n tokenExpired = now >= expire;\n } catch (_) {\n doNothing();\n }\n\n return tokenExpired;\n};\n","/* eslint-disable no-console */\n/* eslint-disable max-len */\nimport { LogLevel } from '@azure/msal-browser';\nimport { getB2CRedirectUrl } from './services/utils';\n\n/**\n * Enter here the user flows and custom policies for your B2C application\n * To learn more about user flows, visit: https://docs.microsoft.com/en-us/azure/active-directory-b2c/user-flow-overview\n * To learn more about custom policies, visit: https://docs.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-overview\n */\nexport const b2cPolicies = {\n authorities: {\n forgotPassword: {\n authority: `https://${process.env.REACT_APP_B2C_URL}/${process.env.REACT_APP_B2C_TENANT_URL}/B2C_1_Change_Password`,\n redirectUrl: `https://${process.env.REACT_APP_B2C_URL}/${process.env.REACT_APP_B2C_TENANT_URL}/oauth2/v2.0/authorize?p=B2C_1_Change_Password&client_id=${process.env.REACT_APP_B2C_CLIENT_ID}&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fc61-test-3-petcloud-react.azurewebsites.net%2Fsettings%2FaccountAndLogin&scope=openid&response_type=id_token&prompt=login`,\n },\n impersonation: {\n authority: `https://${process.env.REACT_APP_B2C_URL}/${process.env.REACT_APP_B2C_TENANT_URL}/${process.env.REACT_APP_B2C_IMPERSONATION_NAME}`,\n redirectUrl: `${window.location.origin}/token_register`,\n },\n signUpSignIn: {\n authority: `https://${process.env.REACT_APP_B2C_URL}/${process.env.REACT_APP_B2C_TENANT_URL}/${process.env.REACT_APP_B2C_SIGNIN_NAME}`,\n redirectUrl: `${window.location.origin}/token_register`,\n },\n },\n authorityDomain: process.env.REACT_APP_B2C_URL,\n names: {\n forgotPassword: 'B2C_1_Change_Password',\n impersonation: process.env.REACT_APP_B2C_IMPERSONATION_NAME,\n signUpSignIn: process.env.REACT_APP_B2C_SIGNIN_NAME,\n },\n};\n\n/**\n * Configuration object to be passed to MSAL instance on creation.\n * For a full list of MSAL.js configuration parameters, visit:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md\n */\nexport const msalConfig = {\n auth: {\n authority: b2cPolicies.authorities.signUpSignIn.authority, // Choose SUSI as your default authority.\n clientId: process.env.REACT_APP_B2C_CLIENT_ID, // This is the ONLY mandatory field that you need to supply.\n knownAuthorities: [b2cPolicies.authorityDomain], // Mark your B2C tenant's domain as trusted.\n navigateToLoginRequestUrl: false, // If \"true\", will navigate back to the original request location before processing the auth code response.\n postLogoutRedirectUri: `${getB2CRedirectUrl()}/`, // Indicates the page to navigate after logout.\n redirectUri: b2cPolicies.authorities.signUpSignIn.redirectUrl, // You must register this URI on Azure Portal/App Registration. Defaults to window.location.origin\n },\n cache: {\n cacheLocation: 'localStorage', // Configures cache location. \"sessionStorage\" is more secure, but \"localStorage\" gives you SSO between tabs.\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\n },\n system: {\n loggerOptions: {\n loggerCallback: (level, message, containsPii) => {\n if (containsPii) {\n return;\n }\n switch (level) {\n case LogLevel.Error:\n console.error(message);\n return;\n case LogLevel.Info:\n console.info(message);\n return;\n case LogLevel.Verbose:\n console.debug(message);\n return;\n case LogLevel.Warning:\n console.warn(message);\n break;\n default:\n break;\n }\n },\n },\n },\n};\n\n/**\n * Scopes you add here will be prompted for user consent during sign-in.\n * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.\n * For more information about OIDC scopes, visit:\n * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes\n */\nexport const documentsScope = `https://${process.env.REACT_APP_B2C_TENANT_URL}/pet-cloud/customer/documents.write`;\n\nexport const claimBotScope = `https://${process.env.REACT_APP_B2C_TENANT_URL}/pet-cloud/claim/claimbot.write`;\n\nexport const claimScope = `https://${process.env.REACT_APP_B2C_TENANT_URL}/pet-cloud/claim/claim.write`;\n\nexport const customerScope = `https://${process.env.REACT_APP_B2C_TENANT_URL}/pet-cloud/customer/customer.write`;\n\nexport const policyScope = `https://${process.env.REACT_APP_B2C_TENANT_URL}/pet-cloud/policy/policy.write`;\n\nexport const webviewScope = `https://${process.env.REACT_APP_B2C_TENANT_URL}/orca/proxy/proxy`;\n\nexport const notificationScope = `https://${process.env.REACT_APP_B2C_TENANT_URL}/pet-cloud/social/notification.write`;\n\nexport const contentfulScope = `https://${process.env.REACT_APP_B2C_TENANT_URL}/pet-cloud/social/contentful.write`;\n\nexport const socialScope = `https://${process.env.REACT_APP_B2C_TENANT_URL}/pet-cloud/social/social.write`;\n\nexport const loginRequestScopes = {\n scopes: [customerScope, 'openid'],\n};\n\n/**\n * Add here the scopes to request when obtaining an access token for MS Graph API. For more information, see:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/resources-and-scopes.md\n */\nexport const graphConfig = {\n graphMeEndpoint: 'Enter_the_Graph_Endpoint_Herev1.0/me', // e.g. https://graph.microsoft.com/v1.0/me\n};\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\n/* eslint-disable */\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost'\n // [::1] is the IPv6 localhost address.\n || window.location.hostname === '[::1]'\n // 127.0.0.0/8 are considered localhost for IPv4.\n || window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/,\n ),\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service '\n + 'worker. To learn more, visit https://bit.ly/CRA-PWA',\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstateChanged = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all '\n + 'tabs for this page are closed. See https://bit.ly/CRA-PWA.',\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404\n || (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.',\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister();\n });\n }\n}\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n CONFIRM_PASSWORD_CHANGED: (data) => data,\n EMAIL_CHANGED: (data) => data,\n EMAIL_UPDATED: (data) => data,\n NEW_PASSWORD_CHANGED: (data) => data,\n OLD_PASSWORD_CHANGED: (data) => data,\n PASSWORD_UPDATED: (data) => data,\n PET_CLOUD_EMAIL_CHANGED: (data) => data,\n PET_CLOUD_EMAIL_RESET: () => { },\n PET_CLOUD_EMAIL_UPDATED: (data) => data,\n RECOVER_PASSWORD: (data) => data,\n RESET_EMAIL: () => { },\n RESET_INFO: () => { },\n UPDATE_EMAIL: (data) => data,\n UPDATE_EMAIL_ERROR: (data) => data,\n UPDATE_PASSWORD: (data) => data,\n UPDATE_PASSWORD_ERROR: (data) => data,\n UPDATE_PET_CLOUD_EMAIL: (data) => data,\n UPDATE_PET_CLOUD_EMAIL_ERROR: (data) => data,\n});\n\nexport const confirmPasswordChanged = actions.confirmPasswordChanged;\nexport const emailChanged = actions.emailChanged;\nexport const emailUpdated = actions.emailUpdated;\nexport const newPasswordChanged = actions.newPasswordChanged;\nexport const oldPasswordChanged = actions.oldPasswordChanged;\nexport const passwordUpdated = actions.passwordUpdated;\nexport const petCloudEmailChanged = actions.petCloudEmailChanged;\nexport const petCloudEmailUpdated = actions.petCloudEmailUpdated;\nexport const recoverPassword = actions.recoverPassword;\nexport const resetEmail = actions.resetEmail;\nexport const resetInfo = actions.resetInfo;\nexport const resetPetCloudEmail = actions.petCloudEmailReset;\nexport const updateEmail = actions.updateEmail;\nexport const updateEmailError = actions.updateEmailError;\nexport const updatePassword = actions.updatePassword;\nexport const updatePasswordError = actions.updatePasswordError;\nexport const updatePetCloudEmail = actions.updatePetCloudEmail;\nexport const updatePetCloudEmailError = actions.updatePetCloudEmailError;\n","/* eslint-disable max-len */\nimport { createActions } from 'redux-actions';\n\nconst actions = createActions({\n APPLY_ALL_POLICIES_CHECK_CHANGED: (data) => data,\n BILLING_INFO_LOAD_FAILED: (data) => data,\n BILLING_INFO_LOADED: (data) => data,\n BILLING_PAYMENT_RESETED: () => { },\n CHANGE_REIMBURSEMENT_ACCOUNT_NUMBER: (data) => data,\n CHANGE_REIMBURSEMENT_ACCOUNT_TYPE: (data) => data,\n CHANGE_REIMBURSEMENT_CONFIRM_ACCOUNT_NUMBER: (data) => data,\n CHANGE_REIMBURSEMENT_METHOD_TYPE: (data) => data,\n CHANGE_REIMBURSEMENT_ROUTING_NUMBER: (data) => data,\n CHANGE_ROUTING_NUMBER_ERROR: (data) => data,\n CLOSE_EDIT_REIMBURSEMENT_METHOD_MODAL: (data) => data,\n GET_ALL_BRANDS_DATA: () => {},\n GET_ALL_BRANDS_DATA_FAILED: () => {},\n GET_ALL_BRANDS_DATA_LOADED: (data) => (data),\n LOAD_PAYMENT_HISTORY: (data) => data,\n LOAD_PLAN_SUMMARY_DETAILS: (data) => data,\n LOAD_POLICY_DETAILS: (data) => data,\n LOAD_REIMBURSEMENT_METHOD: (data) => data,\n OPEN_EDIT_REIMBURSEMENT_METHOD_MODAL: (data) => data,\n PAYMENT_HISTORY_CLEARED: () => { },\n PAYMENT_HISTORY_LOAD_FAILED: (data) => data,\n PAYMENT_HISTORY_LOADED: (data) => data,\n PAYMENT_METHOD_ACCOUNT_NUMBER_CHANGED: (data) => data,\n PAYMENT_METHOD_ACCOUNT_NUMBER_CONFIRMATION_CHANGED: (data) => data,\n PAYMENT_METHOD_ACCOUNT_NUMBER_CONFIRMATION_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_ACCOUNT_NUMBER_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_ACCOUNT_TYPE_CHANGED: (data) => data,\n PAYMENT_METHOD_CARD_NUMBER_CHANGED: (data) => data,\n PAYMENT_METHOD_CARD_NUMBER_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_CITY_CHANGED: (data) => data,\n PAYMENT_METHOD_CITY_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_CVV_NUMBER_CHANGED: (data) => data,\n PAYMENT_METHOD_CVV_NUMBER_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_DATA_CLEARED: () => { },\n PAYMENT_METHOD_EDIT_MODAL_VISIBLE_CHANGED: (data) => data,\n PAYMENT_METHOD_ERROR_MODAL_VISIBLE_CHANGED: (data) => data,\n PAYMENT_METHOD_EXPIRATION_DATE_CHANGED: (data) => data,\n PAYMENT_METHOD_EXPIRATION_DATE_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_FIRST_NAME_CHANGED: (data) => data,\n PAYMENT_METHOD_FIRST_NAME_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_LAST_NAME_CHANGED: (data) => data,\n PAYMENT_METHOD_LAST_NAME_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_PAST_DUE_MODAL_VISIBLE_CHANGED: (data) => data,\n PAYMENT_METHOD_PAYMENT_METHOD_TYPE_CHANGED: (data) => data,\n PAYMENT_METHOD_ROUTING_NUMBER_CHANGED: (data) => data,\n PAYMENT_METHOD_ROUTING_NUMBER_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_STATE_CHANGED: (data) => data,\n PAYMENT_METHOD_STATE_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_STREET_ADDRESS_CHANGED: (data) => data,\n PAYMENT_METHOD_STREET_ADDRESS_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_STREET_ADDRESS2_CHANGED: (data) => data,\n PAYMENT_METHOD_STREET_ADDRESS2_ERROR_CHANGED: (data) => data,\n PAYMENT_METHOD_SUCCESS_MODAL_VISIBLE_CHANGED: (data) => data,\n PAYMENT_METHOD_UPDATE_ATTEMPTED: () => { },\n PAYMENT_METHOD_UPDATED: (data) => data,\n PAYMENT_METHOD_ZIP_CODE_CHANGED: (data) => data,\n PAYMENT_METHOD_ZIP_CODE_ERROR_CHANGED: (data) => data,\n PET_SELECTED: (data) => data,\n POLICY_DETAILS_BENEFITS_LOADED: (data) => data,\n POLICY_DETAILS_LOAD_FAILED: (data) => data,\n POLICY_DETAILS_LOADED: (data) => data,\n POLICY_SELECTED: (data) => data,\n REIMBURSEMENT_METHOD_ATTEMPT: () => { },\n REIMBURSEMENT_METHOD_LOADED: (data) => data,\n REIMBURSEMENT_METHOD_ROUTING_VALIDATION_FAILED: (data) => data,\n REIMBURSEMENT_METHOD_UPDATE_FAILED: (data) => data,\n REIMBURSEMENT_METHOD_UPDATED: () => { },\n UPDATE_PAYMENT_METHOD: (data) => data,\n UPDATE_REIMBURSEMENT_METHOD: (data) => data,\n});\n\nexport const {\n applyAllPoliciesCheckChanged,\n billingInfoLoaded,\n billingInfoLoadFailed,\n billingPaymentReseted,\n changeReimbursementAccountNumber,\n changeReimbursementAccountType,\n changeReimbursementConfirmAccountNumber,\n changeReimbursementMethodType,\n changeReimbursementRoutingNumber,\n changeRoutingNumberError,\n closeEditReimbursementMethodModal,\n loadPaymentHistory,\n loadPlanSummaryDetails,\n loadPolicyDetails,\n loadReimbursementMethod,\n getAllBrandsData,\n getAllBrandsDataFailed,\n getAllBrandsDataLoaded,\n openEditReimbursementMethodModal,\n paymentHistoryCleared,\n paymentHistoryLoaded,\n paymentHistoryLoadFailed,\n paymentMethodAccountNumberChanged,\n paymentMethodAccountNumberConfirmationChanged,\n paymentMethodAccountNumberConfirmationErrorChanged,\n paymentMethodAccountNumberErrorChanged,\n paymentMethodAccountTypeChanged,\n paymentMethodCardNumberChanged,\n paymentMethodCardNumberErrorChanged,\n paymentMethodCityChanged,\n paymentMethodCityErrorChanged,\n paymentMethodCvvNumberChanged,\n paymentMethodCvvNumberErrorChanged,\n paymentMethodDataCleared,\n paymentMethodEditModalVisibleChanged,\n paymentMethodErrorModalVisibleChanged,\n paymentMethodExpirationDateChanged,\n paymentMethodExpirationDateErrorChanged,\n paymentMethodFirstNameChanged,\n paymentMethodFirstNameErrorChanged,\n paymentMethodLastNameChanged,\n paymentMethodLastNameErrorChanged,\n paymentMethodPastDueModalVisibleChanged,\n paymentMethodPaymentMethodTypeChanged,\n paymentMethodRoutingNumberChanged,\n paymentMethodRoutingNumberErrorChanged,\n paymentMethodStateChanged,\n paymentMethodStateErrorChanged,\n paymentMethodStreetAddress2Changed,\n paymentMethodStreetAddress2ErrorChanged,\n paymentMethodStreetAddressChanged,\n paymentMethodStreetAddressErrorChanged,\n paymentMethodSuccessModalVisibleChanged,\n paymentMethodUpdateAttempted,\n paymentMethodUpdated,\n paymentMethodZipCodeChanged,\n paymentMethodZipCodeErrorChanged,\n petSelected,\n policyDetailsBenefitsLoaded,\n policyDetailsLoaded,\n policyDetailsLoadFailed,\n policySelected,\n reimbursementMethodAttempt,\n reimbursementMethodLoaded,\n reimbursementMethodRoutingValidationFailed,\n reimbursementMethodUpdated,\n reimbursementMethodUpdateFailed,\n updatePaymentMethod,\n updateReimbursementMethod,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n ADD_ATTACHMENT_TO_CLAIM: (data) => data,\n CLAIM_POLICY_CHANGED: (data) => data,\n CLAIM_REQUESTED: () => { },\n CLAIMS_RESULTS_LOADED_ERROR: (error) => error.message,\n CLAIMS_RESULTS_LOADED_MORE: (data) => data,\n CLAIMS_RESULTS_LOADED_SUCCESS: (data) => (data),\n FAILED_TO_LOAD_CLAIM_STEPS: () => { },\n GET_CLAIM_ATTACHMENTS: (data) => data,\n GET_CLAIM_ATTACHMENTS_FAILED: (data) => data,\n GET_CLAIM_ATTACHMENTS_LOADED: (data) => data,\n GET_CLAIM_BY_ID: (data) => data,\n GET_CLAIM_BY_ID_FAILED: (data) => data,\n GET_CLAIM_BY_ID_LOADED: (data) => data,\n GET_CLAIM_BY_ID_REQUESTED: (data) => data,\n GET_CLAIMS: (data) => data,\n GET_CLAIMS_FAILED: (data) => data,\n GET_CLAIMS_LOADED: (data) => data,\n IS_FIRST_TIME_ON_CLAIMS: (data) => data,\n LOAD_NEW_CLAIM_STEPS: () => { },\n NEW_CLAIM_CANCELLED: () => { },\n NEW_CLAIM_STEPS_LOADED: (data) => data,\n POLICY_SELECTED_ON_CLAIMS: (data) => data,\n REQUEST_CLAIM_BY_ID: (data) => data,\n REQUEST_CLAIMS_RESULTS: (data) => data,\n RESET_CHECKED_OPTION: () => { },\n RESTART_CLAIMS_DETAILS: () => {},\n SAVE_SELECTED_PET: (data) => data,\n SET_IS_CHECKED_OPTION_CLOSED: (data) => data,\n SET_IS_CHECKED_OPTION_OPEN: (data) => data,\n SET_SELECTED_PET_ID: (data) => data,\n SET_SELECTED_PET_INDEX: (data) => data,\n});\n\nexport const {\n addAttachmentToClaim,\n claimPolicyChanged,\n claimRequested,\n claimsResultsLoadedError,\n claimsResultsLoadedMore,\n claimsResultsLoadedSuccess,\n failedToLoadClaimSteps,\n getClaimAttachments,\n getClaimAttachmentsFailed,\n getClaimAttachmentsLoaded,\n getClaimById,\n getClaimByIdFailed,\n getClaimByIdLoaded,\n getClaimByIdRequested,\n getClaims,\n getClaimsFailed,\n getClaimsLoaded,\n isFirstTimeOnClaims,\n loadNewClaimSteps,\n newClaimCancelled,\n newClaimStepsLoaded,\n policySelectedOnClaims,\n requestClaimById,\n requestClaimsResults,\n resetCheckedOption,\n restartClaimsDetails,\n saveSelectedPet,\n setIsCheckedOptionClosed,\n setIsCheckedOptionOpen,\n setSelectedPetId,\n setSelectedPetIndex,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n CLAIM_ADDITIONAL_STEPS_HANDLED: () => { },\n CLAIM_ADDITIONAL_STEPS_LOADED: (data) => data,\n CLAIM_GET_POLICY_BY_DATE: (data) => data,\n CLAIM_POLICY_BY_DATE_FAILED: (data) => data,\n CLAIM_POLICY_BY_DATE_LOADED: (data) => data,\n CLAIM_STEPS_LOAD_FAILED: () => { },\n CLAIM_STEPS_LOADED: (data) => data,\n CLAIM_STEPS_VIEWED: () => { },\n CLAIMBOT_SELECTED_PET: (data) => data,\n CLAIMBOT_SELECTED_VALUE: (data) => data,\n CLEAR_CLAIM_STEPS: () => { },\n GENERAL_INFORMATION_LOADED: (data) => data,\n HAS_FIGO_CLAIMS_FAILED: () => { },\n HAS_FIGO_CLAIMS_LOADED: (data) => data,\n LOAD_ADDITIONAL_CLAIMBOT_STEPS: (data) => data,\n LOAD_CLAIM_STEPS: () => { },\n LOAD_HAS_FIGO_CLAIMS: () => { },\n SUBMIT_CLAIM: (data) => data,\n SUBMIT_CLAIM_FAILED: () => { },\n SUBMIT_CLAIM_SUCCESS: () => { },\n});\n\nexport const {\n claimAdditionalStepsHandled,\n claimAdditionalStepsLoaded,\n claimGetPolicyByDate,\n claimbotSelectedPet,\n claimbotSelectedValue,\n claimPolicyByDateFailed,\n claimPolicyByDateLoaded,\n claimStepsLoaded,\n claimStepsLoadFalied,\n claimStepsViewed,\n clearClaimSteps,\n generalInformationLoaded,\n hasFigoClaimsFailed,\n hasFigoClaimsLoaded,\n loadAdditionalClaimbotSteps,\n loadClaimSteps,\n loadHasFigoClaims,\n submitClaim,\n submitClaimFailed,\n submitClaimSuccess,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n APPLICATION_MESSAGES_LOADED: (data) => data,\n CLEAR_ALL_CUSTOMER_CACHE: () => { },\n CLEAR_USER_CACHE: () => { },\n CONTENTFUL_PAGE_LOADED: (data) => data,\n DISMISS_ALERT: () => ({}),\n GENERAL_DATA_LOADED: (data) => data,\n GET_CONTENTFUL_PAGE: (data) => data,\n GET_GENERAL_DATA: () => { },\n GET_PUBLIC_SIDE_IMAGE: () => { },\n GET_SHARE_POST_DATA: (data) => data,\n GET_SHARE_POST_DATA_FAILED: () => { },\n GET_SHARE_POST_DATA_SUCCESS: (data) => data,\n LINK_MESSAGE_SENT: (data) => (data),\n PUBLIC_SIDE_IMAGE_LOADED: (data) => (data),\n SEND_LINK_MESSAGE: (data) => (data),\n SEND_MESSAGE_RESTARTED: () => ({}),\n SHOW_ALERT: (data) => ({ data }),\n SHOW_GENERIC_ERROR: (data) => data,\n});\n\nexport const {\n applicationMessagesLoaded,\n clearAllCustomerCache,\n clearUserCache,\n contentfulPageLoaded,\n dismissAlert,\n generalDataLoaded,\n getContentfulPage,\n getGeneralData,\n getPublicSideImage,\n getSharePostData,\n getSharePostDataFailed,\n getSharePostDataSuccess,\n linkMessageSent,\n publicSideImageLoaded,\n sendLinkMessage,\n sendMessageRestarted,\n showAlert,\n showGenericError,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n CLOSE_MULTI_POLICIES_MODAL: () => {},\n LOAD_MULTI_POLICIES: (data) => data,\n LOAD_POLICIES_CARD_INFORMATION: (data) => data,\n LOAD_POLICIES_PAYMENT_NUMBER: () => {},\n OPEN_MULTI_POLICIES_MODAL: (data) => data,\n SORT_POLICIES: (data) => data,\n SWITCH_CHECKBOX_STATE: (data) => data,\n});\n\nexport const {\n closeMultiPoliciesModal,\n loadMultiPolicies,\n loadPoliciesCardInformation,\n loadPoliciesPaymentNumber,\n openMultiPoliciesModal,\n sortPolicies,\n switchCheckboxState,\n} = actions;\n","/* eslint-disable max-len */\nimport { createActions } from 'redux-actions';\n\nconst actions = createActions({\n CONTACTS_FORM_INITIALIZED: (data) => data,\n DELETE_TAG_NUMBER: (data) => data,\n DELETE_TAG_NUMBER_FAILED: (data) => data,\n DELETE_TAG_NUMBER_REQUESTED: () => {},\n EDIT_MODE_SET: (data) => data,\n FAMILY_MEMBER_NAME_ERROR_MESSAGE_SETTED: (data) => data,\n FAMILY_MEMBER_NAME_SETTED: (data) => data,\n FAMILY_MEMBER_PHONE_NUMBER_ERROR_MESSAGE_SETTED: (data) => data,\n FAMILY_MEMBER_PHONE_NUMBER_SETTED: (data) => data,\n FIGO_TAG_MODAL_HIDDEN: () => {},\n FIGO_TAG_MODAL_SHOWN: () => {},\n FIRST_STEP_SHOWED: () => {},\n GET_PET_TAG_INFO: (data) => data,\n MESSAGE_TO_FINDER_SETTED: (data) => data,\n PET_ID_SETTED: (data) => data,\n PET_TAG_INFO_EDIT_MODE_SET: (data) => data,\n PET_TAG_INFO_LOAD_FAILED: (data) => data,\n PET_TAG_INFO_LOADED: (data) => data,\n PET_TAG_INFO_POST_FAILED: (data) => data,\n PET_TAG_INFO_POST_REQUESTED: () => {},\n PET_TAG_INFO_POSTED: (data) => data,\n PET_TAG_INFO_REQUESTED: () => {},\n PET_TAG_SETTED: (data) => data,\n REMOVE_STEP_SHOWED: () => {},\n SECOND_STEP_SHOWED: () => {},\n SET_PET_TAG_INFO: (data) => data,\n TAG_NUMBER_DELETED: (data) => data,\n TAG_NUMBER_ERROR_MESSAGE_SETTED: (data) => data,\n TAG_NUMBER_MODE_SET: (data) => data,\n});\n\nexport const contactsFormInitialized = actions.contactsFormInitialized;\nexport const deleteTagNumber = actions.deleteTagNumber;\nexport const deleteTagNumberFailed = actions.deleteTagNumberFailed;\nexport const deleteTagNumberRequested = actions.deleteTagNumberRequested;\nexport const editModeSet = actions.editModeSet;\nexport const familyMemberNameErrorMessageSetted = actions.familyMemberNameErrorMessageSetted;\nexport const familyMemberNameSetted = actions.familyMemberNameSetted;\nexport const familyMemberPhoneNumberErrorMessageSetted = actions.familyMemberPhoneNumberErrorMessageSetted;\nexport const familyMemberPhoneNumberSetted = actions.familyMemberPhoneNumberSetted;\nexport const figoTagModalHidden = actions.figoTagModalHidden;\nexport const figoTagModalShown = actions.figoTagModalShown;\nexport const firstStepShowed = actions.firstStepShowed;\nexport const getPetTagInfo = actions.getPetTagInfo;\nexport const messageToFinderSetted = actions.messageToFinderSetted;\nexport const petIdSetted = actions.petIdSetted;\nexport const petTagInfoEditModeSet = actions.petTagInfoEditModeSet;\nexport const petTagInfoLoaded = actions.petTagInfoLoaded;\nexport const petTagInfoLoadFailed = actions.petTagInfoLoadFailed;\nexport const petTagInfoPosted = actions.petTagInfoPosted;\nexport const petTagInfoPostFailed = actions.petTagInfoPostFailed;\nexport const petTagInfoPostRequested = actions.petTagInfoPostRequested;\nexport const petTagInfoRequested = actions.petTagInfoRequested;\nexport const petTagSetted = actions.petTagSetted;\nexport const removeStepShowed = actions.removeStepShowed;\nexport const secondStepShowed = actions.secondStepShowed;\nexport const setPetTagInfo = actions.setPetTagInfo;\nexport const tagNumberDeleted = actions.tagNumberDeleted;\nexport const tagNumberErrorMessageSetted = actions.tagNumberErrorMessageSetted;\nexport const tagNumberModeSet = actions.tagNumberModeSet;\n","/* eslint-disable max-len */\nimport { createActions } from 'redux-actions';\n\nconst actions = createActions({\n ADD_ATTACHMENTS_LOAD: (data) => data,\n CLAIM_DATE_CHANGED: (data) => data,\n CLAIM_REIMBURSEMENT_CHECK_CHANGED: (data) => data,\n CLAIM_REIMBURSEMENT_DIRECT_CHANGED: (data) => data,\n CREATE_CLAIM: () => {},\n FILE_CLAIM_COMPLETED: (data) => data,\n FILE_CLAIM_NOT_COMPLETED: () => {},\n FILE_CLAIMS_AMOUNT_CHANGED: (data) => data,\n FILE_CLAIMS_ANOTHER_PET_INSURANCE_CHANGED: (data) => data,\n FILE_CLAIMS_ANOTHER_PET_INSURANCE_SELECTED: (data) => data,\n FILE_CLAIMS_ATTACHMENT_ADDED: (data) => data,\n FILE_CLAIMS_ATTACHMENT_REMOVED: (data) => data,\n FILE_CLAIMS_ATTACHMENT_UPDATED: (data) => data,\n FILE_CLAIMS_DETAILS_CHANGED: (data) => data,\n FILE_CLAIMS_NAME_CHANGED: (data) => data,\n FILE_CLAIMS_RESTART: () => {},\n FILE_CLAIMS_TYPE_CHANGED: (data) => data,\n INITIAL_TIME_SET: (data) => data,\n SELECTED_PET_CHANGED: (data) => data,\n TERM_AND_CONDITION_ONE_SELECTED: (data) => data,\n TERM_AND_CONDITION_TWO_SELECTED: (data) => data,\n});\n\nexport const {\n addAttachmentsLoad,\n claimDateChanged,\n claimReimbursementCheckChanged,\n claimReimbursementDirectChanged,\n createClaim,\n fileClaimCompleted,\n fileClaimNotCompleted,\n fileClaimsAmountChanged,\n fileClaimsAnotherPetInsuranceChanged,\n fileClaimsAnotherPetInsuranceSelected,\n fileClaimsAttachmentAdded,\n fileClaimsAttachmentRemoved,\n fileClaimsAttachmentUpdated,\n fileClaimsDetailsChanged,\n fileClaimsNameChanged,\n fileClaimsRestart,\n fileClaimsTypeChanged,\n initialTimeSet,\n selectedPetChanged,\n termAndConditionOneSelected,\n termAndConditionTwoSelected,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n CONTACT_PET_FAMILY: (data) => data,\n LOST_PET_TAG_CHANGED: (data) => data,\n RESTART_PET_TAG_SEARCH: () => { },\n SEARCH_PET_TAG: (data) => data,\n SEARCH_PET_TAG_ATTEMPT: () => { },\n SEARCH_PET_TAG_FAILED: (data) => data,\n SEARCH_PET_TAG_FOUND: (data) => data,\n SEARCH_PET_TAG_RESET: () => { },\n SEND_MESSAGE_FAILED: () => { },\n SEND_MESSAGE_SUCCEED: () => { },\n});\n\nexport const {\n contactPetFamily,\n lostPetTagChanged,\n restartPetTagSearch,\n searchPetTag,\n searchPetTagAttempt,\n searchPetTagFailed,\n searchPetTagFound,\n searchPetTagReset,\n sendMessageFailed,\n sendMessageSucceed,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n ARTICLES_CLEANED: () => {},\n ARTICLES_LOAD_FAILED: () => {},\n ARTICLES_LOADED: (data) => data,\n GET_ARTICLES: (data) => data,\n GET_CONTACT_BRAND_DATA: () => { },\n GET_CONTACT_BRAND_DATA_LOADED: (data) => data,\n GET_PET_WISDOM: (data) => data,\n GET_PET_WISDOM_ATTEMPT: () => { },\n PET_WISDOM_FAILED: () => { },\n PET_WISDOM_LOADED: (data) => data,\n});\n\nexport const {\n articlesCleaned,\n articlesLoaded,\n articlesLoadFailed,\n getArticles,\n getContactBrandData,\n getContactBrandDataLoaded,\n getPetWisdom,\n getPetWisdomAttempt,\n petWisdomFailed,\n petWisdomLoaded,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n CHANGE_NAME: (data) => data,\n CHANGE_NAME_FAILED: (data) => data,\n CHANGE_NAME_RESTARTED: () => { },\n CHANGE_NAME_SUCCESS: () => { },\n CREATE_FOLDER: (data) => data,\n CREATE_FOLDER_FAILED: (data) => data,\n CREATE_FOLDER_RESET: () => { },\n CREATE_FOLDER_SUCCESS: () => { },\n DELETE_FAILED: () => { },\n DELETE_FILES: (data) => data,\n DELETE_FOLDER: (data) => data,\n DELETE_RESTARTED: () => { },\n DELETE_SUCCESS: () => { },\n DOWNLOAD_FILES: (data) => data,\n ERROR_VIEW_FILE: () => { },\n FILE_PERMISSIONS_LOADED: (data) => data,\n FILE_TO_UPLOAD_REMOVED: (data) => data,\n FILE_TO_UPLOAD_UPDATED: (data) => data,\n FILES_DOWNLOADED: () => { },\n FILES_MARKED_AS_READ: (data) => data,\n FILES_MOVED: () => { },\n FILES_TO_UPLOAD_ADDED: (data) => data,\n FILES_UPLOADED: () => { },\n FOLDER_LOADED: (data) => data,\n FOLDER_MOVED: () => { },\n FOLDER_STRUCTURE_LOADED: (data) => data,\n GET_RECENT_FILES: (data) => data,\n LOAD_FOLDER_CONTENT: (data) => data,\n LOAD_FOLDER_FAILED: (data) => data,\n LOAD_FOLDER_STRUCTURE: () => { },\n MARK_FILES_AS_READ: (data) => data,\n MARK_FILES_AS_READ_ATTEMPTED: () => { },\n MOVE_FILES: (data) => data,\n MOVE_FILES_FAILED: () => { },\n MOVE_FILES_RESTARTED: () => { },\n MOVE_FOLDER: (data) => data,\n MOVE_FOLDER_RESTARTED: () => { },\n OPEN_MEDIA_FILE_TO_BLOB: (data) => data,\n RECENT_FILES_LOAD_FAILED: (data) => data,\n RECENT_FILES_LOADED: (data) => data,\n RECENT_FILES_REQUESTED: () => { },\n REFRESH_FOLDER_CONTENT: (data) => data,\n SHOW_VIEW_FILE: (data) => data,\n SHOWED_VIEW_FILE: (data) => data,\n TAG_PET_FILE: (data) => data,\n TAG_PET_FILE_FAILED: (data) => data,\n TAG_PET_FILE_RESTARTED: () => { },\n TAG_PET_FILE_SUCCESS: () => { },\n UPLOAD_FILES: (data) => data,\n UPLOAD_FILES_RESTARTED: () => { },\n});\n\nexport const {\n changeName,\n changeNameFailed,\n changeNameRestarted,\n changeNameSuccess,\n createFolder,\n createFolderFailed,\n createFolderReset,\n createFolderSuccess,\n deleteFailed,\n deleteFiles,\n deleteFolder,\n deleteRestarted,\n deleteSuccess,\n downloadFiles,\n errorViewFile,\n filePermissionsLoaded,\n filesDownloaded,\n filesMarkedAsRead,\n filesMoved,\n filesToUploadAdded,\n filesUploaded,\n fileToUploadRemoved,\n fileToUploadUpdated,\n folderLoaded,\n folderMoved,\n folderStructureLoaded,\n getRecentFiles,\n loadFolderContent,\n loadFolderFailed,\n loadFolderStructure,\n markFilesAsRead,\n markFilesAsReadAttempted,\n moveFiles,\n moveFilesFailed,\n moveFilesRestarted,\n moveFolder,\n moveFolderRestarted,\n openMediaFileToBlob,\n recentFilesLoaded,\n recentFilesLoadFailed,\n recentFilesRequested,\n refreshFolderContent,\n showedViewFile,\n showViewFile,\n tagPetFile,\n tagPetFileFailed,\n tagPetFileRestarted,\n tagPetFileSuccess,\n uploadFiles,\n uploadFilesRestarted,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n STARTUP: () => ({}),\n STARTUP_FROM_CACHE: (data) => data,\n});\n\nexport const {\n startup,\n startupFromCache,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n GET_MULTIBRAND_WEB_VIEW: (data) => data,\n WEB_VIEW_MULTIBRAND_ATTEMPT: () => { },\n WEB_VIEW_MULTIBRAND_FAILED: () => { },\n WEB_VIEW_MULTIBRAND_RESET: () => { },\n WEB_VIEW_MULTIBRAND_RESULT_LOADED: (data) => data,\n WEB_VIEW_MULTIBRAND_SUCCESS: (data) => data,\n});\n\nexport const {\n getMultibrandWebView,\n webViewMultibrandAttempt,\n webViewMultibrandFailed,\n webViewMultibrandReset,\n webViewMultibrandResultLoaded,\n webViewMultibrandSuccess,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n DISPLAY_CONFIRM_CHANGES_MODAL: (data) => data,\n DISPLAY_EMAIL_CHANGE_MODAL: (data) => data,\n DISPLAY_FORGOT_PASSWORD_MODAL: (data) => data,\n DISPLAY_UNSAVED_MODAL: (data) => data,\n MY_ACCOUNT_EMAIL_CHANGED: (data) => data,\n MY_ACCOUNT_HAS_CHANGES: (data) => data,\n});\n\nexport const {\n displayConfirmChangesModal,\n displayEmailChangeModal,\n displayForgotPasswordModal,\n displayUnsavedModal,\n myAccountEmailChanged,\n myAccountHasChanges,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n ADD_PET: (data) => (data),\n ADD_PET_FAILED: () => { },\n ADD_PET_RESTARTED: () => { },\n BREED_DATA_LOADED: (data) => (data),\n DELETE_PET: (data) => (data),\n DELETE_PET_FAILED: () => { },\n EDIT_PET: (data) => (data),\n LOAD_BREED_LIST: () => ({}),\n LOAD_MICROCHIP_DATA: (data) => (data),\n LOAD_PET_PROFILE: (data) => (data),\n MICROCHIP_DATA_CLEARED: () => { },\n MICROCHIP_DATA_LOADED: (data) => (data),\n MICROCHIP_FAILED: () => { },\n MICROCHIP_MODAL_VISIBLE: (data) => (data),\n MICROCHIP_SAVED: (data) => (data),\n PET_ADDED: (data) => (data),\n PET_DELETED: () => { },\n PET_EDITED: () => { },\n PET_PHOTO_REMOVED: () => { },\n PET_PROFILE_FAILED: () => { },\n PET_PROFILE_LOAD_ATTEMPT: () => { },\n PET_PROFILE_LOADED: (data) => (data),\n PET_PROFILE_REDIRECTED: () => { },\n REMOVE_PET_PHOTO: (data) => (data),\n REMOVE_PET_PHOTO_FAILED: () => { },\n SAVE_MICROCHIP: (data) => (data),\n SELECTED_PET: (data) => (data),\n});\n\nexport const {\n addPet,\n addPetFailed,\n addPetRestarted,\n breedDataLoaded,\n deletePet,\n deletePetFailed,\n editPet,\n loadBreedList,\n loadMicrochipData,\n loadPetProfile,\n microchipDataCleared,\n microchipDataLoaded,\n microchipFailed,\n microchipModalVisible,\n microchipSaved,\n petAdded,\n petDeleted,\n petEdited,\n petPhotoRemoved,\n petProfileLoadAttempt,\n petProfileLoaded,\n petProfileRedirected,\n petProfileFailed,\n removePetPhoto,\n removePetPhotoFailed,\n saveMicrochip,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n ADD_CUSTOM_TO_FAVORITES: (data) => data,\n ADD_CUSTOM_TO_FAVORITES_FAILED: (data) => data,\n ADD_MANUALLY_VET_TO_FAVORITES: (data) => data,\n ADD_POINT_INTEREST_FAILED: (data) => data,\n ADD_TO_FAVORITES: (data) => data,\n ADD_TO_FAVORITES_FAILED: () => { },\n ADDED_TO_FAVORITES: (data) => data,\n CHECK_IF_HAS_PRIMARY_VET: () => { },\n CLEAN_MY_VETS_ERRORS: () => { },\n GET_ALL_FAVORITES: () => { },\n GET_ALL_FAVORITES_ATTEMPT: () => { },\n HAS_PRIMARY_VET_CHECKED: (data) => data,\n PRIMARY_VET_SAVE_FAILED: () => { },\n PRIMARY_VET_SAVED: () => { },\n REMOVE_VET: (data) => data,\n REMOVE_VET_FAILED: () => { },\n REMOVE_VET_SUCCESS: () => { },\n SAVE_PRIMARY_VET: (data) => data,\n SEARCH_PRIMARY_VET: (data) => data,\n SEARCH_VETS: (data) => data,\n SET_FAVORITES: (data) => data,\n VALIDATE_ZIP_CODE: (data) => data,\n VALIDATE_ZIP_CODE_ATTEMPT: () => { },\n VALIDATE_ZIP_CODE_FAILED: () => { },\n VALIDATE_ZIP_CODE_SUCCESS: () => { },\n VET_CUSTOM_SAVED_CLEARED: () => { },\n VET_ZIP_CODE_CHANGED: () => { },\n VETS_SEARCH_CLEARED: () => { },\n VETS_SEARCHED: (data) => data,\n});\n\nexport const {\n addCustomToFavorites,\n addCustomToFavoritesFailed,\n addedToFavorites,\n addManuallyVetToFavorites,\n addPointInterestFailed,\n addToFavorites,\n addToFavoritesFailed,\n checkIfHasPrimaryVet,\n cleanMyVetsErrors,\n getAllFavorites,\n getAllFavoritesAttempt,\n hasPrimaryVetChecked,\n primaryVetSaved,\n primaryVetSaveFailed,\n removeVet,\n removeVetFailed,\n removeVetSuccess,\n savePrimaryVet,\n searchPrimaryVet,\n searchVets,\n setFavorites,\n validateZipCode,\n validateZipCodeAttempt,\n validateZipCodeFailed,\n validateZipCodeSuccess,\n vetCustomSavedCleared,\n vetsSearchCleared,\n vetsSearched,\n vetZipCodeChanged,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n CREATE_ONE_INC_SESSION: () => { },\n ONE_INC_DEFAULTS_PAYMENT_FAILED: (data) => data,\n ONE_INC_DEFAULTS_PAYMENT_LOADED: (data) => data,\n ONE_INC_LOAD_DEFAULT_PAYMENTS: () => { },\n ONE_INC_PAYMENT_BANK_SAVED: (data) => data,\n ONE_INC_PAYMENT_CREDIT_CARD_SAVED: (data) => data,\n ONE_INC_PAYMENT_RESET: () => { },\n ONE_INC_SESSION_CREATED: (data) => data,\n ONE_INC_SESSION_REMOVED: () => { },\n});\n\nexport const {\n createOneIncSession,\n oneIncDefaultsPaymentFailed,\n oneIncDefaultsPaymentLoaded,\n oneIncLoadDefaultPayments,\n oneIncPaymentBankSaved,\n oneIncPaymentCreditCardSaved,\n oneIncPaymentReset,\n oneIncSessionCreated,\n oneIncSessionRemoved,\n} = actions;\n","/* eslint-disable max-len */\nimport { createActions } from 'redux-actions';\n\nconst actions = createActions({\n ACCEPT_ADDRESS_UPDATE: (data) => data,\n ADDRESS_UPDATED: (data) => data,\n ADDRESS1_CHANGED: (data) => data,\n ADDRESS2_CHANGED: (data) => data,\n APPLY_ADDRESS_UPDATE: (data) => data,\n AVATAR_PICTURE_REMOVED: () => { },\n CANCEL_ADDRESS_UPDATE: () => { },\n CHANGE_PROFILE_PICTURE: (data) => (data),\n CHANGE_PROFILE_PICTURE_FAILED: (data) => (data),\n CHANGE_PROFILE_PICTURE_RESTART: () => { },\n CHANGE_PROFILE_PICTURE_SUCCESS: () => { },\n CITY_CHANGED: (data) => data,\n CLOSE_ENDORSEMENT_SUCCESS_MODAL: () => { },\n CONFIRM_ADDRESS_CHANGE_MODAL_CHANGED: (data) => data,\n COVER_PICTURE_REMOVED: () => { },\n DISPLAY_ENDORSEMENT_MESSAGE_MODAL: (data) => data,\n DISPLAY_ENDORSEMENT_SUCCESS_MODAL: () => { },\n DO_PET_LOAD: (data) => data,\n ENDORSEMENT_LOADED: (data) => data,\n FIRST_NAME_CHANGED: (data) => data,\n FIRST_NAME_RESET: () => { },\n LAST_NAME_CHANGED: (data) => data,\n LAST_NAME_RESET: () => { },\n NAMES_UPDATED: (data) => data,\n PETS_LOAD_ATTEMPT: () => { },\n PETS_LOADED: (data) => data,\n PETS_LOADED_FINISHED: () => { },\n PHONES_UPDATED: (data) => data,\n PRIMARY_PHONE_CHANGED: (data) => data,\n REFRESH_PERSONAL_INFORMATION: (data) => (data),\n REFRESH_PETS: () => { },\n REMOVE_AVATAR_PICTURE: () => { },\n REMOVE_AVATAR_PICTURE_FAILED: () => { },\n REMOVE_COVER_PICTURE: () => { },\n REMOVE_COVER_PICTURE_FAILED: () => { },\n RESET_ADDRESS: () => { },\n RESET_ENDORSEMENT_DATA: () => { },\n RESET_NAME: () => { },\n RESET_PHONE: () => { },\n SAVE_USER_INFO_ADDRESS: (data) => data,\n SECONDARY_PHONE_CHANGED: (data) => data,\n SECONDARY_PHONE_RESET: () => { },\n SOCIAL_PROFILE_LOAD_ATTEMPT: () => { },\n SOCIAL_PROFILE_LOADED: (data) => data,\n SOCIAL_PROFILE_LOADED_FINISHED: () => { },\n STATE_CHANGED: (data) => data,\n STORE_STATES: (data) => data,\n UPDATE_ADDRESS: (data) => data,\n UPDATE_INSURANCE_INFORMATION: (data) => data,\n UPDATE_INSURANCE_INFORMATION_FAILED: () => { },\n UPDATE_INSURANCE_INFORMATION_SUCCESS: () => {},\n UPDATE_NAMES: (data) => data,\n UPDATE_PHONES: (data) => data,\n UPDATE_PHONES_ERROR: () => { },\n ZIPCODE_CHANGED: (data) => data,\n});\n\nexport const acceptAddressUpdate = actions.acceptAddressUpdate;\nexport const address1Changed = actions.address1Changed;\nexport const address2Changed = actions.address2Changed;\nexport const addressUpdated = actions.addressUpdated;\nexport const applyAddressUpdate = actions.applyAddressUpdate;\nexport const cancelAddressUpdate = actions.cancelAddressUpdate;\nexport const cityChanged = actions.cityChanged;\nexport const closeEndorsementSuccessModal = actions.closeEndorsementSuccessModal;\nexport const confirmAddressChangeModalChanged = actions.confirmAddressChangeModalChanged;\nexport const displayEndorsementMessageModal = actions.displayEndorsementMessageModal;\nexport const displayEndorsementSuccessModal = actions.displayEndorsementSuccessModal;\nexport const doPetLoad = actions.doPetLoad;\nexport const endorsementLoaded = actions.endorsementLoaded;\nexport const firstnameChanged = actions.firstNameChanged;\nexport const lastnameChanged = actions.lastNameChanged;\nexport const namesUpdated = actions.namesUpdated;\nexport const petsLoaded = actions.petsLoaded;\nexport const petsLoadAttempt = actions.petsLoadAttempt;\nexport const petsLoadedFinished = actions.petsLoadedFinished;\nexport const phonesUpdated = actions.phonesUpdated;\nexport const primaryPhoneChanged = actions.primaryPhoneChanged;\nexport const refreshPersonalInformation = actions.refreshPersonalInformation;\nexport const refreshPets = actions.refreshPets;\nexport const resetAddress = actions.resetAddress;\nexport const resetEndorsementData = actions.resetEndorsementData;\nexport const resetFirstname = actions.firstNameReset;\nexport const resetLastname = actions.lastNameReset;\nexport const resetName = actions.resetName;\nexport const resetPhone = actions.resetPhone;\nexport const resetSecondaryPhone = actions.secondaryPhoneReset;\nexport const saveUserInfoAddress = actions.saveUserInfoAddress;\nexport const secondaryPhoneChanged = actions.secondaryPhoneChanged;\nexport const socialProfileLoadAttempt = actions.socialProfileLoadAttempt;\nexport const socialProfileLoaded = actions.socialProfileLoaded;\nexport const socialProfileLoadedFinished = actions.socialProfileLoadedFinished;\nexport const stateChanged = actions.stateChanged;\nexport const storeStates = actions.storeStates;\nexport const updateAddress = actions.updateAddress;\nexport const updateNames = actions.updateNames;\nexport const updatePhones = actions.updatePhones;\nexport const updatePhonesError = actions.updatePhonesError;\nexport const zipCodeChanged = actions.zipcodeChanged;\nexport const {\n avatarPictureRemoved,\n changeProfilePicture,\n changeProfilePictureFailed,\n changeProfilePictureRestart,\n changeProfilePictureSuccess,\n coverPictureRemoved,\n removeAvatarPicture,\n removeAvatarPictureFailed,\n removeCoverPicture,\n removeCoverPictureFailed,\n updateInsuranceInformation,\n updateInsuranceInformationFailed,\n updateInsuranceInformationSuccess,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n ALL_PETS_GROUPED: (data) => data,\n CHANGE_COVERAGE_MULTIMODAL_FAILED: (data) => data,\n CHANGE_COVERAGE_MULTIMODAL_LOADED: (data) => data,\n CHANGE_COVERAGE_PREVIEW_LOADED: (data) => data,\n CHANGE_DEDUCTIBLE_LEGEND: (data) => data,\n CLEAR_POLICY_NOTIFICATIONS: () => { },\n DEDUCTIBLE_CHANGED: (data) => data,\n GET_CHANGE_COVERAGE_MULTIMODAL: (data) => data,\n GET_CHANGE_COVERAGE_PREVIEW: (data) => data,\n GET_CHANGE_COVERAGE_PREVIEW_ERROR: () => { },\n GET_MULTIBRAND_DEFAULT_POLICY: (data) => data,\n GET_MULTIBRAND_DEFAULT_POLICY_ERROR: () => { },\n GET_MULTIBRAND_DEFAULT_POLICY_LOADED: (data) => data,\n GET_MULTIBRAND_POLICIES: () => { },\n GET_MULTIBRAND_POLICIES_ERROR: () => { },\n GET_MULTIBRAND_POLICIES_LOADED: (data) => data,\n GET_POLICY_DETAIL: (data) => data,\n GET_POLICY_DETAIL_ERROR: () => { },\n GET_POLICY_DETAIL_LOADED: (data) => data,\n GET_WAITING_PERIODS: (data) => data,\n INITIAL_POWER_UPS: (data) => data,\n LOAD_MULTI_MODAL_DATA: (data) => data,\n LOAD_PLAN_SUMMARY_SEE_MORE_INFO: (data) => data,\n LOAD_PLAN_SUMMARY_SEE_MORE_INFO_ATTEMPT: () => { },\n LOAD_POLICIES_OVERVIEW: () => { },\n LOAD_POLICY_NOTIFICATIONS: (data) => data,\n LOAD_WHAT_WE_COVER_INFO: (data) => data,\n LOAD_WHAT_WE_COVER_INFO_ATTEMPT: () => { },\n LOGGED_IN_WITHOUT_PETS_RESET: () => { },\n MULTI_MODAL_DATA_LOADED: (data) => data,\n PETS_GROUPED: (data) => data,\n PLAN_SUMMARY_SEE_MORE_CLICKED: (data) => data,\n PLAN_SUMMARY_SEE_MORE_INFO_LOADED: (data) => data,\n POLICIES_ERROR: (data) => data,\n POLICIES_OVERVIEW_LOADED: (data) => data,\n POLICY_DETAIL_CLEANED: () => {},\n POLICY_NOTIFICATIONS_LOADED: (data) => data,\n POWER_UP_SELECTED: (data) => data,\n QUOTE_POWER_UP_CHANGED: (data) => data,\n QUOTE_TOTAL_RECALCULATED: (data) => data,\n RATE_COVERAGE: (data) => data,\n RATE_COVERAGE_ERROR: () => { },\n RATE_COVERAGE_SUCCESS: (data) => data,\n RATE_QUOTE_UPDATE_ATTEMPT: (data) => data,\n RATE_QUOTE_UPDATE_LOADED: (data) => data,\n REFRESH_POLICIES: () => { },\n REIMBURSEMENT_CHANGED: (data) => data,\n RESTART_RATE: () => { },\n REVIEW_CHANGES_VISIBLE_CHANGED: (data) => data,\n SELECTED_PLAN_CHANGED: (data) => data,\n STORE_ALL_POLICIES: (data) => data,\n STORE_POLICIES: (data) => data,\n SUBMIT_CHANGE_COVERAGE: (data) => data,\n SUBMIT_CHANGE_COVERAGE_FAILED: () => { },\n SUBMIT_CHANGE_COVERAGE_SUCCESS: () => { },\n UPDATE_POWER_UP: (data) => data,\n VALIDATE_CHANGE_COVERAGE: (data) => data,\n VALIDATE_CHANGE_COVERAGE_CLEARED: (data) => data,\n VALIDATE_CHANGE_COVERAGE_FAILED: (data) => data,\n VALIDATE_CHANGE_COVERAGE_SUCCESS: (data) => data,\n WAITING_PERIODS_LOADED: (data) => data,\n WHAT_WE_COVER_INFO_LOADED: (data) => data,\n YOUNG_PET_MODAL_CLOSED: () => { },\n YOUNG_PET_MODAL_OPEN: () => { },\n});\n\nexport const {\n allPetsGrouped,\n changeCoverageMultimodalFailed,\n changeCoverageMultimodalLoaded,\n changeCoveragePreviewLoaded,\n changeDeductibleLegend,\n clearPolicyNotifications,\n deductibleChanged,\n getChangeCoverageMultimodal,\n getChangeCoveragePreview,\n getChangeCoveragePreviewError,\n getMultibrandDefaultPolicy,\n getMultibrandDefaultPolicyError,\n getMultibrandDefaultPolicyLoaded,\n getMultibrandPolicies,\n getMultibrandPoliciesError,\n getMultibrandPoliciesLoaded,\n getPolicyDetail,\n getPolicyDetailError,\n getPolicyDetailLoaded,\n getWaitingPeriods,\n initialPowerUps,\n loadMultiModalData,\n loadPlanSummarySeeMoreInfo,\n loadPlanSummarySeeMoreInfoAttempt,\n loadPoliciesOverview,\n loadPolicyNotifications,\n loadWhatWeCoverInfo,\n loadWhatWeCoverInfoAttempt,\n loggedInWithoutPetsReset,\n multiModalDataLoaded,\n petsGrouped,\n planSummarySeeMoreClicked,\n planSummarySeeMoreInfoLoaded,\n policiesError,\n policiesOverviewLoaded,\n policyDetailCleaned,\n policyNotificationsLoaded,\n powerUpSelected,\n quotePowerUpChanged,\n quoteTotalRecalculated,\n rateCoverage,\n rateCoverageError,\n rateCoverageSuccess,\n rateQuoteUpdateAttempt,\n rateQuoteUpdateLoaded,\n refreshPolicies,\n reimbursementChanged,\n restartRate,\n reviewChangesVisibleChanged,\n selectedPlanChanged,\n storeAllPolicies,\n storePolicies,\n submitChangeCoverage,\n submitChangeCoverageFailed,\n submitChangeCoverageSuccess,\n updatePowerUp,\n validateChangeCoverage,\n validateChangeCoverageCleared,\n validateChangeCoverageFailed,\n validateChangeCoverageSuccess,\n waitingPeriodsLoaded,\n whatWeCoverInfoLoaded,\n youngPetModalClosed,\n youngPetModalOpen,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n CHECK_PASSWORD_SETUP: (data) => data,\n DO_RESET_PASSWORD: (data) => data,\n GET_NEW_PASSWORD_TOKEN: (data) => data,\n GET_NEW_PASSWORD_TOKEN_FAILED: () => { },\n NEW_PASSWORD_TOKEN_GENERATED: (data) => data,\n PASSWORD_SETUP_CHECKED: (data) => data,\n PASSWORD_SETUP_RESTARTED: (data) => data,\n RESET_PASSWORD_FAILED: (data) => data,\n RESET_PASSWORD_SUCCESS: () => { },\n RESET_PASSWORD_TOKEN_LOADED: (data) => data,\n SET_UP_NEW_PASSWORD: (data) => data,\n SET_UP_NEW_PASSWORD_FAILED: (data) => data,\n SET_UP_NEW_PASSWORD_SUCCESS: () => { },\n VALID_RESET_PASSWORD_TOKEN: (data) => data,\n});\n\nexport const {\n checkPasswordSetup,\n doResetPassword,\n getNewPasswordToken,\n getNewPasswordTokenFailed,\n newPasswordTokenGenerated,\n passwordSetupChecked,\n passwordSetupRestarted,\n resetPasswordFailed,\n resetPasswordSuccess,\n resetPasswordTokenLoaded,\n setUpNewPassword,\n setUpNewPasswordFailed,\n setUpNewPasswordSuccess,\n validResetPasswordToken,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n ACCEPT_TERMS_OF_SERVICE: () => { },\n ATTEMPT_PRIVATE_TOKEN: () => { },\n ATTEMPT_TEMPORARY_TOKEN: () => { },\n BANNER_VISIBLE_CHANGED: (data) => (data),\n CLEAR_ERROR: () => { },\n CLOSE_MODAL: () => { },\n CONVERT_IMPERSONATE_CUSTOMER_ID: (data) => data,\n CUSTOMER_INFORMATION_FAILED: () => { },\n CUSTOMER_INFORMATION_LOADED: (data) => data,\n DO_LOGIN: (data) => data,\n DO_LOGIN_IMPERSONATE: (data) => data,\n DO_LOGOUT: () => { },\n FORCE_LOGOUT: (data) => data,\n GET_AUTH_CONFIG_ATTEMPT: () => {},\n GET_AUTH_CONFIG_LOADED: (data) => data,\n GET_AUTH_METHOD_CONFIGURATION: () => {},\n GET_PRIVATE_TOKEN: (data) => data,\n GET_PROFILE: (data) => data,\n GET_TEMPORARY_TOKEN: () => { },\n LOAD_CUSTOMER_INFORMATION: (data) => data,\n LOAD_DATA_FOR_PRIVATE_TOKEN: () => { },\n LOG_IN: (data) => data,\n LOG_OUT: () => { },\n PRIVATE_TOKEN_COMPLETED: () => { },\n PRIVATE_TOKEN_FAILED: () => { },\n REFRESH_TOKEN: () => { },\n RESET_LOGIN_ERROR: () => { },\n SAVE_IMPERSONATE_CUSTOMER_ID: (data) => data,\n SAVE_USER_INFO: (data) => data,\n SAVE_USER_TERMS_OF_SERVICE: (data) => data,\n SESSION_ERROR: (data) => data,\n SESSION_EXPIRED: () => { },\n SET_PRIVATE_TOKEN: (data) => data,\n SET_TEMPORARY_TOKEN: (data) => data,\n STARTUP_FINISHED: () => { },\n TEMPORARY_TOKEN_COMPLETED: () => { },\n TEMPORARY_TOKEN_FAILED: () => { },\n TEMPORARY_TOKEN_RESET: () => { },\n TERMS_OF_SERVICE_ACCEPTED: () => { },\n TOKEN_CLAIM_LOADED: () => { },\n TOKEN_CUSTOMER_LOADED: () => { },\n TOKEN_POLICY_LOADED: () => { },\n TOKEN_REFRESHED: () => { },\n UPDATE_SESSION: (data) => data,\n});\n\nexport const {\n acceptTermsOfService,\n attemptPrivateToken,\n attemptTemporaryToken,\n bannerVisibleChanged,\n clearError,\n closeModal,\n convertImpersonateCustomerId,\n customerInformationFailed,\n customerInformationLoaded,\n doLogin,\n doLogout,\n forceLogout,\n getAuthConfigAttempt,\n getAuthConfigLoaded,\n getPrivateToken,\n getProfile,\n getTemporaryToken,\n loadCustomerInformation,\n loadDataForPrivateToken,\n logIn,\n logOut,\n oneTimePasscodeFailed,\n oneTimePasscodeRestarted,\n oneTimePasscodeValidated,\n privateTokenCompleted,\n privateTokenFailed,\n resetLoginError,\n saveImpersonateCustomerId,\n saveUserInfo,\n saveUserTermsOfService,\n sendOneTimePasscode,\n sendOneTimePasscodeFailed,\n sendOneTimePasscodeSuccess,\n sessionError,\n sessionExpired,\n setPrivateToken,\n setTemporaryToken,\n startupFinished,\n temporaryTokenCompleted,\n temporaryTokenFailed,\n temporaryTokenReset,\n termsOfServiceAccepted,\n tokenClaimLoaded,\n tokenCustomerLoaded,\n tokenPolicyLoaded,\n tokenRefreshed,\n updateSession,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n GET_FEATURE_FLAGS: () => { },\n GET_FEATURE_FLAGS_FAILED: (data) => data,\n GET_FEATURE_FLAGS_LOADED: (data) => data,\n LOAD_ZIP_CODE_DETAILS: (data) => (data),\n LOAD_ZIP_CODE_DETAILS_FAILED: () => { },\n LOAD_ZIP_CODE_DETAILS_RESTARTED: () => { },\n RESET_INFORMATION: () => { },\n ZIP_CODE_DETAILS_LOADED: (data) => (data),\n});\n\nexport const {\n getFeatureFlags,\n getFeatureFlagsFailed,\n getFeatureFlagsLoaded,\n loadZipCodeDetails,\n loadZipCodeDetailsFailed,\n loadZipCodeDetailsRestarted,\n resetInformation,\n zipCodeDetailsLoaded,\n} = actions;\n","import { createActions } from 'redux-actions';\n\nconst actions = createActions({\n BREED_MULTIBRAND_VALIDATION_FAILED: (data) => data,\n BREED_MULTIBRAND_VALIDATION_SUCCEED: (data) => data,\n GET_ORCA_POWER_UP: (data) => data,\n ORCA_GET_POWER_UP_ATTEMPT: () => { },\n ORCA_GET_POWER_UP_FAILED: () => { },\n ORCA_GET_POWER_UP_LOADED: (data) => data,\n RESET_VALIDATION_BREED_MULTIBRAND: (data) => data,\n VALIDATE_BREED_MULTIBRAND: (data) => data,\n});\n\nexport const {\n breedMultibrandValidationFailed,\n breedMultibrandValidationSucceed,\n getOrcaPowerUp,\n orcaGetPowerUpAttempt,\n orcaGetPowerUpFailed,\n orcaGetPowerUpLoaded,\n resetValidationBreedMultibrand,\n validateBreedMultibrand,\n} = actions;\n","export const USER_COMPANY_KEY = 'user_company';\nexport const USER_INFO_KEY = 'user_info';\nexport const IMPERSONATE_KEY = 'impersonate';\nexport const IMPERSONATE_EMAIL = 'impersonate_email';\nexport const BANNER_PREFERENCES_KEY = 'banner_preferences';\n\nexport const CUSTOMER_API_TOKEN = 'customer_api_token';\nexport const CLAIMS_API_TOKEN = 'claims_api_token';\nexport const POLICY_API_TOKEN = 'policy_api_token';\nexport const API_TOKEN = 'token';\nexport const WEBVIEW_API_TOKEN = 'webview_api_token';\nexport const SOCIAL_API_TOKEN = 'social_api_token';\n\nexport const contentfulPages = {\n PRIVACY_POLICY: 'pc-privacypolicy',\n TOS: 'pc-termsofservice',\n};\n","import { sessionExpired, showGenericError } from '../actions';\nimport app from '../app.json';\nimport {\n CLAIMS_API_TOKEN,\n CUSTOMER_API_TOKEN,\n POLICY_API_TOKEN,\n SOCIAL_API_TOKEN,\n} from './constants';\nimport { validateExpirationToken, serializeForUri } from './utils';\n\nconst BASE_IP = `${process.env.REACT_APP_API_URL}`;\nconst CLIENT_NAME = 'Petcloud';\n\nexport function saveDataOnSession(key, data) {\n return sessionStorage.setItem(key, data);\n}\n\nexport function saveData(key, data) {\n sessionStorage.setItem(key, data);\n return localStorage.setItem(key, data);\n}\n\nexport function getData(key) {\n // TODO: localStorage not working on inner webview,\n // workaround from sessionStorage\n return localStorage.getItem(key) || sessionStorage.getItem(key);\n}\n\nexport async function getStorageOrDefault(key) {\n try {\n const data = await getData(key);\n\n return JSON.parse(data);\n } catch (_) {\n return {};\n }\n}\n\nexport function removeData(key) {\n return localStorage.removeItem(key);\n}\n\nexport function removeAllData() {\n return localStorage.clear();\n}\n\nexport const IDOR_HEADER_V2 = { 'Api-Version': 2 };\nexport const X_API_KEY_ADMIN = { 'X-Api-Key': 'uLXybXt3jHCugGsr' };\nexport const API_HEADER_V1 = { 'Api-Version': 'v1' };\nexport const API_HEADER_V2 = { 'Api-Version': 'v2' };\n\nasync function getApiToken(url = '') {\n const fullUrl = `${BASE_IP}/${url}`;\n let tokenKey = 'token';\n const accessToken = await getData('token');\n\n if (fullUrl.includes(`${BASE_IP}/customer`)) {\n tokenKey = CUSTOMER_API_TOKEN;\n } else if (fullUrl.includes(`${BASE_IP}/claims`)) {\n tokenKey = CLAIMS_API_TOKEN;\n } else if (fullUrl.includes(`${BASE_IP}/policy`)) {\n tokenKey = POLICY_API_TOKEN;\n } else if (fullUrl.includes(`${BASE_IP}/social`)) {\n tokenKey = SOCIAL_API_TOKEN;\n }\n\n const token = await getData(tokenKey);\n\n return token || accessToken;\n}\n\nasync function call({\n anonymous = false,\n data,\n dispatch,\n extraHeaders = {},\n method,\n responseJson = true,\n returnObject = 'json',\n url = '',\n}) {\n const token = anonymous\n ? 'api-key' : await getApiToken(url);\n const headers = {\n 'Api-Version': 'v1',\n authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n 'X-Client-Name': CLIENT_NAME,\n 'X-Client-Version': app.version,\n ...extraHeaders,\n };\n\n if (!token) {\n return { devError: 'No token loaded', statusCode: 401, success: false };\n }\n\n let statusCode;\n\n try {\n const requestData = {\n body: data && JSON.stringify(data),\n headers,\n method,\n };\n\n const tokenExpired = validateExpirationToken(token);\n\n if (!anonymous && tokenExpired) {\n dispatch(sessionExpired());\n\n return {\n data: { IsValid: false },\n devError: 'Token expired',\n success: false,\n };\n }\n\n const response = await fetch(`${BASE_IP}/${url}`, requestData);\n statusCode = response.status;\n\n if (response.status >= 500) {\n const error = await response.json();\n\n if (dispatch && returnObject === 'json' && !error.detail) {\n dispatch(showGenericError(true));\n }\n\n return { error, statusCode, success: false };\n }\n\n if (response.status === 204) {\n return { statusCode, success: true };\n }\n\n let returnableData = {};\n if (returnObject === 'blob') {\n const res = await response.blob();\n returnableData = { blob: res };\n } else {\n const res = responseJson ? await response.json()\n : { data: await response.text() };\n returnableData = res;\n\n if (returnableData instanceof Array) {\n return { data: returnableData, statusCode, success: true };\n }\n }\n\n return { success: response.ok, ...returnableData };\n } catch (error) {\n if (dispatch) {\n dispatch(showGenericError(true));\n }\n return {\n error: error?.message,\n statusCode: statusCode || 500,\n success: false,\n };\n }\n}\n\nexport function get(dispatch, URL, params = {}) {\n const queryParams = serializeForUri(params);\n const url = `${URL}?${queryParams}`;\n\n return call({ dispatch, method: 'GET', url });\n}\n\n/* api version 2 */\nexport function getApiV2(dispatch, URL, params = {}) {\n const queryParams = serializeForUri(params);\n const url = `${URL}?${queryParams}`;\n\n return call({\n dispatch,\n extraHeaders: API_HEADER_V2,\n method: 'GET',\n url,\n });\n}\n\nexport function postApiV2(dispatch, url, data, returnObject = 'json') {\n return call({\n data,\n dispatch,\n extraHeaders: API_HEADER_V2,\n method: 'POST',\n returnObject,\n url,\n });\n}\n\nexport function putApiV2(dispatch, url, data) {\n return call({\n data,\n dispatch,\n extraHeaders: API_HEADER_V2,\n method: 'PUT',\n url,\n });\n}\n\nexport function delApiV2(dispatch, url, data) {\n return call({\n data,\n dispatch,\n extraHeaders: API_HEADER_V2,\n method: 'DELETE',\n url,\n });\n}\n\nexport function patchApiV2(\n dispatch,\n url,\n data,\n responseJson = false,\n) {\n return call({\n data,\n dispatch,\n extraHeaders: API_HEADER_V2,\n method: 'PATCH',\n responseJson,\n url,\n });\n}\n\nexport function postApiBlobV2(dispatch, url, data) {\n return call({\n data,\n dispatch,\n extraHeaders: API_HEADER_V2,\n method: 'POST',\n returnObject: 'blob',\n url,\n });\n}\n\n/* api IDOR version 2 */\nexport function getIDORV2(dispatch, path, params = {}) {\n const queryParams = serializeForUri(params);\n const url = `${path}?${queryParams}`;\n\n return call({\n dispatch,\n extraHeaders: IDOR_HEADER_V2,\n method: 'GET',\n url,\n });\n}\n\nexport function post(dispatch, url, data, returnObject = 'json') {\n return call({ data, dispatch, method: 'POST', returnObject, url });\n}\n\nexport function postBlob(dispatch, url, data) {\n return call({ data, dispatch, method: 'POST', returnObject: 'blob', url });\n}\n\nexport function postV2(dispatch, url, data, returnObject = 'json') {\n return call({\n data,\n dispatch,\n extraHeaders: IDOR_HEADER_V2,\n method: 'POST',\n returnObject,\n url,\n });\n}\n\n/* api IDOR version 2 */\nexport function postBlobV2(dispatch, url, data) {\n return call({\n data,\n dispatch,\n extraHeaders: IDOR_HEADER_V2,\n method: 'POST',\n returnObject: 'blob',\n url,\n });\n}\n\nexport function put(dispatch, url, data, formData = false) {\n return call({\n data,\n dispatch,\n method: 'PUT',\n responseJson: formData,\n url,\n });\n}\n\nexport function del(dispatch, url, data) {\n return call({ data, dispatch, method: 'DELETE', url });\n}\n\nexport function patch(\n dispatch,\n url,\n data,\n responseJson = false,\n) {\n return call({\n data,\n dispatch,\n method: 'PATCH',\n responseJson,\n url,\n });\n}\n\nexport async function apiCallWithApiKey(path, params = {}, dispatch) {\n try {\n let url = `${BASE_IP}/${path}`;\n\n const options = {\n headers: {\n Authorization: 'APIKEY 8f7ecbb6-a62c-44d9-ab88-7b295ba7956c',\n 'Content-Type': 'application/json',\n 'X-Client-Name': CLIENT_NAME,\n 'X-Client-Version': app.version,\n ...params.headers,\n },\n };\n\n if (params.params) {\n const queryParams = serializeForUri(params);\n url += `?${queryParams}`;\n }\n\n if (params.method === 'POST' || params.method === 'DELETE') {\n options.method = params.method;\n options.body = JSON.stringify(params.body);\n }\n\n const response = await fetch(url, options);\n const res = await response.json();\n\n if (response.status >= 500) {\n if (dispatch) {\n dispatch(showGenericError(true));\n }\n return {\n ...res,\n success: false,\n };\n }\n\n return {\n ...res,\n success: true,\n };\n } catch (_) {\n if (dispatch) {\n dispatch(showGenericError(true));\n }\n return {\n success: false,\n };\n }\n}\n\nexport function getAnonymous(\n dispatch,\n URL,\n params = {},\n) {\n const queryParams = serializeForUri(params);\n const url = `${URL}?${queryParams}`;\n\n return call({\n anonymous: true,\n dispatch,\n extraHeaders: API_HEADER_V2,\n method: 'GET',\n url,\n });\n}\n\nexport function postAnonymous(\n dispatch,\n URL,\n body,\n params = {},\n) {\n const queryParams = serializeForUri(params);\n const url = `${URL}?${queryParams}`;\n\n return call({\n anonymous: true,\n data: body,\n dispatch,\n extraHeaders: API_HEADER_V2,\n method: 'POST',\n url,\n });\n}\n","import { all, call, put, takeLatest } from 'redux-saga/effects';\nimport { get } from '../services/api';\nimport {\n getAllBrandsData as GET_ALL_BRANDS_DATA,\n getAllBrandsDataFailed,\n getAllBrandsDataLoaded,\n} from '../actions';\n\nexport function* getAllBrandsData() {\n const url = 'api/MultiBrand/Customer/PolicySummaries';\n\n const response = yield call(get, null, url);\n if (response.IsValid && response.Data) {\n yield put(getAllBrandsDataLoaded(response.Data));\n } else {\n yield put(getAllBrandsDataFailed());\n }\n}\n\nexport function* billingSaga(store) {\n yield all([\n takeLatest(GET_ALL_BRANDS_DATA, getAllBrandsData, store.dispatch),\n ]);\n}\n","import { select } from 'redux-saga/effects';\n\nfunction* getFeatureFlagByName(ffName) {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!(featureFlags?.flags || {})[ffName];\n}\n\nexport function* useCustomerApiForSagas() {\n return yield getFeatureFlagByName('PetCloudCustomerApi');\n}\n\nexport function* useSocialApiForSagas() {\n return yield getFeatureFlagByName('PetCloudSocialApi');\n}\n\nexport function* useCustomerApiV1ForSagas() {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!featureFlags?.flags?.PetCloudCustomerApiV1;\n}\n\nexport function* useCustomerInboxDocsApiV2ForSagas() {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!featureFlags?.flags?.PetCloudCustomerApiV2InboxAndDocs;\n}\n\nexport function* useClaimApiV2ForSagas() {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!featureFlags?.flags?.PetCloudClaimsApiV2;\n}\n\nexport function* useCustomerApiV2MyPetsForSagas() {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!featureFlags?.flags?.PetCloudCustomerApiV2MyPets;\n}\n\nexport function* useClaimsApiV1ForSagas() {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!featureFlags?.flags?.PetCloudClaimsApiV1;\n}\n\nexport function* useClaimsApiV2ForSagas() {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!featureFlags?.flags?.PetCloudClaimsApiV2;\n}\n\nexport function* useCustomerApi150617V1ForSagas() {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!featureFlags?.flags?.PetCloudCustomer150617ApiV1;\n}\n\nexport function* usePolicyApiV1ForSagas() {\n return yield getFeatureFlagByName('PetCloudPolicyApiV1');\n}\n\nexport function* usePolicySummaryV1ForSagas() {\n return yield getFeatureFlagByName('PetCloudPolicyApiV1Summary');\n}\n\nexport function* useClaimsAPIV2T155969ForSagas() {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!featureFlags?.flags?.PetCloudClaimsAPIV2T155969;\n}\n\nexport function* usePolicyApiV1T153274ForSagas() {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!featureFlags?.flags?.PetCloudT153274;\n}\n\nexport function* useCustomerApiV1T162824ForSagas() {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!featureFlags?.flags?.PetCloudCustomerApiV1T162824;\n}\n\nexport function* usePolicyApiV1T153276ForSagas() {\n const featureFlags = yield select(({ settings }) => settings.featureFlags);\n return !!featureFlags?.flags?.PetCloudPolicyApiV1T153276;\n}\n\nexport function* usePolicyApiV1T153269ForSagas() {\n return yield getFeatureFlagByName('PetCloudCoverageT153269');\n}\n\nexport function* usePolicyApiV1T159611ForSagas() {\n return yield getFeatureFlagByName('PetCloudPolicyApiV1T159611');\n}\n\nexport function* useClaimsAPIV2T159603ForSagas() {\n return yield getFeatureFlagByName('PetCloudClaimsv2T159603');\n}\n\nexport function* useClaimsAPIV1T165578ForSagas() {\n return yield getFeatureFlagByName('PetCloudClaimV1T165578');\n}\n\nexport function* usePetCloudClaimsApiV1T164407ForSagas() {\n return yield getFeatureFlagByName('PetCloudClaimsApiV1T164407');\n}\n\nexport function* usePetCloudRNNotificationV1T159707ForSagas() {\n return yield getFeatureFlagByName('PetCloudRNNotificationv1T159707');\n}\n\nexport function* useSocialV1T169153ForSagas() {\n return yield getFeatureFlagByName('PetCloudSocialV1T169153');\n}\n\nexport function* usePetCloudCustomerV1T169318ForSagas() {\n return yield getFeatureFlagByName('PetCloudCustomerV1T169318');\n}\n\nexport function* usePetCloudPolicyV1T172596ForSagas() {\n return yield getFeatureFlagByName('PetCloudPolicyV1T172596');\n}\n\nexport function* usePetCloudManualVetFlowForSagas() {\n return yield getFeatureFlagByName('PetCloudManualVetFlow');\n}\n\nexport function* usePetCloudClaimsV1T1T174557ForSagas() {\n return yield getFeatureFlagByName('PetCloudClaimsV1T174557');\n}\n\nexport function* usePetCloudVetValidationT173886ForSagas() {\n return yield getFeatureFlagByName('PetCloudVetValidationT173886');\n}\n\nexport function* usePetCloudCustomerV1T173084ForSagas() {\n return yield getFeatureFlagByName('PetCloudCustomerV1T173084');\n}\n\nexport function* usePetCloudCustomerV1T174565ForSagas() {\n return yield getFeatureFlagByName('PetCloudCustomerV1T174565');\n}\n\nexport function* usePetCloudCustomerV1T176448ForSagas() {\n return yield getFeatureFlagByName('PetCloudCustomerV1T176448');\n}\n\nexport function* useCustomerV1T176413ForSagas() {\n return yield getFeatureFlagByName('PetCloudCustomerV1T176413');\n}\n\nexport function* usePolicyV1T176256ForSagas() {\n return yield getFeatureFlagByName('PetCloudPolicyV1T176256');\n}\n\nexport function* usePetCloudSocialV1T186305ForSagas() {\n return yield getFeatureFlagByName('PetCloudSocialV1T186305');\n}\n","import { all, call, put, select } from 'redux-saga/effects';\nimport platform from 'platform';\nimport { REIMBURSEMENT_METHODS, ACCOUNT_TYPES } from '../constants';\nimport { get, getApiV2, post } from '../services/api';\nimport {\n doNothing,\n fileSizeToMB,\n getMimefile,\n objectToPascalCase,\n} from '../services/utils';\nimport app from '../app.json';\nimport {\n addAttachmentsLoad,\n claimRequested,\n failedToLoadClaimSteps,\n fileClaimCompleted,\n getClaimAttachmentsFailed,\n getClaimAttachmentsLoaded,\n getClaimByIdFailed,\n getClaimByIdLoaded,\n getClaimsFailed,\n getClaimsLoaded,\n newClaimStepsLoaded,\n fileClaimsAttachmentUpdated,\n claimsResultsLoadedError,\n claimsResultsLoadedSuccess,\n claimsResultsLoadedMore,\n} from '../actions';\nimport {\n useClaimsAPIV2T159603ForSagas,\n usePetCloudClaimsApiV1T164407ForSagas,\n usePetCloudClaimsV1T1T174557ForSagas,\n} from '../services/featureFlagsForSagas';\n\nexport function* getClaimsUser(dispatch, { payload = {} }) {\n const {\n loadMore = false,\n offset = 15,\n page = 0,\n petId = 0,\n policyNumber = null,\n status = null,\n } = payload;\n\n const query = {\n offset,\n page,\n petId,\n };\n\n if (policyNumber) {\n query.policyNumber = policyNumber;\n }\n\n if (status) {\n query.status = status;\n }\n\n const totalCalimsResponse =\n yield call(get, dispatch, 'api/PMS/Claim/GetTotalClaims', query);\n const response = yield call(get, dispatch, 'api/PMS/Claim/GetClaims', {\n ...query,\n page,\n });\n\n if (response.success && response.IsValid) {\n yield put(getClaimsLoaded({\n claims: response.Data,\n loadMore,\n totalClaims: totalCalimsResponse.Data,\n }));\n } else {\n yield put(getClaimsFailed());\n }\n}\n\nexport function* loadNewClaimSteps(dispatch) {\n const response = yield call(get, dispatch, 'api/Bot/GetClaimTypeSteps/0/1');\n\n if (response.success && response.IsValid) {\n yield put(newClaimStepsLoaded(response.Data));\n } else {\n yield put(failedToLoadClaimSteps());\n }\n}\n\nexport function* getAttachmentsByClaim(dispatch, action) {\n yield put(claimRequested());\n const response = yield call(\n get,\n dispatch,\n 'api/PMS/Claim/GetClaimAttachments',\n { claimId: action.payload.cliamId },\n );\n\n if (response.success && response.IsValid) {\n yield put(getClaimAttachmentsLoaded(response.Data));\n } else {\n yield put(getClaimAttachmentsFailed());\n }\n}\n\nexport function* getClaimByNumber(dispatch, action) {\n const { claimNumber } = action.payload;\n yield put(claimRequested());\n const response = yield call(\n get,\n dispatch,\n 'api/PMS/Claim/Get',\n { claimNumber },\n );\n\n if (response.success && response.IsValid && response.Data) {\n yield put(getClaimByIdLoaded(response.Data));\n } else {\n yield put(getClaimByIdFailed());\n }\n}\n\nfunction* submitClaimError({\n claimData,\n claimError = '',\n dispatch,\n error = '',\n userId,\n}) {\n try {\n const { os } = platform;\n\n const content = {\n ClaimFailError: claimError,\n DeviceInfo: `${os.family},${os.version},${app.version}`,\n FrontEndError: error.toString(),\n Json: {\n ...claimData,\n AttachmentsCount: claimData.Attachments.length,\n },\n User: userId,\n };\n\n yield call(\n post,\n dispatch,\n 'api/Bot/SubmitClaimErrorLogging',\n { content: JSON.stringify(content) },\n );\n } catch (_) {\n doNothing();\n }\n}\n\nexport function* createClaim(dispatch) {\n const NONE = 'NONE';\n const ACH = 'ACH';\n const CHECK = 'CHECK';\n\n const store = yield select(({\n fileClaims,\n billingPayments,\n personalInformation,\n }) => ({\n billingPayments,\n fileClaims,\n personalInformation,\n }));\n\n const {\n fileClaims,\n billingPayments: { reimbursementMethod },\n personalInformation: { userInfo: { CustomerId } },\n } = store;\n\n let paymentType = NONE;\n switch (reimbursementMethod.PreferredReimbursementMethod) {\n case REIMBURSEMENT_METHODS.deposit:\n paymentType = ACH;\n break;\n case REIMBURSEMENT_METHODS.check:\n paymentType = CHECK;\n break;\n default:\n break;\n }\n\n // TODO: Claim lost date new Date(Number(fileClaims.date)).toISOString()\n const lostDate = new Date(+fileClaims.date);\n const lostDateDay = lostDate.getDate();\n const lostDateMount = lostDate.getMonth() + 1;\n const lostDateYear = lostDate.getFullYear();\n const lostDateFormated =\n `${lostDateYear}-${lostDateMount}-${lostDateDay} 12:00:00`;\n\n const postBody = {\n AmtClaimed: Number(fileClaims.amount.replace(/,/g, '').replace('$', '')),\n Attachments: fileClaims.attachments.map((file) => ({\n DownloadBinary: file.binary,\n Extension: file.extension,\n Filename: file.filename,\n Filesize: `${fileSizeToMB({ fileSize: file.size })} MB`,\n })),\n ClaimType: fileClaims.claimTypeText,\n CoverageCodeId: fileClaims.claimType,\n Description: fileClaims.claimsDetails,\n Euthanized: false,\n EuthanizedAdvised: false,\n HospitalAdmittedDate: '',\n HospitalDischargeDate: '',\n HospitalDuration: 0,\n IllnessStartDate: lostDateFormated,\n LossDate: lostDateFormated,\n NotifiedOthers: false,\n NotifiedPolice: false,\n OtherInsurance: !!fileClaims.anotherPetInsurance,\n PaymentType: paymentType,\n PolicyNumber: fileClaims.policyNumber,\n RelatedTreamentDscr: '',\n SaveAsDefault: false,\n VacationCancelled: false,\n VacationPlanned: false,\n };\n\n const AttachmentsError = fileClaims.attachments.map((file) => ({\n DownloadBinary: '',\n Extension: file.extension,\n Filename: file.filename,\n Filesize: `${fileSizeToMB({ fileSize: file.size })} MB`,\n }));\n\n if (fileClaims.anotherPetInsurance) {\n postBody.OtherInsuranceDscr = fileClaims.anotherPetInsurance;\n }\n\n if (reimbursementMethod.PreferredReimbursementMethod\n === REIMBURSEMENT_METHODS.deposit) {\n postBody.ACHAccountNumber = reimbursementMethod.AccountNumber;\n postBody.ACHAccountType = Object.keys(ACCOUNT_TYPES)\n .find((key) => ACCOUNT_TYPES[key] === reimbursementMethod.AccountType);\n postBody.ACHRoutingNumber = reimbursementMethod.RoutingNumber;\n }\n\n try {\n const response = yield call(\n post,\n dispatch,\n 'api/Bot/SubmitClaim',\n postBody,\n );\n\n yield put(fileClaimCompleted({\n isSuccess: response.success && response.IsValid,\n message: response.Message,\n }));\n\n if (!response.success || !response.IsValid) {\n yield call(submitClaimError, {\n claimData: { ...postBody, Attachments: AttachmentsError },\n claimError: response.Message,\n dispatch,\n error: '',\n userId: CustomerId,\n });\n }\n } catch (error) {\n yield call(submitClaimError, {\n claimData: { ...postBody, Attachments: AttachmentsError },\n claimError: '',\n dispatch,\n error,\n userId: CustomerId,\n });\n }\n}\n\nfunction* saveAttachment(dispatch, file, ClaimId, t) {\n try {\n const PetCloudClaimsApiV1T164407 =\n yield usePetCloudClaimsApiV1T164407ForSagas();\n\n const url = PetCloudClaimsApiV1T164407\n ? 'claims/claims/AddClaimAttachment'\n : 'api/PMS/Claim/AddClaimAttachment';\n\n const postBody = {\n ClaimId,\n ContentType: getMimefile(file.extension?.toLowerCase()),\n Extension: file.extension,\n FileContent: file.binary,\n FileName: file.filename,\n };\n\n const response = yield call(post, dispatch, url, postBody);\n\n if (response.success && response.IsValid) {\n dispatch(fileClaimsAttachmentUpdated({\n key: file.key,\n percentage: 100,\n uploadValid: true,\n valid: true,\n }));\n } else {\n dispatch(fileClaimsAttachmentUpdated({\n errorMsg: t('conectionError'),\n key: file.key,\n percentage: 100,\n uploadValid: false,\n valid: false,\n }));\n }\n } catch (_) {\n dispatch(fileClaimsAttachmentUpdated({\n errorMsg: t('conectionError'),\n key: file.key,\n percentage: 100,\n uploadValid: false,\n valid: false,\n }));\n }\n}\n\nexport function* addAttachmentToClaim(dispatch, action) {\n const { files, ClaimId, t } = action.payload;\n yield all(files.map((file) => {\n let progress = 0;\n while (progress <= 74) {\n progress += 1;\n dispatch(fileClaimsAttachmentUpdated({\n key: file.key,\n percentage: progress,\n }));\n }\n\n return saveAttachment(dispatch, file, ClaimId, t);\n }));\n\n dispatch(addAttachmentsLoad({ loading: false, success: true }));\n}\n\nfunction* getClaimsDataLegacy(payload) {\n const url = 'api/MultiBrand/Claims';\n return yield call(post, null, url, payload);\n}\n\nfunction* getClaimsDatav2(payload) {\n const url = 'claims/MultiBrand/claims';\n const payloadFormatted = {\n 'market-channel-ids': payload.marketChannelIds || [],\n 'page-number': payload.pageNumber || 0,\n 'pet-ids': payload.petIds || [],\n status: payload.status,\n };\n\n const claimsData = yield call(getApiV2, null, url, payloadFormatted);\n const payloadFormated = objectToPascalCase(claimsData);\n\n return {\n Data: payloadFormated,\n IsValid: !!(payloadFormated && payloadFormated.Items\n && payloadFormated.Items.length),\n Message: payloadFormated.Message || '',\n };\n}\n\nfunction* getClaimsData(payload) {\n const useClaimsAPIV2T159603 = yield useClaimsAPIV2T159603ForSagas();\n const toBeExecuted = useClaimsAPIV2T159603\n ? getClaimsDatav2 : getClaimsDataLegacy;\n\n return yield toBeExecuted(payload);\n}\n\nexport function* fetchClaimsResults({ payload }) {\n try {\n const action = payload.pageNumber > 0\n ? claimsResultsLoadedMore\n : claimsResultsLoadedSuccess;\n\n const claimsData = yield getClaimsData(payload);\n\n if (claimsData && claimsData.IsValid) {\n yield put(action({\n data: claimsData.Data,\n status: payload.status,\n }));\n } else {\n yield put(claimsResultsLoadedError(claimsData.Message));\n }\n } catch (error) {\n yield put(claimsResultsLoadedError(error.message));\n }\n}\n\nexport function* fetchClaimById(dispatch, { payload }) {\n try {\n const { claimId } = payload;\n\n const PetCloudClaimsV1T1T174557 =\n yield usePetCloudClaimsV1T1T174557ForSagas();\n const service = PetCloudClaimsV1T1T174557 ? 'claims' : 'api';\n const url = `${service}/MultiBrand/Claim/${claimId}`;\n\n const response = yield call(get, dispatch, url);\n\n if (response?.success && response?.IsValid && response?.Data) {\n yield put(getClaimByIdLoaded(response.Data));\n } else {\n yield put(getClaimByIdFailed());\n }\n } catch (error) {\n yield put(getClaimByIdFailed());\n }\n}\n","import { call, put, select } from 'redux-saga/effects';\nimport platform from 'platform';\nimport { get, getApiV2, post } from '../services/api';\nimport {\n claimAdditionalStepsLoaded,\n claimPolicyByDateFailed,\n claimPolicyByDateLoaded,\n claimStepsLoaded,\n claimStepsLoadFalied,\n generalInformationLoaded,\n hasFigoClaimsFailed,\n hasFigoClaimsLoaded,\n submitClaimFailed,\n submitClaimSuccess,\n} from '../actions';\nimport { MARKETING_CHANNEL_ID } from '../theme/theme.constants';\nimport app from '../app.json';\nimport {\n boolParse,\n doNothing,\n fileSizeToMB,\n objectToPascalCase,\n} from '../services/utils';\nimport {\n useClaimsApiV1ForSagas,\n useClaimApiV2ForSagas,\n useClaimsApiV2ForSagas,\n useClaimsAPIV1T165578ForSagas,\n} from '../services/featureFlagsForSagas';\n\nfunction* loadGeneralInformationClaimbot(dispatch) {\n try {\n const useClaimApiV2 = yield useClaimApiV2ForSagas();\n const url = useClaimApiV2\n ? 'claims/bots/info'\n : 'api/Bot/GetClaimBotInfo';\n const method = useClaimApiV2 ? getApiV2 : get;\n\n const response = yield call(method, dispatch, url);\n\n if (useClaimApiV2) {\n return { Data: objectToPascalCase(response), IsValid: !!response };\n }\n\n return response;\n } catch {\n return null;\n }\n}\n\nfunction* loadInitialClaimbotSteps(dispatch) {\n try {\n const useClaimApiV2 = yield useClaimApiV2ForSagas();\n const url = useClaimApiV2\n ? 'claims/bots/steps'\n : 'api/Bot/ClaimBotFlowStepDetails';\n const method = useClaimApiV2 ? getApiV2 : post;\n\n const response = yield call(method, dispatch, url, {});\n\n if (useClaimApiV2) {\n return { IsValid: response.success, ...objectToPascalCase(response) };\n }\n\n return response;\n } catch {\n return null;\n }\n}\n\nexport function* loadClaimSteps(dispatch) {\n const claimSteps = yield loadInitialClaimbotSteps(dispatch);\n const generalInformation = yield loadGeneralInformationClaimbot(dispatch);\n\n if (claimSteps && claimSteps.IsValid\n && generalInformation && generalInformation.IsValid) {\n const initialSteps = claimSteps.Data\n .map((step) => ({ ...step, InitialSteps: true }));\n yield put(claimStepsLoaded(initialSteps));\n yield put(generalInformationLoaded(generalInformation.Data));\n } else {\n yield put(claimStepsLoadFalied());\n }\n}\n\nfunction* doLoadAdditionClaimbotSteps({\n claimTypeId = 0,\n dispatch,\n keyName = '',\n petId = 0,\n policyNumber = 0,\n}) {\n try {\n const useClaimApiV2 = yield useClaimApiV2ForSagas();\n const url = useClaimApiV2\n ? 'claims/bots/steps'\n : 'api/Bot/ClaimBotFlowStepDetails';\n const method = useClaimApiV2 ? getApiV2 : post;\n\n const body = useClaimApiV2 ? {\n 'claim-type-id': claimTypeId,\n 'key-name': keyName,\n 'policy-number': policyNumber,\n } : {\n ClaimTypeId: claimTypeId,\n KeyName: keyName,\n Petid: petId,\n PolicyNumber: policyNumber,\n };\n\n const response = yield call(method, dispatch, url, body);\n\n if (useClaimApiV2) {\n return { IsValid: response.success, ...objectToPascalCase(response) };\n }\n\n return response;\n } catch {\n return null;\n }\n}\n\nexport function* loadAdditionalClaimbotSteps(dispatch, { payload }) {\n const {\n claimTypeId,\n keyName,\n petId,\n policyNumber,\n } = payload;\n\n const otherSteps = yield doLoadAdditionClaimbotSteps({\n claimTypeId,\n dispatch,\n keyName,\n petId,\n policyNumber,\n });\n\n if (otherSteps && otherSteps.IsValid) {\n yield put(claimAdditionalStepsLoaded(otherSteps.Data));\n } else {\n yield put(claimStepsLoadFalied());\n }\n}\n\n/**\n * Gets the policy by date only for Figo policies.\n * @param {*} dispatch Dispatch.\n * @param {*} date Date of the policy.\n * @param {*} petId Id of the selected pet.\n */\nexport function* claimGetPolicyByDate(dispatch, { payload }) {\n const {\n date,\n petId,\n } = payload;\n\n const useClaimsApiV2 = yield useClaimsApiV2ForSagas();\n const apiUrl = useClaimsApiV2 ? 'claims' : 'api';\n\n const url = `${apiUrl}/Bot/ClaimBotPolicy?petId=${petId}&policyDate=${date}&`;\n\n const response = yield call(get, dispatch, url);\n\n if (response && response.IsValid) {\n yield put(claimPolicyByDateLoaded({\n ...response.Data,\n PolicyMarketingChannelId: MARKETING_CHANNEL_ID.figo,\n }));\n } else {\n yield put(claimPolicyByDateFailed(\n response?.Message || 'Error getting policy by date',\n ));\n }\n}\n\nfunction* submitClaimError({\n backendError = '',\n claimData,\n dispatch,\n frontendError = '',\n userId,\n}) {\n try {\n const { os } = platform;\n\n const content = {\n ClaimFailError: backendError,\n DeviceInfo: `${os.family},${os.version},${app.version}`,\n FrontEndError: frontendError,\n Json: {\n ...claimData,\n AttachmentsCount: claimData.Attachments.length,\n },\n User: userId,\n };\n\n yield call(\n post,\n dispatch,\n 'api/Bot/SubmitClaimErrorLogging',\n { content: JSON.stringify(content) },\n );\n } catch (_) {\n doNothing();\n }\n}\n\nexport function* submitClaim(dispatch, { payload }) {\n const { userResponses } = payload;\n const bodyRequest = {};\n const attachments = [];\n\n const store = yield select(({ personalInformation }) => ({\n personalInformation,\n }));\n\n const { personalInformation: { userInfo: { CustomerId } } } = store;\n\n try {\n Object.keys(userResponses)\n .forEach((item) => {\n const userResponse = userResponses[item].value;\n const boolParsing = boolParse(userResponse);\n bodyRequest[item] = boolParsing.isBool\n ? boolParsing.value : userResponse;\n });\n\n if (bodyRequest.Attachments) {\n bodyRequest.Attachments.forEach((att) => attachments.push({\n DownloadBinary: att.DownloadBinary,\n Extension: att.Extension,\n Filename: att.Filename,\n Filesize: `${fileSizeToMB({ fileSize: att.size })} MB`,\n }));\n\n // clean model request (extra properties make new api crash)\n bodyRequest.Attachments = attachments;\n }\n\n const ClaimsAPIV1T165578 = yield useClaimsAPIV1T165578ForSagas();\n const legacyApi = 'api/Bot/Claim/Submit';\n const claimsApi = 'claims/bot/Claim/Submit';\n const url = ClaimsAPIV1T165578 ? claimsApi : legacyApi;\n const response = yield call(post, dispatch, url, bodyRequest);\n\n if (response && response.IsValid) {\n yield put(submitClaimSuccess());\n } else {\n yield call(submitClaimError, {\n backendError: response.Message || String(response.error),\n claimData: { ...bodyRequest, Attachments: attachments },\n dispatch,\n frontendError: '',\n userId: CustomerId,\n });\n yield put(submitClaimFailed());\n }\n } catch (exception) {\n yield call(submitClaimError, {\n backendError: '',\n claimData: { ...bodyRequest, Attachments: attachments },\n dispatch,\n frontendError: exception.message,\n userId: CustomerId,\n });\n yield put(submitClaimFailed());\n }\n}\n\nexport function* loadHasFigoClaims(dispatch) {\n try {\n const useClaimsApiV1 = yield useClaimsApiV1ForSagas();\n const url = useClaimsApiV1\n ? 'claims/claims/HasClaimFigo'\n : 'api/PMS/Claim/GetHasClaimFigo';\n\n const response = yield call(get, dispatch, url);\n\n const hasClaimFigo = response.IsValid && response.Data;\n yield put(hasFigoClaimsLoaded(hasClaimFigo));\n } catch {\n yield put(hasFigoClaimsFailed());\n }\n}\n","import { all, call, put, takeLatest } from 'redux-saga/effects';\nimport {\n apiCallWithApiKey,\n get,\n getAnonymous,\n IDOR_HEADER_V2,\n} from '../services/api';\nimport {\n applicationMessagesLoaded,\n generalDataLoaded,\n getSharePostDataFailed,\n getSharePostDataSuccess,\n linkMessageSent,\n publicSideImageLoaded,\n getContentfulPage as GET_CONTENTFUL_PAGE,\n contentfulPageLoaded,\n} from '../actions';\nimport { SMS_APP_LINKS } from '../constants';\nimport {\n usePetCloudRNNotificationV1T159707ForSagas,\n} from '../services/featureFlagsForSagas';\n\nexport function* sendLinkMessage(dispatch, { payload }) {\n const options = {\n body: {\n body: SMS_APP_LINKS,\n toPhone: payload.toPhone,\n },\n method: 'POST',\n };\n\n const response = yield call(\n apiCallWithApiKey,\n 'api/Quote/SendSMS',\n options,\n dispatch,\n );\n\n yield put(linkMessageSent(response.success && response.IsValid));\n}\n\nexport function* clearAllCustomerCache(dispatch) {\n const url = 'api/User/ClearAllCustomerCache';\n yield call(get, dispatch, url);\n}\n\nexport function* clearUserCache(dispatch) {\n const url = 'api/User/ClearCache';\n yield call(get, dispatch, url);\n}\n\nexport function* getSharePostData(dispatch, { payload }) {\n const { postId } = payload;\n\n const response = yield call(\n apiCallWithApiKey,\n `api/Social/Share/Post/${postId}`,\n { headers: IDOR_HEADER_V2 },\n dispatch,\n );\n\n if (response.IsValid && response.Data) {\n yield put(getSharePostDataSuccess(response.Data));\n } else {\n yield put(getSharePostDataFailed());\n }\n}\n\nexport function* getPublicSideImage(dispatch) {\n const response = yield call(\n apiCallWithApiKey,\n 'api/Contentful/GetSignInPage/true',\n dispatch,\n );\n\n if (response.IsValid && response.Data) {\n yield put(publicSideImageLoaded(response.Data.ImageUrl));\n }\n}\n\nexport function* getGeneralData() {\n const response = yield call(get, null, 'api/GeneralData');\n if (response.IsValid && response.Data) {\n yield put(generalDataLoaded(response.Data.PoliciesInfo));\n }\n}\n\nexport function* getApplicationMessages(dispatch) {\n const usePetCloudRNNotificationv1T159707 =\n yield usePetCloudRNNotificationV1T159707ForSagas();\n\n const petcloudOs = 1;\n const urlService = usePetCloudRNNotificationv1T159707 ? 'social' : 'api';\n const url = `${urlService}/Notification/GetUrgentMessage/${petcloudOs}`;\n\n const response = yield call(get, dispatch, url);\n\n if (response?.IsValid) {\n yield put(applicationMessagesLoaded(response.Data));\n }\n}\n\nexport function* getContentfulPage({ payload }) {\n const isPublished = process.env.REACT_APP_NAME === 'Prod';\n const response = yield call(\n getAnonymous,\n null,\n `social/contentful/general/${payload}/${isPublished}`,\n );\n\n yield put(contentfulPageLoaded(response));\n}\n\nexport function* commonSaga() {\n yield all([\n takeLatest(GET_CONTENTFUL_PAGE, getContentfulPage),\n ]);\n}\n","import { call, put } from 'redux-saga/effects';\nimport { get, post, del } from '../services/api';\nimport {\n deleteTagNumberFailed,\n deleteTagNumberRequested,\n firstStepShowed,\n petTagInfoLoaded,\n petTagInfoLoadFailed,\n petTagInfoPosted,\n petTagInfoPostFailed,\n petTagInfoPostRequested,\n petTagInfoRequested,\n tagNumberDeleted,\n tagNumberErrorMessageSetted,\n} from '../actions';\nimport {\n useCustomerApi150617V1ForSagas,\n} from '../services/featureFlagsForSagas';\n\nconst DUPLICATED_TAG_NUMBER_ERROR = 'This code already exists.\\r\\n';\n\nexport function* getFigoPetTagInfo(dispatch, action) {\n yield put(petTagInfoRequested());\n const petId = action.payload;\n const response = yield call(\n get,\n dispatch,\n `api/Pets/Tag/${petId}`,\n );\n\n if (response.success && response.IsValid) {\n yield put(petTagInfoLoaded(response.Data));\n } else {\n yield put(petTagInfoLoadFailed());\n }\n}\n\nexport function* setFigoPetTagInfo(dispatch, action) {\n yield put(petTagInfoPostRequested());\n const useCustomerPets = yield useCustomerApi150617V1ForSagas();\n const urlPref = useCustomerPets ? 'customer' : 'api';\n\n const petTagInfo = action.payload;\n const response = yield call(\n post,\n dispatch,\n `${urlPref}/Pets/Tag`,\n petTagInfo,\n );\n\n if (response.success && response.IsValid) {\n yield put(petTagInfoPosted());\n } else {\n yield put(petTagInfoPostFailed());\n\n yield put(tagNumberErrorMessageSetted(response.Message));\n\n if (response.Message === DUPLICATED_TAG_NUMBER_ERROR) {\n yield put(tagNumberErrorMessageSetted(response.Message));\n yield put(firstStepShowed());\n }\n }\n}\n\nexport function* deleteFigoTagNumber(dispatch, action) {\n yield put(deleteTagNumberRequested());\n const petId = action.payload;\n const url = `api/Pets/Tag/${petId}`;\n const response = yield call(del, dispatch, url);\n\n if (response.success && response.IsValid) {\n yield put(tagNumberDeleted());\n } else {\n yield put(deleteTagNumberFailed());\n }\n}\n","import { call, put } from 'redux-saga/effects';\nimport {\n apiCallWithApiKey,\n getAnonymous,\n postAnonymous,\n} from '../services/api';\nimport {\n searchPetTagAttempt,\n searchPetTagFailed,\n searchPetTagFound,\n sendMessageFailed,\n sendMessageSucceed,\n} from '../actions';\nimport {\n useCustomerApiV2MyPetsForSagas,\n} from '../services/featureFlagsForSagas';\n\nexport function* doSearchPetTag(dispatch, action) {\n const { petTag } = action.payload;\n\n const useCustomerApiV2MyPets = yield useCustomerApiV2MyPetsForSagas();\n let petTagResponse = null;\n\n yield put(searchPetTagAttempt());\n\n if (useCustomerApiV2MyPets) {\n const response = yield call(\n getAnonymous,\n dispatch,\n `customer/pets/tags/${petTag}`,\n );\n\n petTagResponse = response.success ? {\n Data: {\n BreedName: response.breedName,\n Cit: response.city,\n ImageUrl: response.imageUrl,\n Note: response.note,\n PetAge: response.petAge,\n PetName: response.petName,\n Type: response.type,\n },\n success: true,\n } : null;\n } else {\n petTagResponse = yield call(\n apiCallWithApiKey,\n `api/Customer/ValidatePetTag/${encodeURI(petTag)}`,\n );\n }\n\n if (petTagResponse?.success) {\n yield put(searchPetTagFound(petTagResponse?.Data));\n } else {\n const menssage = petTagResponse?.Message || 'Unexpected Error';\n yield put(searchPetTagFailed(menssage));\n }\n}\n\nexport function* contactPetFamily(dispatch, { payload }) {\n const useCustomerApiV2MyPets = yield useCustomerApiV2MyPetsForSagas();\n const { lostPetTag, message, phoneNumber, finderName } = payload;\n let response = null;\n\n if (useCustomerApiV2MyPets) {\n const body = {\n finderName,\n message,\n petTag: lostPetTag,\n phone: phoneNumber,\n };\n\n response = yield call(\n postAnonymous,\n dispatch,\n 'customer/notifications/found-pet',\n body,\n );\n } else {\n const url = 'api/Customer/SendSMSFoundPet';\n const requestOptions = {\n body: {\n FinderName: finderName,\n Message: message,\n PetTag: lostPetTag,\n Phone: phoneNumber,\n },\n method: 'POST',\n };\n\n response = yield call(apiCallWithApiKey, url, requestOptions, dispatch);\n }\n\n if (response.success) {\n yield put(sendMessageSucceed());\n } else {\n yield put(sendMessageFailed());\n }\n}\n","import { call, put, all, takeLatest, select } from 'redux-saga/effects';\nimport {\n articlesLoaded,\n articlesLoadFailed,\n getArticles as GET_ARTICLES,\n getPetWisdom as GET_PET_WISDOM,\n getContactBrandDataLoaded,\n getPetWisdomAttempt,\n petWisdomFailed,\n petWisdomLoaded,\n} from '../actions';\nimport { get, getData, getIDORV2 } from '../services/api';\nimport { useSocialV1T169153ForSagas } from '../services/featureFlagsForSagas';\nimport { SOCIAL_API_TOKEN } from '../services/constants';\n\nfunction* getArticles(dispatch, { payload }) {\n const { published, skip } = payload;\n const response = yield call(\n get,\n dispatch,\n `api/contentful/GetBlogContent/${published}/${skip}`,\n );\n\n if (response.IsValid) {\n yield put(articlesLoaded(response.Data));\n } else {\n yield put(articlesLoadFailed());\n }\n}\n\nexport function* getPetWisdom(dispatch, { payload }) {\n yield put(getPetWisdomAttempt());\n const { published } = payload;\n const response = yield call(\n get,\n dispatch,\n `api/contentful/GetPetWisdom/${published}`,\n );\n\n if (response.IsValid && response.Data) {\n yield put(petWisdomLoaded(response.Data));\n } else {\n yield put(petWisdomFailed());\n }\n}\n\nfunction* getContactData({ dispatch, brandInformation, companyId }) {\n const isSocialApi = yield useSocialV1T169153ForSagas();\n const existSocialScope = yield call(getData, SOCIAL_API_TOKEN);\n\n const api = (isSocialApi && existSocialScope) ? 'social' : 'api';\n const url = `${api}/Contentful/GetCompanyContactUs`;\n const isPublished = process.env.REACT_APP_NAME === 'Prod';\n const params = { companyId, getPublished: isPublished };\n\n const apiCallMethod = (isSocialApi && existSocialScope) ? get : getIDORV2;\n\n const response = yield call(apiCallMethod, dispatch, url, params);\n\n if (response && response.IsValid && response.Data && brandInformation) {\n brandInformation.push({\n ...response.Data,\n companyId,\n });\n }\n}\n\nexport function* getContactBrandData(dispatch) {\n const brandInformation = [];\n const store = yield select(({\n personalInformation,\n }) => ({ personalInformation }));\n\n const insuranceCompanies = store.personalInformation.userInfo.Companies;\n\n const companiesDistinct = Array.from(\n new Set(insuranceCompanies.map(({ Id }) => Id)),\n );\n\n yield all(companiesDistinct.map((companyId) => call(getContactData, {\n brandInformation,\n companyId,\n dispatch,\n })));\n\n yield put(getContactBrandDataLoaded(brandInformation));\n}\n\nexport function* homeSaga(store) {\n yield all([\n takeLatest(GET_ARTICLES, getArticles, store.dispatch),\n takeLatest(GET_PET_WISDOM, getPetWisdom, store.dispatch),\n ]);\n}\n","import { put, call, all } from 'redux-saga/effects';\nimport {\n del,\n delApiV2,\n get,\n getApiV2,\n getIDORV2,\n patchApiV2,\n post,\n postApiV2,\n postBlob,\n} from '../services/api';\nimport {\n changeNameFailed,\n changeNameSuccess,\n createFolderFailed,\n createFolderSuccess,\n deleteFailed,\n deleteSuccess,\n errorViewFile,\n filesDownloaded,\n filesMarkedAsRead,\n filesMoved,\n filesUploaded,\n fileToUploadUpdated,\n folderLoaded,\n folderMoved,\n folderStructureLoaded,\n loadFolderFailed,\n markFilesAsReadAttempted,\n moveFilesFailed,\n recentFilesLoaded,\n recentFilesLoadFailed,\n recentFilesRequested,\n showAlert,\n showedViewFile,\n tagPetFileFailed,\n tagPetFileSuccess,\n uploadFiles,\n} from '../actions';\nimport { READ_FILE_SOURCE } from '../constants';\nimport {\n delay,\n downloadFileInPage,\n objectToPascalCase,\n} from '../services/utils';\nimport {\n useCustomerApiForSagas,\n useCustomerInboxDocsApiV2ForSagas,\n usePetCloudCustomerV1T176448ForSagas,\n} from '../services/featureFlagsForSagas';\n\nexport function* loadFolderContent(dispatch, { payload }) {\n const useCustomerInboxDocsApiV2 = yield useCustomerInboxDocsApiV2ForSagas();\n const url = useCustomerInboxDocsApiV2\n ? `customer/folders/${payload}`\n : `api/InboxDocs/GetFolders/${payload}`;\n\n const response = yield call(\n useCustomerInboxDocsApiV2 ? getApiV2 : get,\n dispatch,\n url,\n );\n\n if (response.IsValid || response.success) {\n const responseData = response.Data || objectToPascalCase(response.data);\n yield put(folderLoaded(responseData));\n } else {\n yield put(loadFolderFailed(response.Message || ''));\n }\n}\n\nexport function* getRecentFiles(dispatch) {\n yield put(recentFilesRequested());\n const useCustomerInboxDocsApiV2 =\n yield useCustomerInboxDocsApiV2ForSagas();\n const url = useCustomerInboxDocsApiV2\n ? 'customer/files'\n : 'api/InboxDocs/GetRecentFiles';\n\n const response = yield call(\n useCustomerInboxDocsApiV2 ? getApiV2 : get,\n dispatch,\n url,\n );\n\n if (response.IsValid || response.success) {\n const responseData = response.Data || objectToPascalCase(response.data);\n yield put(recentFilesLoaded(responseData));\n } else {\n yield put(recentFilesLoadFailed(response.Message));\n }\n}\n\nexport function* markFilesAsRead(dispatch, { payload }) {\n const useCustomerInboxDocsApiV2 = yield useCustomerInboxDocsApiV2ForSagas();\n const url = useCustomerInboxDocsApiV2\n ? 'customer/files/batch'\n : 'api/InboxDocs/MarkReadMultipleFiles';\n const { filesIds, source } = payload;\n\n if (source === READ_FILE_SOURCE.toolbar) {\n yield put(markFilesAsReadAttempted());\n }\n\n const method = useCustomerInboxDocsApiV2 ? patchApiV2 : post;\n\n yield call(\n method,\n dispatch,\n url,\n filesIds.map((fileId) => (useCustomerInboxDocsApiV2 ? ({\n id: fileId,\n isRead: true,\n }) : ({\n FileId: fileId,\n IsRead: true,\n }))),\n );\n\n if (source !== READ_FILE_SOURCE.claims) {\n yield put(filesMarkedAsRead(filesIds));\n }\n}\n\nexport function* moveFiles(dispatch, { payload }) {\n const { destinationFolderId, filesIds } = payload;\n // TODO: Not ready v2, but they will be unified in the same flag soon\n const useCustomerInboxDocsApiV2 = yield useCustomerInboxDocsApiV2ForSagas();\n const service = useCustomerInboxDocsApiV2 ? 'customer' : 'api';\n const response = yield call(\n post,\n dispatch,\n `${service}/InboxDocs/MoveFiles`,\n {\n FileIds: filesIds,\n MoveFolderId: destinationFolderId,\n },\n );\n\n if (response.IsValid) {\n yield put(filesMoved());\n } else {\n yield put(moveFilesFailed());\n }\n}\n\nexport function* moveFolder(dispatch, { payload }) {\n const useCustomerInboxDocsApiV2 = yield useCustomerInboxDocsApiV2ForSagas();\n const url = useCustomerInboxDocsApiV2\n ? 'customer/folders'\n : 'api/InboxDocs/MoveFolder';\n const { destinationFolderId, folderIdToMove } = payload;\n\n const requestV1 = {\n FolderIdToMove: folderIdToMove,\n MoveToParentForumTopicId: destinationFolderId,\n };\n\n const requestV2 = {\n folderId: folderIdToMove,\n parentFolderId: destinationFolderId,\n };\n\n const response = yield call(\n useCustomerInboxDocsApiV2 ? patchApiV2 : post,\n dispatch,\n url,\n useCustomerInboxDocsApiV2 ? requestV2 : requestV1,\n );\n\n if (response.IsValid || response.ok) {\n yield put(folderMoved());\n } else {\n put(showAlert({ type: 'error' }));\n }\n}\n\nexport function* loadFolderStructure(dispatch) {\n const useCustomerApiV2 = yield useCustomerInboxDocsApiV2ForSagas();\n const url = useCustomerApiV2\n ? 'customer/folders'\n : 'api/InboxDocs/GetAllFoldersByUser';\n const method = useCustomerApiV2 ? getApiV2 : get;\n\n const response = yield call(\n method,\n dispatch,\n url,\n );\n\n if (response.IsValid || response.success) {\n const responseData = useCustomerApiV2\n ? objectToPascalCase(response.data) : response.Data;\n yield put(folderStructureLoaded(responseData));\n }\n}\n\nexport function* changeName(dispatch, { payload }) {\n const useCustomerInboxDocsApiV2 = yield useCustomerInboxDocsApiV2ForSagas();\n const { isFolder, itemId, newName } = payload;\n const api = useCustomerInboxDocsApiV2 ? 'customer' : 'api';\n /* TODO: RenameFiles v2 not ready */\n let url = `${api}/InboxDocs/Rename${isFolder ? 'Folder' : 'File'}`;\n let method = post;\n\n let request = isFolder\n ? {\n FolderId: itemId,\n NewFolderName: newName.trim(),\n } : {\n FileId: itemId,\n NewFileName: newName.trim(),\n };\n\n if (useCustomerInboxDocsApiV2 && isFolder) {\n url = 'customer/folders';\n method = patchApiV2;\n request = {\n FolderId: itemId,\n FolderName: newName.trim(),\n };\n }\n\n const response = yield call(\n method,\n dispatch,\n url,\n request,\n );\n\n if (response.IsValid || response.success) {\n yield put(changeNameSuccess());\n } else {\n const errorMessage = response.Message || response.error.detail;\n yield put(changeNameFailed(errorMessage || 'Unexpected error.'));\n }\n}\n\nfunction* downloadMedia(dispatch, resourceId) {\n const url = `api/Media/Download/${resourceId}`;\n const response = yield call(getIDORV2, dispatch, url);\n return response;\n}\n\nexport function* openMediaFileToBlob(dispatch, { payload }) {\n const response = yield downloadMedia(dispatch, payload);\n\n if (window && response.IsValid) {\n window.open(response.Data.MediaUrl, '_blank');\n } else {\n yield put(showAlert({ type: 'error' }));\n }\n return response;\n}\n\nexport function* downloadFiles(dispatch, { payload }) {\n const {\n singleFile = false,\n singleFileInfo = {},\n fileIds,\n folderIds,\n } = payload;\n\n const timestamp = new Date().toISOString().split('T')[0];\n const defaultZipName = `MyPetCloud_download_${timestamp}.zip`;\n\n const usePetCloudCustomerV1T176448 =\n yield usePetCloudCustomerV1T176448ForSagas();\n\n if (singleFile && !usePetCloudCustomerV1T176448) {\n const { Id } = singleFileInfo;\n const responseUrlBlob = yield downloadMedia(dispatch, Id);\n\n if (responseUrlBlob.IsValid) {\n yield downloadFileInPage({\n fileName: singleFileInfo.Name,\n fileUrl: responseUrlBlob.Data.MediaUrl,\n });\n } else {\n yield put(showAlert({ type: 'error' }));\n }\n\n yield put(filesDownloaded());\n return;\n }\n\n const useCustomerApi = yield useCustomerApiForSagas();\n let method = postBlob;\n let url = '';\n let request = {};\n\n if (useCustomerApi) {\n url = 'customer/files/zip';\n method = postApiV2;\n request = {\n fileIds: singleFile ? [singleFileInfo?.Id] : fileIds,\n folderIds: singleFile ? []\n : folderIds.map((id) => parseInt(id, 10)),\n };\n } else {\n url = 'api/InboxDocs/DownloadFiles';\n method = postBlob;\n request = {\n FileIds: fileIds || [],\n FolderIds: folderIds || [],\n };\n }\n\n const response = yield call(\n method,\n dispatch,\n url,\n request,\n );\n\n if (response.success) {\n let downloadPayload = {};\n\n if (useCustomerApi) {\n const zipName = response?.fileDownloadName || defaultZipName;\n const base64Data = response?.fileContents;\n downloadPayload = { base64Data, fileName: zipName };\n } else {\n const newBlob = new Blob([response.blob]);\n const blobUrl = window.URL.createObjectURL(newBlob);\n downloadPayload = { blobUrl, fileName: defaultZipName };\n }\n\n downloadFileInPage(downloadPayload);\n } else {\n yield put(showAlert({ type: 'error' }));\n }\n\n yield put(filesDownloaded());\n}\n\nexport function* tagPetFile(dispatch, { payload }) {\n const useCustomerInboxDocsApiV2 = yield useCustomerInboxDocsApiV2ForSagas();\n\n const url = useCustomerInboxDocsApiV2\n ? 'customer/files'\n : 'api/InboxDocs/File/Tagging';\n\n const method = useCustomerInboxDocsApiV2 ? patchApiV2 : post;\n\n const { currentFolderId, fileId, petIdList } = payload;\n\n const request = useCustomerInboxDocsApiV2 ? {\n folderId: currentFolderId,\n id: fileId,\n petIds: petIdList,\n } : {\n FileId: fileId,\n PetsIds: petIdList,\n };\n\n const response = yield call(\n method,\n dispatch,\n url,\n request,\n );\n\n if (response.success || (response.IsValid && response.Data)) {\n yield put(tagPetFileSuccess());\n } else {\n yield put(tagPetFileFailed(response.Message || 'Unexpected error.'));\n }\n}\n\nexport function* createFolder(dispatch, { payload }) {\n const { parentId, name } = payload;\n const data = { folderName: name, parentFolderId: parentId };\n const useCustomerInboxDocsApiV2 = yield useCustomerInboxDocsApiV2ForSagas();\n const url = useCustomerInboxDocsApiV2\n ? 'customer/folders'\n : 'api/InboxDocs/CreateFolder';\n\n const response = yield call(\n useCustomerInboxDocsApiV2 ? postApiV2 : post,\n dispatch,\n url,\n data,\n );\n\n if (response.IsValid || response.success) {\n yield put(createFolderSuccess());\n } else {\n const errorMessage = response.Message || response.error.detail;\n yield put(createFolderFailed(errorMessage || 'Unexpected error.'));\n }\n}\n\nexport function* deleteFiles(dispatch, { payload }) {\n const useCustomerInboxDocsApiV2 = yield useCustomerInboxDocsApiV2ForSagas();\n\n const { fileIds } = payload;\n\n const url = useCustomerInboxDocsApiV2\n ? `customer/files/${encodeURI(fileIds.join())}`\n : 'api/InboxDocs/DeleteFiles';\n\n const method = useCustomerInboxDocsApiV2 ? delApiV2 : del;\n\n const request = useCustomerInboxDocsApiV2 ? {}\n : {\n FileIds: fileIds,\n };\n\n const response = yield call(\n method,\n dispatch,\n url,\n request,\n );\n\n if (response.IsValid || response.success) {\n yield put(deleteSuccess());\n } else {\n yield put(deleteFailed(response.Message || 'Unexpected error.'));\n }\n}\n\nexport function* deleteFolder(dispatch, { payload }) {\n const useCustomerInboxDocsApiV2 = yield useCustomerInboxDocsApiV2ForSagas();\n const { folderId } = payload;\n\n const url = useCustomerInboxDocsApiV2\n ? `customer/folders/${folderId}`\n : `api/InboxDocs/DeleteFolder/${folderId}`;\n\n const response = yield call(\n useCustomerInboxDocsApiV2 ? delApiV2 : del,\n dispatch,\n url,\n );\n\n if (response.IsValid || response.success) {\n yield put(deleteSuccess());\n } else {\n yield put(deleteFailed(response.Message || 'Unexpected error.'));\n }\n}\n\nfunction* simulateLoading({ fileKey, progress }) {\n if (progress < 70) {\n yield call(delay, 50);\n yield put(fileToUploadUpdated({\n fileKey,\n newValues: {\n errorMsg: '',\n percentage: progress,\n },\n }));\n yield call(simulateLoading, {\n fileKey,\n progress: progress + 10,\n });\n }\n}\n\nfunction* uploadFile({ dispatch, fileKey, request }) {\n const useCustomerInboxDocsApiV2 = yield useCustomerInboxDocsApiV2ForSagas();\n const url = useCustomerInboxDocsApiV2\n ? 'customer/files'\n : 'api/InboxDocs/CreateFile';\n const response = yield call(\n useCustomerInboxDocsApiV2 ? postApiV2 : post,\n dispatch,\n url,\n request,\n );\n yield call(simulateLoading, { fileKey, progress: 1 });\n if (response.IsValid || response.success) {\n yield put(fileToUploadUpdated({\n fileKey,\n newValues: {\n hideDelete: true,\n percentage: 100,\n },\n }));\n } else {\n yield put(fileToUploadUpdated({\n fileKey,\n newValues: {\n valid: false,\n },\n }));\n }\n}\n\nexport function* uploadFilesPerBatch(dispatch, { payload }) {\n const { files, orderIds, folderId, batchSize, currentBatch } = payload;\n if (files.length) {\n const batch = files.slice(0, batchSize);\n yield all(batch.map((file) => {\n const request = {\n ContentType: file.contentType,\n Extension: file.extension,\n FileContent: file.binary,\n FileName: file.filename,\n FolderId: folderId,\n OrderIds: orderIds,\n };\n return call(uploadFile, {\n dispatch,\n fileKey: file.key,\n request,\n });\n }));\n const nextBatch = files.slice(batchSize);\n yield put(uploadFiles({\n batchSize,\n currentBatch: currentBatch + 1,\n files: nextBatch,\n folderId,\n orderIds,\n }));\n } else {\n yield put(filesUploaded());\n }\n}\n\nexport function* loadBlobFile(dispatch, { payload }) {\n const { Id } = payload;\n const response = yield downloadMedia(dispatch, Id);\n\n if (response.IsValid) {\n const { MediaUrl } = response.Data;\n\n yield put(showedViewFile({\n ...payload,\n Metadata: {\n ...payload.Metadata,\n Url: MediaUrl,\n },\n }));\n } else {\n yield put(errorViewFile());\n }\n}\n","import { all, call, put } from 'redux-saga/effects';\nimport { apiCallWithApiKey, get, getData } from '../services/api';\nimport {\n breedMultibrandValidationFailed,\n breedMultibrandValidationSucceed,\n orcaGetPowerUpAttempt,\n orcaGetPowerUpFailed,\n orcaGetPowerUpLoaded,\n} from '../actions';\nimport { WEBVIEW_API_TOKEN } from '../services/constants';\nimport {\n usePetCloudPolicyV1T172596ForSagas,\n} from '../services/featureFlagsForSagas';\n\nexport function* getOrcaPowerUp(dispatch, { payload }) {\n try {\n yield put(orcaGetPowerUpAttempt());\n\n const { productKey } = payload;\n const getPublished = process.env.REACT_APP_NAME === 'Prod';\n const url =\n `api/Contentful/GetPowerDetails/${productKey}/${getPublished}`;\n\n const response = yield call(\n apiCallWithApiKey,\n url,\n dispatch,\n );\n\n if (response.success && response.IsValid) {\n yield put(orcaGetPowerUpLoaded(response.Data));\n } else {\n yield put(orcaGetPowerUpFailed());\n }\n } catch (e) {\n yield put(orcaGetPowerUpFailed());\n }\n}\n\nexport function* validateBreedMultibrand(dispatch, { payload }) {\n try {\n const { petId } = payload;\n // Validate orca double active policies\n const url = 'api/Orca/Customer/HasMultiplePolicies';\n // get webview list information\n const webViewToken = getData(WEBVIEW_API_TOKEN);\n const query = { token: webViewToken };\n const isPolicyApi = yield usePetCloudPolicyV1T172596ForSagas();\n const api = isPolicyApi ? 'policy' : 'api';\n const webviewsData = `${api}/MultiBrand/GetQuoteUrls/${petId}`;\n\n const [response, respWebviewsData] = yield all([\n call(get, dispatch, url),\n call(get, dispatch, webviewsData, query),\n ]);\n\n if (response.success\n && response.IsValid\n && respWebviewsData.success\n && respWebviewsData.IsValid\n ) {\n dispatch(breedMultibrandValidationSucceed({\n hasMultipleOrcaPolicies: response.Data.HasMultipleOrcaPolicies,\n policyProvider: response.Data.PolicyProvider,\n webviewsData: respWebviewsData.Data,\n }));\n } else {\n dispatch(breedMultibrandValidationFailed());\n }\n } catch (e) {\n dispatch(breedMultibrandValidationFailed());\n }\n}\n","import { all, call, put, select, takeLatest } from 'redux-saga/effects';\nimport { get, getData, getIDORV2, post } from '../services/api';\nimport {\n allPetsGrouped,\n loadMultiPolicies,\n loadPoliciesCardInformation,\n loadPoliciesPaymentNumber,\n loadPlanSummarySeeMoreInfoAttempt,\n loadWhatWeCoverInfoAttempt,\n multiModalDataLoaded,\n petsGrouped,\n planSummarySeeMoreInfoLoaded,\n policiesOverviewLoaded,\n policyDetailsBenefitsLoaded,\n policyNotificationsLoaded,\n reimbursementMethodAttempt,\n reimbursementMethodLoaded,\n storeAllPolicies,\n storePolicies,\n validateChangeCoverageFailed,\n validateChangeCoverageSuccess,\n whatWeCoverInfoLoaded,\n waitingPeriodsLoaded,\n getChangeCoveragePreviewError,\n changeCoveragePreviewLoaded,\n rateCoverageSuccess,\n rateCoverageError,\n changeCoverageMultimodalLoaded,\n changeCoverageMultimodalFailed,\n quotePowerUpChanged,\n rateQuoteUpdateAttempt,\n rateQuoteUpdateLoaded,\n submitChangeCoverageSuccess,\n submitChangeCoverageFailed,\n getMultibrandPoliciesLoaded,\n getMultibrandPoliciesError,\n getMultibrandDefaultPolicyLoaded,\n getMultibrandDefaultPolicyError,\n getPolicyDetailLoaded,\n getPolicyDetailError,\n getMultibrandPolicies as GET_MULTIBRAND_POLICIES,\n getMultibrandDefaultPolicy as GET_MULTIBRAND_DEFAULT_POLICY,\n getPolicyDetail as GET_POLICY_DETAIL,\n getOrcaPowerUp as GET_ORCA_POWER_UP,\n validateBreedMultibrand as VALIDATE_BREED_MULTIBRAND,\n} from '../actions';\nimport { getOrcaPowerUp, validateBreedMultibrand } from './orcaInsurance';\nimport { POLICY_STATUS } from '../constants';\nimport { sleep } from '../services/utils';\nimport {\n usePolicyApiV1ForSagas,\n usePolicyApiV1T153269ForSagas,\n usePolicyApiV1T153274ForSagas,\n usePolicyApiV1T153276ForSagas,\n usePolicyApiV1T159611ForSagas,\n usePolicySummaryV1ForSagas,\n usePolicyV1T176256ForSagas,\n} from '../services/featureFlagsForSagas';\nimport { POLICY_API_TOKEN } from '../services/constants';\n\nfunction getPetPolicies({ policies, petId }) {\n return policies.filter((pet) => (\n pet.PetInformation.PetId === petId\n )).map((pet) => ({ ...pet.Policy, ...pet.BillingInformation }));\n}\n\nfunction* groupPets(policiesData, allPets = false) {\n const pets = [];\n\n policiesData.forEach(({ PetInformation }) => {\n const isPetGrouped =\n pets.find((pet) => pet.PetId === PetInformation.PetId);\n\n if (!isPetGrouped) {\n const pet = {\n ...PetInformation,\n policies: getPetPolicies({\n petId: PetInformation.PetId,\n policies: policiesData,\n }),\n };\n\n pets.push(pet);\n }\n });\n\n const action = allPets ? allPetsGrouped : petsGrouped;\n\n yield put(action(pets));\n}\n\nexport function* getPolicySummary(dispatch) {\n const usePolicySummaryV1 = yield usePolicySummaryV1ForSagas();\n\n let apiUrl = 'api';\n\n const existPolicyScope = yield call(getData, POLICY_API_TOKEN);\n\n if (existPolicyScope && usePolicySummaryV1) {\n apiUrl = 'policy';\n }\n\n const url = `${apiUrl}/PMS/Policy/Summary`;\n const response = yield call(get, dispatch, url);\n\n if (response.success && response.IsValid) {\n const validPolicies = response.Data.filter((policyData) => (\n policyData.Policy.Number\n ));\n const policiesToUpdate = validPolicies.filter((policyData) => (\n policyData.Policy.Status === POLICY_STATUS.active\n || policyData.Policy.Status === POLICY_STATUS.future\n ));\n\n yield put(storeAllPolicies(response.Data));\n yield put(storePolicies(validPolicies));\n yield put(loadMultiPolicies(policiesToUpdate));\n yield put(loadPoliciesPaymentNumber());\n yield call(groupPets, validPolicies);\n yield call(groupPets, response.Data, true);\n }\n}\n\nexport function* getPoliciesPaymentNumber(dispatch) {\n const response = yield call(get, dispatch, 'api/PMS/PolicyInfoAndPet');\n\n if (response.success && response.IsValid) {\n yield put(loadPoliciesCardInformation(response.Data));\n }\n}\n\nexport function* loadReimbursementMethod(dispatch, { payload }) {\n const store = yield select(({ billingPayments }) => ({ billingPayments }));\n\n if (!store.billingPayments.reimbursementMethod) {\n yield put(reimbursementMethodAttempt());\n }\n\n const response = yield call(\n get,\n dispatch,\n 'api/PMS/Claim/GetReimbursementMethod',\n { policyNumber: payload },\n );\n\n if (response.success) {\n yield put(reimbursementMethodLoaded(response.Data));\n }\n}\n\nexport function* loadPolicyBenefits(dispatch, { payload }) {\n const usePolicyApiV1 = yield usePolicyApiV1ForSagas();\n const urlService = usePolicyApiV1 ? 'policy' : 'api';\n\n const response = yield call(\n get,\n dispatch,\n `${urlService}/PMS/Policy/Details/${encodeURI(payload)}`,\n );\n\n if (response.success) {\n yield put(policyDetailsBenefitsLoaded(response.Data));\n }\n}\n\nexport function* loadMultiModalData(dispatch, { payload }) {\n const { CustomerId } = payload;\n\n const usePolicyApiV1 = yield usePolicyApiV1ForSagas();\n\n let urlService = 'api';\n\n const existPolicyScope = yield call(getData, POLICY_API_TOKEN);\n\n if (existPolicyScope && usePolicyApiV1) {\n urlService = 'policy';\n }\n\n const url = `${urlService}/PMS/Policy/GetOptionalBenefits/${CustomerId}`;\n const response = yield call(get, dispatch, url);\n\n if (response.success && response.IsValid) {\n yield put(multiModalDataLoaded(response.Data));\n }\n}\n\n/**\n * Only for Figo pet/policies, according to Defect 163335\n */\nexport function* loadPoliciesOverview(dispatch) {\n const usePolicyApiV1T153276 = yield usePolicyApiV1T153276ForSagas();\n\n const urlService = usePolicyApiV1T153276 ? 'policy' : 'api';\n const url = `${urlService}/PMS/Policy/GetPolicyCoverageBalances`;\n\n const response = yield call(get, dispatch, url);\n\n if (response.success) {\n yield put(policiesOverviewLoaded(response.Data));\n }\n}\n\nexport function* loadPolicyNotifications(dispatch, { payload }) {\n const usePolicyApiV1T153274 = yield usePolicyApiV1T153274ForSagas();\n const urlService = usePolicyApiV1T153274 ? 'policy' : 'api';\n const url = `${urlService}/PMS/Policy/Notifications/${encodeURI(payload)}`;\n const response = yield call(get, dispatch, url);\n\n if (response.success) {\n yield put(policyNotificationsLoaded(response.Data));\n }\n}\n\nexport function* loadWhatWeCoverInfo(dispatch, { payload }) {\n const { effectiveDate, policyNumber, stateAbbr } = payload;\n\n yield put(loadWhatWeCoverInfoAttempt());\n\n const url = 'api/InsuranceProduct/GetWhatWeCoverInfo/'\n + `${stateAbbr}/${effectiveDate}/${policyNumber}`;\n\n const response = yield call(get, dispatch, url);\n\n if (response.success && response.IsValid) {\n yield put(whatWeCoverInfoLoaded(response.Data));\n }\n}\n\nexport function* loadPlanSummarySeeMoreInfo(dispatch, { payload }) {\n const { effectiveDate, stateAbbr, policyNumber } = payload;\n\n yield put(loadPlanSummarySeeMoreInfoAttempt());\n\n const url = 'api/Policy/GetInsuranceProductCoverageXPlan';\n\n const response = yield call(get, dispatch,\n `${url}/${stateAbbr}/${effectiveDate}/${policyNumber}`);\n\n if (response.success && response.IsValid) {\n yield put(planSummarySeeMoreInfoLoaded(response.Data));\n }\n}\n\nexport function* getWaitingPeriods(dispatch, { payload }) {\n const { policyNumber } = payload;\n\n const response = yield call(\n get,\n dispatch,\n `api/PMS/Policy/WaitingPeriods/${policyNumber}`,\n );\n\n if (response.IsValid) {\n yield put(waitingPeriodsLoaded(response.Data));\n }\n}\n\nexport function* getChangeCoveragePreview(dispatch, { payload }) {\n const usePolicyApiV1T153269 = yield usePolicyApiV1T153269ForSagas();\n\n const existPolicyScope = yield call(getData, POLICY_API_TOKEN);\n const urlService =\n existPolicyScope && usePolicyApiV1T153269 ? 'policy' : 'api';\n\n const url = `${urlService}/PMS/Policy/ChangeCoverageInformation`;\n\n const response = yield call(\n get,\n dispatch,\n `${url}/${payload.policyNumber}`,\n );\n\n if (response.success && response.IsValid) {\n yield put(changeCoveragePreviewLoaded(response.Data));\n } else {\n yield put(getChangeCoveragePreviewError());\n }\n}\n\nexport function* rateCoverage(dispatch, { payload }) {\n try {\n const usePolicyApiV1T159611 = yield usePolicyApiV1T159611ForSagas();\n\n const existPolicyScope = yield call(getData, POLICY_API_TOKEN);\n\n const urlService =\n existPolicyScope && usePolicyApiV1T159611 ? 'policy' : 'api';\n\n const { policyNumber, modifiers } = payload;\n\n const url = `${urlService}/Policy/CoverageChangeRate/${policyNumber}`;\n\n const response = yield call(\n post,\n dispatch,\n url,\n { modifiers },\n );\n\n if (response.success && response.IsValid) {\n yield put(rateCoverageSuccess(response.Data));\n } else {\n yield put(rateCoverageError({\n response,\n success: response.success,\n url,\n }));\n }\n } catch (error) {\n yield put(rateCoverageError({\n message: error.message,\n }));\n }\n}\n\nexport function* validateChangeCoverage(dispatch, { payload }) {\n const usePolicyApiV1T153269 = yield usePolicyApiV1T153269ForSagas();\n const urlService = usePolicyApiV1T153269 ? 'policy' : 'api';\n const apiMethod = usePolicyApiV1T153269 ? get : getIDORV2;\n const { policyNumber } = payload;\n\n const response = yield call(\n apiMethod,\n dispatch,\n `${urlService}/PMS/Policy/ValidateChangeCoverage/${policyNumber}`,\n );\n\n if (response.IsValid && response.Data) {\n yield put(validateChangeCoverageSuccess({\n isValid: response.Data.Valid,\n }));\n } else {\n yield put(validateChangeCoverageFailed({\n isValid: !!response.Data?.Valid,\n message: response.Message,\n }));\n }\n}\n\nexport function* getChangeCoverageMultimodal(dispatch, { payload }) {\n const { policyNumber } = payload;\n const url = `api/InsuranceMultiModal/GetAllByPolicyNumber/${policyNumber}`;\n const response = yield call(get, dispatch, url);\n\n if (response.success && response.IsValid) {\n yield put(changeCoverageMultimodalLoaded(response.Data));\n } else {\n yield put(changeCoverageMultimodalFailed());\n }\n}\n\nexport function* updatePowerUp(dispatch, { payload }) {\n const { id, isSelected, modifiers, policyNumber } = payload;\n\n try {\n yield put(quotePowerUpChanged({ id, isSelected }));\n yield put(rateQuoteUpdateAttempt({ id, isSelected }));\n\n yield call(rateCoverage, dispatch, {\n payload: { modifiers, policyNumber },\n });\n sleep(800);\n yield put(rateQuoteUpdateLoaded({ id, isSelected }));\n } catch (_) {\n yield put(rateQuoteUpdateLoaded({ id, isSelected: !isSelected }));\n }\n}\n\nexport function* submitChangeCoverage(dispatch, { payload }) {\n const { body, policyNumber } = payload;\n const url = `api/Policy/CoverageChange/${policyNumber}`;\n\n const response = yield call(\n post,\n dispatch,\n url,\n body,\n );\n\n if (response.success && response.IsValid) {\n yield put(submitChangeCoverageSuccess());\n } else {\n yield put(submitChangeCoverageFailed());\n }\n}\n\nexport function* getMultibrandPolicies(dispatch) {\n const policyV1T176256 = yield usePolicyV1T176256ForSagas();\n const service = policyV1T176256 ? 'policy' : 'api';\n const url = `${service}/MultiBrand/Customer/PetPolicies`;\n\n try {\n const response = yield call(get, dispatch, url);\n if (response.success && response.IsValid) {\n yield put(getMultibrandPoliciesLoaded(response.Data));\n } else {\n yield put(getMultibrandPoliciesError());\n }\n } catch (e) {\n yield put(getMultibrandPoliciesError());\n }\n}\n\nexport function* getMultibrandDefaultPolicy(dispatch, { payload }) {\n const petId = payload;\n const url = `api/MultiBrand/Customer/DefaultPolicy/${petId}`;\n try {\n const response = yield call(get, dispatch, url);\n\n if (response.success && response.IsValid) {\n yield put(getMultibrandDefaultPolicyLoaded(response.Data));\n } else {\n yield put(getMultibrandDefaultPolicyError());\n }\n } catch (e) {\n yield put(getMultibrandDefaultPolicyError());\n }\n}\n\nexport function* getPolicyDetail(dispatch, { payload }) {\n const { policyId } = payload;\n const url = `api/MultiBrand/Customer/PolicyDetail/${policyId}`;\n try {\n const response = yield call(get, dispatch, url);\n\n if (response.success && response.IsValid) {\n yield put(getPolicyDetailLoaded(response.Data));\n } else {\n yield put(getPolicyDetailError());\n }\n } catch (e) {\n yield put(getPolicyDetailError());\n }\n}\n\nexport function* policiesSaga(store) {\n yield all([\n takeLatest(GET_MULTIBRAND_POLICIES, getMultibrandPolicies, store.dispatch),\n takeLatest(\n GET_MULTIBRAND_DEFAULT_POLICY,\n getMultibrandDefaultPolicy,\n store.dispatch,\n ),\n takeLatest(GET_POLICY_DETAIL, getPolicyDetail, store.dispatch),\n\n // ORCA POLICIES\n takeLatest(GET_ORCA_POWER_UP, getOrcaPowerUp, store.dispatch),\n takeLatest(\n VALIDATE_BREED_MULTIBRAND,\n validateBreedMultibrand,\n store.dispatch,\n ),\n ]);\n}\n","import { call, put, select } from 'redux-saga/effects';\nimport {\n addPetFailed,\n breedDataLoaded,\n clearUserCache,\n deletePetFailed,\n microchipDataLoaded,\n microchipFailed,\n microchipSaved,\n petAdded,\n petDeleted,\n petEdited,\n petPhotoRemoved,\n petProfileFailed,\n petProfileLoadAttempt,\n petProfileLoaded,\n removePetPhotoFailed,\n} from '../actions';\nimport { PET_TYPE_ID } from '../constants';\nimport { del, get, post } from '../services/api';\nimport {\n useCustomerApi150617V1ForSagas,\n} from '../services/featureFlagsForSagas';\nimport { getPolicySummary } from './policies';\nimport { sleep } from '../services/utils';\n\nexport function* addPet(dispatch, { payload }) {\n const { petToAdd } = payload;\n\n const response = yield call(\n post,\n dispatch,\n 'api/Pets/AddPetResponsePetId',\n petToAdd,\n );\n\n if (response.success && response.IsValid) {\n yield put(petAdded({ addedPetId: response.Data.PetId }));\n // wait for lottie animation end\n yield call(sleep, 1000);\n yield call(getPolicySummary, dispatch);\n } else {\n yield put(addPetFailed());\n }\n}\n\nexport function* loadBreedList(dispatch) {\n const petBreedsUrlBase = 'api/Pets/Breeds';\n\n const dogBreeds = yield call(\n get,\n dispatch,\n `${petBreedsUrlBase}/${PET_TYPE_ID.DOG}`,\n );\n\n const catBreeds = yield call(\n get,\n dispatch,\n `${petBreedsUrlBase}/${PET_TYPE_ID.CAT}`,\n );\n\n if (dogBreeds.success && dogBreeds.IsValid\n && catBreeds.success && catBreeds.IsValid) {\n yield put(breedDataLoaded({\n catBreeds: catBreeds.Data,\n dogBreeds: dogBreeds.Data,\n }));\n }\n}\n\nexport function* loadMicrochipData(dispatch, { payload }) {\n const response = yield call(\n get,\n dispatch,\n `api/Microchip/${payload.petId}`,\n );\n\n const companiesResponse = yield call(\n get,\n dispatch,\n 'api/Microchip/All',\n );\n\n if (response.success && response.IsValid) {\n yield put(microchipDataLoaded({\n companies: companiesResponse.Data,\n data: response.Data ? response.Data : {\n MicrochipId: 1,\n OrderId: payload.petId,\n },\n petId: payload.petId,\n }));\n }\n}\n\nexport function* saveMicrochip(dispatch, { payload }) {\n const response = yield call(\n post,\n dispatch,\n 'api/Microchip',\n payload,\n );\n\n if (response.success && response.IsValid) {\n yield put(microchipSaved(payload));\n } else {\n yield put(microchipFailed());\n }\n}\n\nexport function* editPet(dispatch, { payload }) {\n const useCustomerPets = yield useCustomerApi150617V1ForSagas();\n const urlPref = useCustomerPets ? 'customer' : 'api';\n\n const response = yield call(\n post,\n dispatch,\n `${urlPref}/Pets/Pet`,\n payload,\n );\n\n if (response.success && response.IsValid) {\n dispatch(clearUserCache());\n yield put(petEdited());\n yield call(getPolicySummary, dispatch);\n } else {\n yield put(addPetFailed());\n }\n}\n\nexport function* getPetProfile(dispatch) {\n yield put(petProfileLoadAttempt());\n const store = yield select(({ myPets }) => (myPets));\n const useCustomerPets = yield useCustomerApi150617V1ForSagas();\n const urlPref = useCustomerPets ? 'customer' : 'api';\n\n const { selectedPetId } = store;\n\n if (!selectedPetId) {\n return;\n }\n\n const response = yield call(\n get,\n dispatch,\n `${urlPref}/Pets/Pet/${selectedPetId}`,\n );\n\n if (response.success && response.IsValid) {\n yield put(petProfileLoaded(response.Data));\n } else {\n yield put(petProfileFailed());\n }\n}\n\nexport function* deletePet(dispatch, { payload }) {\n const response = yield call(\n post,\n dispatch,\n `api/Pets/Remove?orderId=${payload}`,\n {},\n );\n\n if (response.success && response.IsValid) {\n yield put(clearUserCache());\n yield put(petDeleted());\n yield call(getPolicySummary, dispatch);\n } else {\n yield put(deletePetFailed());\n }\n}\n\nexport function* removePetPhoto(dispatch, { payload }) {\n const { petProfileId } = payload;\n const response = yield call(\n del,\n dispatch,\n `api/Pet/${petProfileId}/Picture`,\n );\n\n if (response.IsValid) {\n yield put(petPhotoRemoved());\n yield put(clearUserCache());\n } else {\n yield put(removePetPhotoFailed());\n }\n}\n","import { call, put } from 'redux-saga/effects';\nimport {\n addedToFavorites,\n addToFavoritesFailed,\n addCustomToFavoritesFailed,\n addPointInterestFailed,\n getAllFavoritesAttempt,\n getAllFavorites as getFavorites,\n setFavorites,\n validateZipCodeAttempt,\n validateZipCodeFailed,\n validateZipCodeSuccess,\n vetsSearchCleared,\n vetsSearched,\n removeVetSuccess,\n removeVetFailed,\n hasPrimaryVetChecked,\n primaryVetSaved,\n primaryVetSaveFailed,\n} from '../actions';\nimport {\n apiCallWithApiKey,\n del,\n delApiV2,\n get,\n getApiV2,\n getIDORV2,\n post,\n postApiV2,\n} from '../services/api';\nimport {\n useCustomerApiV1T162824ForSagas,\n usePetCloudCustomerV1T169318ForSagas,\n usePetCloudManualVetFlowForSagas,\n usePetCloudSocialV1T186305ForSagas,\n usePetCloudVetValidationT173886ForSagas,\n} from '../services/featureFlagsForSagas';\n\nexport function* searchVets(dispatch, { payload }) {\n const { zipCode, query } = payload;\n\n const queryParms = {\n category: 'veterinary_care',\n latitude: 0,\n location: '',\n longitude: 0,\n radius: 643737,\n searchPetFriendly: true,\n sortBy: 'distance',\n term: query || '',\n zipCode,\n };\n\n const usePetCloudSocialV1T186305 = yield usePetCloudSocialV1T186305ForSagas();\n const service = usePetCloudSocialV1T186305 ? 'social' : 'api';\n\n const response = yield call(\n get,\n dispatch,\n `${service}/Places/SearchPlaceWithSummary`,\n queryParms,\n );\n\n if (response.IsValid) {\n yield put(vetsSearched(response.Data.Places, zipCode));\n } else {\n yield put(vetsSearchCleared());\n }\n}\n\nexport function* checkIfHasPrimaryVet(dispatch) {\n const isApiVersion2 = yield usePetCloudVetValidationT173886ForSagas();\n const method = isApiVersion2 ? getIDORV2 : get;\n const url = 'api/User/GetUserHasVetAdd';\n const response = yield call(method, dispatch, url);\n yield put(hasPrimaryVetChecked(response.Data));\n}\n\nexport function* addToFavorites(dispatch, { payload }) {\n const { categoryId, placeId, providerId } = payload;\n\n const response = yield call(\n post,\n dispatch,\n 'api/Favorites/Add',\n {\n categoryId,\n placeId,\n providerId,\n },\n );\n\n if (response.IsValid) {\n yield put(addedToFavorites(response.Data));\n yield put(getFavorites());\n } else {\n yield put(addToFavoritesFailed());\n }\n}\n\nexport function* addManuallyVetToFavorites(dispatch, { payload }) {\n const {\n address,\n city,\n email,\n fax,\n phone,\n state,\n vetName,\n zipCode,\n } = payload;\n\n const url = 'social/VisitedVet/CreateVisitedVetManually';\n\n const body = {\n address,\n city,\n email,\n fax,\n phone,\n state,\n vetName,\n zipCode,\n };\n\n const response = yield call(\n postApiV2,\n dispatch,\n url,\n body,\n );\n\n if (response.success) {\n yield put(addedToFavorites());\n yield put(getFavorites());\n // refreshes vet validation state\n yield checkIfHasPrimaryVet(dispatch);\n } else {\n yield put(addCustomToFavoritesFailed());\n }\n}\n\nexport function* addCustomToFavorites(dispatch, { payload }) {\n const { categoryId, providerId, name, city, stateId } = payload;\n\n const usePetCloudCustomerV1T169318 =\n yield usePetCloudCustomerV1T169318ForSagas();\n\n const service = usePetCloudCustomerV1T169318 ? 'customer' : 'api';\n const addPointInterestURL = `${service}/PointInterest/Add`;\n const addFavoritesURL = 'api/Favorites/Add';\n\n const body = {\n city,\n name,\n providerId,\n state: stateId,\n };\n\n let addPointInterestResponse = {};\n\n if (usePetCloudCustomerV1T169318) {\n addPointInterestResponse = yield call(\n post,\n dispatch,\n addPointInterestURL,\n body,\n dispatch,\n );\n } else {\n addPointInterestResponse = yield call(\n apiCallWithApiKey,\n addPointInterestURL,\n {\n body,\n method: 'POST',\n },\n dispatch,\n );\n }\n\n if (addPointInterestResponse.IsValid && addPointInterestResponse.Data) {\n const { PointInterestId } = addPointInterestResponse.Data;\n\n const response = yield call(\n post,\n dispatch,\n addFavoritesURL,\n {\n categoryId,\n placeId: PointInterestId,\n providerId,\n },\n );\n\n if (response.IsValid) {\n yield put(addedToFavorites(response.Data));\n yield put(getFavorites());\n } else {\n yield put(addCustomToFavoritesFailed(response.Data));\n }\n } else {\n yield put(addPointInterestFailed(addPointInterestResponse.Data));\n }\n}\n\nexport function* validateZipCode({ payload }) {\n const { zipCode } = payload;\n\n yield put(validateZipCodeAttempt());\n\n const response = yield call(\n apiCallWithApiKey,\n `/api/State/ValidateZipcode/${zipCode}`,\n );\n\n if (response.IsValid && response.Data) {\n yield put(validateZipCodeSuccess());\n } else {\n yield put(validateZipCodeFailed());\n }\n}\n\nexport function* getAllFavorites(dispatch) {\n yield put(getAllFavoritesAttempt());\n\n const usePetCloudManualVetFlow =\n yield usePetCloudManualVetFlowForSagas();\n\n if (usePetCloudManualVetFlow) {\n const response = yield call(\n getApiV2,\n dispatch,\n 'social/VisitedVet',\n );\n\n if (response.success && response.data) {\n yield put(setFavorites(response.data));\n }\n } else {\n const response = yield call(\n get,\n dispatch,\n 'api/Favorites/GetAll',\n {\n categoryId: 1,\n // The value provided as userDateTime\n // makes no difference in the response,\n // as long as it's properly formatted as a date.\n // So this is just a random\n // date... Remember remember the fifth of november...\n userDateTime: '1605-11-05 08:50:57',\n },\n );\n\n if (response.IsValid && response.Data) {\n yield put(setFavorites(response.Data));\n } else {\n yield put(setFavorites([]));\n }\n }\n}\n\nexport function* removeVet(dispatch, { payload }) {\n const { isVisitedVet, placeId } = payload;\n\n let isReponseValid = false;\n\n if (isVisitedVet) {\n const url = `social/VisitedVet/${placeId}`;\n const response = yield call(delApiV2, dispatch, url);\n isReponseValid = response.success;\n } else {\n const url = `api/Favorites/${placeId}`;\n const response = yield call(del, dispatch, url);\n isReponseValid = response.success && response.IsValid;\n }\n\n if (isReponseValid) {\n yield put(removeVetSuccess());\n } else {\n yield put(removeVetFailed());\n }\n}\n\nexport function* searchPrimaryVets(dispatch, { payload }) {\n const useCustomerApiV1T162824 = yield useCustomerApiV1T162824ForSagas();\n\n const { zipCode, query } = payload;\n\n const queryParms = {\n name: query,\n zipcode: zipCode,\n };\n\n const url = `api/Quote/Veterinarians?zipcode=${zipCode}&name=${query}`;\n\n const response = useCustomerApiV1T162824\n ? yield call(\n get,\n dispatch,\n 'customer/Vet/Veterinarians',\n queryParms,\n )\n : yield call(apiCallWithApiKey, url);\n\n yield put(vetsSearched(response.Data || [], zipCode));\n}\n\nexport function* savePrimaryVet(dispatch, { payload }) {\n const {\n selectedVetId = 0,\n isCustomVet = false,\n vetCompany = '',\n vetCity = '',\n stateId = '',\n } = payload;\n\n const usePetCloudManualVetFlow =\n yield usePetCloudManualVetFlowForSagas();\n\n const url = usePetCloudManualVetFlow\n ? 'social/VisitedVet' : 'api/User/AddVet';\n\n let body = {};\n let response = {};\n let isValidResponse = false;\n\n if (usePetCloudManualVetFlow) {\n response = yield call(\n postApiV2,\n dispatch,\n url,\n { placeId: selectedVetId },\n );\n\n isValidResponse = response.success;\n } else {\n if (isCustomVet) {\n body = {\n HasManualVet: isCustomVet,\n StateId: stateId,\n VetCity: vetCity,\n VetCompany: vetCompany,\n };\n } else {\n body = {\n SelectedVetID: selectedVetId,\n };\n }\n\n response = yield call(post, dispatch, url, body);\n isValidResponse = response.success && response.IsValid;\n }\n\n if (isValidResponse) {\n yield put(primaryVetSaved());\n yield put(getFavorites());\n // refreshes vet validation state\n yield checkIfHasPrimaryVet(dispatch);\n } else {\n yield put(primaryVetSaveFailed());\n }\n}\n","import { call, put } from 'redux-saga/effects';\n\nimport {\n oneIncDefaultsPaymentFailed,\n oneIncDefaultsPaymentLoaded,\n oneIncSessionCreated,\n} from '../actions';\nimport { apiCallWithApiKey, get } from '../services/api';\n\nexport function* createOneIncSession(dispatch) {\n const response = yield call(\n apiCallWithApiKey,\n 'api/Payments/getOneIncSessionId',\n {},\n dispatch,\n );\n\n if (response.IsValid) {\n const { portalOneSessionKey } = response.Data.Result;\n yield put(oneIncSessionCreated(portalOneSessionKey));\n }\n}\n\nexport function* loadDefaultpayments(dispatch) {\n const response = yield call(get, dispatch, '/api/Billing/InfoByCustomer');\n\n if (response.IsValid) {\n const {\n BillingInfoList: billingInfoList,\n DefaultPaymentProfileIdACH: defaultTokenACH,\n DefaultPaymentProfileIdCC: defaultTokenCC,\n } = response.Data;\n const haveDefault = !!defaultTokenACH || !!defaultTokenCC;\n const isTwoDefaults = !!defaultTokenACH && !!defaultTokenCC;\n\n if (isTwoDefaults) {\n yield put(oneIncDefaultsPaymentLoaded({\n bankAccountDefault: billingInfoList\n .find((item) => item.PaymentProfileId === defaultTokenACH),\n billingInfoList,\n creditCardDefault: billingInfoList\n .find((item) => item.PaymentProfileId === defaultTokenCC),\n defaultTokenACH,\n defaultTokenCC,\n haveDefault,\n isTwoDefaults,\n }));\n } else {\n yield call(createOneIncSession, dispatch);\n }\n } else {\n yield put(oneIncDefaultsPaymentFailed());\n }\n}\n","import { call, put } from 'redux-saga/effects';\n\nimport { apiCallWithApiKey, IDOR_HEADER_V2 } from '../services/api';\nimport {\n getNewPasswordTokenFailed,\n newPasswordTokenGenerated,\n passwordSetupChecked,\n resetPasswordFailed,\n resetPasswordSuccess,\n resetPasswordTokenLoaded,\n setUpNewPasswordFailed,\n setUpNewPasswordSuccess,\n} from '../actions';\n\nexport function* doResetPassword(dispatch, { payload }) {\n const response = yield call(\n apiCallWithApiKey,\n 'api/Account/PasswordRecoveryConfirm',\n {\n body: {\n ConfirmNewPassword: payload.confirmPassword,\n Email: payload.email,\n NewPassword: payload.newPassword,\n Token: payload.token,\n },\n method: 'POST',\n },\n dispatch,\n );\n\n const action = response.IsValid ? resetPasswordSuccess : resetPasswordFailed;\n yield put(action(response));\n}\n\nexport function* validResetPasswordToken(dispatch, { payload }) {\n const params = { body: payload, method: 'POST' };\n const response = yield call(\n apiCallWithApiKey,\n 'api/Account/RecoveryPasswordValidation',\n params,\n dispatch,\n );\n\n yield put(resetPasswordTokenLoaded(response.success && response.IsValid));\n}\n\nexport function* checkPasswordSetup({ payload }) {\n const { customerEmail } = payload;\n const response = yield call(\n apiCallWithApiKey,\n `api/Customer/HasSavedPassword/${customerEmail}/`,\n );\n\n yield put(passwordSetupChecked({\n customerHasPassword: response.IsValid && response.Data.HasSavedPassword,\n }));\n}\n\nexport function* getNewPasswordToken({ payload }) {\n const { customerEmail } = payload;\n const response = yield call(\n apiCallWithApiKey,\n `api/account/getonetimepasswordtoken/${customerEmail}/`,\n { headers: IDOR_HEADER_V2 },\n );\n\n if (response.IsValid) {\n yield put(newPasswordTokenGenerated(response.Data.Token));\n } else {\n yield put(getNewPasswordTokenFailed());\n }\n}\n\nexport function* setUpNewPassword(dispatch, { payload }) {\n const response = yield call(\n apiCallWithApiKey,\n 'api/Account/NewPassword',\n {\n body: {\n ConfirmNewPassword: payload.confirmPassword,\n Email: payload.email,\n NewPassword: payload.newPassword,\n Token: payload.token,\n },\n headers: IDOR_HEADER_V2,\n method: 'POST',\n },\n dispatch,\n );\n\n if (response.IsValid) {\n yield put(setUpNewPasswordSuccess());\n } else {\n yield put(setUpNewPasswordFailed(response.Message));\n }\n}\n","export const EV1 = ({ source, policyBrand = '', pms = '' }) => ({\n eventName: 'view insurance',\n params: { pms, 'policy brand': String(policyBrand).toUpperCase(), source },\n});\n\nexport const EV2 = ({ source }) => ({\n eventName: 'view claims',\n params: { source },\n});\n\nexport const EV3 = () => ({\n eventName: 'start new claim',\n});\n\nexport const EV4 = ({\n claimData,\n claimDescription,\n dateOfLoss,\n lastBotText,\n lastInputFromUser,\n policyNumber,\n policyBrand,\n}) => {\n const params = {\n 'claim data': claimData,\n 'claim description': claimDescription,\n 'date of loss': dateOfLoss,\n 'last bot text': lastBotText,\n 'last input from user': lastInputFromUser,\n 'policy brand': String(policyBrand).toUpperCase(),\n 'policy number': policyNumber,\n };\n\n return {\n eventName: 'abandon claim',\n params,\n };\n};\n\nexport const EV5 = ({\n claimAmount,\n claimData,\n claimDescription,\n claimResult,\n dateOfLoss,\n policyBrand,\n policyNumber,\n timeSpentBeforeSubmit,\n pms,\n}) => {\n const params = {\n 'claim amount': claimAmount,\n 'claim data': claimData,\n 'claim description': claimDescription,\n 'claim result': claimResult,\n 'date of loss': dateOfLoss,\n pms,\n 'policy brand': String(policyBrand).toUpperCase(),\n 'policy number': policyNumber,\n 'time spent before submit': timeSpentBeforeSubmit,\n };\n\n return {\n eventName: 'submit claim',\n params,\n };\n};\n\nexport const EV6 = ({\n claimNumber,\n claimStatusLabel,\n petName,\n paidAmount,\n pms,\n policyBrand,\n policyNumber,\n}) => {\n const params = {\n 'claim number': claimNumber,\n 'claim status': claimStatusLabel,\n 'paid amount': paidAmount,\n 'pet name': petName,\n pms,\n 'policy brand': String(policyBrand).toUpperCase(),\n 'policy number': policyNumber,\n };\n\n return {\n eventName: 'view claim detail',\n params,\n };\n};\n\nexport const EV7 = ({ claimNumber, numberOfAttachments, policyBrand }) => ({\n eventName: 'view claim attachments',\n params: {\n 'claim number': claimNumber,\n 'number of attachments': numberOfAttachments,\n 'policy brand': String(policyBrand).toUpperCase(),\n },\n});\n\nexport const EV8 = ({ claimNumber, fileName, filePath, policyBrand }) => ({\n eventName: 'open claim attachments',\n params: {\n 'claim number': claimNumber,\n 'file name': fileName,\n 'file path': filePath,\n 'policy brand': String(policyBrand).toUpperCase(),\n },\n});\n\nexport const EV9 = () => ({\n eventName: 'view dashboard',\n});\n\nexport const EV10 = ({\n petDateOfBirth,\n breedId,\n breedName,\n petDescription,\n petId,\n petImageSelected,\n petName,\n petSpecies,\n petWeight,\n petGender,\n}) => {\n const params = {\n 'pet breed id': breedId,\n 'pet breed name': breedName,\n 'pet description': petDescription,\n 'pet dob': petDateOfBirth,\n 'pet gender': petGender,\n 'pet id': petId,\n 'pet image selected': petImageSelected,\n 'pet name': petName,\n 'pet species': petSpecies,\n 'pet weight': petWeight,\n };\n\n return {\n eventName: 'add pet',\n params,\n };\n};\n\nexport const EV11 = ({ petId }) => ({\n eventName: 'delete pet',\n params: { petId },\n});\n\nexport const EV15 = ({\n customerEmail,\n customerGuid,\n customerName,\n followStatus,\n ownPet,\n petId,\n petOwnerId,\n}) => {\n const params = {\n 'customer guid': customerGuid,\n 'own pet': ownPet,\n 'target customer email': customerEmail || '',\n 'target customer follow status': followStatus,\n 'target customer name': customerName || '',\n 'target pet id': petId,\n 'target pet owner id': petOwnerId || '',\n };\n\n return {\n eventName: 'view pet profile',\n params,\n };\n};\n\nexport const EV39 = ({ source, uploadSource }) => ({\n eventName: 'add file to inbox and docs',\n params: {\n source,\n 'source of upload': uploadSource,\n },\n});\n\nexport const EV40 = ({ fileName }) => ({\n eventName: 'open file',\n params: { 'file name': fileName },\n});\n\nexport const EV53 = ({\n customerId,\n petId,\n policyBrand,\n source,\n}) => ({\n eventName: 'start quote',\n params: {\n 'customer id': customerId,\n 'pet id': petId,\n 'policy brand': String(policyBrand).toUpperCase(),\n source,\n },\n});\n\nexport const MIXPANEL_LOGIN_EVENTS = {\n b2cStarted: 'login b2c flow started',\n b2cSuccess: 'login b2c success',\n error: 'login error',\n getApiTokens: 'login getting api\\'s tokens',\n getPersonalInfo: 'login getting personalInfo',\n getPersonalInfoError: 'login getting personalInfo error',\n getPersonalInfoSuccess: 'login getting personalInfo success',\n getTerms: 'login getting terms',\n getTermsError: 'login getting terms error',\n getTermsSuccess: 'login getting terms success',\n invalidCustomerId: 'invalid petCloudCustomerId',\n registerB2C: 'login registerB2C',\n registerB2CError: 'login registerB2C error',\n registerB2CSuccess: 'login registerB2C success',\n sendLog: 'login log sent',\n};\n\n/**\n * Register an login error\n * @param {Object} param0 - event data\n * @param {String} params0.mixpanelEvent - Event name,\n * see {@link MIXPANEL_LOGIN_EVENTS}\n * @param {String} email - Event email register\n * @param {String} error - Event error register\n */\nexport const EV_LOGIN = ({\n mixpanelEvent = '',\n email = '',\n error = '',\n}) => ({\n eventName: mixpanelEvent,\n params: { email, error },\n});\n","import { call, put, select } from 'redux-saga/effects';\nimport mixpanel from 'mixpanel-browser';\n\nimport {\n attemptPrivateToken,\n attemptTemporaryToken,\n bannerVisibleChanged,\n checkIfHasPrimaryVet,\n customerInformationFailed,\n customerInformationLoaded,\n forceLogout,\n loadDataForPrivateToken,\n loadMultiModalData,\n logIn,\n logOut,\n privateTokenCompleted,\n privateTokenFailed,\n saveImpersonateCustomerId,\n saveUserInfo,\n saveUserTermsOfService,\n sessionError,\n setPrivateToken,\n setTemporaryToken,\n showGenericError,\n startupFinished,\n temporaryTokenCompleted,\n temporaryTokenFailed,\n termsOfServiceAccepted,\n} from '../actions';\nimport { POLICY_STATUS } from '../constants';\nimport {\n API_HEADER_V1,\n apiCallWithApiKey,\n get,\n getData,\n post,\n removeData,\n saveData,\n saveDataOnSession,\n X_API_KEY_ADMIN,\n} from '../services/api';\nimport {\n API_TOKEN,\n BANNER_PREFERENCES_KEY,\n CLAIMS_API_TOKEN,\n CUSTOMER_API_TOKEN,\n IMPERSONATE_EMAIL,\n IMPERSONATE_KEY,\n POLICY_API_TOKEN,\n USER_COMPANY_KEY,\n USER_INFO_KEY,\n WEBVIEW_API_TOKEN,\n} from '../services/constants';\nimport app from '../app.json';\nimport { delay, maskPhoneNumber } from '../services/utils';\nimport { getPolicySummary } from './policies';\nimport {\n useCustomerApiForSagas,\n useCustomerApiV1ForSagas,\n useCustomerV1T176413ForSagas,\n usePetCloudCustomerV1T174565ForSagas,\n} from '../services/featureFlagsForSagas';\nimport { MIXPANEL_LOGIN_EVENTS } from '../services/mixpanel';\nimport { getApplicationMessages } from './common';\n\nexport function* loadCachedUserInfo() {\n const data = yield call(getData, USER_INFO_KEY);\n const userInfo = JSON.parse(data);\n\n if (userInfo) {\n yield put(saveUserInfo({\n ...userInfo,\n OtherPhoneNumber: userInfo.OtherPhoneNumber\n && maskPhoneNumber(userInfo.OtherPhoneNumber),\n PhoneNumber: maskPhoneNumber(userInfo.PhoneNumber),\n }));\n }\n}\n\nfunction* removeAllData() {\n yield call(removeData, USER_INFO_KEY);\n yield call(removeData, API_TOKEN);\n yield call(removeData, IMPERSONATE_KEY);\n yield call(removeData, BANNER_PREFERENCES_KEY);\n yield call(removeData, CUSTOMER_API_TOKEN);\n yield call(removeData, CLAIMS_API_TOKEN);\n yield call(removeData, POLICY_API_TOKEN);\n yield call(removeData, WEBVIEW_API_TOKEN);\n}\n\nexport function* syncUserInformationStoreWithRedux() {\n const store = yield select(({ accountLogin, personalInformation }) => ({\n accountLogin,\n personalInformation,\n }));\n\n if (store.accountLogin.userInfo && store.personalInformation.userInfo) {\n const userInfo = {\n ...store.accountLogin.userInfo,\n ...store.personalInformation.userInfo,\n };\n\n yield call(saveData, USER_INFO_KEY, JSON.stringify(userInfo));\n }\n}\n\nexport async function createLogAuth({\n dataDogTag,\n error,\n httpStatus,\n mixpanelKey,\n email,\n useCustomerAPIV1,\n}) {\n if (mixpanelKey) {\n mixpanel.track(mixpanelKey, { email, error });\n }\n if (dataDogTag) {\n const service = useCustomerAPIV1 ? 'customer' : 'api';\n const urlLog = `${service}/Log/LoginError`;\n const userAgent = navigator.userAgent;\n const formattedError = `${dataDogTag} - ${error}`;\n\n const body = {\n Email: email,\n Error: formattedError,\n HttpStatusCode: httpStatus,\n OperatingSystem: 'petcloud-web',\n UserAgent: userAgent,\n };\n\n mixpanel.track(MIXPANEL_LOGIN_EVENTS.error, {\n email,\n error: formattedError,\n });\n\n const headers = useCustomerAPIV1\n ? { ...API_HEADER_V1, ...X_API_KEY_ADMIN } : {};\n await apiCallWithApiKey(urlLog, { body, headers, method: 'POST' });\n }\n}\n\nexport function* getUserInformation(dispatch) {\n const useCustomerApiV1 = yield useCustomerApiForSagas();\n const token = yield call(getData, 'token');\n let response = {};\n\n if (token) {\n const urlService = useCustomerApiV1 ? 'customer' : 'api';\n response = yield call(get, dispatch, `${urlService}/Account/personalInfo`);\n\n if (response.success && response.Data) {\n const personalInfoNullSafe = {\n ...response.Data,\n Address: {\n ...response.Data.Address,\n Line1: response.Data.Address.Line1 || '',\n Line2: response.Data.Address.Line2 || '',\n Phone1: response.Data.Address.Phone1 || '',\n Phone2: response.Data.Address.Phone2 || '',\n },\n OtherPhoneNumber: response.Data.OtherPhoneNumber || '',\n PhoneNumber: response.Data.PhoneNumber || '',\n };\n\n const personalInformation = {\n ...personalInfoNullSafe,\n OtherPhoneNumber: personalInfoNullSafe.OtherPhoneNumber\n && maskPhoneNumber(personalInfoNullSafe.OtherPhoneNumber),\n PhoneNumber: personalInfoNullSafe.PhoneNumber\n && maskPhoneNumber(personalInfoNullSafe.PhoneNumber),\n };\n\n yield put(saveUserInfo(personalInformation));\n yield call(saveData, USER_INFO_KEY, JSON.stringify(personalInfoNullSafe));\n yield call(saveData, USER_COMPANY_KEY,\n JSON.stringify(personalInfoNullSafe.Company));\n yield put(checkIfHasPrimaryVet());\n\n const impersonateEmail = getData(IMPERSONATE_EMAIL);\n\n if (impersonateEmail) {\n yield put(saveImpersonateCustomerId({\n adminEmail: impersonateEmail,\n customerId: personalInformation.CustomerGuid || '',\n }));\n }\n } else {\n const useCustomerAPIV1 = yield useCustomerV1T176413ForSagas();\n yield call(createLogAuth, {\n dataDogTag: 'personalInfo',\n error: response?.Message,\n httpStatus: response?.status || response?.statusCode,\n mixpanel: MIXPANEL_LOGIN_EVENTS.getPersonalInfoError,\n useCustomerAPIV1,\n });\n }\n }\n\n yield put(startupFinished());\n\n return response;\n}\n\nexport function* getUserTermsOfService(dispatch) {\n const token = yield call(getData, 'token');\n let response = {};\n\n if (token) {\n response = yield call(get, dispatch, 'api/User/UserHasTermOfService');\n if (response.success && response.Data) {\n yield put(saveUserTermsOfService(response.Data));\n }\n }\n\n return response;\n}\n\nexport function* loadCachedBannerVisible() {\n const data = yield call(getData, BANNER_PREFERENCES_KEY);\n const { visible } = JSON.parse(data) || { visible: true };\n yield put(bannerVisibleChanged({ visible: !!visible }));\n}\n\nexport function* startUpApp(dispatch) {\n const token = yield call(getData, 'token');\n\n if (token) {\n yield call(loadCachedBannerVisible);\n yield call(getUserTermsOfService, dispatch);\n yield call(getPolicySummary, dispatch);\n yield call(getUserInformation, dispatch);\n yield call(getApplicationMessages, dispatch);\n } else {\n yield put(startupFinished());\n }\n}\n\nexport function* doLogout(dispatch) {\n yield call(post, dispatch, 'api/Authentication/LogOut');\n yield put(logOut());\n yield call(removeAllData);\n}\n\nfunction* handleB2CToken({\n accessToken = '',\n dispatch,\n errorMessage = '',\n success = true,\n}) {\n const useCustomerAPIV1 = yield useCustomerV1T176413ForSagas();\n\n try {\n if (success) {\n if (accessToken) {\n yield call(saveData, 'token', accessToken);\n\n yield call(createLogAuth, {\n mixpanel: MIXPANEL_LOGIN_EVENTS.getTerms,\n useCustomerAPIV1,\n });\n\n const termOfService = yield call(getUserTermsOfService);\n\n if (termOfService?.success) {\n yield call(createLogAuth, {\n mixpanel: MIXPANEL_LOGIN_EVENTS.getTermsSuccess,\n });\n } else {\n yield call(createLogAuth, {\n dataDogTag: 'UserHasTermOfService',\n error: termOfService.message,\n httpStatus: termOfService.status || termOfService.statusCode,\n mixpanel: MIXPANEL_LOGIN_EVENTS.getTermsError,\n useCustomerAPIV1,\n });\n\n throw new Error();\n }\n\n yield call(createLogAuth, {\n mixpanel: MIXPANEL_LOGIN_EVENTS.getPersonalInfo,\n useCustomerAPIV1,\n });\n\n const personalInfo = yield call(getUserInformation, dispatch);\n\n if (personalInfo?.success) {\n yield call(createLogAuth, {\n mixpanel: MIXPANEL_LOGIN_EVENTS.getPersonalInfoSuccess,\n useCustomerAPIV1,\n });\n } else {\n throw new Error();\n }\n\n const payload = { accessToken };\n\n yield put(logIn(payload));\n } else {\n yield put(sessionError(errorMessage));\n }\n } else {\n yield put(sessionError('An error has ocurred'));\n }\n } catch (error) {\n if (error?.message) {\n yield call(createLogAuth, {\n dataDogTag: 'handleB2CToken js',\n error: error.message,\n httpStatus: 1,\n mixpanel: MIXPANEL_LOGIN_EVENTS.error,\n useCustomerAPIV1,\n });\n }\n\n yield put(sessionError('An error has ocurred'));\n }\n}\n\nexport function* doLogin(action) {\n const { payload: { b2cToken, dispatch, email, isImpersonate } } = action;\n const url = '/api/Authentication/Token/RegisterB2C';\n const useCustomerAPIV1 = yield useCustomerV1T176413ForSagas();\n\n const data = {\n AppVersion: app.version,\n Grant_Type: 'password',\n Impersonate: false,\n OsType: 'petcloud-web',\n Password: '',\n };\n\n yield call(saveData, 'token', b2cToken);\n\n yield call(createLogAuth, {\n mixpanel: MIXPANEL_LOGIN_EVENTS.registerB2C,\n useCustomerAPIV1,\n });\n const response = yield call(post, null, url, data);\n\n if (response.success) {\n yield call(createLogAuth, {\n mixpanel: MIXPANEL_LOGIN_EVENTS.registerB2CSuccess,\n useCustomerAPIV1,\n });\n\n if (isImpersonate) {\n yield call(saveData, IMPERSONATE_KEY, true);\n yield put(saveImpersonateCustomerId({\n adminEmail: email,\n customerId: '',\n }));\n }\n\n yield call(handleB2CToken, { accessToken: b2cToken, dispatch });\n\n return;\n }\n\n yield call(createLogAuth, {\n dataDogTag: 'RegisterB2C',\n error: response.Message || response.error,\n httpStatus: response.statusCode,\n mixpanel: MIXPANEL_LOGIN_EVENTS.registerB2CError,\n useCustomerAPIV1,\n });\n\n yield put(forceLogout());\n}\n\nexport function* doBannerVisibleChanged(_, action) {\n const { payload: { visible } } = action;\n const bannerPreferences = {\n visible,\n };\n yield call(\n saveData,\n BANNER_PREFERENCES_KEY,\n JSON.stringify(bannerPreferences),\n );\n}\n\nfunction* doLoadMultiModalData() {\n const store = yield select(({ policies, session }) => ({\n policies,\n session,\n }));\n const { CustomerId } = store.session.userInfo;\n const policy = store.policies.allPolicies.find((item) => item.Policy.Status\n === POLICY_STATUS.active);\n\n if (policy) {\n yield put(loadMultiModalData({ CustomerId }));\n }\n}\n\nexport function* getTemporaryToken(dispatch) {\n yield put(attemptTemporaryToken());\n const response = yield call(\n get,\n dispatch,\n 'api/Authentication/TemporaryToken',\n );\n\n const { IsValid, Data } = response;\n\n if (IsValid && Data) {\n yield put(setTemporaryToken({ publicToken: Data }));\n yield call(saveData, 'public_token', Data);\n yield put(temporaryTokenCompleted());\n } else {\n yield put(temporaryTokenFailed());\n yield put(showGenericError(true));\n }\n}\n\nexport function* loadDataPrivateToken(dispatch) {\n yield call(getUserInformation, dispatch);\n yield call(getPolicySummary, dispatch);\n yield call(doLoadMultiModalData, dispatch);\n yield put(privateTokenCompleted());\n}\n\nexport function* getPrivateToken(dispatch, { payload }) {\n const { publicToken } = payload;\n yield put(attemptPrivateToken());\n const useCustomerApiV1 = yield usePetCloudCustomerV1T174565ForSagas();\n const urlService = useCustomerApiV1\n ? 'customer/Account'\n : 'api/Authentication';\n const response = yield call(\n apiCallWithApiKey,\n `${urlService}/TemporaryToken/Validate/${publicToken}`,\n {},\n dispatch,\n );\n\n const { Data, IsValid } = response;\n\n if (IsValid && Data) {\n const TOKEN_LEGACY = 'legacy';\n const CUSTOMER_LEGACY = 'customer';\n\n yield put(setPrivateToken({ privateToken: Data }));\n\n Data.forEach((tokenScope) => {\n // ignore legacy token\n if (tokenScope.Scope !== TOKEN_LEGACY) {\n if (tokenScope.Scope === CUSTOMER_LEGACY) {\n // use customer token as legacy\n saveData(API_TOKEN, tokenScope.Token);\n // TODO: android inner webview no working localstorage\n saveDataOnSession(API_TOKEN, tokenScope.Token);\n }\n\n const key = `${tokenScope.Scope}_api_token`;\n saveData(key, tokenScope.Token);\n saveDataOnSession(key, tokenScope.Token);\n } else {\n saveData(API_TOKEN, tokenScope.Token);\n saveDataOnSession(API_TOKEN, tokenScope.Token);\n }\n });\n\n yield call(delay, 100);\n yield put(loadDataForPrivateToken());\n } else {\n yield put(privateTokenFailed());\n yield put(showGenericError(true));\n }\n}\n\nexport function* convertCustomerId(dispatch, action) {\n const customerId = action.payload;\n const response = yield call(\n apiCallWithApiKey,\n `api/Customer/CustomerIdDecrypter/${customerId}`,\n { method: 'POST' },\n dispatch,\n );\n\n const { Data, IsValid } = response;\n\n if (IsValid && Data) {\n yield put(saveImpersonateCustomerId({\n adminEmail: '',\n customerId: Data,\n }));\n } else {\n yield put(showGenericError(true));\n }\n}\n\nexport function* acceptTermsOfService(dispatch) {\n const store = yield select(({ session }) => ({ session }));\n const { termsOfServiceVersionId: TermsVersionId } = store.session;\n const response = yield call(\n post,\n dispatch,\n 'api/User/AcceptTermOfService',\n { TermsVersionId },\n );\n const { IsValid, Data } = response;\n\n if (IsValid && Data) {\n yield put(termsOfServiceAccepted());\n } else {\n yield put(showGenericError(true));\n }\n}\n\nexport function* loadCustomerInformation(dispatch, { payload }) {\n const useCustomerApiV1 = yield useCustomerApiV1ForSagas();\n const { marketingChannelId } = payload;\n\n const urlService = useCustomerApiV1 ? 'customer' : 'api';\n const url = `${urlService}/`\n + `Customer/CustomerMarketChannelDetail/${marketingChannelId}`;\n const response = yield call(get, dispatch, url);\n\n if (response.IsValid) {\n yield put(customerInformationLoaded({\n addressPart1: response.Data?.AddressPart1,\n addressPart2: response.Data?.AddressPart2,\n displayName: response.Data?.DisplayName,\n email: response.Data?.Email,\n fullName: response.Data?.FullName,\n id: response.Data?.Id,\n originId: response.Data?.OriginId,\n phoneNumber1: response.Data?.PhoneNumber1,\n phoneNumber2: response.Data?.PhoneNumber2,\n }));\n } else {\n yield put(customerInformationFailed());\n }\n}\n","import { call, put, select, delay, takeLatest, all } from 'redux-saga/effects';\nimport {\n acceptAddressUpdate,\n addressUpdated,\n billingInfoLoaded,\n billingInfoLoadFailed,\n changeProfilePicture as CHANGE_PROFILE_PICTURE,\n changeProfilePictureFailed,\n changeProfilePictureSuccess,\n closeMultiPoliciesModal,\n confirmAddressChangeModalChanged,\n coverPictureRemoved,\n displayEndorsementSuccessModal,\n emailUpdated,\n endorsementLoaded,\n loadPaymentHistory,\n loadPoliciesPaymentNumber,\n loadReimbursementMethod,\n loadZipCodeDetailsFailed,\n namesUpdated,\n passwordUpdated,\n paymentHistoryLoaded,\n paymentHistoryLoadFailed,\n paymentMethodPastDueModalVisibleChanged,\n paymentMethodUpdateAttempted,\n clearUserCache,\n paymentMethodUpdated,\n petCloudEmailUpdated,\n petsLoadAttempt,\n petsLoaded,\n petsLoadedFinished,\n phonesUpdated,\n policyDetailsLoaded,\n policyDetailsLoadFailed,\n reimbursementMethodRoutingValidationFailed,\n reimbursementMethodUpdated,\n reimbursementMethodUpdateFailed,\n removeAvatarPicture as REMOVE_AVATAR_PICTURE,\n removeCoverPicture as REMOVE_COVER_PICTURE,\n removeCoverPictureFailed,\n resetEndorsementData,\n showAlert,\n socialProfileLoadAttempt,\n socialProfileLoaded,\n socialProfileLoadedFinished,\n storeStates,\n updateEmailError,\n updatePasswordError,\n updatePetCloudEmailError,\n updatePhonesError,\n zipCodeDetailsLoaded,\n avatarPictureRemoved,\n removeAvatarPictureFailed,\n paymentHistoryCleared,\n updateInsuranceInformation as UPDATE_INSURANCE_INFORMATION,\n updateInsuranceInformationFailed,\n updateInsuranceInformationSuccess,\n displayConfirmChangesModal,\n getFeatureFlags as GET_FEATURE_FLAGS,\n getFeatureFlagsFailed,\n getFeatureFlagsLoaded,\n loadPolicyDetails,\n} from '../actions';\nimport {\n apiCallWithApiKey,\n del,\n get,\n IDOR_HEADER_V2,\n patch,\n post,\n postApiV2,\n postV2,\n} from '../services/api';\nimport { isEmailValid } from '../services/utils';\nimport { IMAGE_UPLOAD_TYPE, REIMBURSEMENT_METHODS } from '../constants';\nimport {\n useClaimsApiV1ForSagas,\n useCustomerApi150617V1ForSagas,\n useClaimsAPIV2T155969ForSagas,\n} from '../services/featureFlagsForSagas';\nimport { getPolicySummary } from './policies';\n\nexport function* getStates(dispatch) {\n const response = yield call(get, dispatch, 'api/State');\n if (response.success) {\n yield put(storeStates(response.Data));\n }\n}\n\nfunction* validateHomeDataChanged(type) {\n const {\n address1,\n address2,\n city,\n firstName,\n FirstName,\n isFirstNameValid,\n isLastNameValid,\n isPrimaryPhoneValid,\n isSecondaryPhoneValid,\n lastName,\n LastName,\n OtherPhoneNumber,\n PhoneNumber,\n Phone1,\n Phone2,\n primaryPhone,\n secondaryPhone,\n state,\n zipCode,\n } = yield select(({ personalInformation }) => ({\n ...personalInformation,\n City: personalInformation.userInfo.Address.City,\n FirstName: personalInformation.userInfo.FirstName,\n IsNameEditable: personalInformation.userInfo.IsNameEditable,\n LastName: personalInformation.userInfo.LastName,\n Line1: personalInformation.userInfo.Address.Line1,\n Line2: personalInformation.userInfo.Address.Line2 || '',\n OtherPhoneNumber: personalInformation.userInfo.OtherPhoneNumber || '',\n Phone1: personalInformation.userInfo.Address.Phone1,\n Phone2: personalInformation.userInfo.Address.Phone2,\n PhoneNumber: personalInformation.userInfo.PhoneNumber,\n StateId: personalInformation.userInfo.Address.StateId,\n ZipCode: personalInformation.userInfo.Address.ZipCode,\n }));\n\n let body = {};\n\n switch (type) {\n case 'address':\n body = {\n City: city,\n Line1: address1.trimStart().trimEnd(),\n Line2: address2.trimStart().trimEnd(),\n Phone1: Phone1 || primaryPhone,\n Phone2: Phone2 || secondaryPhone,\n StateId: state,\n ZipCode: zipCode,\n };\n\n if (body.Phone1 === primaryPhone && !isPrimaryPhoneValid) {\n body.Phone1 = '';\n }\n\n if (body.Phone2 === secondaryPhone && !isSecondaryPhoneValid) {\n body.Phone2 = '';\n }\n break;\n\n case 'names':\n body = {\n FirstName: firstName.trimStart().trimEnd(),\n LastName: lastName.trimStart().trimEnd(),\n Phone1: isPrimaryPhoneValid ? primaryPhone : PhoneNumber,\n Phone2: isSecondaryPhoneValid ? secondaryPhone : OtherPhoneNumber,\n };\n break;\n\n case 'phones':\n body = {\n FirstName: isFirstNameValid ? firstName : FirstName,\n LastName: isLastNameValid ? lastName : LastName,\n Phone1: primaryPhone,\n Phone2: secondaryPhone,\n };\n break;\n\n default:\n break;\n }\n return body;\n}\n\nexport function* recoverPassword(dispatch, { payload }) {\n const { email } = payload;\n const url = `${window.location.origin}/`;\n\n const requestBody = { Email: email, Url: url };\n\n if (isEmailValid(email)) {\n const data = yield call(\n apiCallWithApiKey,\n 'api/Account/PasswordRecoveryMessage',\n {\n body: requestBody,\n headers: IDOR_HEADER_V2,\n method: 'POST',\n },\n dispatch,\n );\n\n if (data.IsValid) {\n yield call(payload.successCallback);\n } else if (data.Message) {\n yield call(payload.backendErrorCallback, data.Message, true);\n } else {\n yield put(showAlert({ type: 'error' }));\n }\n } else {\n yield call(payload.errorCallback, 'invalidEmail');\n }\n}\n\nexport function* updateEmail(dispatch, action) {\n const store = yield select(({ accountLogin, common, session }) => ({\n accountLogin,\n common,\n session,\n }));\n\n const url = 'customer/Auth/UpdateLocalAccountUserInfo';\n\n const requestBody = {\n id: store.session.userInfo.CustomerId || '',\n newEmail: action.payload.email || store.accountLogin.email.trim(),\n };\n\n const response = yield call(\n patch,\n dispatch,\n url,\n requestBody,\n );\n\n if (response.success) {\n yield put(emailUpdated(requestBody));\n yield call(action.payload.successCallback);\n } else {\n yield call(action.payload.errorCallback);\n yield put(updateEmailError('emailTaken'));\n }\n\n yield put(displayConfirmChangesModal({ showConfirmChangesModal: true }));\n}\n\nexport function* updatePassword(dispatch, action) {\n const store = yield select(({ accountLogin }) => (accountLogin));\n const requestBody = {\n Email: action.payload.email || store.userInfo.LoginEmail,\n NewPassword: action.payload.newPassword || store.newPassword,\n Password: action.payload.password || store.oldPassword,\n };\n const data = yield call(\n post,\n dispatch,\n 'api/User/UpdateEmailAndPassword',\n requestBody,\n );\n\n if (data.IsValid) {\n yield put(passwordUpdated(requestBody));\n yield call(action.payload.successCallback);\n } else {\n yield put(updatePasswordError({ message: data.Message, type: data.Type }));\n yield call(action.payload.errorCallback, data.Message);\n }\n}\n\nexport function* updatePetCloudEmail(dispatch, action) {\n const store = yield select(({ accountLogin }) => (accountLogin));\n const requestBody = {\n User: store.petCloudEmail,\n };\n const data = yield call(\n post,\n dispatch,\n 'api/User/UpdatePetCloudEmail',\n requestBody,\n );\n\n if (data.IsValid) {\n yield put(petCloudEmailUpdated(requestBody));\n yield call(action.payload.successCallback);\n } else {\n if (data.Message === 'This user is already taken!') {\n yield put(updatePetCloudEmailError('userTaken'));\n } else {\n yield put(updatePetCloudEmailError(data.Message));\n }\n\n if (action.payload?.errorCallback) {\n yield call(action.payload.errorCallback, data.Message);\n }\n }\n}\n\nexport function* loadZipCodeDetails(dispatch, action) {\n const { zipCode } = action.payload;\n\n const response = yield call(\n get,\n dispatch,\n `api/State/GetStateByZipCode/${zipCode}`,\n );\n\n if (response.IsValid) {\n yield put(zipCodeDetailsLoaded(response.Data));\n } else {\n yield put(loadZipCodeDetailsFailed(response.Message));\n }\n}\n\nexport function* applyAddressUpdate(dispatch, action, noEndorsement) {\n const requestBody = yield call(validateHomeDataChanged, 'address');\n const data = yield call(\n post,\n dispatch,\n 'api/User/ApplyUpdateAddress',\n requestBody,\n );\n\n const {\n userInfo,\n zipCode,\n } = yield select(({ personalInformation }) => (personalInformation));\n\n if (data.IsValid && data.success) {\n yield put(addressUpdated(requestBody));\n yield put(resetEndorsementData());\n\n if (userInfo.Address.ZipCode !== zipCode) {\n const payload = { zipCode: requestBody.ZipCode };\n yield loadZipCodeDetails(dispatch, { payload });\n }\n\n if (!noEndorsement) {\n yield put(displayEndorsementSuccessModal());\n }\n } else {\n yield call(action.payload.errorCallback, data.Message);\n }\n yield put(acceptAddressUpdate(false));\n}\n\nexport function* updateAddress(dispatch, action) {\n const requestBody = yield call(validateHomeDataChanged, 'address');\n const noEndorsement = true;\n const data = yield call(\n post,\n dispatch,\n 'api/User/UpdateAddress',\n requestBody,\n );\n\n if (data.IsValid && data.success) {\n const { Data } = data;\n if (!Data.PriceChange) {\n yield applyAddressUpdate(dispatch, action, noEndorsement);\n yield put(confirmAddressChangeModalChanged(true));\n } else if (Array.isArray(Data.UserAddressEndorsements)\n && Data.UserAddressEndorsements.length >= 1) {\n const multiplePets = Data.UserAddressEndorsements.length > 1;\n\n yield put(endorsementLoaded({ data: data.Data, multiplePets }));\n } else {\n yield applyAddressUpdate(dispatch, action, noEndorsement);\n }\n\n yield call(action.payload.successCallback);\n } else {\n yield call(action.payload.errorCallback, data.Message);\n }\n}\n\nexport function* updateNames(dispatch, action) {\n const requestBody = yield call(validateHomeDataChanged, 'names');\n const data = yield call(\n post,\n dispatch,\n 'api/User/UpdatePersonalInfo',\n requestBody,\n );\n\n if (data.IsValid) {\n yield put(namesUpdated(requestBody));\n yield call(action.payload.successCallback);\n } else {\n yield put(showAlert({ type: 'error' }));\n }\n}\n\nexport function* updatePhones(dispatch, action) {\n const requestBody = yield call(validateHomeDataChanged, 'phones');\n const data = yield call(\n post,\n dispatch,\n 'api/User/UpdatePersonalInfo',\n requestBody,\n );\n\n if (data.IsValid) {\n yield put(phonesUpdated());\n yield call(action.payload.successCallback);\n } else {\n yield put(updatePhonesError());\n yield call(action.payload.errorCallback, data.Message);\n }\n}\n\nexport function* getPaymentHistory(dispatch, action) {\n yield put(paymentHistoryCleared());\n\n const {\n errorCallback,\n itemsOfFirstPage,\n itemsPerPage,\n pageIndex,\n policyId,\n successCallback,\n } = action.payload;\n\n const requestBody = {\n itemsOfFirstPage: itemsOfFirstPage || 20,\n itemsPerPage: itemsPerPage || 20,\n pageIndex,\n policyId,\n };\n\n const response = yield call(\n get,\n dispatch,\n 'api/Billing/PaymentHistoryDetails',\n requestBody,\n );\n\n if (response.IsValid) {\n const paymentHistory = response.Data;\n\n yield put(paymentHistoryLoaded({\n paymentHistoryCurrentPage: pageIndex,\n paymentHistoryData: paymentHistory,\n paymentHistoryTotalItems: response.TotalItems,\n paymentHistoryTotalPages: response.TotalPages,\n }));\n\n if (successCallback) {\n yield call(successCallback);\n }\n } else {\n yield put(paymentHistoryLoadFailed(response.Message));\n\n if (errorCallback) {\n yield call(errorCallback);\n }\n }\n}\n\nexport function* getPolicyInfo(dispatch, action) {\n const policyNumber = action.payload;\n const response = yield call(\n get,\n dispatch,\n `api/Policy/GetPolicyByPolicyNumber/${policyNumber}`,\n );\n\n if (response.IsValid) {\n yield put(policyDetailsLoaded(response.Data));\n const paymentPayload = {\n itemsOfFirstPage: 10,\n itemsPerPage: 10,\n pageIndex: 0,\n policyId: response.Data.PolicyId,\n };\n yield put(loadPaymentHistory(paymentPayload));\n } else {\n yield put(policyDetailsLoadFailed(response.Message));\n }\n}\n\nexport function* getBillingInfo(dispatch, action) {\n const policyNumber = action.payload;\n const response = yield call(\n get,\n dispatch,\n `api/Billing/Info/${policyNumber}`,\n );\n\n if (response.IsValid) {\n yield put(billingInfoLoaded(response.Data));\n } else {\n yield put(billingInfoLoadFailed(response.Message));\n }\n}\n\nexport function* cancelAddressUpdate(dispatch) {\n yield call(post, dispatch, '/api/User/CancelUpdateAddress');\n\n yield put(resetEndorsementData());\n}\n\nfunction* saveReimbursementMethod({ dispatch, reimbursementData, url }) {\n const useClaimsAPIV2T155969 = yield useClaimsAPIV2T155969ForSagas();\n const method = useClaimsAPIV2T155969 ? postApiV2 : post;\n\n const response = yield call(method, dispatch, url, reimbursementData);\n const store = yield select(({ billingPayments, policies }) => ({\n billingPayments, policies,\n }));\n\n const { billingPayments, policies } = store;\n\n const policy = policies\n .pets[billingPayments.selectedPet]\n .policies[billingPayments.selectedPolicy];\n\n const isValidResponse = useClaimsAPIV2T155969\n ? response.success : response.IsValid;\n\n if (isValidResponse) {\n yield put(reimbursementMethodUpdated());\n yield put(loadReimbursementMethod(policy.Number));\n } else {\n const errorMessage = response?.Message || 'Unexpected Error';\n yield put(reimbursementMethodUpdateFailed(errorMessage));\n }\n}\n\nexport function* updateReimbursementMethod(dispatch, action) {\n const reimbursementData = action.payload;\n\n const useClaimsApiV1 = yield useClaimsApiV1ForSagas();\n const useClaimsAPIV2T155969 = yield useClaimsAPIV2T155969ForSagas();\n const url = useClaimsAPIV2T155969\n ? 'claims/reimbursement-methods'\n : 'api/PMS/claim/UpdateReimbursementMethod';\n\n if (reimbursementData.Type === REIMBURSEMENT_METHODS.deposit) {\n const routingNumberUrl = useClaimsApiV1\n ? `claims/claims/ValidateACHRoute/${reimbursementData.RoutingNumber}`\n : `/api/Claim/ValidateACHRoute/${reimbursementData.RoutingNumber}`;\n\n const routingNumberResponse = yield call(\n get,\n dispatch,\n routingNumberUrl,\n );\n\n if (routingNumberResponse.IsValid) {\n yield call(saveReimbursementMethod, { dispatch, reimbursementData, url });\n } else {\n yield put(\n reimbursementMethodRoutingValidationFailed(\n routingNumberResponse.Message,\n ),\n );\n }\n } else {\n yield call(saveReimbursementMethod, { dispatch, reimbursementData, url });\n }\n}\n\nexport function* updatePaymentMethod(dispatch, action) {\n const {\n paymentMethodData,\n policies,\n } = action.payload;\n yield put(paymentMethodUpdateAttempted());\n const isCreditCard = paymentMethodData.paymentCategory === 'CreditCard';\n\n const dataCreditCard = {\n cardExpirationMonth: paymentMethodData.cardExpirationMonth,\n cardExpirationYear: paymentMethodData.cardExpirationYear,\n cardholderName: paymentMethodData.customerName,\n cardType: paymentMethodData.cardType,\n lastFourDigits: paymentMethodData.lastFourDigits,\n tokenId: paymentMethodData.tokenId,\n };\n\n const dataAcc = {\n LastFourDigits: paymentMethodData.lastFourDigits,\n TokenId: paymentMethodData.tokenId,\n };\n\n const data = {\n oneIncCreditCardDTO: isCreditCard ? dataCreditCard : {},\n OneIncEftDTO: isCreditCard ? {} : dataAcc,\n paymentMethodEnum: isCreditCard ? 1 : 0,\n };\n\n const { policyNumber } = paymentMethodData;\n const url = `api/Payments/UpdatePaymentMethod/${policyNumber}`;\n\n const policyResponse = yield call(postV2, dispatch, url, data);\n const error = !policyResponse.IsValid;\n const messageResponse = policyResponse.Message;\n\n yield put(closeMultiPoliciesModal());\n yield put(paymentMethodPastDueModalVisibleChanged({ visible: false }));\n yield put(loadPoliciesPaymentNumber());\n yield put(loadPolicyDetails(policyNumber));\n yield call(getPolicySummary, dispatch);\n yield put(paymentMethodUpdated({\n error,\n messageResponse,\n policiesUpdated: policies.length,\n }));\n}\n\nexport function* doPetLoad(dispatch) {\n yield put(petsLoadAttempt());\n const store = yield select(({ accountLogin }) => (accountLogin));\n\n if (!store.userInfo) {\n return;\n }\n\n const useCustomerPets = yield useCustomerApi150617V1ForSagas();\n const urlPref = useCustomerPets ? 'customer' : 'api';\n\n const { userInfo: { SocialInfo } } = store;\n\n const url = `${urlPref}/Pet?UnaId=${SocialInfo.Id}`;\n\n const petsResponse =\n yield call(get, dispatch, url);\n\n if (petsResponse.IsValid) {\n yield put(petsLoaded(petsResponse.Data));\n }\n\n yield put(petsLoadedFinished());\n}\n\nexport function* doSocialProfileLoad(dispatch) {\n yield put(socialProfileLoadAttempt());\n const store = yield select(({ accountLogin }) => (accountLogin));\n\n if (!store.userInfo) {\n return;\n }\n\n const { userInfo: { SocialInfo } } = store;\n\n const url = `api/Social/Profile/${SocialInfo.Id}`;\n\n const profileResponse =\n yield call(get, dispatch, url);\n\n if (profileResponse.IsValid) {\n yield put(socialProfileLoaded(profileResponse.Data));\n }\n\n yield put(socialProfileLoadedFinished());\n}\n\n// isCover: true -> Cover, false -> ProfilePicture\nfunction* changeProfilePicture(dispatch, { payload }) {\n const { imageBase64, isCover } = payload;\n const error = 'Unexpected error saving photo.';\n const postBody = {\n ContentType: 'image/jpeg',\n Extension: 'jpg',\n FileContent: imageBase64,\n ImageType: isCover\n ? IMAGE_UPLOAD_TYPE.background\n : IMAGE_UPLOAD_TYPE.customerProfile,\n };\n\n // uploads the image\n const uploadImageResponse = yield call(\n post,\n dispatch,\n 'api/Social/Upload',\n postBody,\n );\n\n if (uploadImageResponse.success && uploadImageResponse.IsValid) {\n const { Data } = uploadImageResponse;\n // links the image to the user\n const linkImageToUserResponse = yield call(\n post,\n dispatch,\n 'api/Social/Pictures/Submit',\n {\n CoverPictureUid: isCover ? Data : null,\n ProfilePictureUid: isCover ? null : Data,\n },\n );\n\n if (linkImageToUserResponse.success && linkImageToUserResponse.IsValid) {\n // waits for the cache refresh time.\n yield put(clearUserCache());\n yield delay(5000);\n yield put(changeProfilePictureSuccess());\n } else {\n yield put(changeProfilePictureFailed(error));\n }\n } else {\n yield put(changeProfilePictureFailed(error));\n }\n}\n\nfunction* removeCoverPicture(dispatch) {\n const response = yield call(\n del,\n dispatch,\n 'api/Social/User/Cover/Picture',\n );\n\n if (response.IsValid) {\n yield put(coverPictureRemoved());\n } else {\n yield put(removeCoverPictureFailed());\n }\n}\n\nfunction* removeAvatarPicture(dispatch) {\n const response = yield call(\n del,\n dispatch,\n 'api/Social/User/Profile/Picture',\n );\n\n if (response.IsValid) {\n yield put(clearUserCache());\n yield put(avatarPictureRemoved());\n } else {\n yield put(removeAvatarPictureFailed());\n }\n}\n\nexport function* updateInsuranceInformation(dispatch, action) {\n const data = action.payload;\n const response = yield call(\n post,\n dispatch,\n 'api/Account/ChangeAccountInformation',\n data,\n );\n if (response.IsValid) {\n yield put(updateInsuranceInformationSuccess());\n } else {\n yield put(updateInsuranceInformationFailed());\n }\n}\n\nfunction* getFeatureFlags() {\n try {\n const response = yield call(apiCallWithApiKey, 'customer/FeatureFlag');\n const petCloudFlags = Object.entries(response)\n .filter(([key]) => key.startsWith('PetCloud'))\n .reduce((p, [k, v]) => ({ ...p, [k]: v }), {});\n yield put(getFeatureFlagsLoaded(petCloudFlags));\n } catch (error) {\n yield put(getFeatureFlagsFailed(error));\n }\n}\n\nexport function* settingsSaga(store) {\n yield all([\n takeLatest(CHANGE_PROFILE_PICTURE, changeProfilePicture, store.dispatch),\n takeLatest(REMOVE_COVER_PICTURE, removeCoverPicture, store.dispatch),\n takeLatest(REMOVE_AVATAR_PICTURE, removeAvatarPicture, store.dispatch),\n takeLatest(\n UPDATE_INSURANCE_INFORMATION,\n updateInsuranceInformation,\n store.dispatch,\n ),\n takeLatest(GET_FEATURE_FLAGS, getFeatureFlags, store.dispatch),\n ]);\n}\n","import { all, call, put, takeLatest } from 'redux-saga/effects';\nimport { getData, post } from '../services/api';\nimport {\n getMultibrandWebView as GET_MULTIBRAND_WEB_VIEW,\n webViewMultibrandAttempt,\n webViewMultibrandFailed,\n webViewMultibrandSuccess,\n} from '../actions';\nimport { MARKETING_CHANNEL_ID } from '../theme/theme.constants';\nimport { WEB_VIEW_TYPES } from '../constants';\nimport {\n CUSTOMER_API_TOKEN,\n POLICY_API_TOKEN,\n WEBVIEW_API_TOKEN,\n} from '../services/constants';\nimport {\n usePetCloudCustomerV1T173084ForSagas,\n} from '../services/featureFlagsForSagas';\n\nfunction* getWebViewUrl({\n companyId = 0,\n dispatch,\n petId,\n policyId,\n policyNumber,\n webViewType = '',\n}) {\n try {\n const isCustomerApi =\n yield usePetCloudCustomerV1T173084ForSagas();\n const api = isCustomerApi ? 'customer' : 'api';\n const url = `${api}/MultiBrand/WebView`;\n\n const WEBVIEW_WITH_SCOPES = [\n WEB_VIEW_TYPES.changeCoverage,\n WEB_VIEW_TYPES.paymentMethod,\n ];\n const CUSTOMER_SCOPE = 'customer';\n const POLICY_SCOPE = 'policy';\n\n const webViewToken = getData(WEBVIEW_API_TOKEN);\n\n const body = {\n CompanyId: String(companyId),\n Params: {},\n ScopeTokens: [],\n Token: webViewToken,\n WebViewType: webViewType,\n };\n\n if (policyId) {\n body.Params.PolicyId = String(policyId);\n }\n if (petId) {\n body.Params.PetId = String(petId);\n }\n if (policyNumber) {\n body.Params.PolicyNumber = String(policyNumber);\n }\n\n if (WEBVIEW_WITH_SCOPES.includes(webViewType)) {\n const policyToken = getData(POLICY_API_TOKEN);\n const customerToken = getData(CUSTOMER_API_TOKEN);\n\n body.ScopeTokens = [{\n Scope: CUSTOMER_SCOPE,\n Token: customerToken,\n }, {\n Scope: POLICY_SCOPE,\n Token: policyToken,\n }];\n }\n\n const response = yield call(post, dispatch, url, body);\n\n return response;\n } catch (_) {\n return null;\n }\n}\n\nexport function* getMultibrandWebView(dispatch, action) {\n yield put(webViewMultibrandAttempt());\n\n const {\n companyId = MARKETING_CHANNEL_ID.figo,\n petId,\n policyId,\n policyNumber,\n webViewType = WEB_VIEW_TYPES.billingAndPayment,\n } = action.payload;\n\n const urlResponse = yield getWebViewUrl({\n companyId,\n dispatch,\n petId,\n policyId,\n policyNumber,\n webViewType,\n });\n\n if (urlResponse && urlResponse.IsValid) {\n yield put(webViewMultibrandSuccess({\n data: urlResponse.Data,\n webViewType,\n }));\n } else {\n yield put(webViewMultibrandFailed());\n }\n}\n\nexport function* multibrandSaga(store) {\n yield all([\n takeLatest(GET_MULTIBRAND_WEB_VIEW, getMultibrandWebView, store.dispatch),\n ]);\n}\n","import { all, spawn, takeEvery, takeLatest } from 'redux-saga/effects';\nimport {\n acceptTermsOfService as ACCEPT_TERMS_OF_SERVICE,\n addAttachmentToClaim as ADD_ATTACHMENT_TO_CLAIM,\n addCustomToFavorites as ADD_CUSTOM_TO_FAVORITES,\n addManuallyVetToFavorites as ADD_MANUALLY_VET_TO_FAVORITES,\n addPet as ADD_PET,\n addressUpdated as ADDRESS_UPDATED,\n addToFavorites as ADD_TO_FAVORITES,\n applyAddressUpdate as APPLY_ADDRESS_UPDATE,\n bannerVisibleChanged as BANNER_VISIBLE_CHANGED,\n cancelAddressUpdate as CANCEL_ADDRESS_UPDATE,\n changeName as CHANGE_NAME,\n checkIfHasPrimaryVet as CHECK_IF_HAS_PRIMARY_VET,\n checkPasswordSetup as CHECK_PASSWORD_SETUP,\n claimGetPolicyByDate as CLAIM_GET_POLICY_BY_DATE,\n clearAllCustomerCache as CLEAR_ALL_CUSTOMER_CACHE,\n clearUserCache as CLEAR_USER_CACHE,\n contactPetFamily as CONTACT_PET_FAMILY,\n convertImpersonateCustomerId as CONVERT_IMPERSONATE_CUSTOMER_ID,\n createClaim as CREATE_CLAIM,\n createFolder as CREATE_FOLDER,\n createOneIncSession as CREATE_ONE_INC_SESSION,\n deleteFiles as DELETE_FILES,\n deleteFolder as DELETE_FOLDER,\n deletePet as DELETE_PET,\n deleteTagNumber as DELETE_TAG_NUMBER,\n doLogin as DO_LOGIN,\n doLogout as DO_LOGOUT,\n doResetPassword as DO_RESET_PASSWORD,\n downloadFiles as DOWNLOAD_FILES,\n editPet as EDIT_PET,\n getAllFavorites as GET_ALL_FAVORITES,\n getChangeCoverageMultimodal as GET_CHANGE_COVERAGE_MULTIMODAL,\n getChangeCoveragePreview as GET_CHANGE_COVERAGE_PREVIEW,\n getClaimAttachments as GET_CLAIM_ATTACHMENTS,\n getClaimById as GET_CLAIM_BY_ID,\n getClaimByIdRequested as GET_CLAIM_BY_ID_REQUESTED,\n getClaims as GET_CLAIMS,\n getContactBrandData as GET_CONTACT_BRAND_DATA,\n getGeneralData as GET_GENERAL_DATA,\n getNewPasswordToken as GET_NEW_PASSWORD_TOKEN,\n getPetTagInfo as GET_PET_TAG_INFO,\n getPrivateToken as GET_PRIVATE_TOKEN,\n getPublicSideImage as GET_PUBLIC_SIDE_IMAGE,\n getRecentFiles as GET_RECENT_FILES,\n getSharePostData as GET_SHARE_POST_DATA,\n getTemporaryToken as GET_TEMPORARY_TOKEN,\n getWaitingPeriods as GET_WAITING_PERIODS,\n loadBreedList as LOAD_BREED_LIST,\n loadClaimSteps as LOAD_CLAIM_STEPS,\n loadAdditionalClaimbotSteps as LOAD_ADDITIONAL_CLAIM_STEPS,\n loadDataForPrivateToken as LOAD_DATA_FORM_PRIVATE_TOKEN,\n loadHasFigoClaims as LOAD_HAS_FIGO_CLAIMS,\n loadCustomerInformation as LOAD_CUSTOMER_INFORMATION,\n loadFolderContent as LOAD_FOLDER_CONTENT,\n loadFolderStructure as LOAD_FOLDER_STRUCTURE,\n loadMicrochipData as LOAD_MICROCHIP_DATA,\n loadMultiModalData as LOAD_MULTI_MODAL_DATA,\n loadNewClaimSteps as LOAD_NEW_CLAIM_STEPS,\n loadPaymentHistory as LOAD_PAYMENT_HISTORY,\n loadPetProfile as LOAD_PET_PROFILE,\n loadPlanSummaryDetails as LOAD_PLAN_SUMMARY_DETAILS,\n loadPlanSummarySeeMoreInfo as LOAD_PLAN_SUMMARY_SEE_MORE_INFO,\n loadPoliciesOverview as LOAD_POLICIES_OVERVIEW,\n loadPoliciesPaymentNumber as LOAD_POLICIES_PAYMENT_NUMBER,\n loadPolicyDetails as LOAD_POLICY_DETAILS,\n loadPolicyNotifications as LOAD_POLICY_NOTIFICATIONS,\n loadReimbursementMethod as LOAD_REIMBURSEMENT_METHOD,\n loadWhatWeCoverInfo as LOAD_WHAT_WE_COVER_INFO,\n loadZipCodeDetails as LOAD_ZIP_CODE_DETAILS,\n markFilesAsRead as MARK_FILES_AS_READ,\n moveFiles as MOVE_FILES,\n moveFolder as MOVE_FOLDER,\n namesUpdated as NAMES_UPDATED,\n oneIncLoadDefaultPayments as ONE_INC_LOAD_DEFAULT_PAYMENTS,\n openMediaFileToBlob as OPEN_MEDIA_FILE_TO_BLOB,\n phonesUpdated as PHONES_UPDATED,\n rateCoverage as RATE_COVERAGE,\n recoverPassword as RECOVER_PASSWORD,\n refreshFolderContent as REFRESH_FOLDER_CONTENT,\n refreshPersonalInformation as REFRESH_PERSONAL_INFORMATION,\n refreshPets as REFRESH_PETS,\n refreshPolicies as REFRESH_POLICIES,\n removePetPhoto as REMOVE_PET_PHOTO,\n removeVet as REMOVE_VET,\n requestClaimsResults as REQUEST_CLAIMS_RESULTS,\n saveMicrochip as SAVE_MICROCHIP,\n savePrimaryVet as SAVE_PRIMARY_VET,\n saveUserInfo as SAVE_USER_INFO,\n searchPetTag as SEARCH_PET_TAG,\n searchPrimaryVet as SEARCH_PRIMARY_VET,\n searchVets as SEARCH_VETS,\n sendLinkMessage as SEND_LINK_MESSAGE,\n setPetTagInfo as SET_PET_TAG_INFO,\n setUpNewPassword as SET_UP_NEW_PASSWORD,\n showViewFile as SHOW_VIEW_FILE,\n startup as STARTUP,\n submitChangeCoverage as SUBMIT_CHANGE_COVERAGE,\n submitClaim as SUBMIT_CLAIM,\n tagPetFile as TAG_PET_FILE,\n tokenCustomerLoaded as TOKEN_CUSTOMER_LOADED,\n updateAddress as UPDATE_ADDRESS,\n updateEmail as UPDATE_EMAIL,\n updateNames as UPDATE_NAMES,\n updatePassword as UPDATE_PASSWORD,\n updatePaymentMethod as UPDATE_PAYMENT_METHOD,\n updatePetCloudEmail as UPDATE_PET_CLOUD_EMAIL,\n updatePhones as UPDATE_PHONES,\n updatePowerUp as UPDATE_POWER_UP,\n updateReimbursementMethod as UPDATE_REIMBURSEMENT_METHOD,\n uploadFiles as UPLOAD_FILES,\n validateChangeCoverage as VALIDATE_CHANGE_COVERAGE,\n validateZipCode as VALIDATE_ZIP_CODE,\n validResetPasswordToken as VALID_RESET_PASSWORD_TOKEN,\n} from './actions';\nimport {\n acceptTermsOfService,\n addAttachmentToClaim,\n addCustomToFavorites,\n addManuallyVetToFavorites,\n addPet,\n addToFavorites,\n applyAddressUpdate,\n billingSaga,\n cancelAddressUpdate,\n changeName,\n checkIfHasPrimaryVet,\n checkPasswordSetup,\n claimGetPolicyByDate,\n clearAllCustomerCache,\n clearUserCache,\n commonSaga,\n contactPetFamily,\n convertCustomerId,\n createClaim,\n createFolder,\n createOneIncSession,\n deleteFigoTagNumber,\n deleteFiles,\n deleteFolder,\n deletePet,\n doBannerVisibleChanged,\n doLogin,\n doLogout,\n doPetLoad,\n doResetPassword,\n doSearchPetTag,\n doSocialProfileLoad,\n downloadFiles,\n editPet,\n fetchClaimById,\n fetchClaimsResults,\n getAllFavorites,\n getAttachmentsByClaim,\n getBillingInfo,\n getChangeCoverageMultimodal,\n getChangeCoveragePreview,\n getClaimByNumber,\n getClaimsUser,\n getContactBrandData,\n getFigoPetTagInfo,\n getGeneralData,\n getNewPasswordToken,\n getPaymentHistory,\n getPetProfile,\n getPoliciesPaymentNumber,\n getPolicyInfo,\n getPolicySummary,\n getPrivateToken,\n getPublicSideImage,\n getRecentFiles,\n getSharePostData,\n getStates,\n getTemporaryToken,\n getUserInformation,\n getWaitingPeriods,\n homeSaga,\n loadAdditionalClaimbotSteps,\n loadBlobFile,\n loadBreedList,\n loadCachedBannerVisible,\n loadClaimSteps,\n loadCustomerInformation,\n loadDataPrivateToken,\n loadDefaultpayments,\n loadFolderContent,\n loadFolderStructure,\n loadHasFigoClaims,\n loadMicrochipData,\n loadMultiModalData,\n loadNewClaimSteps,\n loadPlanSummarySeeMoreInfo,\n loadPoliciesOverview,\n loadPolicyBenefits,\n loadPolicyNotifications,\n loadReimbursementMethod,\n loadWhatWeCoverInfo,\n loadZipCodeDetails,\n markFilesAsRead,\n moveFiles,\n moveFolder,\n multibrandSaga,\n openMediaFileToBlob,\n policiesSaga,\n rateCoverage,\n recoverPassword,\n removePetPhoto,\n removeVet,\n saveMicrochip,\n savePrimaryVet,\n searchPrimaryVets,\n searchVets,\n sendLinkMessage,\n setFigoPetTagInfo,\n settingsSaga,\n setUpNewPassword,\n startUpApp,\n submitChangeCoverage,\n submitClaim,\n syncUserInformationStoreWithRedux,\n tagPetFile,\n updateAddress,\n updateEmail,\n updateNames,\n updatePassword,\n updatePaymentMethod,\n updatePetCloudEmail,\n updatePhones,\n updatePowerUp,\n updateReimbursementMethod,\n uploadFilesPerBatch,\n validateChangeCoverage,\n validateZipCode,\n validResetPasswordToken,\n} from './sagas';\n\nexport default function* sagas(store) {\n yield all([\n takeLatest(STARTUP, startUpApp, store.dispatch),\n takeLatest(GET_PUBLIC_SIDE_IMAGE, getPublicSideImage, store.dispatch),\n takeLatest(DO_LOGIN, doLogin),\n takeLatest(DO_LOGOUT, doLogout, store.dispatch),\n takeLatest(DO_LOGIN, loadCachedBannerVisible),\n takeLatest(ADDRESS_UPDATED, syncUserInformationStoreWithRedux),\n takeLatest(NAMES_UPDATED, syncUserInformationStoreWithRedux),\n takeLatest(LOAD_POLICY_DETAILS, getPolicyInfo, store.dispatch),\n takeLatest(LOAD_POLICY_DETAILS, getBillingInfo, store.dispatch),\n takeLatest(LOAD_ZIP_CODE_DETAILS, loadZipCodeDetails, store.dispatch),\n takeLatest(PHONES_UPDATED, syncUserInformationStoreWithRedux),\n takeLatest(LOAD_PAYMENT_HISTORY, getPaymentHistory, store.dispatch),\n takeLatest(RECOVER_PASSWORD, recoverPassword, store.dispatch),\n takeLatest(SAVE_USER_INFO, getStates, store.dispatch),\n takeLatest(SAVE_USER_INFO, doSocialProfileLoad, store.dispatch),\n takeLatest(\n LOAD_CUSTOMER_INFORMATION,\n loadCustomerInformation,\n store.dispatch,\n ),\n takeLatest(CHECK_PASSWORD_SETUP, checkPasswordSetup),\n takeLatest(GET_NEW_PASSWORD_TOKEN, getNewPasswordToken),\n takeLatest(SET_UP_NEW_PASSWORD, setUpNewPassword, store.dispatch),\n takeLatest(UPDATE_ADDRESS, updateAddress, store.dispatch),\n takeLatest(UPDATE_NAMES, updateNames, store.dispatch),\n takeLatest(UPDATE_PHONES, updatePhones, store.dispatch),\n takeLatest(UPDATE_EMAIL, updateEmail, store.dispatch),\n takeLatest(UPDATE_PET_CLOUD_EMAIL, updatePetCloudEmail, store.dispatch),\n takeLatest(UPDATE_PASSWORD, updatePassword, store.dispatch),\n takeLatest(\n LOAD_REIMBURSEMENT_METHOD,\n loadReimbursementMethod,\n store.dispatch,\n ),\n takeLatest(CANCEL_ADDRESS_UPDATE, cancelAddressUpdate, store.dispatch),\n takeLatest(APPLY_ADDRESS_UPDATE, applyAddressUpdate, store.dispatch),\n takeLatest(\n UPDATE_REIMBURSEMENT_METHOD,\n updateReimbursementMethod,\n store.dispatch,\n ),\n takeLatest(UPDATE_PAYMENT_METHOD, updatePaymentMethod, store.dispatch),\n takeLatest(\n LOAD_PLAN_SUMMARY_DETAILS,\n loadPolicyBenefits,\n store.dispatch,\n ),\n takeLatest(\n LOAD_PLAN_SUMMARY_SEE_MORE_INFO,\n loadPlanSummarySeeMoreInfo,\n store.dispatch,\n ),\n takeLatest(LOAD_POLICIES_OVERVIEW, loadPoliciesOverview, store.dispatch),\n takeLatest(LOAD_MULTI_MODAL_DATA, loadMultiModalData, store.dispatch),\n takeLatest(\n LOAD_POLICY_NOTIFICATIONS,\n loadPolicyNotifications,\n store.dispatch,\n ),\n takeLatest(LOAD_WHAT_WE_COVER_INFO, loadWhatWeCoverInfo, store.dispatch),\n takeLatest(GET_CLAIMS, getClaimsUser, store.dispatch),\n takeLatest(LOAD_NEW_CLAIM_STEPS, loadNewClaimSteps, store.dispatch),\n takeLatest(LOAD_CLAIM_STEPS, loadClaimSteps, store.dispatch),\n takeLatest(\n LOAD_ADDITIONAL_CLAIM_STEPS,\n loadAdditionalClaimbotSteps,\n store.dispatch,\n ),\n takeLatest(\n CLAIM_GET_POLICY_BY_DATE,\n claimGetPolicyByDate,\n store.dispatch,\n ),\n takeLatest(LOAD_HAS_FIGO_CLAIMS, loadHasFigoClaims, store.dispatch),\n takeLatest(SUBMIT_CLAIM, submitClaim, store.dispatch),\n takeEvery(REQUEST_CLAIMS_RESULTS, fetchClaimsResults),\n takeLatest(GET_CLAIM_BY_ID_REQUESTED, fetchClaimById, store.dispatch),\n takeLatest(GET_CLAIM_ATTACHMENTS, getAttachmentsByClaim, store.dispatch),\n takeLatest(GET_CLAIM_BY_ID, getClaimByNumber, store.dispatch),\n takeLatest(CREATE_CLAIM, createClaim, store.dispatch),\n takeLatest(\n ADD_ATTACHMENT_TO_CLAIM,\n addAttachmentToClaim,\n store.dispatch,\n ),\n takeLatest(\n LOAD_POLICIES_PAYMENT_NUMBER,\n getPoliciesPaymentNumber,\n store.dispatch,\n ),\n takeLatest(SEND_LINK_MESSAGE, sendLinkMessage, store.dispatch),\n takeLatest(LOAD_BREED_LIST, loadBreedList, store.dispatch),\n takeLatest(LOAD_MICROCHIP_DATA, loadMicrochipData, store.dispatch),\n takeLatest(SAVE_MICROCHIP, saveMicrochip, store.dispatch),\n takeLatest(LOAD_PET_PROFILE, getPetProfile, store.dispatch),\n takeLatest(SEARCH_PET_TAG, doSearchPetTag, store.dispatch),\n takeLatest(BANNER_VISIBLE_CHANGED, doBannerVisibleChanged, store.dispatch),\n takeLatest(DO_RESET_PASSWORD, doResetPassword, store.dispatch),\n takeLatest(GET_PRIVATE_TOKEN, getPrivateToken, store.dispatch),\n takeLatest(GET_TEMPORARY_TOKEN, getTemporaryToken, store.dispatch),\n takeLatest(\n VALID_RESET_PASSWORD_TOKEN,\n validResetPasswordToken,\n store.dispatch,\n ),\n takeLatest(CONTACT_PET_FAMILY, contactPetFamily, store.dispatch),\n takeLatest(CREATE_ONE_INC_SESSION, createOneIncSession, store.dispatch),\n takeLatest(\n ONE_INC_LOAD_DEFAULT_PAYMENTS,\n loadDefaultpayments,\n store.dispatch,\n ),\n takeLatest(\n LOAD_DATA_FORM_PRIVATE_TOKEN,\n loadDataPrivateToken,\n store.dispatch,\n ),\n takeLatest(\n REFRESH_PERSONAL_INFORMATION,\n getUserInformation,\n store.dispatch,\n ),\n takeLatest(\n CONVERT_IMPERSONATE_CUSTOMER_ID,\n convertCustomerId,\n store.dispatch,\n ),\n takeLatest(\n ACCEPT_TERMS_OF_SERVICE,\n acceptTermsOfService,\n store.dispatch,\n ),\n takeLatest(CLEAR_ALL_CUSTOMER_CACHE, clearAllCustomerCache, store.dispatch),\n takeLatest(CLEAR_USER_CACHE, clearUserCache, store.dispatch),\n takeLatest(GET_WAITING_PERIODS, getWaitingPeriods, store.dispatch),\n takeLatest(\n GET_CHANGE_COVERAGE_PREVIEW,\n getChangeCoveragePreview,\n store.dispatch,\n ),\n takeLatest(RATE_COVERAGE, rateCoverage, store.dispatch),\n takeLatest(\n GET_CHANGE_COVERAGE_MULTIMODAL,\n getChangeCoverageMultimodal,\n store.dispatch,\n ),\n takeLatest(UPDATE_POWER_UP, updatePowerUp, store.dispatch),\n takeLatest(SUBMIT_CHANGE_COVERAGE, submitChangeCoverage, store.dispatch),\n takeLatest(GET_SHARE_POST_DATA, getSharePostData, store.dispatch),\n takeLatest(GET_GENERAL_DATA, getGeneralData),\n\n // Policies\n takeLatest(\n VALIDATE_CHANGE_COVERAGE,\n validateChangeCoverage,\n store.dispatch,\n ),\n takeLatest(\n REFRESH_POLICIES,\n getPolicySummary,\n store.dispatch,\n ),\n\n // After load page\n takeLatest(TOKEN_CUSTOMER_LOADED, doPetLoad, store.dispatch),\n\n // My pets\n takeLatest(ADD_PET, addPet, store.dispatch),\n takeLatest(EDIT_PET, editPet, store.dispatch),\n takeLatest(REFRESH_PETS, doPetLoad, store.dispatch),\n takeLatest(REFRESH_PETS, getPetProfile, store.dispatch),\n takeLatest(GET_PET_TAG_INFO, getFigoPetTagInfo, store.dispatch),\n takeLatest(SET_PET_TAG_INFO, setFigoPetTagInfo, store.dispatch),\n takeLatest(DELETE_TAG_NUMBER, deleteFigoTagNumber, store.dispatch),\n takeLatest(DELETE_PET, deletePet, store.dispatch),\n takeLatest(REMOVE_PET_PHOTO, removePetPhoto, store.dispatch),\n\n // Inbox and docs\n takeLatest(DOWNLOAD_FILES, downloadFiles, store.dispatch),\n takeLatest(GET_RECENT_FILES, getRecentFiles, store.dispatch),\n takeLatest(LOAD_FOLDER_CONTENT, loadFolderContent, store.dispatch),\n takeLatest(LOAD_FOLDER_STRUCTURE, loadFolderStructure, store.dispatch),\n takeLatest(MARK_FILES_AS_READ, markFilesAsRead, store.dispatch),\n takeLatest(MOVE_FILES, moveFiles, store.dispatch),\n takeLatest(TAG_PET_FILE, tagPetFile, store.dispatch),\n takeLatest(CHANGE_NAME, changeName, store.dispatch),\n takeLatest(REFRESH_FOLDER_CONTENT, loadFolderContent, store.dispatch),\n takeLatest(CREATE_FOLDER, createFolder, store.dispatch),\n takeLatest(DELETE_FOLDER, deleteFolder, store.dispatch),\n takeLatest(DELETE_FILES, deleteFiles, store.dispatch),\n takeLatest(UPLOAD_FILES, uploadFilesPerBatch, store.dispatch),\n takeLatest(MOVE_FOLDER, moveFolder, store.dispatch),\n takeLatest(SHOW_VIEW_FILE, loadBlobFile, store.dispatch),\n takeLatest(OPEN_MEDIA_FILE_TO_BLOB, openMediaFileToBlob, store.dispatch),\n\n // My Vets\n takeLatest(SEARCH_VETS, searchVets, store.dispatch),\n takeLatest(VALIDATE_ZIP_CODE, validateZipCode),\n takeLatest(ADD_CUSTOM_TO_FAVORITES, addCustomToFavorites, store.dispatch),\n takeLatest(\n ADD_MANUALLY_VET_TO_FAVORITES,\n addManuallyVetToFavorites,\n store.dispatch,\n ),\n takeLatest(ADD_TO_FAVORITES, addToFavorites, store.dispatch),\n takeLatest(GET_ALL_FAVORITES, getAllFavorites, store.dispatch),\n takeLatest(REMOVE_VET, removeVet, store.dispatch),\n takeLatest(SEARCH_PRIMARY_VET, searchPrimaryVets, store.dispatch),\n takeLatest(CHECK_IF_HAS_PRIMARY_VET, checkIfHasPrimaryVet, store.dispatch),\n takeLatest(SAVE_PRIMARY_VET, savePrimaryVet, store.dispatch),\n\n spawn(commonSaga, store),\n spawn(billingSaga, store),\n spawn(homeSaga, store),\n spawn(settingsSaga, store),\n spawn(policiesSaga, store),\n spawn(multibrandSaga, store),\n\n takeLatest(GET_CONTACT_BRAND_DATA, getContactBrandData, store.dispatch),\n ]);\n}\n","import { handleActions } from 'redux-actions';\nimport { PASSWORD_ERROR } from '../constants';\n\nconst INITIAL_STATE = {\n areEmailUpdated: false,\n arePasswordsMatching: false,\n arePasswordsUpdated: false,\n arePetCloudEmailUpdated: false,\n confirmPassword: '',\n emailUpdateError: null,\n isEmailBeingUpdated: false,\n isEmailValid: true,\n isPasswordsBeingUpdated: false,\n isPetCloudEmailBeingUpdated: false,\n isPetCloudEmailValid: true,\n newPassword: '',\n newPasswordHasEightCharacters: false,\n newPasswordHasLetters: false,\n newPasswordHasNumbers: false,\n newPasswordHasSpaces: false,\n oldPassword: '',\n passwordUpdateError: null,\n passwordUpdateErrorType: PASSWORD_ERROR.none,\n petCloudEmail: '',\n petCloudEmailUpdateError: null,\n userInfo: null,\n};\nconst EMAIL_REGEX =\n /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,3}$/;\n\nexport default handleActions({\n CONFIRM_PASSWORD_CHANGED: (state, { payload }) => ({\n ...state,\n arePasswordsMatching: payload === state.newPassword,\n arePasswordsUpdated: false,\n confirmPassword: payload,\n passwordUpdateError: null,\n passwordUpdateErrorType: PASSWORD_ERROR.none,\n }),\n DO_LOGOUT: () => ({ ...INITIAL_STATE }),\n EMAIL_CHANGED: (state, { payload }) => ({\n ...state,\n areEmailUpdated: false,\n email: payload,\n emailUpdateError: null,\n isEmailValid: EMAIL_REGEX.test(payload),\n }),\n EMAIL_UPDATED: (state) => ({\n ...state,\n areEmailUpdated: true,\n emailUpdateError: null,\n isEmailBeingUpdated: false,\n isEmailValid: true,\n userInfo: {\n ...state.userInfo,\n LoginEmail: state.email,\n },\n }),\n NEW_PASSWORD_CHANGED: (state, { payload }) => ({\n ...state,\n arePasswordsMatching: payload === state.confirmPassword,\n arePasswordsUpdated: false,\n newPassword: payload,\n newPasswordHasEightCharacters: payload.length >= 8,\n newPasswordHasLetters: /^(?=.*[a-zA-Z])/.test(payload),\n newPasswordHasNumbers: /\\d/.test(payload),\n newPasswordHasSpaces: /\\s/.test(payload),\n passwordUpdateError: null,\n passwordUpdateErrorType: PASSWORD_ERROR.none,\n }),\n OLD_PASSWORD_CHANGED: (state, action) => ({\n ...state,\n arePasswordsUpdated: false,\n oldPassword: action.payload,\n passwordUpdateError: null,\n passwordUpdateErrorType: PASSWORD_ERROR.none,\n }),\n PASSWORD_UPDATED: (state) => ({\n ...state,\n arePasswordsUpdated: true,\n confirmPassword: '',\n isPasswordsBeingUpdated: false,\n newPassword: '',\n newPasswordHasEightCharacters: false,\n newPasswordHasLetters: false,\n newPasswordHasNumbers: false,\n newPasswordHasSpaces: false,\n oldPassword: '',\n passwordUpdateError: null,\n passwordUpdateErrorType: PASSWORD_ERROR.none,\n }),\n PET_CLOUD_EMAIL_CHANGED: (state, { payload }) => ({\n ...state,\n arePetCloudEmailUpdated: false,\n isPetCloudEmailValid: EMAIL_REGEX.test(`${payload}@MyPetCloud.com`),\n petCloudEmail: payload,\n petCloudEmailUpdateError: null,\n }),\n PET_CLOUD_EMAIL_RESET: (state) => ({\n ...state,\n petCloudEmail: state.userInfo.PetCloudEmail\n ? state.userInfo.PetCloudEmail.split('@')[0]\n : '',\n }),\n PET_CLOUD_EMAIL_UPDATED: (state) => ({\n ...state,\n arePetCloudEmailUpdated: true,\n isPetCloudEmailBeingUpdated: false,\n isPetCloudEmailValid: true,\n petCloudEmailUpdateError: null,\n userInfo: {\n ...state.userInfo,\n PetCloudEmail: `${state.petCloudEmail}@MyPetCloud.com`,\n },\n }),\n RESET_EMAIL: (state) => ({\n ...state,\n email: state.userInfo.LoginEmail,\n }),\n RESET_INFO: (state) => ({\n ...state,\n areEmailUpdated: false,\n emailUpdateError: null,\n isEmailBeingUpdated: false,\n }),\n RESET_INFORMATION: (state) => ({\n ...INITIAL_STATE,\n confirmPassword: '',\n email: state.userInfo.LoginEmail,\n newPassword: '',\n oldPassword: '',\n petCloudEmail: state.userInfo.PetCloudEmail\n ? state.userInfo.PetCloudEmail.split('@')[0]\n : '',\n userInfo: state.userInfo,\n }),\n SAVE_USER_INFO: (state, { payload }) => ({\n ...state,\n email: payload.LoginEmail,\n petCloudEmail: payload.PetCloudEmail\n ? payload.PetCloudEmail.split('@')[0]\n : '',\n userInfo: payload,\n }),\n STARTUP_FROM_CACHE: (state, { payload }) => ({\n ...state,\n userInfo: payload.userInfo,\n }),\n UPDATE_EMAIL: (state) => ({\n ...state,\n areEmailUpdated: false,\n emailUpdateError: null,\n isEmailBeingUpdated: true,\n }),\n UPDATE_EMAIL_ERROR: (state, { payload }) => ({\n ...state,\n areEmailUpdated: false,\n emailUpdateError: payload,\n isEmailBeingUpdated: false,\n isEmailValid: false,\n }),\n UPDATE_PASSWORD: (state) => ({\n ...state,\n arePasswordsUpdated: false,\n isPasswordsBeingUpdated: true,\n passwordUpdateError: null,\n passwordUpdateErrorType: PASSWORD_ERROR.none,\n }),\n UPDATE_PASSWORD_ERROR: (state, { payload }) => ({\n ...state,\n arePasswordsUpdated: false,\n isPasswordsBeingUpdated: false,\n passwordUpdateError: payload.message,\n passwordUpdateErrorType: payload.type,\n }),\n UPDATE_PET_CLOUD_EMAIL: (state) => ({\n ...state,\n arePetCloudEmailUpdated: false,\n isPetCloudEmailBeingUpdated: true,\n petCloudEmailUpdateError: null,\n }),\n UPDATE_PET_CLOUD_EMAIL_ERROR: (state, { payload }) => ({\n ...state,\n arePetCloudEmailUpdated: false,\n isPetCloudEmailBeingUpdated: false,\n isPetCloudEmailValid: false,\n petCloudEmailUpdateError: payload,\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE_PAYMENT_METHOD_DATA = {\n accountNumber: '',\n accountNumberConfirmation: '',\n accountNumberConfirmationError: '',\n accountNumberError: '',\n accountType: 0,\n cardNumber: '',\n cardNumberError: '',\n city: '',\n cityError: '',\n cvvNumber: '',\n cvvNumberError: '',\n expirationDate: '',\n expirationDateError: '',\n firstName: '',\n firstNameError: '',\n lastName: '',\n lastNameError: '',\n paymentMethodSelected: 0,\n routingNumber: '',\n routingNumberError: '',\n streetAddress: '',\n streetAddress2: '',\n streetAddress2Error: '',\n streetAddressError: '',\n zipCode: '',\n zipCodeError: '',\n};\n\nconst INITIAL_STATE = {\n allBrandsData: [],\n billingDetails: null,\n editReimbursementMethodModalVisible: false,\n error: null,\n isApplyAllPolicies: true,\n loadingAllBrandsData: false,\n loadingBillingInfo: true,\n loadingPaymentHistory: false,\n loadingPolicyDetails: true,\n loadingReimbursementMethod: true,\n noMoreResults: false,\n paymentHistory: [],\n paymentHistoryCurrentPage: 0,\n paymentHistoryPage: 0,\n paymentHistoryPolicyNumber: '',\n paymentHistoryTotalItems: 0,\n paymentHistoryTotalPages: 0,\n paymentMethodData: INITIAL_STATE_PAYMENT_METHOD_DATA,\n paymentMethodEditModalVisible: false,\n paymentMethodErrorModalVisible: false,\n paymentMethodPastDueModalVisible: false,\n paymentMethodSuccessModalVisible: false,\n policiesUpdated: 0,\n policyDetails: null,\n reimbursementData: {\n AccountNumber: '',\n AccountType: 1,\n ConfirmAccountNumber: '',\n PreferredReimbursementMethod: null,\n RoutingNumber: '',\n Type: null,\n },\n reimbursementMethod: null,\n reimbursementMethodUpdateSuccess: false,\n requestUpdatePaymentMethod: {},\n routingNumberError: null,\n selectedPet: 0,\n selectedPolicy: 0,\n updatePaymentMethodMessageResponse: '',\n updateReimbursementMethodError: false,\n updateReimbursementMethodErrorMessage: null,\n updatingPaymentMethod: false,\n updatingReimbursementMethod: false,\n};\n\nexport default handleActions({\n APPLY_ALL_POLICIES_CHECK_CHANGED: (state, { payload }) => ({\n ...state,\n isApplyAllPolicies: payload,\n }),\n BILLING_INFO_LOAD_FAILED: (state, { payload }) => ({\n ...state,\n error: payload,\n loadingBillingInfo: false,\n loadingPaymentHistory: false,\n }),\n BILLING_INFO_LOADED: (state, { payload }) => ({\n ...state,\n billingDetails: payload,\n error: null,\n loadingBillingInfo: false,\n loadingPaymentHistory: false,\n }),\n BILLING_PAYMENT_RESETED: (state) => ({\n ...state,\n billingDetails: null,\n loadingBillingInfo: true,\n }),\n CHANGE_REIMBURSEMENT_ACCOUNT_NUMBER: (state, action) => ({\n ...state,\n reimbursementData: {\n ...state.reimbursementData,\n AccountNumber: action.payload,\n },\n }),\n CHANGE_REIMBURSEMENT_ACCOUNT_TYPE: (state, action) => ({\n ...state,\n reimbursementData: {\n ...state.reimbursementData,\n AccountType: action.payload,\n },\n }),\n CHANGE_REIMBURSEMENT_CONFIRM_ACCOUNT_NUMBER: (state, action) => ({\n ...state,\n reimbursementData: {\n ...state.reimbursementData,\n ConfirmAccountNumber: action.payload,\n },\n }),\n CHANGE_REIMBURSEMENT_METHOD_TYPE: (state, action) => ({\n ...state,\n reimbursementData: {\n ...state.reimbursementData,\n PreferredReimbursementMethod: action.payload,\n Type: action.payload,\n },\n }),\n CHANGE_REIMBURSEMENT_ROUTING_NUMBER: (state, action) => ({\n ...state,\n reimbursementData: {\n ...state.reimbursementData,\n RoutingNumber: action.payload,\n },\n }),\n CHANGE_ROUTING_NUMBER_ERROR: (state, action) => ({\n ...state,\n routingNumberError: action.payload,\n }),\n CLOSE_EDIT_REIMBURSEMENT_METHOD_MODAL: (state) => ({\n ...state,\n editReimbursementMethodModalVisible: false,\n reimbursementData: {\n ...INITIAL_STATE.reimbursementData,\n },\n reimbursementMethodUpdateSuccess: false,\n selectedReimbursementMethodTab: null,\n updateReimbursementMethodError: false,\n }),\n DO_LOGOUT: () => ({ ...INITIAL_STATE }),\n GET_ALL_BRANDS_DATA: (state) => ({\n ...state,\n loadingAllBrandsData: true,\n }),\n GET_ALL_BRANDS_DATA_FAILED: (state) => ({\n ...state,\n loadingAllBrandsData: false,\n }),\n GET_ALL_BRANDS_DATA_LOADED: (state, action) => ({\n ...state,\n allBrandsData: action.payload,\n loadingAllBrandsData: false,\n }),\n LOAD_PAYMENT_HISTORY: (state) => ({\n ...state,\n }),\n LOAD_POLICY_DETAILS: (state) => ({\n ...state,\n error: null,\n loadingBillingInfo: true,\n loadingPaymentHistory: true,\n loadingPolicyDetails: true,\n }),\n OPEN_EDIT_REIMBURSEMENT_METHOD_MODAL: (state, action) => ({\n ...state,\n editReimbursementMethodModalVisible: true,\n reimbursementData: {\n ...state.reimbursementData,\n PreferredReimbursementMethod: action.payload,\n Type: action.payload,\n },\n }),\n PAYMENT_HISTORY_CLEARED: (state) => ({\n ...state,\n error: null,\n loadingPaymentHistory: true,\n paymentHistory: [],\n }),\n PAYMENT_HISTORY_LOAD_FAILED: (state, { payload }) => ({\n ...state,\n error: payload,\n loadingPaymentHistory: false,\n }),\n PAYMENT_HISTORY_LOADED: (state, { payload: {\n paymentHistoryCurrentPage,\n paymentHistoryData,\n paymentHistoryTotalItems,\n paymentHistoryTotalPages,\n } }) => ({\n ...state,\n error: null,\n loadingPaymentHistory: false,\n noMoreResults: state.paymentHistory.length === paymentHistoryData.length,\n paymentHistory: paymentHistoryData,\n paymentHistoryCurrentPage,\n paymentHistoryPage: paymentHistoryData.length\n && state.paymentHistoryPage + 1,\n paymentHistoryTotalItems,\n paymentHistoryTotalPages,\n }),\n PAYMENT_METHOD_ACCOUNT_NUMBER_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n accountNumber: payload.value,\n },\n }),\n PAYMENT_METHOD_ACCOUNT_NUMBER_CONFIRMATION_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n accountNumberConfirmation: payload.value,\n },\n }),\n PAYMENT_METHOD_ACCOUNT_NUMBER_CONFIRMATION_ERROR_CHANGED:\n (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n accountNumberConfirmationError: payload.value,\n },\n }),\n PAYMENT_METHOD_ACCOUNT_NUMBER_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n accountNumberError: payload.value,\n },\n }),\n PAYMENT_METHOD_ACCOUNT_TYPE_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n accountType: payload.value,\n },\n }),\n PAYMENT_METHOD_CARD_NUMBER_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n cardNumber: payload.value,\n },\n }),\n PAYMENT_METHOD_CARD_NUMBER_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n cardNumberError: payload.value,\n },\n }),\n PAYMENT_METHOD_CITY_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n city: payload.value,\n },\n }),\n PAYMENT_METHOD_CITY_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n cityError: payload.value,\n },\n }),\n PAYMENT_METHOD_CVV_NUMBER_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n cvvNumber: payload.value,\n },\n }),\n PAYMENT_METHOD_CVV_NUMBER_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n cvvNumberError: payload.value,\n },\n }),\n PAYMENT_METHOD_DATA_CLEARED: (state) => ({\n ...state,\n paymentMethodData: INITIAL_STATE_PAYMENT_METHOD_DATA,\n updatePaymentMethodMessageResponse: '',\n }),\n PAYMENT_METHOD_EDIT_MODAL_VISIBLE_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodEditModalVisible: payload.visible,\n }),\n PAYMENT_METHOD_ERROR_MODAL_VISIBLE_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodErrorModalVisible: payload.visible,\n }),\n PAYMENT_METHOD_EXPIRATION_DATE_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n expirationDate: payload.value,\n },\n }),\n PAYMENT_METHOD_EXPIRATION_DATE_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n expirationDateError: payload.value,\n },\n }),\n PAYMENT_METHOD_FIRST_NAME_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n firstName: payload.value,\n },\n }),\n PAYMENT_METHOD_FIRST_NAME_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n firstNameError: payload.value,\n },\n }),\n PAYMENT_METHOD_LAST_NAME_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n lastName: payload.value,\n },\n }),\n PAYMENT_METHOD_LAST_NAME_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n lastNameError: payload.value,\n },\n }),\n PAYMENT_METHOD_PAST_DUE_MODAL_VISIBLE_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodPastDueModalVisible: payload.visible,\n requestUpdatePaymentMethod: payload.requestUpdatePaymentMethod || {},\n }),\n PAYMENT_METHOD_PAYMENT_METHOD_TYPE_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n paymentMethodSelected: payload.value,\n },\n }),\n PAYMENT_METHOD_ROUTING_NUMBER_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n routingNumber: payload.value,\n },\n }),\n PAYMENT_METHOD_ROUTING_NUMBER_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n routingNumberError: payload.value,\n },\n }),\n PAYMENT_METHOD_STATE_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n state: payload.value,\n },\n }),\n PAYMENT_METHOD_STATE_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n stateError: payload.value,\n },\n }),\n PAYMENT_METHOD_STREET_ADDRESS_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n streetAddress: payload.value,\n },\n }),\n PAYMENT_METHOD_STREET_ADDRESS_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n streetAddressError: payload.value,\n },\n }),\n PAYMENT_METHOD_STREET_ADDRESS2_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n streetAddress2: payload.value,\n },\n }),\n PAYMENT_METHOD_STREET_ADDRESS2_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n streetAddress2Error: payload.value,\n },\n }),\n PAYMENT_METHOD_SUCCESS_MODAL_VISIBLE_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodSuccessModalVisible: payload.visible,\n }),\n PAYMENT_METHOD_UPDATE_ATTEMPTED: (state) => ({\n ...state,\n updatingPaymentMethod: true,\n }),\n PAYMENT_METHOD_UPDATED: (state, { payload }) => ({\n ...state,\n paymentMethodEditModalVisible: false,\n paymentMethodErrorModalVisible: payload.error,\n paymentMethodSuccessModalVisible: !payload.error,\n policiesUpdated: payload.policiesUpdated,\n updatePaymentMethodMessageResponse: payload.messageResponse,\n updatingPaymentMethod: false,\n }),\n PAYMENT_METHOD_ZIP_CODE_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n zipCode: payload.value,\n },\n }),\n PAYMENT_METHOD_ZIP_CODE_ERROR_CHANGED: (state, { payload }) => ({\n ...state,\n paymentMethodData: {\n ...state.paymentMethodData,\n zipCodeError: payload.value,\n },\n }),\n PET_SELECTED: (state, { payload }) => ({\n ...state,\n paymentHistory: [],\n paymentHistoryPage: 0,\n selectedPet: payload,\n }),\n POLICY_DETAILS_LOAD_FAILED: (state, { payload }) => ({\n ...state,\n error: payload,\n loadingPaymentHistory: false,\n loadingPolicyDetails: false,\n }),\n POLICY_DETAILS_LOADED: (state, { payload }) => ({\n ...state,\n error: null,\n loadingPaymentHistory: false,\n loadingPolicyDetails: false,\n policyDetails: payload,\n }),\n POLICY_SELECTED: (state, { payload }) => ({\n ...state,\n paymentHistory: [],\n paymentHistoryPage: 0,\n selectedPolicy: payload < 0 ? 0 : payload,\n }),\n REIMBURSEMENT_METHOD_ATTEMPT: (state) => ({\n ...state,\n loadingReimbursementMethod: true,\n }),\n REIMBURSEMENT_METHOD_LOADED: (state, { payload }) => ({\n ...state,\n loadingReimbursementMethod: false,\n reimbursementMethod: payload,\n }),\n REIMBURSEMENT_METHOD_ROUTING_VALIDATION_FAILED: (state, action) => ({\n ...state,\n reimbursementMethodUpdateSuccess: false,\n routingNumberError: action.payload,\n updatingReimbursementMethod: false,\n }),\n REIMBURSEMENT_METHOD_UPDATE_FAILED: (state, action) => ({\n ...state,\n editReimbursementMethodModalVisible: false,\n reimbursementData: {\n ...INITIAL_STATE.reimbursementData,\n },\n reimbursementMethodUpdateSuccess: false,\n selectedReimbursementMethodTab: null,\n updateReimbursementMethodError: true,\n updateReimbursementMethodErrorMessage: action.payload,\n updatingReimbursementMethod: false,\n }),\n REIMBURSEMENT_METHOD_UPDATED: (state) => ({\n ...state,\n reimbursementMethodUpdateSuccess: true,\n updatingReimbursementMethod: false,\n }),\n UPDATE_REIMBURSEMENT_METHOD: (state) => ({\n ...state,\n updatingReimbursementMethod: true,\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n attachmentsByClaim: [],\n claimById: {\n AccountInfo: '',\n BilledAmount: '',\n ClaimId: '',\n ClaimNumber: '',\n ClaimStatus: '',\n Description: '',\n LossDate: '0000-00-00T00:00:00.-05:00',\n NumberOfAttachments: 0,\n PaidAmount: '',\n Pet: { Name: '' },\n PolicyNumber: '',\n ReportedDate: '0000-00-00T00:00:00.-05:00',\n },\n claimsResults: {\n closed: {\n items: [],\n totalCount: 0,\n },\n open: {\n items: [],\n totalCount: 0,\n },\n },\n data: [],\n error: null,\n isCheckedOptionClosed: true,\n isCheckedOptionOpen: true,\n isFirstTimeOnClaimsScreen: true,\n isLoadingClaimsAfterCreatingOne: false,\n isLoadingDetails: true,\n isLoadingMore: false,\n loading: true,\n loadingClaimSteps: false,\n newClaim: {\n eligiblePets: [],\n // for api/Bot/GetClaimTypeSteps/0/1\n isLoadedClaimTypes: false,\n petId: -1,\n policyNumber: '',\n steps: [],\n },\n // TODO: Remove this variable when new claims design is complete\n newClaimModalVisible: false,\n newClaimStarted: false,\n petID: 0,\n petIndex: 0,\n policySelected: 0,\n totalClaims: 0,\n};\n\nexport default handleActions({\n CLAIM_REQUESTED: (state) => ({\n ...state,\n isLoadingDetails: true,\n }),\n CLAIMS_RESULTS_LOADED_ERROR: (state, { payload }) => ({\n ...state,\n error: payload,\n loading: false,\n }),\n\n CLAIMS_RESULTS_LOADED_MORE: (state, { payload }) => {\n const { status } = payload;\n return {\n ...state,\n claimsResults: {\n ...state.claimsResults,\n [status]: {\n ...state.claimsResults[status],\n items: [\n ...state.claimsResults[status].items,\n ...payload.data.Items,\n ],\n },\n },\n error: null,\n loading: false,\n };\n },\n\n CLAIMS_RESULTS_LOADED_SUCCESS: (state, { payload }) => ({\n ...state,\n claimsResults: {\n ...state.claimsResults,\n [payload.status]: {\n items: payload.data?.Items || [],\n totalCount: payload.data.TotalCount,\n },\n },\n error: null,\n loading: false,\n status: payload.status,\n }),\n DO_LOGOUT: () => ({\n ...INITIAL_STATE,\n }),\n FAILED_TO_LOAD_CLAIM_STEPS: (state) => ({\n ...state,\n loadingClaimSteps: false,\n }),\n FILE_CLAIM_COMPLETED: (state) => ({\n ...state,\n isLoadingClaimsAfterCreatingOne: true,\n }),\n GET_CLAIM_ATTACHMENTS_LOADED: (state, action) => ({\n ...state,\n attachmentsByClaim: action.payload,\n isLoadingDetails: false,\n }),\n GET_CLAIM_BY_ID_FAILED: (state) => ({\n ...state,\n isLoadingDetails: false,\n }),\n GET_CLAIM_BY_ID_LOADED: (state, action) => ({\n ...state,\n claimById: {\n ...action.payload,\n Pet: { ...action.payload.Pet },\n },\n isLoadingDetails: false,\n }),\n GET_CLAIM_BY_ID_REQUESTED: (state) => ({\n ...state,\n isLoadingDetails: true,\n }),\n GET_CLAIMS: (state, { payload }) => ({\n ...state,\n isLoadingMore: payload.loadMore,\n loading: !payload.loadMore,\n }),\n GET_CLAIMS_FAILED: (state, action) => ({\n ...state,\n error: action.payload,\n isLoadingClaimsAfterCreatingOne: false,\n loading: false,\n }),\n GET_CLAIMS_LOADED: (state, { payload }) => ({\n ...state,\n data: payload.loadMore ? [\n ...state.data,\n ...payload.claims,\n ] : payload.claims,\n isLoadingClaimsAfterCreatingOne: false,\n isLoadingMore: false,\n loading: false,\n totalClaims: payload.totalClaims,\n }),\n IS_FIRST_TIME_ON_CLAIMS: (state, action) => ({\n ...state,\n isFirstTimeOnClaimsScreen: action.payload,\n }),\n LOAD_NEW_CLAIM_STEPS: (state) => ({\n ...state,\n loadingClaimSteps: true,\n }),\n NEW_CLAIM_CANCELLED: (state) => ({\n ...state,\n newClaim: {\n ...state.newClaim,\n date: 0,\n },\n newClaimModalVisible: false,\n newClaimStarted: false,\n }),\n NEW_CLAIM_STEPS_LOADED: (state, action) => ({\n ...state,\n loadingClaimSteps: false,\n newClaim: {\n ...state.newClaim,\n eligiblePets: action.payload\n .find((s) => s.KeyName === 'select_pet').InputData.PetsInfoMultiple\n .map((ss) => ({\n ...ss,\n petValidDates: ss.petValidDates.sort((a, b) => {\n const date = new Date(a.EffectiveDate.replace('.', '')).getTime();\n const date2 = new Date(b.EffectiveDate.replace('.', '')).getTime();\n\n return date > date2 ? 1 : -1;\n }),\n })),\n isLoadedClaimTypes: true,\n steps: action.payload,\n },\n newClaimModalVisible: true,\n newClaimStarted: true,\n }),\n POLICY_SELECTED_ON_CLAIMS: (state, action) => ({\n ...state,\n policySelected: action.payload,\n }),\n RESET_CHECKED_OPTION: (state) => ({\n ...state,\n isCheckedOptionClosed: true,\n isCheckedOptionOpen: true,\n }),\n RESTART_CLAIMS_DETAILS: (state) => ({\n ...state,\n attachmentsByClaim: [],\n claimById: INITIAL_STATE.claimById,\n }),\n SAVE_SELECTED_PET: (state, action) => ({\n ...state,\n newClaim: {\n ...state.newClaim,\n ...action.payload,\n isLoadedClaimTypes: true,\n },\n newClaimModalVisible: false,\n }),\n SET_IS_CHECKED_OPTION_CLOSED: (state, action) => ({\n ...state,\n isCheckedOptionClosed: action.payload,\n }),\n SET_IS_CHECKED_OPTION_OPEN: (state, action) => ({\n ...state,\n isCheckedOptionOpen: action.payload,\n }),\n SET_SELECTED_PET_ID: (state, action) => ({\n ...state,\n petID: action.payload,\n }),\n SET_SELECTED_PET_INDEX: (state, action) => ({\n ...state,\n petIndex: action.payload,\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n additionalStepsHandled: true,\n agentInformation: null,\n attachments: [],\n claimSteps: null,\n claimStepsViewed: false,\n customerInformation: null,\n figoClaimValidations: {\n hasClaimFigo: false,\n loading: false,\n validated: false,\n },\n loadingAdditionalSteps: false,\n loadingPolicyByDate: false,\n loadingSteps: false,\n petsInfo: null,\n policyByDate: null,\n policyError: null,\n selectedPet: null,\n submitClaim: {\n answered: false,\n loading: false,\n success: false,\n },\n userResponses: { },\n};\n\nexport default handleActions({\n CLAIM_ADDITIONAL_STEPS_HANDLED: (state) => ({\n ...state,\n additionalStepsHandled: true,\n }),\n CLAIM_ADDITIONAL_STEPS_LOADED: (state, action) => ({\n ...state,\n additionalStepsHandled: false,\n claimSteps: [\n ...state.claimSteps.filter((step) => step.InitialSteps),\n ...action.payload,\n ],\n loadingAdditionalSteps: false,\n }),\n CLAIM_GET_POLICY_BY_DATE: (state) => ({\n ...state,\n loadingPolicyByDate: true,\n }),\n CLAIM_POLICY_BY_DATE_FAILED: (state, action) => ({\n ...state,\n loadingPolicyByDate: false,\n policyByDate: null,\n policyError: action.payload,\n }),\n CLAIM_POLICY_BY_DATE_LOADED: (state, action) => ({\n ...state,\n loadingPolicyByDate: false,\n policyByDate: action.payload,\n policyError: null,\n }),\n CLAIM_STEPS_LOAD_FAILED: (state) => ({\n ...state,\n loadingSteps: false,\n }),\n CLAIM_STEPS_LOADED: (state, action) => ({\n ...state,\n claimSteps: action.payload,\n claimStepsViewed: false,\n }),\n CLAIM_STEPS_VIEWED: (state) => ({\n ...state,\n claimStepsViewed: true,\n }),\n CLAIMBOT_SELECTED_PET: (state, action) => ({\n ...state,\n selectedPet: action.payload,\n }),\n CLAIMBOT_SELECTED_VALUE: (state, action) => {\n const responsesUpdated = state.userResponses;\n responsesUpdated[action.payload.keyName] = {\n displayName: action.payload.displayName,\n displayValue: action.payload.displayValue,\n value: action.payload.value,\n };\n\n return {\n ...state,\n userResponses: responsesUpdated,\n };\n },\n CLEAR_CLAIM_STEPS: () => ({\n ...INITIAL_STATE,\n }),\n GENERAL_INFORMATION_LOADED: (state, action) => ({\n ...state,\n agentInformation: action.payload.AgentInfo,\n customerInformation: action.payload.CustomerInfo,\n loadingSteps: false,\n petsInfo: action.payload.PetsInfo,\n }),\n HAS_FIGO_CLAIMS_FAILED: (state) => ({\n ...state,\n figoClaimValidations: {\n ...state,\n hasClaimFigo: false,\n loading: false,\n validated: false,\n },\n }),\n HAS_FIGO_CLAIMS_LOADED: (state, action) => ({\n ...state,\n figoClaimValidations: {\n ...state,\n hasClaimFigo: action.payload,\n loading: false,\n validated: true,\n },\n }),\n LOAD_ADDITIONAL_CLAIMBOT_STEPS: (state) => ({\n ...state,\n loadingAdditionalSteps: true,\n }),\n LOAD_CLAIM_STEPS: (state) => ({\n ...state,\n loadingSteps: true,\n }),\n LOAD_HAS_FIGO_CLAIMS: (state) => ({\n ...state,\n ...state,\n figoClaimValidations: {\n ...state,\n hasClaimFigo: false,\n loading: true,\n validated: false,\n },\n }),\n SUBMIT_CLAIM: (state) => ({\n ...state,\n submitClaim: {\n ...state.submitClaim,\n answered: false,\n loading: true,\n success: false,\n },\n }),\n SUBMIT_CLAIM_FAILED: (state) => ({\n ...state,\n submitClaim: {\n ...state.submitClaim,\n answered: true,\n loading: false,\n success: false,\n },\n }),\n SUBMIT_CLAIM_SUCCESS: (state) => ({\n ...state,\n submitClaim: {\n ...state.submitClaim,\n answered: true,\n loading: false,\n success: true,\n },\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\nimport { getDateForPostShare } from '../services/utils';\n\nconst INITIAL_STATE = {\n alert: {\n body: null,\n error: null,\n image: null,\n imageSize: null,\n inputErrorCallback: null,\n inputLabel: null,\n inputType: null,\n maxLength: null,\n overlayClose: false,\n placeholder: null,\n primaryAction: null,\n primaryText: null,\n secondaryAction: null,\n secondaryText: null,\n subText: null,\n subtitle: null,\n title: null,\n type: '',\n visible: false,\n },\n applicationMessages: null,\n comingSoon: {\n isSendingMessage: false,\n messageSent: false,\n },\n contentfulPage: {\n content: '',\n loading: false,\n title: '',\n },\n generalData: null,\n landing: {\n sideImage: '',\n },\n sharePost: {\n isLoading: false,\n postAuthorName: '',\n postAuthorPicPath: null,\n postContents: null,\n postDate: null,\n postId: null,\n postPhotoPath: null,\n },\n showGenericError: false,\n zipCodeDetails: {\n data: null,\n error: false,\n loadingZipCodeDetails: false,\n },\n};\n\nexport default handleActions({\n APPLICATION_MESSAGES_LOADED: (state, { payload }) => ({\n ...state,\n applicationMessages: payload,\n }),\n CONTENTFUL_PAGE_LOADED: (state, { payload }) => ({\n ...state,\n contentfulPage: {\n content: payload.description?.replace(/ /g, ' ') || '',\n loading: false,\n title: payload.title || '',\n },\n }),\n DISMISS_ALERT: (state) => ({\n ...state,\n alert: {\n ...state.alert,\n visible: false,\n },\n }),\n DO_LOGOUT: () => ({ ...INITIAL_STATE }),\n GENERAL_DATA_LOADED: (state, { payload }) => ({\n ...state,\n generalData: payload,\n }),\n GET_CONTENTFUL_PAGE: (state) => ({\n ...state,\n contentfulPage: {\n ...state.contentfulPage,\n loading: true,\n },\n }),\n GET_GENERAL_DATA: (state) => ({\n ...state,\n generalData: null,\n }),\n GET_SHARE_POST_DATA: (state) => ({\n ...state,\n sharePost: {\n ...state.sharePost,\n isLoading: true,\n },\n }),\n GET_SHARE_POST_DATA_FAILED: (state) => ({\n ...state,\n sharePost: {\n ...state.sharePost,\n isLoading: false,\n },\n }),\n GET_SHARE_POST_DATA_SUCCESS: (state, { payload }) => ({\n ...state,\n sharePost: {\n ...state.sharePost,\n isLoading: false,\n postAuthorName: payload.PostAuthorName,\n postAuthorPicPath: payload.PostAuthorPicturePath,\n postContents: payload.PostContents,\n postDate: getDateForPostShare(payload.PostDate),\n postId: payload.PostId,\n postPhotoPath: payload.PostPhotoPath,\n },\n }),\n LINK_MESSAGE_SENT: (state, { payload }) => ({\n ...state,\n comingSoon: {\n ...state.comingSoon,\n isSendingMessage: false,\n messageSent: payload,\n },\n }),\n LOAD_ZIP_CODE_DETAILS: (state) => ({\n ...state,\n zipCodeDetails: {\n ...state.zipCodeDetails,\n error: false,\n loadingZipCodeDetails: true,\n },\n }),\n LOAD_ZIP_CODE_DETAILS_FAILED: (state) => ({\n ...state,\n zipCodeDetails: {\n data: null,\n error: true,\n loadingZipCodeDetails: false,\n },\n }),\n LOAD_ZIP_CODE_DETAILS_RESTARTED: (state) => ({\n ...state,\n zipCodeDetails: {\n data: null,\n error: false,\n loadingZipCodeDetails: false,\n },\n }),\n PUBLIC_SIDE_IMAGE_LOADED: (state, { payload }) => ({\n ...state,\n landing: {\n ...state.landing,\n sideImage: payload,\n },\n }),\n SEND_LINK_MESSAGE: (state) => ({\n ...state,\n comingSoon: {\n ...state.comingSoon,\n isSendingMessage: true,\n messageSent: false,\n },\n }),\n SEND_MESSAGE_RESTARTED: (state) => ({\n ...state,\n comingSoon: {\n ...state.comingSoon,\n isSendingMessage: false,\n messageSent: false,\n },\n }),\n SHOW_ALERT: (\n state,\n {\n payload: {\n data: {\n body,\n error,\n image,\n imageSize = 64,\n inputErrorCallback,\n inputLabel,\n inputType,\n maxLength,\n overlayClose = false,\n placeholder,\n primaryAction,\n primaryText,\n secondaryAction,\n secondaryText,\n subText,\n subtitle,\n title,\n type = 'confirm',\n },\n },\n },\n ) => ({\n ...state,\n alert: {\n ...state.alert,\n body,\n error,\n image,\n imageSize,\n inputErrorCallback,\n inputLabel,\n inputType,\n maxLength,\n overlayClose,\n placeholder,\n primaryAction,\n primaryText,\n secondaryAction,\n secondaryText,\n subText,\n subtitle,\n title,\n type,\n visible: true,\n },\n }),\n SHOW_GENERIC_ERROR: (state, { payload }) => ({\n ...state,\n showGenericError: payload,\n }),\n ZIP_CODE_DETAILS_LOADED: (state, { payload }) => ({\n ...state,\n zipCodeDetails: {\n data: payload,\n error: false,\n loadingZipCodeDetails: false,\n },\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n isVisible: false,\n paymentMethodData: {},\n policiesList: [],\n policiesToUpdate: [],\n sameBillingAddress: false,\n showLoading: false,\n userInformation: {},\n};\n\nexport default handleActions({\n CLOSE_MULTI_POLICIES_MODAL: (state) => ({\n ...state,\n isVisible: false,\n }),\n LOAD_MULTI_POLICIES: (state, { payload }) => ({\n ...state,\n policiesList: payload.map((item) => ({\n ...item,\n isToUpdate: false,\n })),\n }),\n LOAD_POLICIES_CARD_INFORMATION: (state, { payload }) => ({\n ...state,\n policiesList: state.policiesList.map((policy) => ({\n ...policy,\n Policy: {\n ...policy.Policy,\n last4: payload.find((item) => (\n item.PolicyNumber === policy.Policy.Number\n )).AccountNumber,\n PaymentMethod: payload.find((item) => (\n item.PolicyNumber === policy.Policy.Number\n )).PaymentMethod,\n },\n })),\n }),\n OPEN_MULTI_POLICIES_MODAL: (state, { payload }) => ({\n ...state,\n isVisible: true,\n paymentMethodData: payload.paymentMethodData,\n policiesList: state.policiesList.map((item) => ({\n ...item,\n isToUpdate: false,\n })),\n policiesToUpdate: payload.policies,\n sameBillingAddress: payload.sameBillingAddress,\n userInformation: payload.userInformation,\n }),\n PAYMENT_METHOD_UPDATE_ATTEMPTED: (state) => ({\n ...state,\n showLoading: true,\n }),\n PAYMENT_METHOD_UPDATED: (state) => ({\n ...state,\n showLoading: false,\n }),\n SORT_POLICIES: (state, { payload }) => ({\n ...state,\n policiesList: payload,\n }),\n SWITCH_CHECKBOX_STATE: (state, { payload }) => ({\n ...state,\n policiesList: state.policiesList.map((item) => {\n if (item.Policy.Number === payload) {\n return {\n ...item,\n isToUpdate: !item.isToUpdate,\n };\n }\n return item;\n }),\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst emptyEmergencyContact = {\n hasNameError: false,\n hasPhoneNumberError: false,\n id: 0,\n isRequired: false,\n key: 0,\n name: '',\n nameErrorMessage: '',\n phoneNumber: '',\n phoneNumberErrorMessage: '',\n};\n\nconst INITIAL_STATE = {\n currentModalStep: {\n isFirstStep: true,\n isRemoveStep: false,\n isSecondStep: false,\n },\n data: {},\n emergencyContactsForm: [\n { ...emptyEmergencyContact, isRequired: true, key: 1 },\n { ...emptyEmergencyContact, key: 2 },\n { ...emptyEmergencyContact, key: 3 },\n ],\n error: '',\n isDeleteTagNumberRequestStarted: false,\n isEditMode: false,\n isFigoTagModalVisible: false,\n isLoadingPetInfo: false,\n isPetTagInfoRequestStarted: false,\n isTagNumberError: false,\n isTagNumberMode: false,\n petTagInfo: {\n MessageToFinder: '',\n PetId: '',\n TagNumber: '',\n },\n successPetTagDelete: false,\n successPetTagPost: false,\n tagNumberErrorMessage: '',\n};\n\nexport default handleActions({\n CONTACTS_FORM_INITIALIZED: (state, { payload }) => ({\n ...state,\n emergencyContactsForm: payload.length ? payload.map((contact, index) => ({\n hasNameError: false,\n hasPhoneNumberError: false,\n id: contact.Id,\n isRequired: index === 0,\n key: index + 1,\n name: contact.Name,\n nameErrorMessage: '',\n phoneNumber: contact.PhoneNumber,\n phoneNumberErrorMessage: '',\n })) : INITIAL_STATE.emergencyContactsForm,\n }),\n DELETE_TAG_NUMBER_FAILED: (state) => ({\n ...state,\n isDeleteTagNumberRequestStarted: false,\n }),\n DELTE_TAG_NUMBER_REQUESTED: (state) => ({\n ...state,\n isDeleteTagNumberRequestStarted: true,\n }),\n EDIT_MODE_SET: (state, { payload }) => ({\n ...state,\n isEditMode: payload,\n }),\n FAMILY_MEMBER_NAME_ERROR_MESSAGE_SETTED: (state, { payload }) => ({\n ...state,\n emergencyContactsForm: state.emergencyContactsForm.map((contact) => (\n contact.key === payload.contactKey\n ? {\n ...contact,\n hasNameError: !!payload.errorMessage,\n nameErrorMessage: payload.errorMessage,\n } : contact\n )),\n }),\n FAMILY_MEMBER_NAME_SETTED: (state, { payload }) => {\n const isNewContact = !state.emergencyContactsForm\n .find((contact) => contact.key === payload.contactKey);\n\n const newContact = {\n ...emptyEmergencyContact,\n key: payload.contactKey,\n name: payload.name,\n };\n\n return ({\n ...state,\n emergencyContactsForm: isNewContact\n ? state.emergencyContactsForm.concat(newContact)\n : state.emergencyContactsForm.map((contact) => (\n contact.key === payload.contactKey\n ? {\n ...contact,\n name: payload.name,\n } : contact\n )),\n });\n },\n FAMILY_MEMBER_PHONE_NUMBER_ERROR_MESSAGE_SETTED: (state, { payload }) => ({\n ...state,\n emergencyContactsForm: state.emergencyContactsForm.map((contact) => (\n contact.key === payload.contactKey\n ? {\n ...contact,\n hasPhoneNumberError: !!payload.errorMessage,\n phoneNumberErrorMessage: payload.errorMessage,\n } : contact\n )),\n }),\n FAMILY_MEMBER_PHONE_NUMBER_SETTED: (state, { payload }) => {\n const isNewContact = !state.emergencyContactsForm\n .find((contact) => contact.key === payload.contactKey);\n\n const newContact = {\n ...emptyEmergencyContact,\n key: payload.contactKey,\n phoneNumber: payload.phoneNumber,\n };\n\n return ({\n ...state,\n emergencyContactsForm: isNewContact\n ? state.emergencyContactsForm.concat(newContact)\n : state.emergencyContactsForm.map((contact) => (\n contact.key === payload.contactKey\n ? {\n ...contact,\n phoneNumber: payload.phoneNumber,\n } : contact\n )),\n });\n },\n FIGO_TAG_MODAL_HIDDEN: (state) => ({\n ...state,\n currentModalStep: {\n isFirstStep: true,\n isRemoveStep: false,\n isSecondStep: false,\n },\n familyMemberOneFullName: '',\n familyMemberOneFullNameErrorMessage: '',\n familyMemberOnePhoneNumberErrorMessage: '',\n familyMemberThreeFullName: '',\n familyMemberTwoFullName: '',\n isDeleteTagNumberRequestStarted: false,\n isEditMode: false,\n isFamilyMemberOneFullNameError: false,\n isFamilyMemberOnePhoneNumberError: false,\n isFamilyMemberThreeFullNameError: false,\n isFamilyMemberThreePhoneNumberError: false,\n isFamilyMemberTwoFullNameError: false,\n isFamilyMemberTwoPhoneNumberError: false,\n isFigoTagModalVisible: false,\n isPetTagInfoRequestStarted: false,\n isTagNumberError: false,\n petTagInfo: {\n FamilyMember1: {\n FirstName: '',\n LastName: '',\n PhoneNumber: '',\n },\n FamilyMember2: {\n FirstName: '',\n LastName: '',\n PhoneNumber: '',\n },\n FamilyMember3: {\n FirstName: '',\n LastName: '',\n PhoneNumber: '',\n },\n MessageToFinder: '',\n TagNumber: '',\n },\n successPetTagDelete: false,\n successPetTagPost: false,\n tagNumberErrorMessage: '',\n }),\n FIGO_TAG_MODAL_SHOWN: (state) => ({\n ...state,\n isFigoTagModalVisible: true,\n }),\n FIRST_STEP_SHOWED: (state) => ({\n ...state,\n currentModalStep: {\n isFirstStep: true,\n isRemoveStep: false,\n isSecondStep: false,\n },\n }),\n MESSAGE_TO_FINDER_SETTED: (state, { payload }) => ({\n ...state,\n petTagInfo: {\n ...state.petTagInfo,\n MessageToFinder: payload,\n },\n }),\n PET_ID_SETTED: (state, { payload }) => ({\n ...state,\n petTagInfo: {\n ...state.petTagInfo,\n PetId: payload,\n },\n }),\n PET_TAG_INFO_EDIT_MODE_SET: (state, { payload }) => ({\n ...state,\n petTagInfo: {\n ...state.petTagInfo,\n MessageToFinder: payload.messageToFinder,\n TagNumber: payload.tagNumber,\n },\n\n }),\n PET_TAG_INFO_LOAD_FAILED: (state, action) => ({\n ...state,\n error: action.payload,\n isLoadingPetInfo: false,\n }),\n PET_TAG_INFO_LOADED: (state, action) => ({\n ...state,\n data: {\n ...action.payload,\n EmergencyContacts: action.payload.EmergencyContacts.map((contact) => ({\n ...contact,\n PhoneNumber: contact.PhoneNumber\n ? contact.PhoneNumber.replace(/[()-\\s]/g, '') : '',\n })),\n },\n isLoadingPetInfo: false,\n }),\n PET_TAG_INFO_POST_FAILED: (state) => ({\n ...state,\n isPetTagInfoRequestStarted: false,\n }),\n PET_TAG_INFO_POST_REQUESTED: (state) => ({\n ...state,\n isPetTagInfoRequestStarted: true,\n }),\n PET_TAG_INFO_POSTED: (state) => ({\n ...state,\n isPetTagInfoRequestStarted: false,\n successPetTagPost: true,\n }),\n PET_TAG_INFO_REQUESTED: (state) => ({\n ...state,\n isLoadingPetInfo: true,\n }),\n PET_TAG_SETTED: (state, { payload }) => ({\n ...state,\n isTagNumberError: false,\n petTagInfo: {\n ...state.petTagInfo,\n TagNumber: payload,\n },\n tagNumberErrorMessage: '',\n }),\n REMOVE_STEP_SHOWED: (state) => ({\n ...state,\n currentModalStep: {\n isFirstStep: false,\n isRemoveStep: true,\n isSecondStep: false,\n },\n }),\n SECOND_STEP_SHOWED: (state) => ({\n ...state,\n currentModalStep: {\n isFirstStep: false,\n isRemoveStep: false,\n isSecondStep: true,\n },\n }),\n TAG_NUMBER_DELETED: (state) => ({\n ...state,\n isDeleteTagNumberRequestStarted: false,\n successPetTagDelete: true,\n }),\n TAG_NUMBER_ERROR_MESSAGE_SETTED: (state, { payload }) => ({\n ...state,\n isTagNumberError: true,\n tagNumberErrorMessage: payload,\n }),\n TAG_NUMBER_MODE_SET: (state, { payload }) => ({\n ...state,\n isTagNumberMode: payload,\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n amount: '',\n anotherPetInsurance: '',\n anotherPetInsuranceCheckbox: null,\n attachments: [],\n checkboxYes: false,\n claimsDetails: '',\n claimType: -null,\n claimTypeText: '',\n date: '',\n initialTime: null,\n isCheckReimbursementMethodDataAvailable: false,\n isComplete: false,\n isDirectReimbursementMethodDataAvailable: false,\n isSendingClaim: false,\n isSuccess: false,\n isTermAndConditionOneSelected: false,\n isTermAndConditionTwoSelected: false,\n message: '',\n name: '',\n policyNumber: '',\n selectedPet: null,\n uploadAttLoading: false,\n uploadAttSuccess: false,\n};\n\nexport default handleActions({\n ADD_ATTACHMENTS_LOAD: (state, { payload }) => ({\n ...state,\n uploadAttLoading: payload.loading,\n uploadAttSuccess: payload.success,\n }),\n CLAIM_DATE_CHANGED: (state, action) => ({\n ...state,\n date: action.payload,\n }),\n CLAIM_POLICY_CHANGED: (state, action) => ({\n ...state,\n policyNumber: action.payload,\n }),\n CLAIM_REIMBURSEMENT_CHECK_CHANGED: (state, { payload }) => ({\n ...state,\n isCheckReimbursementMethodDataAvailable: payload,\n }),\n CLAIM_REIMBURSEMENT_DIRECT_CHANGED: (state, { payload }) => ({\n ...state,\n isDirectReimbursementMethodDataAvailable: payload,\n }),\n CREATE_CLAIM: (state) => ({\n ...state,\n isSendingClaim: true,\n }),\n FILE_CLAIM_COMPLETED: (state, { payload }) => ({\n ...state,\n isComplete: true,\n isSendingClaim: false,\n isSuccess: payload.isSuccess,\n message: payload.message,\n }),\n FILE_CLAIM_NOT_COMPLETED: (state) => ({\n ...state,\n isComplete: false,\n isSendingClaim: false,\n isSuccess: false,\n }),\n FILE_CLAIMS_AMOUNT_CHANGED: (state, { payload }) => ({\n ...state,\n amount: payload,\n }),\n FILE_CLAIMS_ANOTHER_PET_INSURANCE_CHANGED: (state, { payload }) => ({\n ...state,\n anotherPetInsurance: payload,\n }),\n FILE_CLAIMS_ANOTHER_PET_INSURANCE_SELECTED: (state, { payload }) => ({\n ...state,\n anotherPetInsuranceCheckbox: true,\n checkboxYes: payload,\n }),\n FILE_CLAIMS_ATTACHMENT_ADDED: (state, { payload }) => ({\n ...state,\n attachments: [\n ...state.attachments,\n payload,\n ],\n }),\n FILE_CLAIMS_ATTACHMENT_REMOVED: (state, { payload }) => ({\n ...state,\n attachments:\n state.attachments.filter((attachment) => attachment.key !== payload),\n }),\n FILE_CLAIMS_ATTACHMENT_UPDATED: (state, { payload }) => ({\n ...state,\n attachments:\n state.attachments.map((attachment) => (\n attachment.key !== payload.key\n ? attachment\n : {\n ...attachment,\n ...payload,\n })),\n }),\n FILE_CLAIMS_DETAILS_CHANGED: (state, { payload }) => ({\n ...state,\n claimsDetails: payload,\n }),\n FILE_CLAIMS_NAME_CHANGED: (state, { payload }) => ({\n ...state,\n name: payload,\n }),\n FILE_CLAIMS_RESTART: () => ({\n ...INITIAL_STATE,\n }),\n FILE_CLAIMS_TYPE_CHANGED: (state, { payload }) => ({\n ...state,\n claimType: payload.claimTypeId,\n claimTypeText: payload.claimTypeDescription,\n }),\n INITIAL_TIME_SET: (state, { payload }) => ({\n ...state,\n initialTime: payload.initialTime,\n }),\n NEW_CLAIM_CANCELLED: (state) => ({\n ...state,\n date: '',\n }),\n SELECTED_PET_CHANGED: (state, action) => ({\n ...state,\n selectedPet: action.payload,\n }),\n TERM_AND_CONDITION_ONE_SELECTED: (state, { payload }) => ({\n ...state,\n isTermAndConditionOneSelected: payload,\n }),\n TERM_AND_CONDITION_TWO_SELECTED: (state, { payload }) => ({\n ...state,\n isTermAndConditionTwoSelected: payload,\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n isSendingMessage: false,\n loadingLostPetData: false,\n lostPetData: null,\n lostPetDataError: '',\n lostPetTag: '',\n sendMessageAttempted: false,\n sendMessageSuccess: false,\n};\n\nexport default handleActions({\n CONTACT_PET_FAMILY: (state) => ({\n ...state,\n isSendingMessage: true,\n }),\n LOST_PET_TAG_CHANGED: (state, { payload }) => ({\n ...state,\n lostPetTag: payload,\n }),\n RESTART_PET_TAG_SEARCH: () => ({ ...INITIAL_STATE }),\n SEARCH_PET_TAG_ATTEMPT: (state) => ({\n ...state,\n loadingLostPetData: true,\n }),\n SEARCH_PET_TAG_FAILED: (state, { payload }) => ({\n ...state,\n loadingLostPetData: false,\n lostPetDataError: payload,\n }),\n SEARCH_PET_TAG_FOUND: (state, { payload }) => ({\n ...state,\n loadingLostPetData: false,\n lostPetData: payload,\n }),\n SEARCH_PET_TAG_RESET: (state) => ({ ...state, lostPetData: null }),\n SEND_MESSAGE_FAILED: (state) => ({\n ...state,\n isSendingMessage: false,\n sendMessageAttempted: true,\n sendMessageSuccess: false,\n }),\n SEND_MESSAGE_SUCCEED: (state) => ({\n ...state,\n isSendingMessage: false,\n sendMessageAttempted: true,\n sendMessageSuccess: true,\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\nimport { sortListByName } from '../services/utils';\n\nconst INITIAL_STATE = {\n articles: [],\n articlesRequested: false,\n contactInfo: [],\n currentSkip: 0,\n getPetWisdomFailed: false,\n isPetWisdomLoading: true,\n limit: 0,\n loadingArticles: false,\n loadingMore: false,\n petWisdomInfo: {},\n tags: [],\n totalItems: 0,\n};\n\nexport default handleActions({\n ARTICLES_CLEANED: () => ({\n ...INITIAL_STATE,\n }),\n ARTICLES_LOAD_FAILED: (store) => ({\n ...store,\n loadingArticles: false,\n }),\n ARTICLES_LOADED: (store, { payload }) => ({\n ...store,\n articles: [\n ...store.articles,\n ...payload.Items,\n ],\n articlesRequested: true,\n currentSkip: payload.Skip,\n limit: payload.Limit,\n loadingArticles: false,\n loadingMore: false,\n tags: [\n ...new Set(sortListByName({\n ascendent: true,\n fieldName: 'TagName',\n list: [\n ...store.tags,\n ...payload.TagsAndColors.map((tag) => ({\n ...tag,\n TagName: tag.TagName.toUpperCase(),\n })),\n ],\n })),\n ],\n totalItems: payload.Total,\n }),\n GET_ARTICLES: (store, { payload }) => ({\n ...store,\n loadingArticles: payload.firstLoad,\n loadingMore: !payload.firstLoad,\n }),\n GET_CONTACT_BRAND_DATA_LOADED: (store, { payload }) => ({\n ...store,\n contactInfo: payload,\n }),\n GET_PET_WISDOM_ATTEMPT: (state) => ({\n ...state,\n getPetWisdomFailed: false,\n isPetWisdomLoading: true,\n petWisdomInfo: {},\n }),\n PET_WISDOM_FAILED: (state) => ({\n ...state,\n getPetWisdomFailed: true,\n isPetWisdomLoading: false,\n petWisdomInfo: {},\n }),\n PET_WISDOM_LOADED: (state, { payload }) => ({\n ...state,\n getPetWisdomFailed: false,\n isPetWisdomLoading: false,\n petWisdomInfo: payload,\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n downloadingFiles: false,\n error: '',\n errorOnAction: false,\n filePermissions: null,\n filesMovedSuccesfully: false,\n fileTaggedSuccesfully: false,\n folderContent: [],\n folderDeleteLoading: false,\n folderStructure: [],\n isRecentFilesLoading: false,\n itemDeletedSuccesfully: false,\n itemDeleteLoading: false,\n loading: false,\n markingFilesAsRead: false,\n moveFolder: {\n loading: false,\n success: false,\n },\n movingFiles: false,\n nameChangedSuccessfully: false,\n nameChangeError: '',\n nameChangeLoading: false,\n newFolder: {\n error: '',\n loading: false,\n success: false,\n },\n recentFiles: [],\n recentFilesError: '',\n tagPetLoading: false,\n uploadFiles: {\n filesAttached: [],\n uploadedSuccessfully: false,\n uploading: false,\n },\n viewFileData: null,\n viewFileLoading: false,\n viewFileVisible: false,\n};\n\nexport default handleActions({\n CHANGE_NAME: (state) => ({\n ...state,\n nameChangeError: '',\n nameChangeLoading: true,\n }),\n CHANGE_NAME_FAILED: (state, { payload }) => ({\n ...state,\n nameChangeError: payload,\n nameChangeLoading: false,\n }),\n CHANGE_NAME_RESTARTED: (state) => ({\n ...state,\n nameChangedSuccessfully: false,\n nameChangeError: '',\n nameChangeLoading: false,\n }),\n CHANGE_NAME_SUCCESS: (state) => ({\n ...state,\n nameChangedSuccessfully: true,\n nameChangeError: '',\n nameChangeLoading: false,\n }),\n CREATE_FOLDER: (state) => ({\n ...state,\n newFolder: {\n error: '',\n loading: true,\n success: false,\n },\n }),\n CREATE_FOLDER_FAILED: (state, { payload }) => ({\n ...state,\n newFolder: {\n error: payload,\n loading: false,\n },\n }),\n CREATE_FOLDER_RESET: (state) => ({\n ...state,\n newFolder: {\n error: '',\n loading: false,\n success: false,\n },\n }),\n CREATE_FOLDER_SUCCESS: (state) => ({\n ...state,\n newFolder: {\n error: '',\n loading: false,\n success: true,\n },\n }),\n DELETE_FAILED: (state, { payload }) => ({\n ...state,\n errorOnAction: payload,\n folderDeleteLoading: false,\n itemDeletedSuccesfully: false,\n itemDeleteLoading: false,\n }),\n DELETE_FILES: (state) => ({\n ...state,\n itemDeleteLoading: true,\n }),\n DELETE_FOLDER: (state) => ({\n ...state,\n folderDeleteLoading: true,\n }),\n DELETE_RESTARTED: (state) => ({\n ...state,\n errorOnAction: '',\n folderDeleteLoading: false,\n itemDeletedSuccesfully: false,\n itemDeleteLoading: false,\n }),\n DELETE_SUCCESS: (state) => ({\n ...state,\n errorOnAction: '',\n folderDeleteLoading: false,\n itemDeletedSuccesfully: true,\n itemDeleteLoading: false,\n }),\n DOWNLOAD_FILES: (state) => ({\n ...state,\n downloadingFiles: true,\n }),\n ERROR_VIEW_FILE: (state) => ({\n ...state,\n viewFileData: null,\n viewFileLoading: false,\n viewFileVisible: false,\n }),\n FILE_PERMISSIONS_LOADED: (state, { payload }) => ({\n ...state,\n filePermissions: payload,\n }),\n FILE_TO_UPLOAD_REMOVED: (state, { payload }) => ({\n ...state,\n uploadFiles: {\n ...state.uploadFiles,\n filesAttached: state.uploadFiles.filesAttached\n .filter((file) => file.key !== payload),\n },\n }),\n FILE_TO_UPLOAD_UPDATED: (state, { payload }) => ({\n ...state,\n uploadFiles: {\n ...state.uploadFiles,\n filesAttached: state.uploadFiles.filesAttached\n .map((file) => (file.key !== payload.fileKey\n ? file\n : {\n ...file,\n ...payload.newValues,\n })),\n },\n }),\n FILES_DOWNLOADED: (state) => ({\n ...state,\n downloadingFiles: false,\n }),\n FILES_MARKED_AS_READ: (state, { payload }) => ({\n ...state,\n folderContent: state.folderContent.map((item) => (payload.includes(item.Id)\n ? {\n ...item,\n Metadata: { ...item.Metadata, IsRead: true },\n }\n : item)),\n markingFilesAsRead: false,\n }),\n FILES_MOVED: (state) => ({\n ...state,\n errorOnAction: false,\n filesMovedSuccesfully: true,\n movingFiles: false,\n }),\n FILES_TO_UPLOAD_ADDED: (state, { payload }) => ({\n ...state,\n uploadFiles: {\n ...state.uploadFiles,\n filesAttached: [...state.uploadFiles.filesAttached, payload],\n },\n }),\n FILES_UPLOADED: (state) => ({\n ...state,\n uploadFiles: {\n ...state.uploadFiles,\n uploadedSuccessfully: true,\n uploading: false,\n },\n }),\n FOLDER_LOADED: (state, { payload }) => ({\n ...state,\n folderContent: payload,\n loading: false,\n }),\n FOLDER_MOVED: (state) => ({\n ...state,\n moveFolder: {\n ...state.moveFolder,\n loading: false,\n success: true,\n },\n }),\n FOLDER_STRUCTURE_LOADED: (state, { payload }) => ({\n ...state,\n folderStructure: payload,\n }),\n LOAD_FOLDER_CONTENT: (state) => ({\n ...state,\n loading: true,\n }),\n LOAD_FOLDER_FAILED: (state, { payload }) => ({\n ...state,\n error: payload,\n folderContent: [],\n loading: false,\n }),\n LOAD_FOLDER_STRUCTURE: (state) => ({\n ...state,\n newFolder: {\n ...state.newFolder,\n error: '',\n loading: false,\n success: false,\n },\n }),\n MARK_FILES_AS_READ_ATTEMPTED: (state) => ({\n ...state,\n markingFilesAsRead: true,\n }),\n MOVE_FILES: (state) => ({\n ...state,\n errorOnAction: false,\n filesMovedSuccesfully: false,\n movingFiles: true,\n }),\n MOVE_FILES_FAILED: (state) => ({\n ...state,\n errorOnAction: true,\n filesMovedSuccesfully: false,\n movingFiles: false,\n }),\n MOVE_FILES_RESTARTED: (state) => ({\n ...state,\n filesMovedSuccesfully: false,\n movingFiles: false,\n }),\n MOVE_FOLDER: (state) => ({\n ...state,\n moveFolder: {\n ...state.moveFolder,\n loading: true,\n success: false,\n },\n }),\n MOVE_FOLDER_RESTARTED: (state) => ({\n ...state,\n moveFolder: {\n ...state.moveFolder,\n loading: false,\n success: false,\n },\n }),\n RECENT_FILES_LOAD_FAILED: (state, { payload }) => ({\n ...state,\n isRecentFilesLoading: false,\n recentFilesError: payload,\n }),\n RECENT_FILES_LOADED: (state, { payload }) => ({\n ...state,\n isRecentFilesLoading: false,\n recentFiles: payload,\n }),\n RECENT_FILES_REQUESTED: (state) => ({\n ...state,\n isRecentFilesLoading: true,\n }),\n REFRESH_FOLDER_CONTENT: (state) => ({\n ...state,\n loading: true,\n }),\n SHOW_VIEW_FILE: (state) => ({\n ...state,\n viewFileLoading: true,\n viewFileVisible: true,\n }),\n SHOWED_VIEW_FILE: (state, { payload }) => ({\n ...state,\n viewFileData: payload,\n viewFileLoading: false,\n }),\n TAG_PET_FILE: (state) => ({\n ...state,\n error: '',\n fileTaggedSuccesfully: false,\n tagPetLoading: true,\n }),\n TAG_PET_FILE_FAILED: (state, { payload }) => ({\n ...state,\n error: payload,\n fileTaggedSuccesfully: false,\n tagPetLoading: false,\n }),\n TAG_PET_FILE_RESTARTED: (state) => ({\n ...state,\n error: '',\n fileTaggedSuccesfully: false,\n tagPetLoading: false,\n }),\n TAG_PET_FILE_SUCCESS: (state) => ({\n ...state,\n error: '',\n fileTaggedSuccesfully: true,\n tagPetLoading: false,\n }),\n UPLOAD_FILES: (state) => ({\n ...state,\n uploadFiles: {\n ...state.uploadFiles,\n uploadedSuccessfully: false,\n uploading: true,\n },\n }),\n UPLOAD_FILES_RESTARTED: (state) => ({\n ...state,\n uploadFiles: {\n filesAttached: [],\n uploadedSuccessfully: false,\n uploading: false,\n },\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst WEB_VIEW_INITIAL_STATE = {\n isLoading: false,\n url: '',\n webViewType: -1,\n};\n\nconst INITIAL_STATE = {\n webViewData: WEB_VIEW_INITIAL_STATE,\n};\n\nexport default handleActions({\n WEB_VIEW_MULTIBRAND_ATTEMPT: (state) => ({\n ...state,\n webViewData: {\n ...WEB_VIEW_INITIAL_STATE,\n isLoading: true,\n },\n }),\n\n WEB_VIEW_MULTIBRAND_FAILED: (state) => ({\n ...state,\n webViewData: { ...WEB_VIEW_INITIAL_STATE },\n }),\n\n WEB_VIEW_MULTIBRAND_RESET: (state) => ({\n ...state,\n webViewData: { ...WEB_VIEW_INITIAL_STATE },\n }),\n\n WEB_VIEW_MULTIBRAND_SUCCESS: (state, action) => ({\n ...state,\n webViewData: {\n isLoading: false,\n url: action.payload.data,\n webViewType: action.payload.webViewType,\n },\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n pageHasChanges: false,\n petCloudAccount: {\n loginEmail: '',\n },\n showConfirmChangesModal: false,\n showEmailChangeModal: false,\n showForgotPasswordModal: false,\n showUnsavedModal: false,\n};\n\nexport default handleActions({\n DISPLAY_CONFIRM_CHANGES_MODAL: (state, { payload }) => ({\n ...state,\n showConfirmChangesModal: payload.showConfirmChangesModal,\n }),\n DISPLAY_EMAIL_CHANGE_MODAL: (state, { payload }) => ({\n ...state,\n showEmailChangeModal: payload.showEmailChangeModal,\n }),\n DISPLAY_FORGOT_PASSWORD_MODAL: (state, { payload }) => ({\n ...state,\n showForgotPasswordModal: payload.showForgotPasswordModal,\n }),\n DISPLAY_UNSAVED_MODAL: (state, { payload }) => ({\n ...state,\n showUnsavedModal: payload.showUnsavedModal,\n }),\n MY_ACCOUNT_EMAIL_CHANGED: (state, { payload }) => ({\n ...state,\n petCloudAccount: {\n ...state.petCloudAccount,\n loginEmail: payload.value,\n },\n }),\n MY_ACCOUNT_HAS_CHANGES: (state, { payload }) => ({\n ...state,\n pageHasChanges: payload.pageHasChanges,\n }),\n}, [INITIAL_STATE]);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n addedPetId: null,\n breedData: {\n catBreeds: [],\n dogBreeds: [],\n },\n error: false,\n loading: false,\n message: '',\n microchipCompanies: [],\n microchipData: {},\n petProfile: {},\n petProfileFailed: false,\n petProfileLoading: false,\n selectedPetId: null,\n showMicrochipModal: false,\n success: false,\n};\n\nexport default handleActions({\n ADD_PET: (state) => ({\n ...state,\n error: false,\n loading: true,\n success: false,\n }),\n ADD_PET_FAILED: (state) => ({\n ...state,\n addedPetId: null,\n error: true,\n loading: false,\n success: false,\n }),\n ADD_PET_RESTARTED: (state) => ({\n ...state,\n addedPetId: null,\n error: false,\n loading: false,\n success: false,\n }),\n BREED_DATA_LOADED: (state, { payload }) => ({\n ...state,\n breedData: {\n ...state.breedData,\n catBreeds: payload.catBreeds,\n dogBreeds: payload.dogBreeds,\n },\n }),\n DELETE_PET: (state) => ({\n ...state,\n error: false,\n loading: true,\n success: false,\n }),\n DELETE_PET_FAILED: (state) => ({\n ...state,\n error: true,\n loading: false,\n success: false,\n }),\n EDIT_PET: (state) => ({\n ...state,\n error: false,\n loading: true,\n success: false,\n }),\n MICROCHIP_DATA_CLEARED: (state) => ({\n ...state,\n microchipCompanies: [],\n microchipData: {},\n }),\n MICROCHIP_DATA_LOADED: (state, { payload }) => ({\n ...state,\n microchipCompanies: payload.companies,\n microchipData: payload.data,\n }),\n MICROCHIP_FAILED: (state) => ({\n ...state,\n error: true,\n loading: false,\n success: false,\n }),\n MICROCHIP_MODAL_VISIBLE: (state, { payload }) => ({\n ...state,\n error: false,\n loading: false,\n showMicrochipModal: payload.isVisible,\n success: false,\n }),\n MICROCHIP_SAVED: (state, { payload }) => ({\n ...state,\n error: false,\n loading: false,\n microchipData: payload,\n success: true,\n }),\n PET_ADDED: (state, { payload }) => ({\n ...state,\n addedPetId: payload.addedPetId,\n error: false,\n loading: false,\n success: true,\n }),\n PET_DELETED: (state) => ({\n ...state,\n error: false,\n loading: false,\n success: true,\n }),\n PET_EDITED: (state) => ({\n ...state,\n error: false,\n loading: false,\n success: true,\n }),\n PET_PHOTO_REMOVED: (state) => ({\n ...state,\n error: false,\n loading: false,\n success: true,\n }),\n PET_PROFILE_FAILED: (state) => ({\n ...state,\n error: true,\n loading: false,\n petProfileFailed: true,\n }),\n PET_PROFILE_LOAD_ATTEMPT: (state) => ({\n ...state,\n error: false,\n petProfile: {},\n petProfileFailed: false,\n petProfileLoading: true,\n }),\n PET_PROFILE_LOADED: (state, { payload }) => ({\n ...state,\n petProfile: payload,\n petProfileLoading: false,\n selectedPetId: payload.Id,\n }),\n PET_PROFILE_REDIRECTED: (state) => ({\n ...state,\n petProfileFailed: false,\n selectedPetId: null,\n }),\n REMOVE_PET_PHOTO: (state) => ({\n ...state,\n error: false,\n loading: true,\n success: false,\n }),\n REMOVE_PET_PHOTO_FAILED: (state) => ({\n ...state,\n error: true,\n loading: false,\n success: false,\n }),\n SAVE_MICROCHIP: (state) => ({\n ...state,\n error: false,\n loading: true,\n success: false,\n }),\n SET_SELECTED_PET_ID: (state, { payload }) => ({\n ...state,\n selectedPetId: payload,\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n addVetError: false,\n checkedPrimaryVet: false,\n checkingPrimaryVet: false,\n customVetFailed: '',\n favoriteVets: [],\n hasPrimaryVet: false,\n isEditingZipCode: false,\n isLoadingFavorites: true,\n isLoadingVets: false,\n isRemovingPet: false,\n isSavingCustomVet: false,\n isSavingVet: false,\n isValidatingZipCode: false,\n isValidZipCode: true,\n lastZipcodeLoaded: '',\n pointInterestFailed: '',\n removePetSuccess: false,\n vetCustomSaved: false,\n vetSaved: false,\n vetsFound: [],\n};\n\nexport default handleActions({\n ADD_CUSTOM_TO_FAVORITES: (state) => ({\n ...state,\n isSavingCustomVet: true,\n vetCustomSaved: false,\n }),\n ADD_CUSTOM_TO_FAVORITES_FAILED: (state, { payload }) => ({\n ...state,\n customVetFailed: payload,\n }),\n ADD_POINT_INTEREST_FAILED: (state, { payload }) => ({\n ...state,\n pointInterestFailed: payload,\n }),\n ADD_TO_FAVORITES: (state) => ({\n ...state,\n addVetError: false,\n isSavingVet: true,\n vetSaved: false,\n }),\n ADD_TO_FAVORITES_FAILED: (state) => ({\n ...state,\n addVetError: true,\n isSavingVet: false,\n vetSaved: false,\n }),\n ADDED_TO_FAVORITES: (state) => ({\n ...state,\n isSavingCustomVet: false,\n isSavingVet: false,\n vetCustomSaved: true,\n vetSaved: true,\n }),\n CHECK_IF_HAS_PRIMARY_VET: (state) => ({\n ...state,\n checkingPrimaryVet: true,\n }),\n CLEAN_MY_VETS_ERRORS: (state) => ({\n ...state,\n addVetError: false,\n isSavingCustomVet: false,\n isSavingVet: false,\n vetCustomSaved: false,\n vetSaved: false,\n }),\n GET_ALL_FAVORITES_ATTEMPT: (state) => ({\n ...state,\n favoriteVets: [],\n isLoadingFavorites: true,\n removePetSuccess: false,\n }),\n HAS_PRIMARY_VET_CHECKED: (state, { payload }) => ({\n ...state,\n checkedPrimaryVet: true,\n checkingPrimaryVet: false,\n hasPrimaryVet: payload,\n }),\n PRIMARY_VET_SAVE_FAILED: (state) => ({\n ...state,\n addVetError: true,\n hasPrimaryVet: false,\n isSavingVet: false,\n vetSaved: false,\n }),\n PRIMARY_VET_SAVED: (state) => ({\n ...state,\n hasPrimaryVet: true,\n isSavingVet: false,\n vetSaved: true,\n }),\n REMOVE_VET: (state) => ({\n ...state,\n isRemovingPet: true,\n }),\n REMOVE_VET_FAILED: (state) => ({\n ...state,\n isRemovingPet: false,\n }),\n REMOVE_VET_SUCCESS: (state) => ({\n ...state,\n checkedPrimaryVet: false,\n isRemovingPet: false,\n removePetSuccess: true,\n }),\n SAVE_PRIMARY_VET: (state) => ({\n ...state,\n isSavingVet: true,\n }),\n SEARCH_PRIMARY_VETS: (state) => ({\n ...state,\n isLoadingVets: true,\n }),\n SEARCH_VETS: (state) => ({\n ...state,\n isLoadingVets: true,\n lastZipcodeLoaded: '',\n vetsFound: [],\n }),\n SET_FAVORITES: (state, { payload }) => ({\n ...state,\n favoriteVets: payload,\n isLoadingFavorites: false,\n }),\n VALIDATE_ZIP_CODE_ATTEMPT: (state) => ({\n ...state,\n isValidatingZipCode: true,\n isValidZipCode: true,\n }),\n VALIDATE_ZIP_CODE_FAILED: (state) => ({\n ...state,\n isEditingZipCode: false,\n isValidatingZipCode: false,\n isValidZipCode: false,\n }),\n VALIDATE_ZIP_CODE_SUCCESS: (state) => ({\n ...state,\n isEditingZipCode: false,\n isValidatingZipCode: false,\n isValidZipCode: true,\n }),\n VET_CUSTOM_SAVED_CLEARED: (state) => ({\n ...state,\n vetCustomSaved: false,\n }),\n VET_ZIP_CODE_CHANGED: (state) => ({\n ...state,\n isEditingZipCode: true,\n isValidatingZipCode: false,\n isValidZipCode: false,\n }),\n VETS_SEARCH_CLEARED: (state) => ({\n ...state,\n isLoadingVets: false,\n lastZipcodeLoaded: '',\n vetsFound: [],\n }),\n VETS_SEARCHED: (state, { payload }) => ({\n ...state,\n isLoadingVets: false,\n lastZipcodeLoaded: payload.zipCode,\n vetsFound: payload.map((vet) => ({\n ...vet,\n BackgroundImage: vet.Thumbnail,\n Provider: vet.Provider || 1,\n Title: vet.PlaceName,\n })),\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\nimport { ONE_INC_EMPTY_ACH, ONE_INC_EMPTY_CC } from '../constants';\n\nconst INITIAL_STATE = {\n bankAccount: { ...ONE_INC_EMPTY_ACH },\n creditCard: { ...ONE_INC_EMPTY_CC },\n customerId: '',\n defaultPayments: [],\n defaultTokenACH: '',\n defaultTokenCC: '',\n isTwoDefaults: false,\n loadingDefaultMethods: false,\n paymentCategory: '',\n paymentName: '',\n portalOneSessionKey: '',\n showModal: 0,\n tokenId: '',\n};\n\nexport default handleActions({\n ONE_INC_DEFAULTS_PAYMENT_FAILED: (state) => ({\n ...state,\n loadingDefaultMethods: false,\n }),\n ONE_INC_DEFAULTS_PAYMENT_LOADED: (state, { payload }) => ({\n ...state,\n bankAccount: payload.bankAccountDefault || { ...ONE_INC_EMPTY_ACH },\n creditCard: payload.creditCardDefault || { ...ONE_INC_EMPTY_CC },\n defaultPayments: payload.BillingInfoList,\n defaultTokenACH: payload.defaultTokenACH,\n defaultTokenCC: payload.defaultTokenCC,\n isTwoDefaults: payload.isTwoDefaults,\n loadingDefaultMethods: false,\n showModal: state.showModal + 1,\n }),\n ONE_INC_LOAD_DEFAULT_PAYMENTS: (state) => ({\n ...state,\n loadingDefaultMethods: true,\n }),\n ONE_INC_PAYMENT_BANK_SAVED: (state, { payload }) => ({\n ...state,\n bankAccount: payload.data,\n creditCard: { ...INITIAL_STATE.creditCard },\n isTwoDefaults: true,\n paymentCategory: payload.data.paymentCategory,\n tokenId: payload.data.tokenId,\n }),\n ONE_INC_PAYMENT_CREDIT_CARD_SAVED: (state, { payload }) => ({\n ...state,\n bankAccount: { ...INITIAL_STATE.bankAccount },\n creditCard: payload.data,\n isTwoDefaults: false,\n paymentCategory: payload.data.paymentCategory,\n tokenId: payload.data.tokenId,\n }),\n ONE_INC_PAYMENT_RESET: () => ({\n ...INITIAL_STATE,\n }),\n ONE_INC_SESSION_CREATED: (state, { payload }) => ({\n ...state,\n portalOneSessionKey: payload,\n }),\n ONE_INC_SESSION_REMOVED: (state) => ({\n ...state,\n portalOneSessionKey: '',\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n getQuoteValidation: {\n hasMultipleOrcaPolicies: false,\n loading: false,\n policyProvider: '',\n requested: false,\n webviewsData: null,\n },\n powerUpDetails: null,\n powerUpDetailsLoading: false,\n};\n\nexport default handleActions({\n BREED_MULTIBRAND_VALIDATION_FAILED: (state) => ({\n ...state,\n getQuoteValidation: {\n ...state.getQuoteValidation,\n hasMultipleOrcaPolicies: false,\n loading: false,\n policyProvider: null,\n requested: false,\n },\n }),\n BREED_MULTIBRAND_VALIDATION_SUCCEED: (state, { payload }) => ({\n ...state,\n getQuoteValidation: {\n ...state.getQuoteValidation,\n hasMultipleOrcaPolicies: payload.hasMultipleOrcaPolicies,\n loading: false,\n policyProvider: payload.policyProvider,\n requested: true,\n webviewsData: payload.webviewsData,\n },\n }),\n ORCA_GET_POWER_UP_ATTEMPT: (state) => ({\n ...state,\n powerUpDetails: null,\n powerUpDetailsLoading: true,\n }),\n ORCA_GET_POWER_UP_FAILED: (state) => ({\n ...state,\n powerUpDetailsLoading: false,\n }),\n ORCA_GET_POWER_UP_LOADED: (state, { payload }) => ({\n ...state,\n powerUpDetails: payload,\n powerUpDetailsLoading: false,\n }),\n RESET_VALIDATION_BREED_MULTIBRAND: (state) => ({\n ...state,\n getQuoteValidation: {\n ...INITIAL_STATE.getQuoteValidation,\n },\n }),\n VALIDATE_BREED_MULTIBRAND: (state) => ({\n ...state,\n getQuoteValidation: {\n ...state.getQuoteValidation,\n hasMultipleOrcaPolicies: false,\n loading: true,\n policyProvider: null,\n requested: false,\n },\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n acceptAddressUpdateLoading: false,\n address1: '',\n address2: '',\n addressUpdateError: null,\n areNamesUpdated: false,\n arePhonesUpdated: false,\n cancelingAddressUpdate: false,\n city: '',\n endorsementData: null,\n endorsementMessageModalVisible: false,\n endorsementSuccessModalVisible: false,\n errorAddress: '',\n errorUpdateInsuranceInformation: null,\n firstName: '',\n FirstNameHasNumbers: false,\n isAddress1Valid: true,\n isAddress2Valid: true,\n isCityValid: true,\n isConfirmAddressChangeModalVisible: false,\n isFirstNameValid: true,\n isLastNameValid: true,\n isMultiplePetsModal: false,\n isNamesBeingUpdated: false,\n isPhonesBeingUpdated: false,\n isPrimaryPhoneValid: true,\n isSecondaryPhoneValid: true,\n isZipCodeValid: true,\n lastName: '',\n LastNameHasNumbers: false,\n loadingUpdateInsuranceInformation: false,\n namesUpdateError: null,\n pets: [],\n petsLoading: false,\n phonesUpdateError: null,\n pictureEditing: {\n error: false,\n loading: false,\n message: '',\n success: false,\n },\n primaryPhone: '',\n PrimaryPhoneHasLetters: false,\n profile: {},\n profileLoading: false,\n secondaryPhone: '',\n SecondaryPhoneHasLetters: false,\n state: null,\n states: [],\n userInfo: {},\n zipCodeHasLetters: false,\n};\nconst NAME_REGEX = /^[a-z ,.'-]+$/i;\nconst ONLY_NUMBERS_REGEX = /^\\d+$/;\nconst PHONE_REGEX = /^[(]?[0-9]{3}[)]?[-\\s.]?[0-9]{3}[-\\s.]?[0-9]{4,6}$/im;\nconst ZIP_CODE_REGEX = /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/;\n\nexport default handleActions({\n ACCEPT_ADDRESS_UPDATE: (state, { payload }) => ({\n ...state,\n acceptAddressUpdateLoading: payload,\n }),\n ADDRESS_UPDATED: (state, { payload }) => ({\n ...state,\n address1: payload.Line1,\n address2: payload.Line2,\n addressUpdateError: null,\n isAddress1Valid: true,\n isAddress2Valid: true,\n isCityValid: true,\n isZipCodeValid: true,\n userInfo: {\n ...state.userInfo,\n Address: {\n ...state.userInfo.Address,\n City: state.city,\n Line1: payload.Line1,\n Line2: payload.Line2,\n StateId: state.state,\n ZipCode: state.zipCode,\n },\n },\n }),\n ADDRESS1_CHANGED: (state, { payload }) => ({\n ...state,\n address1: payload.value,\n errorAddress: payload.errorAddress,\n isAddress1Valid: payload.isValid,\n }),\n ADDRESS2_CHANGED: (state, { payload }) => ({\n ...state,\n address2: payload,\n }),\n AVATAR_PICTURE_REMOVED: (state) => ({\n ...state,\n pictureEditing: {\n ...state.pictureEditing,\n error: false,\n loading: false,\n success: true,\n },\n }),\n CANCEL_ADDRESS_UPDATE: (state) => ({\n ...state,\n acceptAddressUpdateLoading: false,\n cancelingAddressUpdate: true,\n }),\n CHANGE_PROFILE_PICTURE: (state) => ({\n ...state,\n pictureEditing: {\n ...INITIAL_STATE.pictureEditing,\n loading: true,\n },\n }),\n CHANGE_PROFILE_PICTURE_FAILED: (state, { payload }) => ({\n ...state,\n pictureEditing: {\n ...state.pictureEditing,\n loading: false,\n message: payload,\n },\n }),\n CHANGE_PROFILE_PICTURE_RESTART: (state) => ({\n ...state,\n pictureEditing: {\n ...state.pictureEditing,\n loading: false,\n message: '',\n success: false,\n },\n }),\n CHANGE_PROFILE_PICTURE_SUCCESS: (state) => ({\n ...state,\n pictureEditing: {\n ...state.pictureEditing,\n loading: false,\n success: true,\n },\n }),\n CITY_CHANGED: (state, { payload }) => ({\n ...state,\n city: payload,\n isCityValid: payload.length,\n }),\n CLOSE_ENDORSEMENT_SUCCESS_MODAL: (state) => ({\n ...state,\n endorsementSuccessModalVisible: false,\n }),\n CONFIRM_ADDRESS_CHANGE_MODAL_CHANGED: (state, { payload }) => ({\n ...state,\n isConfirmAddressChangeModalVisible: payload,\n }),\n COVER_PICTURE_REMOVED: (state) => ({\n ...state,\n pictureEditing: {\n ...state.pictureEditing,\n error: false,\n loading: false,\n success: true,\n },\n }),\n DISPLAY_ENDORSEMENT_MESSAGE_MODAL: (state, { payload }) => ({\n ...state,\n endorsementMessageModalVisible: payload,\n }),\n DISPLAY_ENDORSEMENT_SUCCESS_MODAL: (state) => ({\n ...state,\n endorsementSuccessModalVisible: true,\n }),\n DO_LOGOUT: () => ({ ...INITIAL_STATE }),\n ENDORSEMENT_LOADED: (state, action) => ({\n ...state,\n endorsementData: action.payload.data,\n isMultiplePetsModal: action.payload.multiplePets,\n }),\n FIRST_NAME_CHANGED: (state, { payload }) => ({\n ...state,\n areNamesUpdated: false,\n firstName: payload,\n FirstNameHasNumbers: /\\d/.test(payload),\n isFirstNameValid: NAME_REGEX.test(payload),\n }),\n FIRST_NAME_RESET: (state) => ({\n ...state,\n firstName: state.userInfo.FirstName,\n FirstNameHasNumbers: false,\n isFirstNameValid: true,\n }),\n LAST_NAME_CHANGED: (state, { payload }) => ({\n ...state,\n areNamesUpdated: false,\n isLastNameValid: NAME_REGEX.test(payload),\n lastName: payload,\n LastNameHasNumbers: /\\d/.test(payload),\n }),\n LAST_NAME_RESET: (state) => ({\n ...state,\n isLastNameValid: true,\n lastName: state.userInfo.LastName,\n LastNameHasNumbers: false,\n }),\n NAMES_UPDATED: (state, { payload }) => ({\n ...state,\n areNamesUpdated: true,\n firstName: payload.FirstName,\n isFirstNameValid: true,\n isLastNameValid: true,\n isNamesBeingUpdated: false,\n lastName: payload.LastName,\n namesUpdateError: null,\n userInfo: {\n ...state.userInfo,\n FirstName: payload.FirstName,\n LastName: payload.LastName,\n },\n }),\n PETS_LOAD_ATTEMPT: (state) => ({\n ...state,\n petsLoading: true,\n }),\n PETS_LOADED: (state, { payload }) => ({ ...state, pets: [...payload] }),\n PETS_LOADED_FINISHED: (state) => ({\n ...state,\n petsLoading: false,\n }),\n PHONES_UPDATED: (state) => ({\n ...state,\n arePhonesUpdated: true,\n isPhonesBeingUpdated: false,\n phonesUpdateError: null,\n userInfo: {\n ...state.userInfo,\n OtherPhoneNumber: state.secondaryPhone,\n PhoneNumber: state.primaryPhone,\n },\n }),\n PRIMARY_PHONE_CHANGED: (state, { payload }) => ({\n ...state,\n arePhonesUpdated: false,\n isPrimaryPhoneValid: payload\n && PHONE_REGEX.test(payload),\n primaryPhone: payload,\n PrimaryPhoneHasLetters: !ONLY_NUMBERS_REGEX.test(payload),\n }),\n REMOVE_AVATAR_PICTURE: (state) => ({\n ...state,\n pictureEditing: {\n ...state.pictureEditing,\n error: false,\n loading: true,\n success: false,\n },\n }),\n REMOVE_AVATAR_PICTURE_FAILED: (state) => ({\n ...state,\n pictureEditing: {\n ...state.pictureEditing,\n error: true,\n loading: false,\n success: false,\n },\n }),\n REMOVE_COVER_PICTURE: (state) => ({\n ...state,\n pictureEditing: {\n ...state.pictureEditing,\n error: false,\n loading: true,\n success: false,\n },\n }),\n REMOVE_COVER_PICTURE_FAILED: (state) => ({\n ...state,\n pictureEditing: {\n ...state.pictureEditing,\n error: true,\n loading: false,\n success: false,\n },\n }),\n RESET_ADDRESS: (state) => ({\n ...state,\n address1: state.userInfo.Address.Line1,\n address2: state.userInfo.Address.Line2,\n city: state.userInfo.Address.City,\n state: state.userInfo.Address.StateId,\n zipCode: state.userInfo.Address.ZipCode,\n }),\n RESET_ENDORSEMENT_DATA: (state) => ({\n ...state,\n cancelingAddressUpdate: false,\n endorsementData: null,\n }),\n RESET_INFORMATION: (state) => ({\n ...INITIAL_STATE,\n address1: state.userInfo.Address.Line1,\n address2: state.userInfo.Address.Line2 || '',\n city: state.userInfo.Address.City,\n firstName: state.userInfo.FirstName,\n lastName: state.userInfo.LastName,\n primaryPhone: state.userInfo.PhoneNumber,\n secondaryPhone: state.userInfo.OtherPhoneNumber || '',\n state: state.userInfo.Address.StateId,\n states: state.states,\n userInfo: state.userInfo,\n zipCode: state.userInfo.Address.ZipCode,\n }),\n RESET_NAME: (state) => ({\n ...state,\n firstName: state.userInfo.FirstName,\n lastName: state.userInfo.LastName,\n }),\n RESET_PHONE: (state) => ({\n ...state,\n primaryPhone: state.userInfo.PhoneNumber || '',\n secondaryPhone: state.userInfo.OtherPhoneNumber || '',\n }),\n SAVE_USER_INFO: (state, { payload }) => ({\n ...state,\n address1: payload.Address.Line1,\n address2: payload.Address.Line2 || '',\n city: payload.Address.City,\n firstName: payload.FirstName,\n lastName: payload.LastName,\n primaryPhone: payload.PhoneNumber,\n secondaryPhone: payload.OtherPhoneNumber || '',\n state: payload.Address.StateId,\n userInfo: payload,\n zipCode: payload.Address.ZipCode,\n }),\n SAVE_USER_INFO_ADDRESS: (state, { payload }) => ({\n ...state,\n userInfo: {\n ...state.userInfo,\n Address: {\n ...state.userInfo.Address,\n City: payload.city,\n StateId: payload.state,\n ZipCode: payload.zipCode,\n },\n },\n }),\n SECONDARY_PHONE_CHANGED: (state, { payload }) => ({\n ...state,\n arePhonesUpdated: false,\n isSecondaryPhoneValid: payload\n && PHONE_REGEX.test(payload),\n secondaryPhone: payload,\n SecondaryPhoneHasLetters: !ONLY_NUMBERS_REGEX.test(payload),\n }),\n SECONDARY_PHONE_RESET: (state) => ({\n ...state,\n isSecondaryPhoneValid: true,\n secondaryPhone: '',\n }),\n SOCIAL_PROFILE_LOAD_ATTEMPT: (state) => ({\n ...state,\n profileLoading: true,\n }),\n SOCIAL_PROFILE_LOADED: (state, { payload }) => ({\n ...state,\n profile: payload,\n }),\n SOCIAL_PROFILE_LOADED_FINISHED: (state) => ({\n ...state,\n profileLoading: false,\n }),\n STARTUP_FROM_CACHE: (state, { payload }) => ({\n ...state,\n userInfo: payload.userInfo,\n }),\n STATE_CHANGED: (state, { payload }) => ({\n ...state,\n addressUpdateError: null,\n state: payload,\n }),\n STORE_STATES: (state, { payload }) => ({\n ...state,\n states: payload,\n }),\n UPDATE_INSURANCE_INFORMATION: (state) => ({\n ...state,\n loadingUpdateInsuranceInformation: true,\n }),\n UPDATE_INSURANCE_INFORMATION_FAILED: (state) => ({\n ...state,\n errorUpdateInsuranceInformation: true,\n loadingUpdateInsuranceInformation: false,\n }),\n UPDATE_INSURANCE_INFORMATION_SUCCESS: (state) => ({\n ...state,\n errorUpdateInsuranceInformation: false,\n loadingUpdateInsuranceInformation: false,\n }),\n UPDATE_NAMES: (state) => ({\n ...state,\n areNamesUpdated: false,\n isNamesBeingUpdated: true,\n }),\n UPDATE_PHONES: (state) => ({\n ...state,\n arePhonesUpdated: false,\n isPhonesBeingUpdated: true,\n }),\n UPDATE_PHONES_ERROR: (state) => ({\n ...state,\n arePhonesUpdated: false,\n isPhonesBeingUpdated: false,\n }),\n ZIPCODE_CHANGED: (state, { payload }) => ({\n ...state,\n isZipCodeValid: payload.length >= 5\n && payload.length <= 9\n && ONLY_NUMBERS_REGEX.test(payload)\n && ZIP_CODE_REGEX.test(payload),\n zipCode: payload,\n zipCodeHasLetters: ONLY_NUMBERS_REGEX.test(payload),\n }),\n}, INITIAL_STATE);\n","export const POWERUP_TYPE = 5;\n\nexport const POWER_UPS_RELATION = {\n DISMINISHING_DEDUCTIBLE: 100004,\n EXTRA_CARE_PACK_PSM_ID: 70427,\n PETPROTECT_COPAY: 100005,\n VETERINARY_EXAM_FEES_PSM_ID: 70422,\n WELLNESS_DENTAL_PSM_ID: 70430,\n WELLNESS_PSM_ID: 70428,\n};\n\nexport const PRODUCT_VALUES = {\n FPI_VALUES: [11, 12, 13, 14, 15, 16],\n IHC_VALUES: [1, 2, 3],\n};\n\nexport const WELLNESS_MODAL_ID = 2;\n\nexport const BENEFIT_FEE_TYPE = {\n dynamic: 3,\n fixedFee: 2,\n ftpFactor: 1,\n none: 0,\n};\n\nexport const WELLNESS_COVERAGE_LIMIT_FPI = {\n BASIC: [41, 42],\n PLUS: [43, 44],\n};\n\nexport const WELLNESS_MULTIMODAL_ID = {\n BASIC: 15,\n PLUS: 16,\n};\n","import { handleActions } from 'redux-actions';\nimport { POLICY_STATUS } from '../constants';\nimport { POWERUP_TYPE }\nfrom '../components/changeCoverage/powerups/powerups.constans';\n\nconst INITIAL_SELECTED_VALUES = {\n annualAmountPlan: 0,\n deductibleDescription: '',\n deductibleId: 0,\n isMonthly: true,\n loadingOverview: false,\n modifiers: [],\n monthlyAmountPlan: 0,\n petQuoteId: 0,\n reimbursementDescription: '',\n reimbursementId: 0,\n selectedAnnualBenefit: 0,\n selectedPlan: 0,\n total: 0,\n totalAnnual: 0,\n totalMonthly: 0,\n};\n\nconst INITIAL_STATE = {\n allPets: [],\n allPolicies: null,\n changeCoverage: {\n deductibleLegend: '',\n error: false,\n initialCoverageValues: INITIAL_SELECTED_VALUES,\n loading: false,\n loadingSubmit: false,\n multimodalData: null,\n multimodalDataError: false,\n powerUpLoadings: [],\n preview: {\n loaded: false,\n },\n quoteSelectedValues: INITIAL_SELECTED_VALUES,\n rate: {\n effectiveDate: null,\n error: false,\n insuranceProduct: null,\n petQuoteResponseList: [],\n rateCreated: false,\n zipCode: null,\n },\n reviewChangesVisible: false,\n success: false,\n },\n changeCoverageValidation: {\n isLoading: false,\n isSuccess: false,\n isValid: false,\n message: '',\n },\n data: [],\n defaultPolicy: null,\n error: null,\n isYoungPetModalVisible: false,\n loading: true,\n loadingDefaultPolicy: false,\n loadingOtherPolicy: false,\n loadingOverview: true,\n loadingPlanSummary: false,\n loadingPoliciesOverView: true,\n loadingSeeMoreInfo: false,\n loadingWhatWeCoverInfo: false,\n loggedInWithoutPets: false,\n multibrandPolicies: [],\n multiModalData: {},\n otherPolicyDetail: null,\n pets: [],\n planSummarySeeMoreInfo: [],\n policiesOverView: [],\n policyBenefits: [],\n policyNotifications: [],\n showPlanSummarySeeMore: false,\n waitingPeriods: null,\n whatWeCoverInfo: [],\n};\n\nexport default handleActions({\n ALL_PETS_GROUPED: (state, { payload }) => ({\n ...state,\n allPets: payload,\n }),\n CHANGE_COVERAGE_MULTIMODAL_FAILED: (state) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n multimodalData: null,\n multimodalDataError: true,\n },\n }),\n CHANGE_COVERAGE_MULTIMODAL_LOADED: (state, { payload }) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n multimodalData: payload,\n multimodalDataError: true,\n },\n }),\n CHANGE_COVERAGE_PREVIEW_LOADED: (state, { payload }) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n loading: false,\n preview: {\n ...state.changeCoverage.preview,\n loaded: true,\n ...payload,\n },\n },\n }),\n CHANGE_DEDUCTIBLE_LEGEND: (state, { payload }) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n deductibleLegend: payload,\n },\n }),\n CLEAR_POLICY_NOTIFICATIONS: (state) => ({\n ...state,\n policyNotifications: [],\n }),\n DEDUCTIBLE_CHANGED: (state, { payload }) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n quoteSelectedValues: {\n ...state.changeCoverage.quoteSelectedValues,\n deductibleDescription: payload.description,\n deductibleId: payload.deductibleId,\n },\n },\n }),\n DO_LOGOUT: () => ({ ...INITIAL_STATE }),\n GET_CHANGE_COVERAGE_MULTIMODAL_DATA: (state) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n multimodalData: null,\n multimodalDataError: false,\n },\n }),\n GET_CHANGE_COVERAGE_PREVIEW: (state) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n loading: true,\n },\n }),\n GET_CHANGE_COVERAGE_PREVIEW_ERROR: (state) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n error: true,\n loading: false,\n preview: {\n ...state.changeCoverage.preview,\n loaded: true,\n },\n },\n }),\n GET_MULTIBRAND_DEFAULT_POLICY: (state) => ({\n ...state,\n defaultPolicy: null,\n loadingDefaultPolicy: true,\n }),\n GET_MULTIBRAND_DEFAULT_POLICY_ERROR: (state) => ({\n ...state,\n defaultPolicy: null,\n loadingDefaultPolicy: false,\n }),\n GET_MULTIBRAND_DEFAULT_POLICY_LOADED: (state, { payload }) => ({\n ...state,\n defaultPolicy: payload,\n loadingDefaultPolicy: false,\n }),\n GET_MULTIBRAND_POLICIES: (state) => ({\n ...state,\n loading: true,\n multibrandPolicies: [],\n }),\n GET_MULTIBRAND_POLICIES_ERROR: (state) => ({\n ...state,\n loading: false,\n multibrandPolicies: [],\n }),\n GET_MULTIBRAND_POLICIES_LOADED: (state, { payload }) => ({\n ...state,\n loading: false,\n multibrandPolicies: payload,\n }),\n GET_POLICY_DETAIL: (state) => ({\n ...state,\n loadingOtherPolicy: true,\n otherPolicyDetail: null,\n }),\n GET_POLICY_DETAIL_ERROR: (state) => ({\n ...state,\n loadingOtherPolicy: false,\n }),\n GET_POLICY_DETAIL_LOADED: (state, { payload }) => ({\n ...state,\n loadingOtherPolicy: false,\n otherPolicyDetail: payload,\n }),\n INITIAL_POWER_UPS: (state, { payload }) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n quoteSelectedValues: {\n ...state.changeCoverage.quoteSelectedValues,\n modifiers: payload.modifiers,\n },\n },\n }),\n LOAD_PLAN_SUMMARY_DETAILS: (state) => ({\n ...state,\n loadingPlanSummary: true,\n policyBenefits: [],\n }),\n LOAD_PLAN_SUMMARY_SEE_MORE_INFO_ATTEMPT: (state) => ({\n ...state,\n loadingSeeMoreInfo: true,\n }),\n LOAD_POLICIES_CARD_INFORMATION: (state, { payload }) => ({\n ...state,\n policiesWithCardInfo: state.data\n .filter((item) => (\n item.Policy.Status === POLICY_STATUS.active\n || item.Policy.Status === POLICY_STATUS.future\n )).map((item) => ({\n ...item,\n Policy: {\n ...item.Policy,\n last4: payload\n .find((value) => value.PolicyNumber === item.Policy.Number)\n .AccountNumber,\n },\n })),\n }),\n LOAD_POLICIES_OVERVIEW: (state) => ({\n ...state,\n loadingOverview: true,\n }),\n LOAD_WHAT_WE_COVER_INFO_ATTEMPT: (state) => ({\n ...state,\n loadingWhatWeCoverInfo: true,\n }),\n LOGGED_IN_WITHOUT_PETS_RESET: (state) => ({\n ...state,\n loggedInWithoutPets: false,\n }),\n MULTI_MODAL_DATA_LOADED: (state, { payload }) => ({\n ...state,\n multiModalData: payload,\n }),\n PETS_GROUPED: (state, { payload }) => ({\n ...state,\n pets: payload,\n }),\n PLAN_SUMMARY_SEE_MORE_CLICKED: (state, { payload }) => ({\n ...state,\n planSummarySeeMoreInfo: [],\n showPlanSummarySeeMore: payload,\n }),\n PLAN_SUMMARY_SEE_MORE_INFO_LOADED: (state, { payload }) => ({\n ...state,\n loadingSeeMoreInfo: false,\n planSummarySeeMoreInfo: payload,\n }),\n POLICIES_ERROR: (state, { payload }) => ({\n ...state,\n error: payload,\n loading: false,\n }),\n POLICIES_OVERVIEW_LOADED: (state, { payload }) => ({\n ...state,\n loadingOverview: false,\n loadingPoliciesOverView: false,\n policiesOverView: payload,\n }),\n POLICY_DETAIL_CLEANED: (state) => ({\n ...state,\n defaultPolicy: null,\n otherPolicyDetail: null,\n }),\n POLICY_DETAILS_BENEFITS_LOADED: (state, { payload }) => ({\n ...state,\n loadingPlanSummary: false,\n policyBenefits: Array.isArray(payload) ? payload : [],\n }),\n POLICY_NOTIFICATIONS_LOADED: (state, { payload }) => ({\n ...state,\n policyNotifications: payload,\n }),\n POWER_UP_SELECTED: (state, { payload }) => {\n const { quoteSelectedValues } = state.changeCoverage;\n const { id, isSelected } = payload;\n\n const oldModifiers = quoteSelectedValues.modifiers || [];\n const isNewModifier =\n !oldModifiers.find((oldModifier) => oldModifier.id === id);\n\n if (isNewModifier) {\n return {\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n quoteSelectedValues: {\n ...quoteSelectedValues,\n modifiers: [\n ...quoteSelectedValues.modifiers,\n { id, isSelected },\n ],\n },\n },\n };\n }\n\n return {\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n quoteSelectedValues: {\n ...quoteSelectedValues,\n modifiers: quoteSelectedValues.modifiers.map((modifier) => {\n if (modifier.id === id) {\n return { id, isSelected };\n }\n\n return modifier;\n }),\n },\n },\n };\n },\n QUOTE_POWER_UP_CHANGED: (state, { payload }) => {\n const { rate } = state.changeCoverage;\n const { id, isSelected } = payload;\n\n return {\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n rate: {\n ...rate,\n insuranceProduct: {\n ...rate.insuranceProduct,\n InsuranceModifiers:\n rate.insuranceProduct.InsuranceModifiers\n .map((item) => {\n if (item.Id === id) {\n return {\n ...item,\n IsSelected: isSelected,\n };\n }\n\n return item;\n }),\n },\n },\n },\n };\n },\n QUOTE_TOTAL_RECALCULATED: (state) => {\n const { quoteSelectedValues, rate } = state.changeCoverage;\n if (!quoteSelectedValues.selectedPlan) {\n return state;\n }\n const selectedPlan = rate.petQuoteResponseList[0].Plans\n .find((plan) => plan.Plan === quoteSelectedValues.selectedPlan);\n const { AnnualPremium, MonthlyPremium } = selectedPlan.RatingOptions\n .find((rating) => rating.DeductibleId === quoteSelectedValues.deductibleId\n && rating.ReimbursementId === quoteSelectedValues.reimbursementId);\n return ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n quoteSelectedValues: {\n ...quoteSelectedValues,\n annualAmountPlan: AnnualPremium,\n monthlyAmountPlan: MonthlyPremium,\n total: Number(quoteSelectedValues.isMonthly\n ? MonthlyPremium\n : AnnualPremium).toFixed(2),\n totalAnnual: Number(AnnualPremium).toFixed(2),\n totalMonthly: Number(MonthlyPremium).toFixed(2),\n },\n },\n });\n },\n RATE_COVERAGE: (state) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n error: false,\n initialCoverageValues: INITIAL_SELECTED_VALUES,\n loading: true,\n loadingSubmit: false,\n quoteSelectedValues: INITIAL_SELECTED_VALUES,\n rate: {\n ...state.changeCoverage.rate,\n error: false,\n },\n success: false,\n },\n }),\n RATE_COVERAGE_ERROR: (state) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n loading: false,\n rate: {\n ...state.changeCoverage.rate,\n error: true,\n },\n },\n }),\n RATE_COVERAGE_SUCCESS: (state, { payload }) => {\n const [petQuote] = payload.petQuoteResponseList;\n const planSelected =\n petQuote.Plans.find((item) => item.Plan === petQuote.Plan);\n const modifierQuote = petQuote.modifiers || [];\n\n return {\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n initialCoverageValues: state\n .changeCoverage.initialCoverageValues.petQuoteId\n ? { ...state.changeCoverage.initialCoverageValues }\n : {\n annualAmountPlan: petQuote.annualPremium,\n deductibleDescription: petQuote.deductibleName,\n deductibleId: petQuote.Deductible,\n InsuranceModifiers: petQuote.InsuranceModifiers\n ?.filter((modifier) => modifier.InsuranceModifierTypeId\n === POWERUP_TYPE && modifier.IsVisible)\n .map((powerUp) => ({\n id: powerUp.Id,\n isIncluded: modifierQuote\n .find((item) => item.id === powerUp.Id)?.isSelected || false,\n name: powerUp.AppText,\n })),\n isMonthly: true,\n modifiers: petQuote.modifiers,\n monthlyAmountPlan: petQuote.monthlyPremium,\n petQuoteId: petQuote.petQuoteId,\n reimbursementDescription: petQuote.ReimbursementName,\n reimbursementId: petQuote.Reimbursement,\n selectedAnnualBenefit: planSelected?.MaxAnnual,\n selectedPlan: petQuote.Plan,\n total: 0,\n totalAnnual: petQuote.annualPremium?.toFixed(2),\n totalMonthly: petQuote.monthlyPremium?.toFixed(2),\n },\n loading: false,\n rate: {\n ...state.changeCoverage.rate,\n error: false,\n rateCreated: true,\n ...payload,\n },\n },\n };\n },\n RATE_QUOTE_UPDATE_ATTEMPT: (state, { payload }) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n powerUpLoadings: [...state.changeCoverage.powerUpLoadings, payload.id],\n },\n }),\n RATE_QUOTE_UPDATE_LOADED: (state, { payload }) => {\n const { quoteSelectedValues, rate: {\n petQuoteResponseList,\n } } = state.changeCoverage;\n\n if (!quoteSelectedValues.selectedPlan) {\n return state;\n }\n\n const selectedPlan = petQuoteResponseList[0].Plans\n .find((plan) => plan.Plan === quoteSelectedValues.selectedPlan);\n const { AnnualPremium, MonthlyPremium } = selectedPlan.RatingOptions\n .find((rating) => rating.DeductibleId === quoteSelectedValues.deductibleId\n && rating.ReimbursementId === quoteSelectedValues.reimbursementId);\n\n return ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n powerUpLoadings: state.changeCoverage.powerUpLoadings\n .filter((id) => id !== payload.id),\n quoteSelectedValues: {\n ...quoteSelectedValues,\n annualAmountPlan: AnnualPremium,\n modifiers: petQuoteResponseList[0].modifiers,\n monthlyAmountPlan: MonthlyPremium,\n total: Number(quoteSelectedValues.isMonthly\n ? MonthlyPremium\n : AnnualPremium).toFixed(2),\n totalAnnual: Number(AnnualPremium).toFixed(2),\n totalMonthly: Number(MonthlyPremium).toFixed(2),\n },\n },\n });\n },\n REIMBURSEMENT_CHANGED: (state, { payload }) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n quoteSelectedValues: {\n ...state.changeCoverage.quoteSelectedValues,\n reimbursementDescription: payload.description,\n reimbursementId: payload.reimbursementId,\n },\n },\n }),\n RESTART_RATE: (state) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n initialCoverageValues: INITIAL_SELECTED_VALUES,\n loading: false,\n powerUpLoadings: [],\n quoteSelectedValues: INITIAL_SELECTED_VALUES,\n rate: {\n error: false,\n rateCreated: false,\n },\n },\n }),\n\n REVIEW_CHANGES_VISIBLE_CHANGED: (state, { payload }) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n reviewChangesVisible: payload,\n },\n }),\n SELECTED_PLAN_CHANGED: (state, { payload }) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n quoteSelectedValues: {\n ...state.changeCoverage.quoteSelectedValues,\n selectedAnnualBenefit: payload.selectedAnnualBenefit,\n selectedPlan: payload.planId,\n },\n },\n }),\n STORE_ALL_POLICIES: (state, { payload }) => ({\n ...state,\n allPolicies: Array.isArray(payload) ? payload : [],\n loggedInWithoutPets: payload.length === 0,\n }),\n STORE_POLICIES: (state, { payload }) => {\n const hasPolicies = Array.isArray(payload);\n\n return {\n ...state,\n data: hasPolicies ? payload : [],\n loading: false,\n loadingWhatWeCoverInfo: hasPolicies && hasPolicies.length > 0,\n };\n },\n SUBMIT_CHANGE_COVERAGE: (state) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n error: false,\n loadingSubmit: true,\n rate: {\n ...state.changeCoverage.rate,\n error: false,\n },\n success: false,\n },\n }),\n SUBMIT_CHANGE_COVERAGE_FAILED: (state) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n error: true,\n loadingSubmit: false,\n rate: {\n ...state.changeCoverage.rate,\n error: true,\n },\n reviewChangesVisible: false,\n success: false,\n },\n }),\n SUBMIT_CHANGE_COVERAGE_SUCCESS: (state) => ({\n ...state,\n changeCoverage: {\n ...state.changeCoverage,\n error: false,\n initialCoverageValues: INITIAL_SELECTED_VALUES,\n loadingSubmit: false,\n rate: {\n ...state.changeCoverage.rate,\n error: false,\n },\n reviewChangesVisible: false,\n success: true,\n },\n }),\n VALIDATE_CHANGE_COVERAGE: (state) => ({\n ...state,\n changeCoverageValidation: {\n ...state.changeCoverageValidation,\n isLoading: true,\n },\n }),\n VALIDATE_CHANGE_COVERAGE_CLEARED: (state) => ({\n ...state,\n changeCoverageValidation: {\n ...state.changeCoverageValidation,\n isLoading: false,\n isSuccess: false,\n isValid: false,\n message: '',\n },\n }),\n VALIDATE_CHANGE_COVERAGE_FAILED: (state, { payload }) => ({\n ...state,\n changeCoverageValidation: {\n ...state.changeCoverageValidation,\n isLoading: false,\n isSuccess: true,\n isValid: payload.isValid,\n message: payload.message,\n },\n }),\n VALIDATE_CHANGE_COVERAGE_SUCCESS: (state, { payload }) => ({\n ...state,\n changeCoverageValidation: {\n ...state.changeCoverageValidation,\n isLoading: false,\n isSuccess: true,\n isValid: payload.isValid,\n message: '',\n },\n }),\n WAITING_PERIODS_LOADED: (state, { payload }) => ({\n ...state,\n waitingPeriods: payload,\n }),\n WHAT_WE_COVER_INFO_LOADED: (state, { payload }) => ({\n ...state,\n loadingWhatWeCoverInfo: false,\n whatWeCoverInfo: payload,\n }),\n YOUNG_PET_MODAL_CLOSED: (state) => ({\n ...state,\n isYoungPetModalVisible: false,\n }),\n YOUNG_PET_MODAL_OPEN: (state) => ({\n ...state,\n isYoungPetModalVisible: true,\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n checkingPassword: false,\n customerHasPassword: false,\n loadingResetPassword: false,\n loadingToken: false,\n passwordChecked: false,\n resetPasswordComplete: false,\n resetPasswordError: '',\n tokenValid: null,\n};\n\nexport default handleActions({\n CHECK_PASSWORD_SETUP: (state) => ({\n ...state,\n checkingPassword: true,\n passwordChecked: false,\n }),\n DO_RESET_PASSWORD: (state) => ({ ...state, loadingResetPassword: true }),\n GET_NEW_PASSWORD_TOKEN: (state) => ({\n ...state,\n loadingToken: true,\n }),\n GET_NEW_PASSWORD_TOKEN_FAILED: (state) => ({\n ...state,\n loadingToken: false,\n tokenValid: null,\n }),\n NEW_PASSWORD_TOKEN_GENERATED: (state, { payload }) => ({\n ...state,\n loadingToken: false,\n tokenValid: payload,\n }),\n PASSWORD_SETUP_CHECKED: (state, { payload }) => ({\n ...state,\n checkingPassword: false,\n customerHasPassword: payload.customerHasPassword,\n passwordChecked: true,\n }),\n PASSWORD_SETUP_RESTARTED: (state) => ({\n ...state,\n loadingResetPassword: false,\n resetPasswordComplete: false,\n resetPasswordError: '',\n tokenValid: null,\n }),\n RESET_PASSWORD_FAILED: (state, { payload }) => ({\n ...state,\n loadingResetPassword: false,\n resetPasswordError: payload.Message,\n }),\n RESET_PASSWORD_SUCCESS: (state) => ({\n ...state,\n loadingResetPassword: false,\n resetPasswordComplete: true,\n }),\n RESET_PASSWORD_TOKEN_LOADED: (state, { payload }) => ({\n ...state,\n loadingToken: false,\n tokenValid: payload,\n }),\n SET_UP_NEW_PASSWORD: (state) => ({\n ...state,\n loadingResetPassword: true,\n }),\n SET_UP_NEW_PASSWORD_FAILED: (state, { payload }) => ({\n ...state,\n loadingResetPassword: false,\n resetPasswordError: payload,\n }),\n SET_UP_NEW_PASSWORD_SUCCESS: (state) => ({\n ...state,\n loadingResetPassword: false,\n resetPasswordComplete: true,\n }),\n VALID_RESET_PASSWORD_TOKEN: (state) => ({\n ...state,\n loadingToken: true,\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n bannerVisible: true,\n customerInformation: null,\n data: null,\n error: null,\n impersonateCustomerId: null,\n impersonatingAdminEmail: '',\n isExpired: false,\n isImpersonate: false,\n isRefreshingToken: false,\n isTokenRefreshed: false,\n loading: false,\n modal: false,\n privacyPolicyLink: null,\n privateToken: null,\n publicToken: null,\n retrievingSession: true,\n startingUp: true,\n termsOfServiceLink: null,\n termsOfServiceVersionId: null,\n userHasTermsOfService: true,\n userInfo: null,\n};\n\nexport default handleActions({\n ATTEMPT_PRIVATE_TOKEN: (state) => ({\n ...state,\n loading: true,\n }),\n ATTEMPT_TEMPORARY_TOKEN: (state) => ({\n ...state,\n loading: true,\n }),\n BANNER_VISIBLE_CHANGED: (state, { payload }) => ({\n ...state,\n bannerVisible: payload.visible,\n }),\n CLEAR_ERROR: (state) => ({\n ...state,\n error: null,\n }),\n CLOSE_MODAL: (state) => ({\n ...state,\n modal: false,\n }),\n CUSTOMER_INFORMATION_FAILED: (state) => ({\n ...state,\n loading: false,\n }),\n CUSTOMER_INFORMATION_LOADED: (state, { payload }) => ({\n ...state,\n customerInformation: payload,\n loading: false,\n }),\n DO_LOGIN: (state) => ({\n ...state,\n error: null,\n loading: true,\n }),\n DO_LOGIN_IMPERSONATE: (state) => ({\n ...state,\n error: null,\n loading: true,\n }),\n DO_LOGOUT: () => ({\n ...INITIAL_STATE,\n startingUp: false,\n }),\n LOAD_CUSTOMER_INFORMATION: (state) => ({\n ...state,\n loading: true,\n }),\n LOAD_DATA_FOR_PRIVATE_TOKEN: (state) => ({\n ...state,\n loading: true,\n }),\n LOG_IN: (state, action) => ({\n ...state,\n error: null,\n loading: false,\n privateToken: action.payload,\n retrievingSession: false,\n }),\n LOG_OUT: (state) => ({\n ...state,\n data: null,\n error: null,\n isExpired: false,\n isRefreshingToken: false,\n isTokenRefreshed: false,\n loading: false,\n retrievingSession: false,\n userInfo: null,\n }),\n PRIVATE_TOKEN_COMPLETED: (state) => ({\n ...state,\n loading: false,\n }),\n PRIVATE_TOKEN_FAILED: (state) => ({\n ...state,\n loading: false,\n }),\n REFRESH_TOKEN: (state) => ({\n ...state,\n isRefreshingToken: true,\n }),\n RESET_LOGIN_ERROR: (state) => ({\n ...state,\n error: null,\n }),\n SAVE_IMPERSONATE_CUSTOMER_ID: (state, { payload }) => ({\n ...state,\n impersonateCustomerId: payload.customerId,\n impersonatingAdminEmail: payload.adminEmail,\n isImpersonate: true,\n }),\n SAVE_USER_INFO: (state, { payload }) => ({\n ...state,\n startingUp: false,\n userInfo: payload,\n }),\n SAVE_USER_TERMS_OF_SERVICE: (state, { payload }) => ({\n ...state,\n privacyPolicyLink: payload.PrivacyPolicyLink,\n termsOfServiceLink: payload.TermsOfServiceLink,\n termsOfServiceVersionId: payload.TermsVersionId,\n userHasTermsOfService: payload.UserHasTermsOfService,\n }),\n SESSION_ERROR: (state, { payload }) => ({\n ...state,\n error: payload,\n loading: false,\n modal: true,\n retrievingSession: false,\n }),\n SESSION_EXPIRED: (state) => ({\n ...state,\n isExpired: true,\n }),\n SET_PRIVATE_TOKEN: (state, { payload }) => ({\n ...state,\n privateToken: payload.privateToken,\n }),\n SET_TEMPORARY_TOKEN: (state, { payload }) => ({\n ...state,\n publicToken: payload.publicToken,\n }),\n STARTUP: (state) => ({\n ...state,\n startingUp: true,\n }),\n STARTUP_FINISHED: (state) => ({\n ...state,\n startingUp: false,\n }),\n STARTUP_FROM_CACHE: (state, { payload }) => ({\n ...state,\n isExpired: false,\n privateToken: payload.privateToken,\n startingUp: false,\n userInfo: payload.userInfo,\n }),\n TEMPORARY_TOKEN_COMPLETED: (state) => ({\n ...state,\n loading: false,\n }),\n TEMPORARY_TOKEN_FAILED: (state) => ({\n ...state,\n loading: false,\n }),\n TEMPORARY_TOKEN_RESET: (state) => ({\n ...state,\n publicToken: null,\n }),\n TERMS_OF_SERVICE_ACCEPTED: (state) => ({\n ...state,\n userHasTermsOfService: true,\n }),\n TOKEN_REFRESHED: (state) => ({\n ...state,\n isExpired: false,\n isRefreshingToken: false,\n isTokenRefreshed: true,\n }),\n UPDATE_SESSION: (state, { payload }) => ({\n ...state,\n data: payload,\n error: null,\n loading: false,\n retrievingSession: false,\n }),\n}, INITIAL_STATE);\n","import { handleActions } from 'redux-actions';\n\nconst INITIAL_STATE = {\n featureFlags: {\n error: '',\n flags: null,\n loading: false,\n },\n};\n\nexport default handleActions({\n GET_FEATURE_FLAGS: (state) => ({\n ...state,\n featureFlags: {\n ...state.featureFlags,\n error: '',\n flags: {},\n loading: true,\n },\n }),\n GET_FEATURE_FLAGS_FAILED: (state, { payload }) => ({\n ...state,\n featureFlags: {\n ...state.featureFlags,\n error: payload,\n flags: {},\n loading: false,\n },\n }),\n GET_FEATURE_FLAGS_LOADED: (state, { payload }) => ({\n ...state,\n featureFlags: {\n ...state.featureFlags,\n error: '',\n flags: payload,\n loading: false,\n },\n }),\n}, INITIAL_STATE);\n","import { combineReducers } from 'redux';\nimport accountLogin from './accountLogin';\nimport billingPayments from './billingPayments';\nimport claims from './claims';\nimport claimsGeneric from './claimsGeneric';\nimport common from './common';\nimport editPayment from './editPayment';\nimport figoPetTag from './figoPetTag';\nimport fileClaims from './fieleClaims';\nimport foundPetLost from './foundLostPet';\nimport home from './home';\nimport inboxAndDocs from './inboxAndDocs';\nimport multibrand from './multibrand';\nimport myAccount from './myAccount';\nimport myPets from './myPets';\nimport myVets from './myVets';\nimport oneInc from './oneInc';\nimport orcaInsurance from './orcaInsurance';\nimport personalInformation from './personalInformation';\nimport policies from './policies';\nimport resetPassword from './resetPassword';\nimport session from './session';\nimport settings from './settings';\n\nexport default combineReducers({\n accountLogin,\n billingPayments,\n claims,\n claimsGeneric,\n common,\n editPayment,\n figoPetTag,\n fileClaims,\n foundPetLost,\n home,\n inboxAndDocs,\n multibrand,\n myAccount,\n myPets,\n myVets,\n oneInc,\n orcaInsurance,\n personalInformation,\n policies,\n resetPassword,\n session,\n settings,\n});\n","import { createStore, applyMiddleware } from 'redux';\nimport createSagaMiddleware from 'redux-saga';\nimport rootSagas from './rootSagas';\nimport reducer from './reducers';\n\nlet store;\n\nexport function initializeStore(initialState) {\n const sagaMiddleware = createSagaMiddleware();\n\n if (typeof store === 'undefined') {\n store = createStore(reducer, initialState, applyMiddleware(sagaMiddleware));\n sagaMiddleware.run(rootSagas, { ...store });\n }\n\n return store;\n}\n\nexport function returnStore() {\n return store;\n}\n","import React, {\n createContext,\n useContext,\n useEffect,\n useMemo,\n} from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport mixpanel from 'mixpanel-browser';\nimport platform from 'platform';\n\nimport { PET_TYPE, POLICY_STATUS } from '../constants';\nimport { getGeneralData } from '../actions';\nimport { delay, getBrandNameByChannelId } from '../services/utils';\n\nconst MixpanelContext = createContext();\nexport const useMixpanel = () => useContext(MixpanelContext);\n\nconst POLICY_STATUS_STR = ['cancelled', 'active', 'future', 'expired'];\n\n/**\n * Track a mixpanel event on component did mount stage,\n * it handles the required wait to have the people props properly registred\n * @param {object} event contains the required props for the event tracking\n * @param {Array} dependencies dependencies required to run the effect properly\n */\nexport const useTrackOnMount = (event, dependencies = []) => {\n const generalData =\n useSelector(({ common }) => (common.generalData), shallowEqual);\n const { sendEvent } = useMixpanel();\n\n useEffect(() => {\n const trackEvent = async () => {\n await delay(500);\n sendEvent(event);\n };\n\n if (generalData && event) {\n trackEvent();\n }\n }, [generalData, ...dependencies]);\n};\n\nexport const MixpanelProvider = ({ children }) => {\n const dispatch = useDispatch();\n const store = useSelector((\n {\n accountLogin,\n common,\n personalInformation,\n policies,\n session,\n },\n ) => ({\n accountLogin,\n common,\n personalInformation,\n policies,\n session,\n }), shallowEqual);\n\n const {\n accountLogin: {\n userInfo,\n },\n common: { generalData },\n personalInformation: {\n pets,\n profile,\n },\n session,\n policies: { allPets },\n } = store;\n\n useEffect(() => {\n if (userInfo) {\n dispatch(getGeneralData());\n }\n }, [dispatch, session.userInfo]);\n\n useEffect(() => {\n mixpanel.init(process.env.REACT_APP_MIXPANEL, {\n debug: process.env.REACT_APP_NAME !== 'Prod',\n });\n }, []);\n\n const petsWithPolicies = useMemo(() => (\n pets\n ? pets.filter((pet) => pet.PolicyNumber\n && pet.PolicyStatusId > POLICY_STATUS.cancelled)\n : []), [pets]);\n\n const petsWithPolicySuperProp = useMemo(() => {\n const petsDetails = petsWithPolicies.map((pet) => {\n const dob = pet.DOB && new Date(pet.DOB).toISOString()\n .split('T')[0].replace(/-/g, '');\n\n return `${pet.Name}`\n + `-${pet.BreedName}`\n + `-${dob}`\n + `-${pet.PolicyNumber}`\n + `-${POLICY_STATUS_STR[pet.PolicyStatusId] || ''}`;\n });\n\n return petsDetails.join(',');\n }, [petsWithPolicies]);\n\n function claimsStatus(claimStatusId) {\n switch (claimStatusId) {\n case 0:\n return 'open';\n\n case 1:\n return 'records';\n\n case 2:\n return 'inReview';\n\n default:\n return 'closed';\n }\n }\n\n const orderSuperProp = useMemo(() => ({\n 'active/future insurance count': generalData?.ActiveFuture,\n 'cancelled insurance count': generalData?.Cancelled,\n }), [generalData]);\n\n const claimsSuperProp = useMemo(() => {\n let claimsWithStatus = [];\n let totalClaims = 0;\n if (generalData && generalData.ClaimsInfo) {\n claimsWithStatus = generalData.ClaimsInfo\n .map((claim) => `${claim.PetName}`\n + `-${claim.PolicyNumber}`\n + `-${claim.ClaimNumber}`\n + `-${claimsStatus(claim.ClaimStatus)}`);\n\n totalClaims = generalData.ClaimsInfo.length;\n }\n\n return {\n 'claim number with status': claimsWithStatus,\n 'total number of claim': totalClaims,\n };\n }, [generalData]);\n\n const customerTypeProp = useMemo(() => {\n let customerType = 'null';\n switch (generalData?.CustomerType) {\n case 0:\n customerType = 'free customer';\n break;\n case 1:\n customerType = 'insured-active';\n break;\n case 2:\n customerType = 'insured-cancelled';\n break;\n default:\n customerType = 'null';\n }\n return {\n 'customer type': customerType,\n };\n }, [generalData]);\n\n const statusProfile = useMemo(() => ({\n 'profile activation status': profile.Enabled ? 'Active' : 'Inactive',\n }), [profile]);\n\n const filteredPolicies = useMemo(() => allPets\n .flatMap((item) => item.policies.filter((policy) => policy.Status\n === POLICY_STATUS.active || policy.Status === POLICY_STATUS.future)),\n [allPets]);\n\n const petsWithActiveOrFuturePolicies = useMemo(() => {\n const policies = filteredPolicies.map((policy) => {\n const { ProductFamilyId } = policy;\n return getBrandNameByChannelId(ProductFamilyId);\n }).join(',') || '';\n\n return policies;\n }, [filteredPolicies]);\n\n const superProperties = useMemo(() => ({\n $email: userInfo?.LoginEmail,\n $name: userInfo?.SocialInfo.Username,\n $os: platform.os.toString(),\n $os_version: platform.os.version,\n $userId: userInfo?.CustomerId,\n 'customer id': userInfo?.CustomerId,\n distinct_id: userInfo?.CustomerId,\n 'pets details and policy status': petsWithPolicySuperProp,\n 'user brand': petsWithActiveOrFuturePolicies,\n ...orderSuperProp,\n ...claimsSuperProp,\n ...statusProfile,\n }), [\n userInfo,\n petsWithPolicySuperProp,\n orderSuperProp,\n claimsSuperProp,\n statusProfile,\n petsWithActiveOrFuturePolicies,\n ]);\n\n const peopleProps = useMemo(() => {\n if (!userInfo) {\n return null;\n }\n\n const petsDetails = petsWithPolicies\n .map((pet) => `${pet.Name}-${pet.PolicyNumber}`\n + `-${POLICY_STATUS_STR[pet.PolicyStatusId] || ''}`)\n .join(', ');\n\n const catsWithPolicy = petsWithPolicies\n .filter((pet) => pet.PetTypeId === PET_TYPE.CAT);\n\n const dogsWithPolicy = petsWithPolicies\n .filter((pet) => pet.PetTypeId === PET_TYPE.DOG);\n\n return {\n $email: userInfo.LoginEmail,\n $name: userInfo.SocialInfo.Username,\n 'Company name': userInfo.Company.OriginId,\n 'customer id': userInfo.CustomerId,\n distinct_id: userInfo.CustomerId,\n 'number of cats': catsWithPolicy.length,\n 'number of dogs': dogsWithPolicy.length,\n 'number of pets': petsWithPolicies.length,\n 'pets details and policy status': petsWithPolicySuperProp,\n 'pets names with policy number and status': petsDetails,\n state: userInfo.Address.StateId,\n ...orderSuperProp,\n ...customerTypeProp,\n ...claimsSuperProp,\n };\n }, [\n allPets,\n claimsSuperProp,\n customerTypeProp,\n orderSuperProp,\n petsWithPolicies,\n userInfo,\n ]);\n\n useEffect(() => {\n mixpanel.register(superProperties);\n }, [superProperties]);\n\n useEffect(() => {\n if (peopleProps) {\n mixpanel.identify(userInfo.CustomerId);\n mixpanel.people.set(peopleProps);\n }\n }, [peopleProps]);\n\n function sendEvent({ eventName = '', params = {} }) {\n mixpanel.track(eventName, params);\n }\n\n return (\n <MixpanelContext.Provider value={{ sendEvent }}>\n {children}\n </MixpanelContext.Provider>\n );\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport './PetsHealthCard.css';\n\nconst PetsHealthCard = () => {\n const { t } = useTranslation('home');\n\n return (\n <div className=\"Pets-health-main-container\">\n <div className=\"Pets-health-card\">\n <h2 className=\"Pets-health-card-title\">\n {t('petsHealth.title')}\n </h2>\n\n <h3 className=\"Pets-health-card-description\">\n {t('petsHealth.description')}\n </h3>\n </div>\n </div>\n );\n};\n\nexport { PetsHealthCard };\n","export const getGreetingKey = () => {\n const today = new Date();\n\n const morning = new Date();\n morning.setHours(0, 1, 0);\n\n const afternoon = new Date();\n afternoon.setHours(12, 1, 0);\n\n const evening = new Date();\n evening.setHours(17, 1, 0);\n\n let greetingKey = 'eveningGreeting';\n\n if (today >= evening) {\n greetingKey = 'eveningGreeting';\n } else if (today >= afternoon) {\n greetingKey = 'afternoonGreeting';\n } else if (today >= morning) {\n greetingKey = 'morningGreeting';\n }\n\n return greetingKey;\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport { getGreetingKey } from '../utils';\n\nconst Greetings = () => {\n const { t } = useTranslation('home');\n const { name } = useSelector(({ session }) => ({\n name: session.userInfo.FirstName,\n }), shallowEqual);\n\n return (\n <>\n <h1 className=\"Home-title\">\n {t(`${getGreetingKey()}`, { name })}\n </h1>\n\n <h3 className=\"Home-sub-title\">\n {t('welcomeToYourPetCloud')}\n </h3>\n </>\n );\n};\n\nexport { Greetings };\n","import React from 'react';\n\nimport './ResourceCard.css';\n\nconst ResourceCard = ({\n buttonLabel = '',\n description = '',\n onClick = () => { },\n title = '',\n}) => (\n <div className=\"Resource-card-card\">\n <h3 className=\"Resource-card-title\">{title}</h3>\n\n <h3 className=\"Resource-card-description\">{description}</h3>\n\n <button\n className=\"Resource-card-button\"\n onClick={onClick}\n type=\"button\"\n >\n {buttonLabel}\n </button>\n </div>\n);\n\nexport { ResourceCard };\n","export const B2C_TOKEN_REGISTER = '/token_register';\nexport const CHANGE_COVERAGE = '/changecoverage/:policyNumber';\nexport const CHANGE_COVERAGE_PREVIEW = '/insurance/changecoverage/preview';\nexport const CHANGE_COVERAGE_SUBMIT_SUCCESS = '/changecoverage/success';\nexport const CHANGE_COVERAGE_WEB = '/insurance/changecoverage';\nexport const ADD_ORCA_PET = '/insurance/addPet';\nexport const ADD_ORCA_PET_IFRAME = '/insurance/addPetQuote';\nexport const CLAIMS = '/claims';\nexport const DOWNLOAD_MOBILE_APPS = '/downloadApps';\nexport const ERROR = '/error';\nexport const FILE_CLAIMBOT = '/fileClaimbot';\nexport const FOUND_LOST_PET = '/foundLostPet';\nexport const HOME = '/home';\nexport const IMPERSONATE = '/impersonate';\nexport const INBOX_DOCS = '/inboxAndDocs';\nexport const INSURANCE = '/insurance';\nexport const IOS_URL = '/apple-app-site-association';\nexport const LOGIN = '/login';\nexport const MY_PETS = '/myPets';\nexport const OPTIONS = '/options';\nexport const PAYMENT_METHOD_EDIT = '/paymentMethod/edit';\nexport const REDIRECT = '/redirect';\nexport const SETTINGS = '/settings';\nexport const POST_SHARE = '/Post/Share';\nexport const MY_ACCOUNT = '/myAccount';\nexport const MICROCHIP = '/microchip';\nexport const MY_VETS = '/myVets';\nexport const PET_TAG = '/petTag';\nexport const TERMS_OF_USE = '/termsOfUse';\nexport const PRIVACY_POLICY = '/privacyPolicy';\n","export default __webpack_public_path__ + \"static/media/close-button.01859884.svg\";","import { useCallback, useEffect, useState } from 'react';\n\nconst TABLET_WIDTH = 1200;\nconst MOBILE_WIDTH = 568;\n\nconst useResponsive = () => {\n const [isTablet, setIsTablet] = useState(window.innerWidth > MOBILE_WIDTH\n && window.innerWidth <= TABLET_WIDTH);\n const [isMobile, setIsMobile] = useState(window.innerWidth <= MOBILE_WIDTH);\n\n const handleResize = useCallback(() => {\n setIsTablet(window.innerWidth > MOBILE_WIDTH\n && window.innerWidth <= TABLET_WIDTH);\n setIsMobile(window.innerWidth <= MOBILE_WIDTH);\n }, []);\n\n useEffect(() => {\n handleResize();\n\n window.addEventListener('resize',\n handleResize);\n\n return () => {\n window.removeEventListener('resize',\n handleResize);\n };\n }, [handleResize]);\n\n return ({\n isMobile,\n isTablet,\n });\n};\n\nexport { useResponsive };\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport FocusTrap from 'focus-trap-react';\nimport closeIcon from '../../assets/close-button.svg';\nimport { sleep } from '../../services/utils';\nimport { useResponsive } from '../../hooks/useResponsive';\n\nimport './ModalContainer.css';\n\nexport const MODAL_CONTAINER_ANIMATION_TYPE = {\n FROM_BOTTOM: 'FROM_BOTTOM',\n OPACITY: 'OPACITY',\n};\n\nconst ModalContainer = ({\n animationType = null,\n cancelable = false,\n children,\n classCloseIcon,\n closeButtonStyle = '',\n contentStyle,\n customCloseIcon = null,\n disableClickOutside,\n handleOutClick = () => { },\n idPrefix = '',\n idTitle = '',\n isMultiModal,\n show,\n}) => {\n const [bottom, setBottom] = useState(isMultiModal ? '-100vh' : '0');\n const animation = useMemo(() => {\n switch (animationType) {\n case MODAL_CONTAINER_ANIMATION_TYPE.FROM_BOTTOM:\n return {\n appear: 'modalAppear',\n disappear: 'modalDisappear',\n };\n\n case MODAL_CONTAINER_ANIMATION_TYPE.OPACITY:\n return {\n appear: 'modalAppearOpacity',\n disappear: 'modalDisappearOpacity',\n };\n\n default:\n return {\n appear: '',\n disappear: '',\n };\n }\n }, [animationType]);\n const [animationName, setAnimationName] = useState(animation.appear);\n const { isMobile } = useResponsive();\n\n const idOuter = `${idPrefix}modalOuter`;\n const dialogId = `${idPrefix}alert_dialog`;\n const closeId = `${idPrefix}closeModal`;\n const containerId = `${idPrefix}modalContainer`;\n\n useEffect(() => {\n if (isMobile) {\n if (show) {\n document.body.style.overflow = 'hidden';\n document.body.scroll = 'no';\n } else {\n document.body.style.overflow = 'scroll';\n }\n }\n\n return () => {\n document.body.style.removeProperty('overflow');\n };\n }, [isMobile, show]);\n\n const resetModalState = useCallback(() => {\n setAnimationName(animation.appear);\n handleOutClick();\n }, [handleOutClick]);\n\n async function handleCloseModal(event) {\n if (disableClickOutside && event.target.id === idOuter) {\n return;\n }\n\n setAnimationName(animation.disappear);\n\n await sleep(400);\n resetModalState();\n }\n\n function handleAnimationEnd() {\n if (animationName === animation.disappear) {\n resetModalState();\n } else {\n setBottom('0');\n }\n }\n\n function renderCloseButton() {\n if (cancelable) {\n return (\n <button\n aria-label=\"Close modal\"\n className={`Modal-card-button-close ${closeButtonStyle}`}\n id={closeId}\n onClick={handleCloseModal}\n type=\"button\"\n >\n <img\n alt=\"close modal\"\n className={classCloseIcon\n || 'Modal-card-icon-close'}\n src={customCloseIcon || closeIcon}\n />\n </button>\n );\n }\n\n return null;\n }\n\n return (\n <>\n {show\n && (\n <div className=\"Modal-wrapper\" id={containerId}>\n <FocusTrap active>\n <div className=\"Modal-container\">\n <div\n aria-hidden=\"true\"\n aria-labelledby={containerId}\n className=\"Modal-backdrop\"\n id={idOuter}\n onClick={handleCloseModal}\n role=\"button\"\n tabIndex={-1}\n />\n\n <div\n aria-labelledby={idTitle}\n aria-modal=\"true\"\n className={'Modal-container-card-content '\n + `${contentStyle || ''}`\n + `${isMultiModal ? ' Multi-modal-card-container' : ''}`}\n id={dialogId}\n onAnimationEnd={handleAnimationEnd}\n role=\"alertdialog\"\n style={{\n animationName,\n bottom,\n }}\n >\n {renderCloseButton()}\n\n {children}\n </div>\n </div>\n </FocusTrap>\n </div>\n )}\n </>\n );\n};\n\nexport default ModalContainer;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport qrCodeNew from '../../assets/qr-code-new.png';\nimport closeIcon from '../../assets/close-button.svg';\nimport googlePlayBlack from '../../assets/google-play-black.png';\nimport appStoreBlack from '../../assets/app-store-black.png';\n\nimport {\n APP_STORE_URL,\n GOOGLE_PLAY_URL,\n} from '../../constants';\nimport ModalContainer from './ModalContainer';\n\nimport './DownloadModal.css';\n\nconst DownloadModal = ({ show, onClose }) => {\n const { t } = useTranslation('common');\n\n return (\n <ModalContainer\n cancelable\n contentStyle=\"Download-modal-main-container\"\n customCloseIcon={closeIcon}\n handleOutClick={onClose}\n show={show}\n >\n <h1 className=\"Download-modal-title\">\n {t('downloadAppsNew.title')}\n </h1>\n\n <h3 className=\"Download-modal-description\">\n {t('downloadAppsNew.description')}\n </h3>\n\n <div className=\"Download-modal-row\">\n <div className=\"Download-modal-qr-container\">\n <img alt=\"\" src={qrCodeNew} />\n\n <span>{t('downloadAppsNew.scanToDownload')}</span>\n </div>\n\n <h3 className=\"Download-modal-or\">\n {t('downloadAppsNew.or')}\n </h3>\n\n <div className=\"Download-modal-col\">\n <a href={APP_STORE_URL} rel=\"noopener noreferrer\" target=\"_blank\">\n <img alt=\"\" src={appStoreBlack} />\n </a>\n\n <a href={GOOGLE_PLAY_URL} rel=\"noopener noreferrer\" target=\"_blank\">\n <img alt=\"\" src={googlePlayBlack} />\n </a>\n </div>\n </div>\n </ModalContainer>\n );\n};\n\nexport { DownloadModal };\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\n\nimport { ResourceCard } from './ResourceCard';\n\nimport {\n CLAIMS,\n INSURANCE,\n} from '../../navigation/routes.constants';\n\nimport './Resources.css';\nimport { DownloadModal } from '../../common/DownloadModal';\n\nconst Resources = () => {\n const { t } = useTranslation('home');\n const history = useHistory();\n const [downLoadModalVisible, setDownLoadModalVisible] = useState(false);\n\n const onFileAClaimCick = () => {\n history.push(CLAIMS);\n };\n\n const onViewMyInsuranceCick = () => {\n history.push(INSURANCE);\n };\n\n const onDownloadAppCick = () => {\n setDownLoadModalVisible(true);\n };\n\n const onCloseDownloadModal = () => {\n setDownLoadModalVisible(false);\n };\n\n return (\n <div className=\"Resources-main-container\">\n <h1 className=\"Resources-title\">\n {t('resources.title')}\n </h1>\n\n <DownloadModal\n onClose={onCloseDownloadModal}\n show={downLoadModalVisible}\n />\n\n <div className=\"Resources-card-container\">\n <ResourceCard\n buttonLabel={t('resources.cards.fileAClaim.buttonLabel')}\n description={t('resources.cards.fileAClaim.description')}\n onClick={onFileAClaimCick}\n title={t('resources.cards.fileAClaim.title')}\n />\n\n <ResourceCard\n buttonLabel={t('resources.cards.'\n + 'viewMyInsurance.buttonLabel')}\n description={t('resources.cards.'\n + 'viewMyInsurance.description')}\n onClick={onViewMyInsuranceCick}\n title={t('resources.cards.'\n + 'viewMyInsurance.title')}\n />\n\n <ResourceCard\n buttonLabel={t('resources.cards.downloadApp.buttonLabel')}\n description={t('resources.cards.downloadApp.description')}\n onClick={onDownloadAppCick}\n title={t('resources.cards.downloadApp.title')}\n />\n </div>\n </div>\n );\n};\n\nexport { Resources };\n","import { useMemo } from 'react';\nimport { useSelector, shallowEqual } from 'react-redux';\n\nconst useAlphabeticalSortedPets = () => {\n const store = useSelector(({ policies }) => ({ policies }), shallowEqual);\n\n const alphabeticalSortedPets = useMemo(() => store.policies\n .allPets.sort((previousPet, nextPet) => {\n if (previousPet.Name > nextPet.Name) {\n return 1;\n }\n\n if (nextPet.Name > previousPet.Name) {\n return -1;\n }\n\n return 0;\n }).sort((previousPet, nextPet) => {\n const prevStatus = !!(previousPet.policies.length\n && previousPet.policies[0].Number);\n const nextStatus = !!(nextPet.policies.length\n && nextPet.policies[0].Number);\n return nextStatus - prevStatus;\n }), [store.policies.allPets]);\n\n return alphabeticalSortedPets;\n};\n\nexport { useAlphabeticalSortedPets };\n","import { useMemo } from 'react';\nimport { useSelector, shallowEqual } from 'react-redux';\n\nconst useAlphabeticalSortedPetsWithPolicy = () => {\n const store = useSelector(({ policies }) => ({ policies }), shallowEqual);\n const alphabeticalSortedPetsWithPolicy = useMemo(() => store.policies.pets\n .sort((previousPet, nextPet) => {\n if (previousPet.Name > nextPet.Name) {\n return 1;\n }\n\n if (nextPet.Name > previousPet.Name) {\n return -1;\n }\n\n return 0;\n }), [store.policies.pets]);\n return alphabeticalSortedPetsWithPolicy;\n};\n\nexport { useAlphabeticalSortedPetsWithPolicy };\n","import { useCallback, useState } from 'react';\nimport { useMsal } from '@azure/msal-react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport {\n logOut,\n tokenClaimLoaded,\n tokenCustomerLoaded,\n tokenPolicyLoaded,\n tokenRefreshed,\n} from '../actions';\nimport {\n b2cPolicies,\n claimBotScope,\n claimScope,\n contentfulScope,\n customerScope,\n documentsScope,\n notificationScope,\n policyScope,\n socialScope,\n webviewScope,\n} from '../authConfigB2C';\nimport { getData, removeAllData, saveData } from '../services/api';\nimport {\n API_TOKEN,\n CLAIMS_API_TOKEN,\n CUSTOMER_API_TOKEN,\n IMPERSONATE_KEY,\n POLICY_API_TOKEN,\n SOCIAL_API_TOKEN,\n WEBVIEW_API_TOKEN,\n} from '../services/constants';\n\nconst SLEEP_TIME = 2000;\n\nconst useB2CInfo = () => {\n const { accounts, instance } = useMsal();\n const dispatch = useDispatch();\n const store = useSelector(({ session }) => ({ session }), shallowEqual);\n const [sleepTime, setSleepTime] = useState(0);\n\n const logoutB2C = useCallback(async () => {\n const postLogoutRedirectUri = window.location.origin;\n const b2cAuthority = b2cPolicies.authorities.signUpSignIn.authority;\n const logoutRequest = {\n account: instance.getActiveAccount(),\n authority: b2cAuthority,\n postLogoutRedirectUri,\n };\n\n dispatch(logOut());\n removeAllData();\n\n instance.logoutRedirect(logoutRequest);\n }, [instance, store.session.isImpersonate]);\n\n const tokenRequestB2C = useCallback(async ({\n authority = b2cPolicies.authorities.signUpSignIn.authority,\n scopes = [],\n tokenKey = '',\n }) => {\n let apiToken;\n\n try {\n const apiResponse = await instance.acquireTokenSilent({\n account: accounts[0],\n authority,\n forceRefresh: true,\n scopes,\n });\n\n apiToken = apiResponse?.accessToken || apiResponse?.idToken;\n\n saveData(tokenKey, apiToken);\n\n if (tokenKey === CUSTOMER_API_TOKEN) {\n dispatch(tokenCustomerLoaded());\n } else if (tokenKey === CLAIMS_API_TOKEN) {\n dispatch(tokenClaimLoaded());\n } else if (tokenKey === POLICY_API_TOKEN) {\n dispatch(tokenPolicyLoaded());\n }\n } catch (error) {\n // session or token end\n\n logoutB2C();\n }\n\n return apiToken;\n }, [accounts, instance]);\n\n /**\n * Function to get every token for each api\n * with their required scopes.\n * @param {Array} scopes required scopes for desired api\n * @param {String} tokenKey custom keyname to store and use on token\n * @param {String} authority to request token depending user flow\n */\n const getAllTokens = useCallback(async () => {\n if (sleepTime > 0) {\n // skip many refresh token request\n dispatch(tokenRefreshed());\n return;\n }\n\n setSleepTime(SLEEP_TIME);\n\n const impersonate = Boolean(getData(IMPERSONATE_KEY));\n\n const authority = impersonate\n ? b2cPolicies.authorities.impersonation.authority\n : b2cPolicies.authorities.signUpSignIn.authority;\n\n const hasToken = await tokenRequestB2C({\n authority,\n scopes: [customerScope],\n tokenKey: API_TOKEN,\n });\n\n if (!hasToken) {\n return;\n }\n\n await Promise.all([\n tokenRequestB2C({\n authority,\n scopes: [customerScope, documentsScope],\n tokenKey: CUSTOMER_API_TOKEN,\n }),\n tokenRequestB2C({\n authority,\n scopes: [claimBotScope, claimScope],\n tokenKey: CLAIMS_API_TOKEN,\n }),\n tokenRequestB2C({\n authority,\n scopes: [policyScope],\n tokenKey: POLICY_API_TOKEN,\n }),\n tokenRequestB2C({\n authority,\n scopes: [webviewScope],\n tokenKey: WEBVIEW_API_TOKEN,\n }),\n tokenRequestB2C({\n authority,\n scopes: [contentfulScope, notificationScope, socialScope],\n tokenKey: SOCIAL_API_TOKEN,\n }),\n ]);\n\n setSleepTime(0);\n dispatch(tokenRefreshed());\n }, [instance, sleepTime, tokenRequestB2C]);\n\n /**\n * get token for webview\n *\n * @returns {string} policy scope token\n */\n const getProxyToken = useCallback(async () => {\n const impersonate = Boolean(getData(IMPERSONATE_KEY));\n\n const authority = impersonate\n ? b2cPolicies.authorities.impersonation.authority\n : b2cPolicies.authorities.signUpSignIn.authority;\n\n const hasToken = await tokenRequestB2C({\n authority,\n scopes: [customerScope],\n tokenKey: API_TOKEN,\n });\n\n if (!hasToken) {\n return null;\n }\n\n const token = await tokenRequestB2C({\n authority,\n scopes: [webviewScope],\n tokenKey: WEBVIEW_API_TOKEN,\n });\n\n return token;\n }, [instance, tokenRequestB2C]);\n\n const forgotPasswordB2C = useCallback(() => {\n window.location.replace(b2cPolicies.authorities.forgotPassword.redirectUrl);\n }, [window.location]);\n\n return {\n forgotPasswordB2C,\n getAllTokens,\n getProxyToken,\n logoutB2C,\n tokenRequestB2C,\n };\n};\n\nexport { useB2CInfo };\n","import AwesomeDebouncePromise from 'awesome-debounce-promise';\nimport useConstant from 'use-constant';\n\nconst useDebounceSearch = (searchFunction, timeout = 1000) => {\n const debounceSearch = () => (query) => {\n searchFunction(query);\n };\n\n const searchResults = useConstant((query) => AwesomeDebouncePromise(\n debounceSearch(query), timeout,\n ));\n\n return { searchResults };\n};\n\nexport { useDebounceSearch };\n","import { useEffect } from 'react';\nimport { loadEmbeddedScript } from '../services/utils';\n\nconst useOneIncScript = () => {\n const isProdEnv = process.env.REACT_APP_NAME === 'Prod';\n const scriptEnv = isProdEnv ? 'portalone' : 'testportalone';\n // eslint-disable-next-line max-len\n const scriptSrc = `https://${scriptEnv}.processonepayments.com/Api/Api/Cdn/GenericModalV2/assets/js/PortalOne.js`;\n const scriptId = `OneIncScript-${isProdEnv ? 'Prod' : 'Dev'}`;\n const scriptAsync = true;\n const scriptDefer = true;\n\n useEffect(() => {\n loadEmbeddedScript({\n scriptAsync,\n scriptDefer,\n scriptId,\n scriptSrc,\n });\n }, []);\n};\n\nexport { useOneIncScript };\n","import { useEffect, useCallback } from 'react';\n\nconst ESC_KEY = 27;\n\nconst useOnEscEvent = (callback = () => {}, dependencies = []) => {\n const handleKeyDown = useCallback(({ keyCode }) => {\n if (keyCode === ESC_KEY) {\n callback();\n }\n }, [...dependencies, callback]);\n\n useEffect(() => {\n window.removeEventListener('keydown', handleKeyDown, true);\n window.addEventListener('keydown', handleKeyDown, true);\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown, true);\n };\n }, [...dependencies]);\n};\n\nexport { useOnEscEvent };\n","import { doNothing } from '../services/utils';\n\nconst OS = {\n android: 'Android',\n ios: 'iOS',\n unknown: 'unknown',\n};\n\nfunction getOperatingSystem() {\n const userAgent = navigator.userAgent || navigator.vendor || window.opera;\n\n if (/android/i.test(userAgent)) {\n return OS.android;\n }\n\n if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {\n return OS.ios;\n }\n\n return OS.unknown;\n}\n\nconst usePostMessage = () => (message) => {\n const os = getOperatingSystem();\n\n try {\n if (os === OS.ios) {\n window.webkit.messageHandlers.dismissWebView.postMessage(message);\n } else if (os === OS.android) {\n window.ReactNativeWebView.postMessage(message);\n } else {\n window.postMessage(message);\n }\n } catch (_) {\n doNothing();\n }\n};\n\nexport { usePostMessage };\n","import { useLocation } from 'react-router-dom';\n\nconst useQuery = () => (\n new URLSearchParams(useLocation().search)\n);\n\nexport { useQuery };\n","import { useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n isFirstTimeOnClaims,\n petSelected,\n policySelected,\n policySelectedOnClaims,\n setIsCheckedOptionClosed,\n setIsCheckedOptionOpen,\n setSelectedPetId,\n setSelectedPetIndex,\n showAlert,\n} from '../actions';\n\nimport logOutImage from '../assets/log-out.png';\nimport { useB2CInfo } from './useB2CInfo';\n\nexport const useLogoutSessionCleaner = () => {\n const { t } = useTranslation('settingsScreen');\n const store = useSelector(({ policies, session }) => ({ policies, session }),\n shallowEqual);\n const { impersonateCustomerId: customerId, isImpersonate } = store.session;\n const dispatch = useDispatch();\n const history = useHistory();\n const { logoutB2C } = useB2CInfo();\n\n const handleResetClaimsAndPolicySelections = useCallback(() => {\n dispatch(petSelected(0));\n\n dispatch(setSelectedPetIndex(0));\n\n dispatch(setSelectedPetId(0));\n\n dispatch(policySelected(0));\n\n dispatch(policySelectedOnClaims(0));\n\n dispatch(setIsCheckedOptionOpen(true));\n\n dispatch(setIsCheckedOptionClosed(true));\n\n dispatch(isFirstTimeOnClaims(true));\n }, [dispatch]);\n\n const handlePrimaryAction = useCallback(async () => {\n handleResetClaimsAndPolicySelections();\n\n if (customerId && isImpersonate) {\n history.replace(`/impersonate/${customerId}`);\n } else {\n history.replace('/home');\n }\n\n logoutB2C();\n }, [dispatch, customerId, isImpersonate, logoutB2C]);\n\n const logout = useCallback(() => {\n dispatch(showAlert({\n body: t('myAccountMenu.logOutModal.message'),\n image: logOutImage,\n overlayClose: true,\n primaryAction: handlePrimaryAction,\n primaryText: t('myAccountMenu.logOutModal.logOut'),\n secondaryText: t('myAccountMenu.logOutModal.cancel'),\n type: 'confirm',\n }));\n }, [dispatch]);\n\n return {\n logout,\n };\n};\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport { WEB_VIEW_TYPES } from '../constants';\nimport { getMultibrandWebView, webViewMultibrandReset } from '../actions';\n\nconst INITIAL_STATE = {\n companyId: null,\n marketChannelId: null,\n petId: null,\n policyId: null,\n policyNumber: '',\n webViewType: '',\n};\n\nconst useWebviewMultibrand = () => {\n const { t } = useTranslation('multibrand');\n const dispatch = useDispatch();\n const { webViewData } =\n useSelector(({ multibrand }) => multibrand, shallowEqual);\n const [state, setState] = useState(INITIAL_STATE);\n const [title, setTitle] = useState('');\n const hasFetched = useRef(false);\n\n const getWebView = useCallback((params = INITIAL_STATE) => {\n setState(params);\n hasFetched.current = false;\n }, []);\n\n const reset = useCallback(() => {\n setState(INITIAL_STATE);\n dispatch(webViewMultibrandReset());\n }, []);\n\n useEffect(() => {\n if (state.webViewType && !hasFetched.current) {\n dispatch(getMultibrandWebView(state));\n hasFetched.current = true;\n }\n }, [dispatch, state]);\n\n useEffect(() => {\n if (state.webViewType\n && !webViewData.isLoading\n && webViewData.url\n && webViewData.webViewType === state.webViewType\n ) {\n let titleText = '';\n\n switch (state.webViewType) {\n case WEB_VIEW_TYPES.addingNewPetToPolicy:\n titleText = t('orcaInsurance.addNewPet.addANewPet').toUpperCase();\n break;\n case WEB_VIEW_TYPES.billingAndPayment:\n titleText = t('orcaInsurance.addNewPet.addANewPet').toUpperCase();\n break;\n case WEB_VIEW_TYPES.changeCoverage:\n titleText = t('orcaInsurance.changeCoverage').toUpperCase();\n break;\n default:\n titleText = '';\n }\n\n setState(INITIAL_STATE);\n setTitle(titleText);\n hasFetched.current = false;\n }\n }, [\n state,\n webViewData.url,\n webViewData.isLoading,\n webViewData.webViewType,\n ]);\n\n useEffect(() => () => {\n dispatch(webViewMultibrandReset());\n }, []);\n\n return {\n getWebView,\n isLoading: webViewData.isLoading,\n marketChannelId: state.companyId,\n reset,\n title,\n url: webViewData.url,\n webViewType: state.webViewType,\n };\n};\n\nexport { useWebviewMultibrand };\n","import { useMemo } from 'react';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { MINIMUM_DAYS_REQUIRED_FOR_QUOTE, POLICY_STATUS } from '../constants';\nimport { useAlphabeticalSortedPets } from './useAlphabeticalSortedPets';\n\nconst usePetPolicies = () => {\n const store = useSelector(({\n billingPayments,\n claims,\n policies,\n }) => ({\n billingPayments,\n claims,\n policies,\n }), shallowEqual);\n\n const {\n billingPayments,\n policies: {\n allPets,\n loading,\n pets,\n },\n claims: { petID },\n } = store;\n\n const selectedPolicyIndex = billingPayments.selectedPolicy;\n const hasPets = loading\n ? false : !!allPets.length;\n const getAlphabeticalSortedPets = useAlphabeticalSortedPets();\n\n const noPolicyPets = useMemo(() => {\n const policyPetsIds = pets.map((pet) => pet.PetId);\n return allPets\n .filter((pet) => !policyPetsIds.includes(pet.PetId)\n && pet.AgeInDays >= MINIMUM_DAYS_REQUIRED_FOR_QUOTE);\n }, [pets, allPets]);\n\n const selectedPet = useMemo(() => {\n let petIndex = 0;\n if (petID && getAlphabeticalSortedPets) {\n petIndex = getAlphabeticalSortedPets\n .findIndex((pet) => pet.PetId === petID);\n }\n return petIndex < 0 ? 0 : petIndex;\n }, [petID, getAlphabeticalSortedPets]);\n\n function unPolicyPet() {\n if (!hasPets) {\n return true;\n }\n\n if (!allPets.length) {\n return false;\n }\n\n const pet = allPets[selectedPet];\n const policy = pet.policies[selectedPolicyIndex];\n\n return !policy.Number;\n }\n\n function policyCancelled() {\n if (!allPets.length) {\n return true;\n }\n\n const pet = allPets[selectedPet];\n const policy = pet.policies[selectedPolicyIndex];\n\n return policy.Status === POLICY_STATUS.cancelled;\n }\n\n return {\n allPets,\n hasPets,\n loading,\n noPolicyPets,\n policyCancelled,\n selectedPet,\n selectedPolicyIndex,\n unPolicyPet,\n };\n};\n\nexport { usePetPolicies };\n","import { useSelector, shallowEqual } from 'react-redux';\nimport { useMemo } from 'react';\nimport { PMS } from '../constants';\n\nconst usePMS = () => {\n const store = useSelector(\n ({ policies }) => ({\n policies,\n }),\n shallowEqual,\n );\n\n const { policies: { data }, policies: { multibrandPolicies } } = store;\n\n const pms = useMemo(() => {\n if (data.length > 0) {\n return data[0]?.Policy?.PolicyManagementSystem;\n }\n if (multibrandPolicies.length > 0) {\n return PMS.orca;\n }\n return '';\n }, [data, multibrandPolicies]);\n\n return { pms };\n};\n\nexport { usePMS };\n","import React from 'react';\nimport Lottie from 'react-lottie';\nimport loadingSpinner from '../../assets/lottieFiles/loading-blue.json';\n\nconst FigoLottie = ({\n animationData = loadingSpinner,\n height = 30,\n loop = true,\n width = 30,\n}) => {\n const defaultOptions = {\n animationData,\n autoplay: true,\n loop,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n };\n\n return (\n <Lottie\n height={height}\n isClickToPauseDisabled\n options={defaultOptions}\n width={width}\n />\n );\n};\n\nexport default FigoLottie;\n","import React from 'react';\nimport ModalContainer from './ModalContainer';\nimport loadingSpinner\nfrom '../../assets/lottieFiles/loading-blue.json';\nimport './FigoLoadingOverlay.css';\nimport FigoLottie from './FigoLottie';\n\nconst FigoLoadingOverlay = ({ visible, message = '' }) => (\n <ModalContainer\n contentStyle=\"Loading-overlay-main-container\"\n show={visible}\n >\n <div className=\"Loading-overlay-container\">\n {message && (\n <p className=\"Loading-overlay-message\">\n {message}\n </p>\n )}\n\n <FigoLottie animationData={loadingSpinner} height={82} width={82} />\n </div>\n </ModalContainer>\n);\n\nexport default FigoLoadingOverlay;\n","import React, { createContext, useContext, useEffect, useMemo } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { getFeatureFlags } from '../actions';\nimport FigoLoadingOverlay from '../components/common/FigoLoadingOverlay';\n\nconst FeatureFlagContext = createContext();\n\nexport const FeatureFlagProvider = ({ children }) => {\n const {\n flags,\n loading,\n } = useSelector(({ settings }) => settings.featureFlags, shallowEqual);\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(getFeatureFlags());\n }, [dispatch]);\n\n return (\n <FeatureFlagContext.Provider value={flags}>\n {loading ? <FigoLoadingOverlay visible /> : null}\n {!loading && flags ? children : null}\n </FeatureFlagContext.Provider>\n );\n};\n\nconst useFeatureFlag = (featureKey) => {\n const context = useContext(FeatureFlagContext);\n if (!context) {\n throw Error('Feature Flag Context not found');\n }\n\n const featureFlags = context;\n const featureFlag = useMemo(() => !!featureFlags[featureKey], []);\n return featureFlag;\n};\n\nconst useSubmitRequestAccountChanges =\n () => useFeatureFlag('PetCloudSubmitForm');\nconst useWebViewReskin = () => useFeatureFlag('PetCloudWebViewReskin');\nconst useCustomerApiV1 = () => useFeatureFlag('PetCloudCustomerApiV1');\nconst useClaimsApiV1 = () => useFeatureFlag('PetCloudClaimsApiV1');\nconst useCustomerInboxDocsApiV2 = () => useFeatureFlag(\n 'PetCloudCustomerApiV2InboxAndDocs',\n);\nconst useClaimApiV2 = () => useFeatureFlag('PetCloudClaimsApiV2');\nconst useCustomerPets150617V1 = () => useFeatureFlag(\n 'PetCloudCustomer150617ApiV1',\n);\nconst usePolicyApiV1 = () => useFeatureFlag('PetCloudPolicyApiV1');\nconst useManualVet = () => useFeatureFlag('PetCloudManualVetFlow');\nconst useCustomerV1T176413 = () => useFeatureFlag('PetCloudCustomerV1T176413');\n\nexport {\n useClaimApiV2,\n useClaimsApiV1,\n useCustomerApiV1,\n useCustomerInboxDocsApiV2,\n useCustomerPets150617V1,\n useCustomerV1T176413,\n useManualVet,\n usePolicyApiV1,\n useSubmitRequestAccountChanges,\n useWebViewReskin,\n};\n","import React from 'react';\n\nimport {\n Greetings,\n PetsHealthCard,\n Resources,\n} from './components';\n\nimport { useTrackOnMount } from '../../hooks';\nimport { EV9 } from '../../services/mixpanel';\n\nimport './HomeScreen.css';\n\nconst HomeScreen = () => {\n useTrackOnMount(EV9());\n\n return (\n <div className=\"Home-main-container\">\n <Greetings />\n\n <PetsHealthCard />\n\n <Resources />\n </div>\n );\n};\n\nexport { HomeScreen };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n Container,\n Col,\n Row,\n} from 'react-bootstrap';\n\nconst PageNotFound = () => {\n const { t } = useTranslation('pageNotFound');\n\n return (\n <Container>\n <Row>\n <Col>\n <p>{t('pageNotFound')}</p>\n </Col>\n </Row>\n </Container>\n );\n};\n\nexport default PageNotFound;\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgInsurance(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.5055 19.1193C10.1772 19.2459 9.81362 19.2459 9.48538 19.1193C6.92416 18.1359 4.72148 16.3989 3.16829 14.1373C1.61509 11.8758 0.784474 9.19639 0.786135 6.4529V2.20246C0.786135 1.8267 0.935405 1.46632 1.20111 1.20062C1.46682 0.934916 1.82719 0.785645 2.20295 0.785645H17.7879C18.1636 0.785645 18.5241 0.934916 18.7898 1.20062C19.0555 1.46632 19.2048 1.8267 19.2048 2.20246V6.4529C19.2063 9.19639 18.3758 11.8758 16.8226 14.1373C15.2693 16.3989 13.0667 18.1359 10.5055 19.1193Z\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.2863 5.71436L8.57199 12.1429L5.71484 10.0001\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInsurance);\nexport default __webpack_public_path__ + \"static/media/insurance.25c4dcf8.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgHome(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 20,\n viewBox: \"0 0 22 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.71387 11.4288L10.9996 2.14307L20.2853 11.4288\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.57129 8.57178V17.8575H17.4284V8.57178\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHome);\nexport default __webpack_public_path__ + \"static/media/home.c91e5bd6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgClaims(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 22,\n viewBox: \"0 0 20 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.8569 18.8572C17.8569 19.2361 17.7063 19.5995 17.4384 19.8674C17.1706 20.1352 16.8072 20.2858 16.4283 20.2858H3.57115C3.19226 20.2858 2.82891 20.1352 2.56099 19.8674C2.29309 19.5995 2.14258 19.2361 2.14258 18.8572V3.14293C2.14258 2.76404 2.29309 2.40068 2.56099 2.13277C2.82891 1.86487 3.19226 1.71436 3.57115 1.71436H12.8569L17.8569 6.71436V18.8572Z\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.00377 7.81641C8.665 7.81641 8.39037 8.09105 8.39037 8.42982V10.155H6.66516C6.32639 10.155 6.05176 10.4297 6.05176 10.7685V12.762C6.05176 13.1008 6.32639 13.3754 6.66516 13.3754H8.39037V15.1006C8.39037 15.4394 8.665 15.714 9.00377 15.714H10.9973C11.3361 15.714 11.6107 15.4394 11.6107 15.1006V13.3754H13.3359C13.6747 13.3754 13.9494 13.1008 13.9494 12.762V10.7685C13.9494 10.4297 13.6747 10.155 13.3359 10.155H11.6107V8.42982C11.6107 8.09105 11.3361 7.81641 10.9973 7.81641H9.00377Z\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgClaims);\nexport default __webpack_public_path__ + \"static/media/claims.58c404c1.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgInboxDocs(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n viewBox: \"0 0 22 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.2853 12.4287H15.2853C14.9064 12.4287 14.5431 12.5792 14.2751 12.8471C14.0072 13.115 13.8567 13.4784 13.8567 13.8573C13.8567 14.615 13.5557 15.3417 13.0199 15.8776C12.4841 16.4134 11.7573 16.7144 10.9996 16.7144C10.2418 16.7144 9.5151 16.4134 8.97928 15.8776C8.44345 15.3417 8.14244 14.615 8.14244 13.8573C8.14244 13.4784 7.99192 13.115 7.72402 12.8471C7.45611 12.5792 7.09275 12.4287 6.71387 12.4287H1.71387V18.8573C1.71387 19.2361 1.86438 19.5996 2.13229 19.8674C2.4002 20.1353 2.76355 20.2859 3.14244 20.2859H18.8567C19.2356 20.2859 19.599 20.1353 19.8669 19.8674C20.1347 19.5996 20.2853 19.2361 20.2853 18.8573V12.4287Z\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.42773 6.71436L10.9992 10.2858L14.5706 6.71436\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 1.71436V10.2858\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInboxDocs);\nexport default __webpack_public_path__ + \"static/media/inbox-docs.fcceecfd.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgMyAccount(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_929_3236)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.99916 11.4285C11.9716 11.4285 13.5706 9.82952 13.5706 7.85707C13.5706 5.88463 11.9716 4.28564 9.99916 4.28564C8.02672 4.28564 6.42773 5.88463 6.42773 7.85707C6.42773 9.82952 8.02672 11.4285 9.99916 11.4285Z\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.89941 16.9999C4.5369 15.9535 5.43286 15.0886 6.50114 14.4886C7.56943 13.8884 8.77411 13.5732 9.99941 13.5732C11.2247 13.5732 12.4294 13.8884 13.4977 14.4886C14.566 15.0886 15.4619 15.9535 16.0994 16.9999\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.99958 19.2858C15.128 19.2858 19.2853 15.1285 19.2853 10.0001C19.2853 4.87171 15.128 0.714355 9.99958 0.714355C4.87122 0.714355 0.713867 4.87171 0.713867 10.0001C0.713867 15.1285 4.87122 19.2858 9.99958 19.2858Z\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_929_3236\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 20,\n fill: \"current\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMyAccount);\nexport default __webpack_public_path__ + \"static/media/my-account.f9989ec8.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgLogout(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.7708 13.5625C12.6181 13.3819 12.5417 13.1769 12.5417 12.9475C12.5417 12.7186 12.6181 12.5278 12.7708 12.375L14.3125 10.8333H8.33333C8.09722 10.8333 7.89944 10.7533 7.74 10.5933C7.58 10.4339 7.5 10.2361 7.5 10C7.5 9.76389 7.58 9.56583 7.74 9.40583C7.89944 9.24639 8.09722 9.16667 8.33333 9.16667H14.3125L12.7708 7.625C12.6042 7.45833 12.5208 7.26056 12.5208 7.03167C12.5208 6.80222 12.6042 6.60417 12.7708 6.4375C12.9236 6.27083 13.1147 6.1875 13.3442 6.1875C13.5731 6.1875 13.7639 6.26389 13.9167 6.41667L16.9167 9.41667C17 9.5 17.0592 9.59028 17.0942 9.6875C17.1286 9.78472 17.1458 9.88889 17.1458 10C17.1458 10.1111 17.1286 10.2153 17.0942 10.3125C17.0592 10.4097 17 10.5 16.9167 10.5833L13.9167 13.5833C13.7361 13.7639 13.5383 13.8436 13.3233 13.8225C13.1078 13.8019 12.9236 13.7153 12.7708 13.5625ZM4.16667 17.5C3.70833 17.5 3.31583 17.3369 2.98917 17.0108C2.66306 16.6842 2.5 16.2917 2.5 15.8333V4.16667C2.5 3.70833 2.66306 3.31583 2.98917 2.98917C3.31583 2.66306 3.70833 2.5 4.16667 2.5H9.16667C9.40278 2.5 9.60083 2.57972 9.76083 2.73917C9.92028 2.89917 10 3.09722 10 3.33333C10 3.56944 9.92028 3.76722 9.76083 3.92667C9.60083 4.08667 9.40278 4.16667 9.16667 4.16667H4.16667V15.8333H9.16667C9.40278 15.8333 9.60083 15.9133 9.76083 16.0733C9.92028 16.2328 10 16.4306 10 16.6667C10 16.9028 9.92028 17.1006 9.76083 17.26C9.60083 17.42 9.40278 17.5 9.16667 17.5H4.16667Z\",\n fill: \"current\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogout);\nexport default __webpack_public_path__ + \"static/media/logout.f2d3ef8d.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgHeadset(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_2350_892)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.28613 9.99999V6.24285C4.29729 5.50432 4.45406 4.77527 4.74748 4.09742C5.04088 3.41959 5.46516 2.80632 5.99599 2.29274C6.52682 1.77917 7.15378 1.37537 7.84093 1.10451C8.52808 0.833651 9.26193 0.701041 10.0004 0.714281C10.7389 0.701041 11.4728 0.833651 12.1599 1.10451C12.8471 1.37537 13.474 1.77917 14.0048 2.29274C14.5357 2.80632 14.96 3.41959 15.2534 4.09742C15.5467 4.77527 15.7036 5.50432 15.7147 6.24285V9.99999\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.14342 7.85718H3.57199C3.76143 7.85718 3.94312 7.93243 4.07706 8.06639C4.21102 8.20033 4.28627 8.38202 4.28627 8.57146V12.8572C4.28627 13.0466 4.21102 13.2283 4.07706 13.3622C3.94312 13.4962 3.76143 13.5715 3.57199 13.5715H2.14342C1.76453 13.5715 1.40117 13.4209 1.13326 13.153C0.865354 12.8851 0.714844 12.5218 0.714844 12.1429V9.28575C0.714844 8.90686 0.865354 8.54351 1.13326 8.27559C1.40117 8.00769 1.76453 7.85718 2.14342 7.85718Z\",\n stroke: \"#current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.8577 13.5715H16.4291C16.2397 13.5715 16.058 13.4962 15.924 13.3622C15.7901 13.2283 15.7148 13.0466 15.7148 12.8572V8.57146C15.7148 8.38202 15.7901 8.20033 15.924 8.06639C16.058 7.93243 16.2397 7.85718 16.4291 7.85718H17.8577C18.2366 7.85718 18.6 8.00769 18.8678 8.27559C19.1357 8.54351 19.2863 8.90686 19.2863 9.28575V12.1429C19.2863 12.5218 19.1357 12.8851 18.8678 13.153C18.6 13.4209 18.2366 13.5715 17.8577 13.5715Z\",\n stroke: \"#current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.8584 17.4999C13.6162 17.4999 14.3428 17.1989 14.8787 16.663C15.4145 16.1272 15.7155 15.4005 15.7155 14.6428V11.4285\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.8578 17.5001C12.8578 17.9736 12.6697 18.4279 12.3348 18.7628C11.9999 19.0976 11.5457 19.2858 11.0721 19.2858H8.92927C8.45567 19.2858 8.00147 19.0976 7.66658 18.7628C7.3317 18.4279 7.14355 17.9736 7.14355 17.5001C7.14355 17.0265 7.3317 16.5722 7.66658 16.2374C8.00147 15.9025 8.45567 15.7144 8.92927 15.7144H11.0721C11.5457 15.7144 11.9999 15.9025 12.3348 16.2374C12.6697 16.5722 12.8578 17.0265 12.8578 17.5001Z\",\n stroke: \"#current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_2350_892\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 20,\n fill: \"white\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHeadset);\nexport default __webpack_public_path__ + \"static/media/headset.23c730e6.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { NavLink } from 'react-router-dom';\n\nconst SideMenuItem = ({\n Icon = null,\n label = '',\n onClick = () => { },\n ...props\n}) => (\n <div className=\"Side-menu-button\">\n <NavLink\n activeClassName=\"Selected-link\"\n exact={props.exact}\n onClick={onClick}\n to={props.to}\n >\n <div className=\"Side-menu-button-container\">\n <div className=\"Menu-icon-container\">\n {Icon && <Icon className=\"Side-menu-icon\" />}\n </div>\n\n <div className=\"Menu-button-text-container\">\n <span className=\"Menu-button-text\">{label}</span>\n </div>\n </div>\n </NavLink>\n </div>\n);\n\nexport default SideMenuItem;\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCat(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 20,\n viewBox: \"0 0 22 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.2859 14.6428H11.7145\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.71436 18.9289L6.71436 16.0718\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.71436 11.7856L7.42864 13.2142\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.6862 3.2571L19.3862 1.09996C19.4997 1.06419 19.6207 1.05992 19.7365 1.0876C19.8522 1.11528 19.9583 1.17386 20.0433 1.2571C20.1331 1.33586 20.2012 1.43627 20.2412 1.54879C20.2812 1.66132 20.2918 1.7822 20.2719 1.89996L18.7005 9.91424C18.6147 9.69995 18.529 9.47138 18.4576 9.24281C18.0025 7.58357 17.038 6.1091 15.7 5.02745C14.362 3.94579 12.7182 3.31156 11.0005 3.21424C9.2827 3.31156 7.63887 3.94579 6.3009 5.02745C4.96292 6.1091 3.99836 7.58357 3.54331 9.24281C3.47188 9.48567 3.38617 9.69995 3.30046 9.92853L1.72903 1.89996C1.70913 1.7822 1.71968 1.66132 1.75969 1.54879C1.7997 1.43627 1.86783 1.33586 1.9576 1.2571C2.04264 1.17386 2.14869 1.11528 2.26443 1.0876C2.38016 1.05992 2.50124 1.06419 2.61474 1.09996L10.3147 3.2571\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.1429 18.6858C11.7327 19.0097 10.2674 19.0097 8.85718 18.6858\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.2856 18.9289L15.2856 16.0718\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.2858 11.7856L14.5715 13.2142\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCat);\nexport default __webpack_public_path__ + \"static/media/cat.bd7cc8a1.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDog(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 20,\n viewBox: \"0 0 22 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.2858 7.14324V10.0004C15.2858 10.3793 15.4363 10.7426 15.7042 11.0105C15.9721 11.2784 16.3355 11.429 16.7144 11.429H17.4286C18.1864 11.429 18.9131 11.1279 19.4489 10.5921C19.9848 10.0563 20.2858 9.32957 20.2858 8.57181V4.2861C20.2858 3.90722 20.1353 3.54385 19.8674 3.27595C19.5995 3.00804 19.2361 2.85753 18.8572 2.85753H16.7144C16.2623 2.85709 15.8167 2.74938 15.4144 2.54324C14.0504 1.83144 12.5384 1.44977 11.0001 1.42896C9.45203 1.4453 7.92974 1.82709 6.55721 2.54324C6.16222 2.74172 5.72776 2.84911 5.28578 2.85753H3.14293C2.76405 2.85753 2.40068 3.00804 2.13277 3.27595C1.86487 3.54385 1.71436 3.90722 1.71436 4.2861V8.57181C1.71436 9.32957 2.01538 10.0563 2.55119 10.5921C3.08701 11.1279 3.81374 11.429 4.5715 11.429H5.28578C5.66467 11.429 6.02803 11.2784 6.29594 11.0105C6.56385 10.7426 6.71436 10.3793 6.71436 10.0004V7.14324\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.4287 11.429L16.9858 13.6718C16.7134 15.0592 15.9675 16.3088 14.8757 17.2071C13.7839 18.1054 12.414 18.5966 11.0001 18.5966C9.58625 18.5966 8.21629 18.1054 7.12448 17.2071C6.03266 16.3088 5.28679 15.0592 5.01439 13.6718L4.57153 11.429\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.2859 14.2861H11.7145\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDog);\nexport default __webpack_public_path__ + \"static/media/dog.a11ba3c5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgAdd(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 3.33325V16.6666\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.33325 9.95874H16.6666\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAdd);\nexport default __webpack_public_path__ + \"static/media/add.c8ba9170.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\n\nexport const SideMenuActionButton = ({\n className = '',\n Icon = React.Fragment(),\n iconClassName = '',\n label = '',\n onClick = () => { },\n}) => (\n <button\n className={`Side-menu-action-button ${className}`}\n onClick={onClick}\n type=\"button\"\n >\n <Icon className={`Side-menu-action-button-icon ${iconClassName}`} />\n\n {label}\n </button>\n);\n","import React from 'react';\nimport './ScrollableDiv.css';\n\nconst ScrollableDiv = ({\n children,\n className,\n divRef,\n fixedScrollbar,\n scrollbarMargin,\n}) => (\n <div\n ref={divRef}\n className={`Content-scrollable-y ${className || ''}${\n scrollbarMargin ? ' Scrollbar-margin' : ''}${\n fixedScrollbar ? ' Content-scrollable-fixed' : ''}`}\n >\n {children}\n </div>\n);\n\nexport default ScrollableDiv;\n","export default __webpack_public_path__ + \"static/media/drop-down-arrow.f862525e.svg\";","import React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ScrollableDiv from '../common/ScrollableDiv';\nimport selectorIcon from '../../assets/myPets/drop-down-arrow.svg';\nimport { removeEmojis } from '../../services/utils';\nimport './FigoSelectSearchable.css';\n\nconst SPACE_KEY = 32;\nconst DOWN_KEY = 40;\nconst LEFT_KEY = 37;\nconst RIGHT_KEY = 39;\nconst UP_KEY = 38;\nconst INPUT_NODE = 'INPUT';\n\nfunction handleKeyDown(event) {\n const ignoredKeys = [DOWN_KEY, LEFT_KEY, RIGHT_KEY,\n UP_KEY];\n if (event.target.nodeName !== INPUT_NODE) {\n ignoredKeys.push(SPACE_KEY);\n }\n if (ignoredKeys.indexOf(event.keyCode) > -1) {\n event.preventDefault();\n }\n}\n\nconst FigoSelectSearchable = ({\n ariaProps,\n arrowIcon = null,\n classNameContainer = '',\n classNameHeader = '',\n disabled = false,\n elementDisplayName = '',\n elementValue = '',\n errorMessage = '',\n iconClassName = '',\n items = [],\n onBlur = () => { },\n onSelectionChanged,\n placeholder = '',\n placeholderClassname = '',\n selectedValue,\n title = '',\n}) => {\n const [open, setOpen] = useState(false);\n const [searchInput, setSearchInput] = useState('');\n const [itemsFiltered, setItemsFiltered] = useState([]);\n const [itemSelectedId, setItemSelectedId] = useState(1);\n const [itemSelectedName, setItemSelectedName] = useState('');\n const searchRef = useRef(null);\n const dropdownHeaderRef = useRef(null);\n const selectedItemRef = useRef(null);\n const containerItemRef = useRef(null);\n const { t } = useTranslation('common');\n\n useEffect(() => {\n setItemsFiltered(items);\n }, [items]);\n\n useEffect(() => {\n if (open) {\n if (searchRef.current) {\n searchRef.current.focus();\n }\n\n window.addEventListener('keydown', handleKeyDown, true);\n } else {\n if (searchRef.current) {\n searchRef.current.focus();\n }\n\n if (dropdownHeaderRef.current) {\n dropdownHeaderRef.current.focus();\n }\n }\n\n return () => {\n if (open) {\n window.removeEventListener('keydown', handleKeyDown, true);\n }\n };\n }, [open]);\n\n useEffect(() => {\n setSearchInput('');\n }, []);\n\n function scrollItemListToView() {\n if (selectedItemRef.current) {\n containerItemRef.current.scrollTo(\n 0, selectedItemRef.current.offsetTop - 5,\n );\n }\n }\n\n useEffect(() => {\n scrollItemListToView();\n }, [itemSelectedId, setItemSelectedId]);\n\n function filterItems(inputSearch) {\n const breedDataFiltered =\n items.filter((element) => element[elementDisplayName]\n .toUpperCase().includes(inputSearch.toUpperCase()));\n\n setItemsFiltered(breedDataFiltered);\n\n if (breedDataFiltered[0]) {\n setItemSelectedId(breedDataFiltered[0].Id);\n setItemSelectedName(breedDataFiltered[0].Name);\n containerItemRef.current.scrollTo(0, 0);\n }\n }\n\n function toggle() {\n setOpen(!open);\n }\n\n function handleDropDownContainer() {\n if (!disabled) {\n toggle();\n }\n }\n\n const handleOnClickItem = (item) => (event) => {\n if (event && event.type === 'click') {\n toggle();\n }\n\n onSelectionChanged(item);\n };\n\n const handleOnKeyPressItem = (item) => (event) => {\n const { key } = event;\n if (key === 'Enter' || key === ' ') {\n handleOnClickItem(item)();\n }\n };\n\n function handleSearchInputChanged(event) {\n const value = removeEmojis(event.target.value);\n setSearchInput(value);\n filterItems(value.trim());\n }\n\n const handleArrowKeyPressed = () => (event) => {\n const { keyCode } = event;\n const ENTER_KEY = 13;\n const ESC_KEY = 27;\n const TAB_KEY = 9;\n\n switch (keyCode) {\n case UP_KEY:\n case DOWN_KEY: {\n const factor = keyCode === UP_KEY ? -1 : 1;\n const temp = itemsFiltered\n .findIndex((element) => element.Id === itemSelectedId);\n if (itemsFiltered[temp + factor]) {\n const selection = itemsFiltered[temp + factor];\n setItemSelectedId(selection.Id);\n setItemSelectedName(selection.Name);\n }\n\n break;\n }\n\n case ENTER_KEY: {\n const item = itemsFiltered\n .find((element) => element.Id === itemSelectedId);\n\n if (item && open) {\n handleOnClickItem(item)();\n toggle();\n }\n\n break;\n }\n\n case ESC_KEY: {\n setOpen(false);\n if (dropdownHeaderRef.current) {\n dropdownHeaderRef.current.focus();\n }\n\n break;\n }\n\n case TAB_KEY: {\n setOpen(false);\n\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n function handleOutsideClick() {\n setOpen(false);\n }\n\n function renderHeaderDropdown() {\n if (!open) {\n const headerValue = selectedValue[elementDisplayName] || placeholder;\n\n return (\n <p className={`${!selectedValue[elementDisplayName]\n ? placeholderClassname : ''}`}\n >\n {headerValue}\n </p>\n );\n }\n\n return (\n <input\n ref={searchRef}\n aria-autocomplete=\"list\"\n className=\"Figo-select-search-input\"\n onChange={handleSearchInputChanged}\n onKeyDown={handleArrowKeyPressed()}\n placeholder={placeholder || t('figoSelectSearchable.search')}\n value={searchInput}\n />\n );\n }\n\n const ItemList = ({ item }) => (\n <li\n ref={item.Id === itemSelectedId ? selectedItemRef : null}\n aria-selected=\"false\"\n className=\"Figo-select-list-item-container\"\n id={`dropdownItem${item.Id}`}\n onClick={handleOnClickItem(item)}\n onKeyDown={handleArrowKeyPressed()}\n onKeyPress={handleOnKeyPressItem(item)}\n role=\"option\"\n tabIndex={-1}\n >\n <span\n className={`Figo-select-list-item ${item.Id === itemSelectedId\n && item.Name === itemSelectedName\n && 'Figo-select-list-item-selected'}`}\n tabIndex={-1}\n >\n {item[elementDisplayName]}\n </span>\n </li>\n );\n\n const ItemListNotFound = () => (\n <li key={0} className=\"Figo-select-list-item-container\">\n <span className=\"Figo-select-list-item\">\n <span>{t('figoSelectSearchable.resultsNotFound')}</span>\n </span>\n </li>\n );\n\n function renderItems() {\n if (!open) {\n return null;\n }\n\n const resultsNotFound = !itemsFiltered || itemsFiltered.length === 0;\n\n return (\n <ScrollableDiv\n className={`Figo-select-list ${!open ? 'Figo-select-list-hidden' : ''}`}\n divRef={containerItemRef}\n >\n <div\n aria-hidden=\"true\"\n className=\"Figo-select-list-overlayed-container\"\n id=\"dropdownAddPet\"\n onClick={handleOutsideClick}\n role=\"button\"\n tabIndex={0}\n />\n\n <ul aria-labelledby=\"addPetDropdownContainer\">\n {resultsNotFound ? <ItemListNotFound />\n : itemsFiltered\n .map((item) => (\n <ItemList\n key={`${item[elementValue]}${item.Name}`}\n item={item}\n />\n ))}\n </ul>\n </ScrollableDiv>\n );\n }\n\n const renderErrorMessage = () => (\n <span aria-live=\"polite\" className=\"Figo-select-header-error-message\">\n {errorMessage}\n </span>\n );\n\n return (\n <div className={`Figo-select-container ${errorMessage\n && 'Figo-select-container-error Figo-select-container-error-safari '}\n ${classNameContainer}`}\n >\n <p className=\"form-label\">{title}</p>\n\n <button\n {...ariaProps}\n aria-expanded={open}\n className={'Figo-select-header '\n + `${errorMessage && 'Figo-select-header-error'}`\n + ` ${classNameHeader || ''}`}\n disabled={disabled}\n id=\"selectorContainer\"\n onBlur={onBlur}\n onClick={handleDropDownContainer}\n title={`${selectedValue} selected`}\n type=\"button\"\n >\n <div className={'Figo-select-selected-item '\n + `${disabled ? 'Figo-select-selected-item-disabled' : ''}`}\n >\n {renderHeaderDropdown()}\n </div>\n\n <div\n className=\"Figo-select-arrow-container\"\n id=\"arrowContainer\"\n >\n <img\n alt=\"arrow\"\n aria-hidden=\"true\"\n className={`Figo-select-arrow-closed ${iconClassName} `\n + `${open ? 'Figo-select-arrow-open' : ''}`}\n src={arrowIcon || selectorIcon}\n />\n </div>\n </button>\n\n {renderItems()}\n\n {renderErrorMessage()}\n </div>\n );\n};\n\nexport { FigoSelectSearchable };\n","export default __webpack_public_path__ + \"static/media/information-icon.b8e11cbe.svg\";","export default __webpack_public_path__ + \"static/media/back-arrow.c64dd0e9.svg\";","export default __webpack_public_path__ + \"static/media/calendar-black-icon.07a714ea.svg\";","import React, { useState, forwardRef, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport DatePicker from 'react-datepicker';\nimport MaskedInput from 'react-text-mask';\nimport createAutoCorrectedDatePipe\nfrom 'text-mask-addons/dist/createAutoCorrectedDatePipe';\nimport calendarIcon from '../../assets/myPets/calendar-black-icon.svg';\n\nimport 'react-datepicker/dist/react-datepicker.css';\n\nimport './AgeInputSelector.css';\n\nconst KEY_CODE_TAB = 9;\n\nconst AgeInputSelector = ({\n error = '',\n handleInputError,\n onDatePickerSelectionChange,\n selectedDate,\n}) => {\n const { t } = useTranslation('myPets');\n const [inputHasFocus, setInputHasFocus] = useState(false);\n const customInputRef = useRef();\n const datePickerRef = useRef();\n\n function onDatePickerInputFocus() {\n setInputHasFocus(true);\n }\n\n function onDatePickerSelect() {\n setInputHasFocus(false);\n }\n\n function onDatePickerInputBlur() {\n setInputHasFocus(false);\n handleInputError(selectedDate);\n }\n\n function onDatePickerInputKeyDown(event) {\n if (event.keyCode === KEY_CODE_TAB || event.which === KEY_CODE_TAB) {\n datePickerRef.current.setOpen(false);\n }\n }\n\n const autoCorrectedDatePipe = createAutoCorrectedDatePipe('mm/dd/yyyy');\n\n const CalendarCustomInput = forwardRef((\n { autoFocus, placeholder, ...allProps },\n ref,\n ) => (\n <>\n <MaskedInput\n ref={ref}\n autoFocus={inputHasFocus}\n className=\"Age-selector-input\"\n guide={false}\n id=\"idMaskedDateInput\"\n keepCharPositions\n mask={[/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/]}\n pipe={autoCorrectedDatePipe}\n placeholder={t('AddAPetModal.petBirthdayPlaceholder')}\n {...allProps}\n />\n\n <img\n alt=\"\"\n aria-hidden=\"true\"\n className={'Age-selector-arrow-closed '\n + `${inputHasFocus ? 'Age-selector-arrow-open' : ''}`}\n src={calendarIcon}\n />\n </>\n ));\n\n return (\n <div className=\"Age-selector-container\">\n <h6 className=\"Age-selector-input-label\">\n {t('AddAPetModal.petBirthdayTitle')}\n </h6>\n\n <div className=\"Age-selector-input-container\">\n <DatePicker\n ref={datePickerRef}\n className={`Age-selector-input \n ${error && 'Age-selector-input-error'}`}\n customInput={<CalendarCustomInput ref={customInputRef} />}\n maxDate={Date.now()}\n onChange={onDatePickerSelectionChange}\n onClickOutside={onDatePickerInputBlur}\n onFocus={onDatePickerInputFocus}\n onKeyDown={onDatePickerInputKeyDown}\n onSelect={onDatePickerSelect}\n selected={selectedDate}\n />\n </div>\n\n <span className=\"Error-label Age-selector-error\">{error}</span>\n </div>\n );\n};\n\nexport { AgeInputSelector };\n","import React, { useCallback, useEffect } from 'react';\n\nimport './GroupButtonSelector.css';\n\nconst GroupButtonSelector = ({\n disabled = false,\n error = '',\n labelRef,\n onSelectionChange,\n selectedValue,\n title,\n values,\n}) => {\n useEffect(() => {\n if (labelRef && labelRef.current) {\n labelRef.current.focus();\n }\n }, [labelRef]);\n\n const onClickButton = useCallback((value) => () => {\n onSelectionChange(value);\n }, []);\n\n return (\n <div className=\"Group-button-selector-container\">\n <p\n ref={labelRef}\n className=\"No-clicked Group-button-selector-label\"\n >\n {title}\n </p>\n\n <div className=\"Group-button-selector-items-container\" tabIndex={-1}>\n {Object.keys(values).map((key) => {\n const isActive = selectedValue === values[key].id;\n const Icon = values[key].icon;\n\n return (\n <button\n key={values[key].id}\n className={`Group-button-selector-button${isActive\n ? '-active' : ''}`}\n disabled={disabled}\n onClick={onClickButton(values[key].id)}\n type=\"button\"\n >\n {Icon && (\n <Icon className={`Group-button-selector-icon${isActive\n ? '-active' : ''}`}\n />\n )}\n\n <span>{values[key].title}</span>\n </button>\n );\n })}\n </div>\n\n <span className=\"Error-label Group-button-error\">{error}</span>\n </div>\n );\n};\n\nexport { GroupButtonSelector };\n","import React from 'react';\nimport Lottie from 'react-lottie';\nimport Button from 'react-bootstrap/Button';\nimport loadingAnimation from '../../assets/loading-spinner.json';\nimport loadingBlue from '../../assets/lottieFiles/loading-blue.json';\nimport successAnimation from '../../assets/loading-check.json';\nimport './LoadingButton.css';\n\nconst loadingAnimationOptions = (blueSpinner) => ({\n animationData: blueSpinner ? loadingBlue : loadingAnimation,\n autoplay: true,\n loop: true,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n});\n\nconst successAnimationOptions = {\n animationData: successAnimation,\n autoplay: true,\n loop: false,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n};\n\nconst LoadingButton = ({\n className = '',\n disabled = false,\n height = 34,\n id,\n loading = false,\n blueSpinner = false,\n onClick = () => { },\n onSuccessAnimationEnd = () => { },\n size = '',\n submit = true,\n success = false,\n text = '',\n textStyle = '',\n variant = 'info',\n width = 34,\n ...rest\n}) => {\n function handleAnimationEnd() {\n if (onSuccessAnimationEnd) {\n onSuccessAnimationEnd();\n }\n }\n\n function renderButtonContent() {\n if (loading) {\n return (\n <Lottie\n height={height}\n options={loadingAnimationOptions(blueSpinner)}\n width={width}\n />\n );\n }\n\n if (!loading && success) {\n return (\n <Lottie\n eventListeners={[{\n callback: handleAnimationEnd,\n eventName: 'complete',\n }]}\n height={height}\n options={successAnimationOptions}\n width={width}\n />\n );\n }\n\n return (\n <span className={textStyle || 'Loading-button-text'}>\n {text}\n </span>\n );\n }\n\n function handleOnClick(event) {\n if (onClick && !loading && !success) {\n onClick(event);\n }\n }\n\n return (\n <Button\n className={`${className || 'Loading-button-container'}`}\n disabled={disabled}\n id={id}\n onClick={handleOnClick}\n size={size}\n type={submit ? 'submit' : 'button'}\n variant={variant}\n {...rest}\n >\n {renderButtonContent()}\n </Button>\n );\n};\n\nexport default LoadingButton;\n","import React, { useCallback, useMemo } from 'react';\n\nimport './ActionButton.css';\nimport LoadingButton from '../LoadingButton';\n\nconst ActionButton = ({\n disabled = false,\n className = '',\n isDeleteButton = false,\n isSecondaryButton = false,\n leftIcon = null,\n leftIconClassName = '',\n loading = false,\n noMargin = false,\n onClick = () => { },\n onSuccess = () => { },\n success = false,\n title = '',\n}) => {\n const style = useMemo(() => {\n let styleName = 'Action-button';\n let styleNameText = '';\n\n if (isDeleteButton) {\n styleName = 'Action-button-red';\n }\n\n if (isSecondaryButton) {\n styleName = 'Action-button-white';\n }\n\n styleNameText = `${styleName}-text${disabled ? '-disabled' : ''}`;\n\n return {\n button: `${styleName} ${noMargin ? 'Action-button-no-margin' : ''}`,\n text: styleNameText,\n };\n }, [disabled, isDeleteButton, isSecondaryButton]);\n\n const renderLeftIcon = useCallback(() => {\n if (leftIcon) {\n return (\n <img alt=\"\" className={leftIconClassName} src={leftIcon} />\n );\n }\n\n return null;\n }, [leftIcon, leftIconClassName]);\n\n const text = useMemo(() => (\n <>\n {renderLeftIcon()}\n\n {title}\n </>\n ), [renderLeftIcon, title]);\n\n return (\n <LoadingButton\n className={`${style.button} ${className}`}\n disabled={disabled}\n loading={loading}\n onClick={onClick}\n onSuccessAnimationEnd={onSuccess}\n submit={false}\n success={success}\n text={text}\n textStyle={style.text}\n />\n );\n};\n\nexport { ActionButton };\n","import React from 'react';\n\nimport ModalContainer from '../ModalContainer';\nimport { ActionButton } from './ActionButton';\nimport closeIcon from '../../../assets/close-button.svg';\n\nimport './GenericModal.css';\n\nconst GenericModal = ({\n children = null,\n containerClassName = '',\n description = '',\n handleOutClick = () => { },\n isDeleteAction = false,\n loadingPrimary = false,\n onPrimaryClick = () => { },\n onPrimarySuccess = () => { },\n onSecondaryClick = () => { },\n primaryButtonDisabled = false,\n primaryButtonText = '',\n secondaryButtonDisabled = false,\n secondaryButtonText = '',\n show = false,\n successPrimary = false,\n title = '',\n}) => (\n <ModalContainer\n cancelable\n closeButtonStyle=\"Generic-modal-close-button\"\n customCloseIcon={closeIcon}\n handleOutClick={handleOutClick}\n show={show}\n >\n <div className={`Generic-modal-container ${containerClassName}`}>\n <h3>{title}</h3>\n\n <p className=\"Generic-modal-description-text\">{description}</p>\n\n {children}\n\n <div className=\"Generic-modal-buttons-container\">\n <ActionButton\n disabled={primaryButtonDisabled}\n isDeleteButton={isDeleteAction}\n loading={loadingPrimary}\n onClick={onPrimaryClick}\n onSuccess={onPrimarySuccess}\n success={successPrimary}\n title={primaryButtonText}\n />\n\n {secondaryButtonText && (\n <ActionButton\n disabled={secondaryButtonDisabled}\n isSecondaryButton\n onClick={onSecondaryClick}\n title={secondaryButtonText}\n />\n )}\n </div>\n </div>\n </ModalContainer>\n);\n\nexport { GenericModal };\n","import React from 'react';\nimport './PetCloudInputAnimated.css';\n\nconst PetCloudInputAnimated = ({\n children,\n error,\n extraItemClass = '',\n id,\n inputClass = '',\n label,\n labelClass = '',\n maxLength,\n onBlur = () => { },\n onChange = () => { },\n onFocus = () => { },\n placeholder,\n type = 'text',\n value,\n ...inputProps\n}) => (\n <div className=\"Pet-cloud-input-container\">\n <label className={`Pet-cloud-input-label ${labelClass}`} htmlFor={id}>\n {label}\n </label>\n\n <input\n className={'Pet-cloud-input-control '\n + `${inputClass} `\n + `${error ? 'Pet-cloud-input-error' : ''}`\n + `${children && !!children.type\n ? 'Pet-cloud-input-control-extra-space' : ''}`}\n id={id}\n maxLength={maxLength}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n placeholder={placeholder}\n type={type}\n value={value}\n {...inputProps}\n />\n\n <span className={`Pet-cloud-input-extra-item ${extraItemClass}`}>\n {children}\n </span>\n\n <p aria-live=\"polite\" className=\"Error-label\">\n {error}\n </p>\n </div>\n);\n\nexport { PetCloudInputAnimated };\n","import React from 'react';\n\nimport './RadioInputWithLabel.css';\n\nconst RadioInputWithLabel = ({\n classContainer,\n disabled = false,\n id,\n isChecked,\n onClick,\n title,\n value,\n}) => {\n function handleLocalClick() {\n if (onClick && !disabled) {\n onClick(value);\n }\n }\n\n return (\n <div className={`Radio-input-container ${classContainer}`}>\n <input\n checked={isChecked}\n className=\"Radio-input-with-label\"\n id={id}\n name=\"radio\"\n onChange={handleLocalClick}\n tabIndex={-1}\n type=\"radio\"\n />\n\n <label\n aria-label={isChecked ? `${title} selected` : `${title} unselected`}\n className=\"Radio-input-label-container\"\n htmlFor=\"radio\"\n tabIndex={-1}\n >\n {title}\n </label>\n </div>\n );\n};\n\nexport { RadioInputWithLabel };\n","export default __webpack_public_path__ + \"static/media/input-error-icon.c807c6fb.svg\";","import React from 'react';\n\nimport errorIcon from '../../../assets/myAccount/input-error-icon.svg';\n\nimport './PetCloudInput.css';\n\nconst PetCloudInput = ({\n ariaProps,\n className,\n disabled = false,\n error = '',\n errorClassName = '',\n inputName,\n inputRef,\n isTextArea = false,\n maxLength,\n onBlur,\n onChange,\n onFocus,\n onKeyPress,\n optionalText = '',\n placeholder,\n renderError,\n title,\n type = 'text',\n value = '',\n ...inputProps\n}) => {\n function renderInput() {\n if (isTextArea) {\n return (\n <textarea\n ref={inputRef}\n className={`PetCloudInput-input ${className || ''} `\n + `${error && 'Input-error'} ${disabled && 'Input-disabled'}`}\n disabled={disabled}\n maxLength={maxLength}\n name={inputName}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n onKeyPress={onKeyPress}\n placeholder={placeholder}\n value={value || ''}\n {...ariaProps}\n />\n );\n }\n\n return (\n <input\n ref={inputRef}\n className={`PetCloudInput-input ${className || ''} `\n + `${error && 'Input-error'} ${disabled && 'Input-disabled'}`}\n disabled={disabled}\n maxLength={maxLength}\n name={inputName}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n onKeyPress={onKeyPress}\n placeholder={placeholder}\n type={type}\n value={value || ''}\n {...ariaProps}\n {...inputProps}\n />\n );\n }\n\n function renderInputError() {\n if (!error) {\n return null;\n }\n\n return (\n <p className={`PetCloudInput-error ${errorClassName}`}>\n {renderError ? renderError(error) : (\n <>\n <img alt=\"\" src={errorIcon} />\n\n <span>{error}</span>\n </>\n )}\n </p>\n );\n }\n\n return (\n <div className=\"PetCloudInput-main-container\">\n {title && (\n <div className=\"PetCloudInput-title-container\">\n <h6 className=\"PetCloudInput-title\">{title}</h6>\n\n <span className=\"PetCloudInput-optional\">{optionalText}</span>\n </div>\n )}\n\n {renderInput()}\n\n {renderInputError()}\n </div>\n );\n};\n\nexport { PetCloudInput };\n","import React, {\n useEffect,\n useRef,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContainer from '../common/ModalContainer';\nimport { FigoSelectSearchable } from './FigoSelectSearchable';\nimport {\n PET_GENDER,\n PET_TYPE_ID,\n} from '../../constants';\nimport closeIcon from '../../assets/close-button.svg';\nimport infoIcon from '../../assets/information-icon.svg';\nimport arrowIcon from '../../assets/back-arrow.svg';\nimport { ReactComponent as CatIcon } from '../../assets/sideMenu/cat.svg';\nimport { ReactComponent as DogIcon } from '../../assets/sideMenu/dog.svg';\n\nimport { AgeInputSelector } from './AgeInputSelector';\nimport { GroupButtonSelector } from '../common/petCloud/GroupButtonSelector';\nimport { ActionButton } from '../common/petCloud/ActionButton';\n\nimport ScrollableDiv from '../common/ScrollableDiv';\nimport { PetCloudInput } from '../common/petCloud';\n\nimport { useAddAPetModal } from './hooks/useAddAPetModal';\n\nimport { useMixpanel } from '../../hooks';\n\nimport { EV10 } from '../../services/mixpanel';\n\nimport './AddAPetModal.css';\n\nconst PET_BIO_MAX_LENGTH = 2000;\n\nconst AddAPetModal = ({\n isGPI = false,\n modalAddPetVisible,\n onCloseModalAddPet,\n petInformation = null,\n onDelete = () => { },\n onContactUsClick = () => { },\n}) => {\n const { sendEvent } = useMixpanel();\n const petNameRef = useRef();\n const petGenderRef = useRef();\n const petWeightRef = useRef();\n const petBioRef = useRef();\n const { t } = useTranslation('myPets');\n const isEditMode = !!petInformation;\n const modalTitle = isEditMode\n ? t('AddAPetModal.editPetTitle') : t('AddAPetModal.addPetTitle');\n const isPetInsured = petInformation && petInformation.IsInsured;\n function handleModalAddPetClose() {\n onCloseModalAddPet(false);\n }\n\n const {\n handlePetBreedSelectionChanged,\n handlePetGenderSelectionChange,\n handlePetNameChanged,\n handlePetNameOnBlur,\n handlePetsBioChange,\n handlePetTypeSelectedChanged,\n handlePetWeightChanged,\n handlePetWeightOnBlur,\n handlePetWeightOnFocus,\n handleSavePet,\n myPets,\n onBirthdaySelectorBlur,\n onDatePickerChange,\n petBio,\n petBirthdayError,\n petBirthdaySelected,\n petBreedError,\n petBreedList,\n petBreedSelected,\n petGenderError,\n petGenderSelected,\n petName,\n petNameError,\n petTypeError,\n petTypeSelected,\n petWeight,\n petWeightError,\n refreshPetsSuccess,\n saveButtonDisabled,\n } = useAddAPetModal({\n handleModalAddPetClose,\n isEditMode,\n modalAddPetVisible,\n petInformation,\n });\n\n useEffect(() => {\n if (petNameRef.current) {\n petNameRef.current.focus();\n }\n }, [petNameRef]);\n\n const petTypeSelectorValues = {\n left: {\n icon: DogIcon,\n id: PET_TYPE_ID.DOG,\n title: t('AddPetModal.dog'),\n },\n right: {\n icon: CatIcon,\n id: PET_TYPE_ID.CAT,\n title: t('AddPetModal.cat'),\n },\n };\n\n const genderSelectorValues = {\n left: {\n icon: null,\n id: PET_GENDER.MALE,\n title: t('AddPetModal.genderMale'),\n },\n right: {\n icon: null,\n id: PET_GENDER.FEMALE,\n title: t('AddPetModal.genderFemale'),\n },\n };\n\n async function handleSavePetSuccess() {\n if (myPets.addedPetId) {\n sendEvent(EV10({\n breedId: petBreedSelected.Id,\n breedName: petBreedSelected.Name,\n petDateOfBirth: petBirthdaySelected.toISOString().split('T')[0],\n petDescription: petBio.trim(),\n petGender: petGenderSelected ? 'Female' : 'Male',\n petId: myPets.addedPetId,\n petImageSelected: 'No',\n petName,\n petSpecies: petTypeSelected ? 'Cat' : 'Dog',\n petWeight,\n }));\n }\n\n onCloseModalAddPet();\n refreshPetsSuccess();\n }\n\n const handleEditContactSupport = () => {\n handleModalAddPetClose();\n onContactUsClick();\n };\n\n return (\n <ModalContainer show={modalAddPetVisible}>\n <ScrollableDiv className=\"Add-a-pet-modal-main-container\" tabIndex={-1}>\n <div className=\"Add-a-pet-title-container\">\n <h3>{modalTitle}</h3>\n\n <button\n className=\"Add-a-pet-modal-close-icon-container\"\n id=\"closeIconAddPetModal\"\n onClick={handleModalAddPetClose}\n type=\"button\"\n >\n <img\n alt=\"Close\"\n className=\"Add-a-pet-modal-close-icon\"\n src={closeIcon}\n />\n </button>\n </div>\n\n {isPetInsured && (\n <div className=\"Add-a-pet-modal-edit-message\">\n <img\n alt=\"Info\"\n className=\"Add-a-pet-modal-edit-message-icon\"\n src={infoIcon}\n />\n\n <div className=\"Add-a-pet-modal-edit-message-texts-wrapper\">\n <h4 className=\"Add-a-pet-modal-edit-message-title\">\n {t('AddAPetModal.editContactTitle')}\n </h4>\n\n <button\n className=\"Add-a-pet-modal-edit-message-button\"\n onClick={handleEditContactSupport}\n type=\"button\"\n >\n {t('AddAPetModal.editContactButton')}\n </button>\n </div>\n </div>\n )}\n\n <p className=\"Add-a-pet-modal-description\">\n {t('AddAPetModal.description')}\n </p>\n\n <div className=\"Add-a-pet-modal-content-container\">\n <PetCloudInput\n ariaProps={{ 'aria-label': t('AddAPetModal.petNameField') }}\n className=\"Add-a-pet-modal-pet-name\"\n disabled={isPetInsured}\n error={petNameError}\n inputRef={petNameRef}\n maxLength={70}\n onBlur={handlePetNameOnBlur}\n onChange={handlePetNameChanged}\n placeholder={t('AddAPetModal.petNameField')}\n title={t('AddAPetModal.petNameField')}\n value={petName}\n />\n\n <div className=\"Add-a-pet-row-container\">\n <GroupButtonSelector\n disabled={isPetInsured || isEditMode}\n error={petTypeError}\n onSelectionChange={handlePetTypeSelectedChanged}\n selectedValue={petTypeSelected}\n title={t('AddAPetModal.petTypeTitle')}\n values={petTypeSelectorValues}\n />\n\n <GroupButtonSelector\n disabled={isPetInsured && !isGPI}\n error={petGenderError}\n labelRef={petGenderRef}\n onSelectionChange={handlePetGenderSelectionChange}\n selectedValue={petGenderSelected}\n title={t('AddAPetModal.petGenderTitle')}\n values={genderSelectorValues}\n />\n </div>\n\n <div className=\"Add-a-pet-modal-pet-breed-wrapper\">\n <FigoSelectSearchable\n ariaProps={{ 'aria-label': t('AddAPetModal.breedSelector') }}\n arrowIcon={arrowIcon}\n classNameContainer=\"Add-a-pet-modal-pet-breed-container\"\n disabled={isPetInsured}\n elementDisplayName=\"Name\"\n elementValue=\"Id\"\n errorMessage={petBreedError}\n iconClassName=\"Add-a-pet-modal-pet-breed-icon\"\n items={petBreedList}\n onSelectionChanged={handlePetBreedSelectionChanged}\n placeholder={t('AddAPetModal.select')}\n placeholderClassname=\"Add-a-pet-modal-input-placeholder\"\n selectedValue={petBreedSelected}\n title={t('AddAPetModal.petBreedTitle')}\n />\n </div>\n\n <div className=\"Add-a-pet-row-container\">\n <AgeInputSelector\n error={petBirthdayError}\n handleInputError={onBirthdaySelectorBlur}\n onDatePickerSelectionChange={onDatePickerChange}\n selectedDate={petBirthdaySelected}\n />\n\n <PetCloudInput\n ariaProps={{ 'aria-label': t('AddAPetModal.petWeightTitle') }}\n className=\"Add-a-pet-modal-pet-weight\"\n error={petWeightError}\n inputRef={petWeightRef}\n onBlur={handlePetWeightOnBlur}\n onChange={handlePetWeightChanged}\n onFocus={handlePetWeightOnFocus}\n placeholder={t('AddAPetModal.pounds')}\n title={t('AddAPetModal.petWeightTitle')}\n value={petWeight}\n />\n </div>\n\n <PetCloudInput\n ariaProps={{ 'aria-label': t('AddAPetModal.petBioTitle') }}\n className=\"Add-a-pet-modal-pet-bio\"\n inputRef={petBioRef}\n isTextArea\n maxLength={PET_BIO_MAX_LENGTH}\n onChange={handlePetsBioChange}\n optionalText={t('AddAPetModal.optional')}\n placeholder={t('AddAPetModal.petBioPlaceholder')}\n title={t('AddAPetModal.petBioTitle')}\n value={petBio}\n />\n\n <span aria-live=\"polite\" className=\"Add-a-pet-modal-error\">\n {myPets.error && t('AddAPetModal.addPetError')}\n </span>\n </div>\n\n {isEditMode && !isPetInsured && (\n <div className=\"Add-a-pet-modal-delete-container\">\n <button\n className=\"Add-a-pet-modal-delete\"\n onClick={onDelete}\n type=\"button\"\n >\n {t('AddPetModal.delete')}\n </button>\n </div>\n )}\n\n <div className=\"Add-a-pet-modal-footer-container\" tabIndex={-1}>\n <ActionButton\n disabled={saveButtonDisabled}\n loading={myPets.loading}\n onClick={handleSavePet}\n onSuccess={handleSavePetSuccess}\n success={myPets.success}\n title={isEditMode ? t('AddAPetModal.saveButton')\n : t('AddAPetModal.addButton')}\n />\n\n <ActionButton\n isSecondaryButton\n onClick={handleModalAddPetClose}\n title={t('AddAPetModal.cancelButton')}\n />\n </div>\n </ScrollableDiv>\n </ModalContainer>\n );\n};\n\nexport { AddAPetModal };\n","import { useEffect, useMemo, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { PET_GENDER, PET_TYPE_ID } from '../../../constants';\nimport {\n addPet,\n addPetRestarted,\n editPet,\n loadBreedList,\n refreshPets,\n} from '../../../actions';\nimport {\n removeEmojis,\n removeInvalidSpacesOnNames,\n testNumberWithDecimal,\n} from '../../../services/utils';\n\nconst useAddAPetModal = ({\n isEditMode,\n modalAddPetVisible,\n petInformation,\n}) => {\n const { t } = useTranslation('myPets');\n const dispatch = useDispatch();\n const store = useSelector(({ myPets }) => ({ myPets }), shallowEqual);\n const [petTypeSelected, setPetTypeSelected] = useState(PET_TYPE_ID.DOG);\n const [petTypeError, setPetTypeError] = useState('');\n const [petGenderSelected, setPetGenderSelected] = useState(PET_GENDER.MALE);\n const [petGenderError, setPetGenderError] = useState('');\n const [petBreedSelected, setPetBreedSelected] = useState('');\n const [petBreedError, setPetBreedError] = useState('');\n const [petName, setPetName] = useState('');\n const [petNameError, setPetNameError] = useState('');\n const [petWeight, setPetWeight] = useState('');\n const [petWeightError, setPetWeightError] = useState('');\n const [petBirthdaySelected, setPetBirthdaySelected] = useState();\n const [petBirthdayError, setPetBirthdayError] = useState('');\n const [petBio, setPetBio] = useState('');\n const [petId, setPetId] = useState(0);\n const { myPets } = store;\n\n const REQUIRED_ERROR = t('AddAPetModal.requiredError');\n\n useEffect(() => {\n if (modalAddPetVisible) {\n setPetTypeSelected(PET_TYPE_ID.DOG);\n setPetTypeError('');\n setPetGenderSelected(PET_GENDER.MALE);\n setPetGenderError('');\n setPetBreedSelected('');\n setPetBreedError('');\n setPetName('');\n setPetNameError('');\n setPetWeight('');\n setPetWeightError('');\n setPetBirthdaySelected();\n setPetBirthdayError('');\n setPetBio('');\n setPetId(0);\n dispatch(addPetRestarted());\n }\n }, [modalAddPetVisible]);\n\n useEffect(() => {\n const { breedData } = myPets;\n\n if (!breedData.dogBreeds.length && !breedData.catBreeds.length) {\n dispatch(loadBreedList());\n }\n }, [dispatch, myPets.breedData]);\n\n const petBreedList = useMemo(() => {\n if (!myPets.breedData.catBreeds.length\n || !myPets.breedData.dogBreeds.length\n || petTypeSelected === null) {\n const emptyBreed =\n { Id: -1, Name: '' };\n setPetBreedSelected(emptyBreed);\n return [emptyBreed];\n }\n\n const newBreedList = petTypeSelected === PET_TYPE_ID.DOG\n ? myPets.breedData.dogBreeds : myPets.breedData.catBreeds;\n\n let breedSelected = newBreedList[0];\n\n if (isEditMode) {\n breedSelected = newBreedList\n .find((breed) => breed.Id === parseInt(petInformation.BreedId, 10))\n || petInformation.BreedInformation;\n }\n\n setPetBreedSelected(breedSelected);\n\n setPetBreedError('');\n\n return newBreedList;\n }, [petTypeSelected, myPets.breedData, isEditMode]);\n\n useEffect(() => {\n setPetName(petInformation ? petInformation.Name : '');\n setPetTypeSelected(petInformation ? petInformation.PetType\n : PET_TYPE_ID.DOG);\n setPetBreedSelected(petInformation ? petInformation.BreedInformation : '');\n setPetGenderSelected(petInformation ? petInformation.Gender\n : PET_GENDER.MALE);\n setPetBirthdaySelected(petInformation ? petInformation.DateOfBirth : null);\n const petWeightClean = petInformation\n ? Number(petInformation.Weight).toFixed(2) : '';\n setPetWeight(`${petWeightClean} ${t('AddAPetModal.pounds')}`);\n setPetBio((petInformation\n ? petInformation.Description\n : '').replace(/\"/g, ''));\n setPetId(petInformation ? petInformation.Id : null);\n\n dispatch(addPetRestarted());\n }, [dispatch, petInformation]);\n\n function onDatePickerChange(newDate) {\n setPetBirthdaySelected(newDate);\n if (newDate) {\n setPetBirthdayError('');\n }\n }\n\n function onBirthdaySelectorBlur(value) {\n if (!value) {\n setPetBirthdayError(REQUIRED_ERROR);\n }\n }\n\n function handlePetNameChanged({ target: { value } }) {\n const cleanValue = removeEmojis(value);\n setPetName(cleanValue);\n if (cleanValue) {\n setPetNameError('');\n }\n }\n\n function handlePetNameOnBlur() {\n let errorPetName = '';\n let newPetName = '';\n\n newPetName = removeInvalidSpacesOnNames(petName);\n setPetName(newPetName);\n errorPetName = !newPetName;\n setPetNameError(errorPetName ? REQUIRED_ERROR : '');\n }\n\n function handlePetWeightChanged({ target: { value } }) {\n const onlyNumbers = testNumberWithDecimal(value);\n if (!onlyNumbers && value) {\n return;\n }\n\n setPetWeight(value);\n if (value) {\n setPetWeightError('');\n }\n }\n\n function handlePetWeightOnFocus() {\n if (petWeight) {\n const poundValue = petWeight.split(t('AddAPetModal.pounds'))[0];\n const cleanNumber = !petWeight ? '' : Number(poundValue).toFixed(2);\n setPetWeight(cleanNumber);\n }\n }\n\n function handlePetWeightOnBlur() {\n const cleanNumber = !petWeight ? '' : Number(petWeight).toFixed(2);\n setPetWeight(`${cleanNumber} ${t('AddAPetModal.pounds')}`);\n if (!cleanNumber) {\n setPetWeightError(REQUIRED_ERROR);\n }\n }\n\n function handlePetTypeSelectedChanged(newPetType) {\n setPetTypeSelected(newPetType);\n setPetTypeError('');\n }\n\n function handlePetBreedSelectionChanged(newPetBreed) {\n setPetBreedSelected(newPetBreed);\n }\n\n function handlePetGenderSelectionChange(newPetGender) {\n setPetGenderSelected(newPetGender);\n setPetGenderError('');\n }\n\n function handlePetsBioChange(event) {\n const { value } = event.target;\n\n setPetBio(removeEmojis(value));\n }\n\n function handleSavePet() {\n const poundValue = petWeight.split(t('AddAPetModal.pounds'))[0];\n const cleanNumber = !petWeight ? '0' : Number(poundValue).toFixed(2);\n\n if (isEditMode) {\n dispatch(editPet({\n BreedId: petBreedSelected.Id,\n Description: petBio.trim(),\n DOB: petBirthdaySelected.toISOString().split('T')[0],\n Gender: petGenderSelected,\n Id: petId,\n Name: petName,\n TypeId: petTypeSelected,\n Weight: cleanNumber,\n }));\n\n return;\n }\n\n dispatch(addPet({\n petToAdd: {\n Birthday: petBirthdaySelected.toISOString().split('T')[0],\n BreedId: petBreedSelected.Id,\n Gender: petGenderSelected,\n Name: petName,\n Notes: petBio.trim(),\n Picture: null,\n Type: petTypeSelected,\n Weight: cleanNumber,\n },\n }));\n }\n\n function refreshPetsSuccess() {\n dispatch(refreshPets());\n }\n\n const saveButtonDisabled = useMemo(() => !petName || !petBreedSelected\n || !petBirthdaySelected || !petWeight || petNameError || petBreedError\n || petBirthdayError || petWeightError,\n [\n petBirthdayError,\n petBirthdaySelected,\n petBreedError,\n petBreedSelected,\n petName,\n petNameError,\n petWeight,\n petWeightError,\n ]);\n\n return {\n handlePetBreedSelectionChanged,\n handlePetGenderSelectionChange,\n handlePetNameChanged,\n handlePetNameOnBlur,\n handlePetsBioChange,\n handlePetTypeSelectedChanged,\n handlePetWeightChanged,\n handlePetWeightOnBlur,\n handlePetWeightOnFocus,\n handleSavePet,\n myPets,\n onBirthdaySelectorBlur,\n onDatePickerChange,\n petBio,\n petBirthdayError,\n petBirthdaySelected,\n petBreedError,\n petBreedList,\n petBreedSelected,\n petGenderError,\n petGenderSelected,\n petName,\n petNameError,\n petTypeError,\n petTypeSelected,\n petWeight,\n petWeightError,\n refreshPetsSuccess,\n saveButtonDisabled,\n };\n};\n\nexport { useAddAPetModal };\n","import React, { useState, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport { PET_TYPE } from '../../constants';\nimport { ReactComponent as CatIcon } from '../../assets/sideMenu/cat.svg';\nimport { ReactComponent as DogIcon } from '../../assets/sideMenu/dog.svg';\nimport { ReactComponent as AddIcon } from '../../assets/sideMenu/add.svg';\nimport { MY_PETS } from '../navigation/routes.constants';\n\nimport SideMenuItem from './SideMenuItem';\nimport { SideMenuActionButton } from './SideMenuActionButton';\nimport { AddAPetModal } from '../myPets/AddAPetModal';\n\nimport './YourPetsSection.css';\n\nexport const YourPetsSection = ({ onMenuItemPress = () => { } }) => {\n const [showAddPetModal, setShowAddPetModal] = useState(false);\n const { t } = useTranslation('sideMenu');\n const pets = useSelector(({ policies }) => policies.allPets, shallowEqual);\n\n const toggle = useCallback(() => {\n setShowAddPetModal((prevShow) => !prevShow);\n }, []);\n\n return (\n <nav aria-labelledby=\"your-pets-nav\">\n <div className=\"Side-menu-section-title\" id=\"your-pets-nav\">\n {t('yourPets')}\n </div>\n\n <ul className=\"Your-pets-section-list\">\n {pets.map((pet) => (\n <li key={pet.PetId}>\n <SideMenuItem\n Icon={pet.PetType === PET_TYPE.DOG ? DogIcon : CatIcon}\n label={pet.Name}\n onClick={onMenuItemPress}\n to={`${MY_PETS}/${pet.PetId}`}\n />\n </li>\n ))}\n </ul>\n\n <SideMenuActionButton\n Icon={AddIcon}\n label={t('addPet')}\n onClick={toggle}\n />\n\n <AddAPetModal\n modalAddPetVisible={showAddPetModal}\n onCloseModalAddPet={toggle}\n />\n </nav>\n );\n};\n","import React from 'react';\n\nimport arrow from '../../../../assets/back-arrow.svg';\n\nimport './CardProvider.css';\n\nconst CardProvider = ({\n onClick = () => { },\n providerIcon = null,\n providerIconStyle = '',\n}) => (\n <button\n className=\"Contact-us-card-provider-card\"\n onClick={onClick}\n type=\"button\"\n >\n <img alt=\"provider\" className={providerIconStyle} src={providerIcon} />\n\n <img alt=\"go\" className=\"Contact-us-card-provider-back-arrow\" src={arrow} />\n </button>\n);\n\nexport { CardProvider };\n","import React from 'react';\n\nimport './ContactInformationRow.css';\n\nconst ContactInformationRow = ({\n leftText = '',\n link = null,\n rightText = '',\n}) => (\n <div className=\"Contact-information-row-container\">\n <span className=\"Contact-information-left-text\">\n {leftText}\n </span>\n\n {link\n ? (\n <a\n className=\"Contact-information-link\"\n href={link}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {rightText}\n </a>\n )\n : (\n <span className=\"Contact-information-right-text\">\n {rightText}\n </span>\n )}\n </div>\n);\n\nexport { ContactInformationRow };\n","import React from 'react';\n\nimport './ScheduleRow.css';\n\nconst ScheduleRow = ({\n classContainer = '',\n leftText = '',\n rightText = '',\n}) => (\n <div className={`Contact-us-schedule-row ${classContainer}`}>\n <span className=\"Contact-us-schedule-text Margin-right-33\">\n {leftText}\n </span>\n\n <span className=\"Contact-us-schedule-text\">\n {rightText}\n </span>\n </div>\n);\n\nexport { ScheduleRow };\n","import React from 'react';\n\nimport './ScheduleRowTitle.css';\n\nconst ScheduleRowTitle = ({ containerClass = '', title = '' }) => (\n <span className={`Contact-us-schedule-row-title ${containerClass}`}>\n {title}\n </span>\n);\n\nexport { ScheduleRowTitle };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport './HoursOfOperationTitle.css';\n\nconst HoursOfOperationTitle = () => {\n const { t } = useTranslation('sideMenu');\n\n return (\n <span className=\"Contact-us-hours-operation\">\n {t('contactUs.hoursOfOperation')}\n </span>\n );\n};\n\nexport { HoursOfOperationTitle };\n","const CONTACT_US_STEPS = {\n AKC: 'akc',\n FIGO: 'figo',\n HOME: 'home',\n PPI: 'ppi',\n PPI_ONE_PACK: 'ppiOnePack',\n};\n\nconst CONTACT_US_STEPS_BY_NUMBER = {\n 0: 'home',\n 1: 'figo',\n 2: 'ppi',\n 3: 'akc',\n 4: 'ppiOnePack',\n};\n\nconst MESSENGER_LINK = 'http://m.me/FigoPet';\n\nconst FACEBOOK_TITLE = 'Facebook';\n\nexport {\n FACEBOOK_TITLE,\n MESSENGER_LINK,\n CONTACT_US_STEPS,\n CONTACT_US_STEPS_BY_NUMBER,\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n ContactInformationRow,\n HoursOfOperationTitle,\n ScheduleRow,\n ScheduleRowTitle,\n} from './common';\n\nimport {\n FACEBOOK_TITLE,\n MESSENGER_LINK,\n} from './contactUs.constants';\n\nimport './ContactUsCompany.css';\n\nconst getTitleFromLink = ({ link, title }) => {\n if (!title) {\n if (link === MESSENGER_LINK) {\n return FACEBOOK_TITLE;\n }\n\n return link;\n }\n\n return title;\n};\n\nconst ContactUsCompany = ({\n contactInfo = {},\n extraText = '',\n logo = null,\n logoClass = '',\n}) => {\n const { t } = useTranslation('sideMenu');\n\n return (\n <div className=\"Contact-us-company-container\">\n\n <div className=\"Contact-us-company-header-container\">\n <h1 className=\"Contact-us-company-header-title\">\n {t('contactUs.menuTitle')}\n </h1>\n\n <p className=\"Contact-us-company-header-description\">\n {t('contactUs.description')}\n </p>\n\n </div>\n\n <img alt=\"\" className={logoClass} src={logo} />\n\n <div className=\"Contact-us-extra-text\">{extraText}</div>\n\n <HoursOfOperationTitle />\n\n {contactInfo.HoursOfOperation?.map((item, childNum) => (\n <div\n key={`ContactuUs-${item.Name}`}\n className={childNum > 0 ? 'Margin-top-16' : ''}\n >\n <ScheduleRowTitle title={item.Name} />\n\n {item.Date.map((date, index) => (\n <ScheduleRow\n key={`ScheduleRow-${date.Value}`}\n classContainer={`Margin-top-${index === 0 ? '8' : '15'}`}\n leftText={`${date.Value.split(': ')[0]}:`}\n rightText={date.Value.split(': ')[1]}\n />\n ))}\n </div>\n ))}\n\n <div className=\"Margin-top-8\" />\n\n {contactInfo.ContactInformation?.map((item) => (\n <ContactInformationRow\n key={item.Value}\n leftText={item.Name}\n link={!item.Value ? item.Action : ''}\n rightText={getTitleFromLink({\n link: item.Action,\n title: item.Value,\n })}\n />\n ))}\n </div>\n );\n};\n\nexport { ContactUsCompany };\n","export default __webpack_public_path__ + \"static/media/figo-logo.a2ea4f42.svg\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/ppi-one-pack-logo.e043a701.svg\";","export default __webpack_public_path__ + \"static/media/akc-logo.420a1451.svg\";","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { CardProvider } from './common';\n\nimport figoLogo from '../../../assets/brandProviderLogos/figo-logo.svg';\nimport ppiLogo from '../../../assets/brandProviderLogos/ppi-logo.png';\nimport ppiOnePackLogo\nfrom '../../../assets/brandProviderLogos/ppi-one-pack-logo.svg';\nimport akcLogo from '../../../assets/brandProviderLogos/akc-logo.svg';\n\nimport { CONTACT_US_STEPS } from './contactUs.constants';\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\nimport { ContactUsCompany } from './ContactUsCompany';\n\nconst ContactUsHome = ({\n contactInfo = {},\n insuranceCompanies = [],\n onProviderClick = () => { },\n}) => {\n const { t } = useTranslation('sideMenu');\n\n const companiesMemo = useMemo(\n () => insuranceCompanies.map((company) => {\n let item = {\n contactInfo: contactInfo.figoInfo,\n icon: figoLogo,\n name: 'figo',\n step: CONTACT_US_STEPS.FIGO,\n };\n\n switch (company.Id) {\n case MARKETING_CHANNEL_ID.akc:\n item = {\n contactInfo: contactInfo.akcInfo,\n icon: akcLogo,\n name: 'akc',\n step: CONTACT_US_STEPS.AKC,\n };\n break;\n\n case MARKETING_CHANNEL_ID.ppi:\n item = {\n contactInfo: contactInfo.ppiInfo,\n icon: ppiLogo,\n name: 'ppi',\n step: CONTACT_US_STEPS.PPI,\n };\n break;\n\n case MARKETING_CHANNEL_ID.ppiOnePack:\n item = {\n contactInfo: contactInfo.ppiOnePackInfo,\n icon: ppiOnePackLogo,\n name: 'ppi-one-pack',\n step: CONTACT_US_STEPS.PPI_ONE_PACK,\n };\n break;\n\n default:\n break;\n }\n\n return item;\n }), [insuranceCompanies],\n );\n\n if (companiesMemo.length === 1) {\n const [company] = companiesMemo;\n\n return (\n <ContactUsCompany\n contactInfo={company.contactInfo}\n logo={company.icon}\n logoClass={`Contact-us-${company.name}-logo`}\n />\n );\n }\n\n return (\n <>\n <h1 className=\"Contact-us-modal-title\">\n {t('contactUs.modalTitle')}\n </h1>\n\n <h3 className=\"Contact-us-modal-sub-title\">\n {t('contactUs.modalSubTitle')}\n </h3>\n\n {companiesMemo.map(({ icon, name, step }) => (\n <CardProvider\n key={step}\n onClick={onProviderClick(step)}\n providerIcon={icon}\n providerIconStyle={`Contact-us-modal-${name}-icon`}\n />\n ))}\n </>\n );\n};\n\nexport { ContactUsHome };\n","import React from 'react';\n\nimport ModalContainer, {\n MODAL_CONTAINER_ANIMATION_TYPE,\n} from '../../common/ModalContainer';\n\nimport close from '../../../assets/close-button.svg';\nimport back from '../../../assets/back-arrow-blue.png';\n\nimport { useContactUsModal } from './hooks';\nimport { CONTACT_US_STEPS } from './contactUs.constants';\n\nimport './ContactUsModal.css';\n\nconst ContactUsModal = ({\n companyStep = '',\n custom = false,\n customDescription = '',\n customTitle = '',\n extraText = '',\n hasHeader = false,\n onClose = () => { },\n show = false,\n}) => {\n const {\n onBackClick,\n renderContent,\n shouldRenderBackButton,\n t,\n } = useContactUsModal({ companyStep, hasHeader, show });\n return (\n <ModalContainer\n animationType={MODAL_CONTAINER_ANIMATION_TYPE.OPACITY}\n contentStyle={`Contact-us-modal-container \n ${shouldRenderBackButton\n ? 'Contact-us-modal-container-with-back-button' : ''}`}\n handleOutClick={onClose}\n show={show}\n >\n {hasHeader && CONTACT_US_STEPS.HOME !== companyStep && (\n <div className=\"Contact-us-modal-header-container\">\n <h1 className=\"Contact-us-modal-header-title\">\n {custom ? customTitle : t('contactUs.menuTitle')}\n </h1>\n\n <p className=\"Contact-us-modal-header-description\">\n {custom ? customDescription : t('contactUs.description')}\n </p>\n </div>\n )}\n\n {shouldRenderBackButton && (\n <button\n className=\"Contact-us-modal-back-button\"\n onClick={onBackClick}\n type=\"button\"\n >\n <img alt=\"\" src={back} />\n\n <span>\n {t('contactUs.back')}\n </span>\n </button>\n )}\n\n <button\n className=\"Contact-us-modal-close-button\"\n onClick={onClose}\n type=\"button\"\n >\n <img alt=\"close\" src={close} />\n </button>\n\n {renderContent(extraText)}\n </ModalContainer>\n );\n};\n\nexport { ContactUsModal };\n","import React, { useState, useMemo, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\n\nimport { ContactUsCompany } from '../ContactUsCompany';\nimport { ContactUsHome } from '../ContactUsHome';\n\nimport akcLogo from '../../../../assets/brandProviderLogos/akc-logo.svg';\nimport ppiLogo from '../../../../assets/brandProviderLogos/ppi-logo.png';\nimport ppiOnePackLogo\nfrom '../../../../assets/brandProviderLogos/ppi-one-pack-logo.svg';\nimport figoLogo from '../../../../assets/brandProviderLogos/figo-logo.svg';\n\nimport { CONTACT_US_STEPS } from '../contactUs.constants';\nimport { MARKETING_CHANNEL_ID } from '../../../../theme/theme.constants';\nimport { getContactBrandData } from '../../../../actions';\n\nconst useContactUsModal = ({\n companyStep = '',\n hasHeader = false,\n show = false,\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslation('sideMenu');\n const [currentStep, setCurrentStep] = useState(CONTACT_US_STEPS.HOME);\n\n const store = useSelector(({\n home,\n personalInformation,\n }) => ({ home, personalInformation }), shallowEqual);\n\n const insuranceCompanies = store.personalInformation.userInfo.Companies;\n\n useEffect(() => {\n dispatch(getContactBrandData());\n }, []);\n\n const contactInfo = useMemo(() => {\n if (!store.home.contactInfo) {\n return {\n akcInfo: {},\n figoInfo: {},\n ppiInfo: {},\n ppiOnePackInfo: {},\n };\n }\n\n const ppiOnePackInfo = store.home.contactInfo\n .find((item) => item.companyId === MARKETING_CHANNEL_ID.ppiOnePack);\n\n const ppiInfo = store.home.contactInfo\n .find((item) => item.companyId === MARKETING_CHANNEL_ID.ppi);\n\n const akcInfo = store.home.contactInfo\n .find((item) => item.companyId === MARKETING_CHANNEL_ID.akc);\n\n const figoInfo = store.home.contactInfo\n .find((item) => item.companyId === MARKETING_CHANNEL_ID.figo);\n\n return { akcInfo, figoInfo, ppiInfo, ppiOnePackInfo };\n }, [store.home.contactInfo]);\n\n const shouldRenderBackButton = useMemo(() => {\n if (hasHeader) {\n return false;\n }\n if (!hasHeader && currentStep === CONTACT_US_STEPS.HOME) {\n return false;\n }\n return true;\n }, [currentStep, companyStep]);\n\n useEffect(() => {\n if (companyStep) {\n setCurrentStep(companyStep);\n }\n }, [companyStep]);\n\n useEffect(() => {\n if (show && !hasHeader) {\n setCurrentStep(CONTACT_US_STEPS.HOME);\n }\n }, [show]);\n\n const onProviderClick = (step) => () => {\n setCurrentStep(step);\n };\n\n const onBackClick = () => {\n setCurrentStep(CONTACT_US_STEPS.HOME);\n };\n\n const renderContent = (extraText) => {\n switch (currentStep) {\n case CONTACT_US_STEPS.AKC:\n return (\n <ContactUsCompany\n contactInfo={contactInfo.akcInfo}\n extraText={extraText}\n logo={akcLogo}\n logoClass=\"Contact-us-akc-logo\"\n />\n );\n\n case CONTACT_US_STEPS.FIGO:\n return (\n <ContactUsCompany\n contactInfo={contactInfo.figoInfo}\n extraText={extraText}\n logo={figoLogo}\n logoClass=\"Contact-us-figo-logo\"\n />\n );\n\n case CONTACT_US_STEPS.PPI:\n return (\n <ContactUsCompany\n contactInfo={contactInfo.ppiInfo}\n extraText={extraText}\n logo={ppiLogo}\n logoClass=\"Contact-us-ppi-logo\"\n />\n );\n\n case CONTACT_US_STEPS.PPI_ONE_PACK:\n return (\n <ContactUsCompany\n contactInfo={contactInfo.ppiOnePackInfo}\n extraText={extraText}\n logo={ppiOnePackLogo}\n logoClass=\"Contact-us-ppi-one-pack-logo\"\n />\n );\n\n case CONTACT_US_STEPS.HOME:\n default:\n return (\n <ContactUsHome\n contactInfo={contactInfo}\n insuranceCompanies={insuranceCompanies}\n onProviderClick={onProviderClick}\n />\n );\n }\n };\n\n return {\n onBackClick,\n renderContent,\n shouldRenderBackButton,\n t,\n };\n};\n\nexport { useContactUsModal };\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAC1SURBVHgBnZMxDsIwDEXttEPHDmVnrDpxhSxI3IKjcBRuUcHSI9AJMTIiMeCRBUwyUIlAmx8sRYlkvafYcYiAmDX7RdXsblXdbsJcjsBK2rGqZETbMM8wrGovp9UZFiDwqACFfwpS4C9BKvwhKOt2nhtzSIF9mOFUFOK3p1t3wmMQSG+FiS0zlxlz52+ECEabqK6UhytFUpr4jyQ6SDEJNMpTkkkBIjExwfW47N+v477uOsy/ANUqo7HOL2ArAAAAAElFTkSuQmCC\"","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Col from 'react-bootstrap/Col';\nimport Row from 'react-bootstrap/Row';\nimport './SideMenu.css';\nimport { ReactComponent as InsuranceIcon }\nfrom '../../assets/sideMenu/insurance.svg';\nimport { ReactComponent as HomeIcon }\nfrom '../../assets/sideMenu/home.svg';\nimport { ReactComponent as ClaimsIcon }\nfrom '../../assets/sideMenu/claims.svg';\nimport { ReactComponent as InboxDocsIcon }\nfrom '../../assets/sideMenu/inbox-docs.svg';\nimport { ReactComponent as MyAccountIcon }\nfrom '../../assets/sideMenu/my-account.svg';\nimport { ReactComponent as LogoutIcon }\nfrom '../../assets/sideMenu/logout.svg';\nimport { ReactComponent as HeadsetIcon }\nfrom '../../assets/sideMenu/headset.svg';\n// import vetsIcon from '../../assets/sideMenu/vets-active.png';\n// import vetsIconInactive from '../../assets/sideMenu/vets.png';\nimport * as routes from '../navigation/routes.constants';\nimport SideMenuItem from './SideMenuItem';\nimport '../navigation/HeaderCommon.css';\nimport { YourPetsSection } from './YourPetsSection';\nimport { SideMenuActionButton } from './SideMenuActionButton';\n\nimport { useLogoutSessionCleaner, useMixpanel } from '../../hooks';\nimport { EV2 } from '../../services/mixpanel';\nimport { ContactUsModal } from './contactUs/ContactUsModal';\nimport { CONTACT_US_STEPS } from './contactUs/contactUs.constants';\n\nconst SideMenu = (props) => {\n const { t } = useTranslation('sideMenu');\n const { logout } = useLogoutSessionCleaner();\n const { sendEvent } = useMixpanel();\n\n function handleClaimsClick() {\n props.onMenuItemPress();\n sendEvent(EV2({ source: 'Home Menu' }));\n }\n\n function handleInsuranceClick() {\n props.onMenuItemPress();\n }\n\n const onContactUsClick = () => {\n props.setContactUsVisible(true);\n };\n\n const onContactUsClose = () => {\n props.setContactUsVisible(false);\n };\n\n return (\n <div className=\"Side-menu\">\n <Row className=\"Side-menu-body\">\n <Col className=\"Side-menu-content\">\n <Row>\n <Col className=\"Side-menu-links\">\n <nav className=\"Flex-column\">\n <SideMenuItem\n Icon={HomeIcon}\n label={t('home')}\n onClick={props.onMenuItemPress}\n to={routes.HOME}\n />\n\n <SideMenuItem\n Icon={InsuranceIcon}\n label={t('insurance')}\n onClick={handleInsuranceClick}\n to={routes.INSURANCE}\n />\n\n <SideMenuItem\n Icon={ClaimsIcon}\n label={t('claims')}\n onClick={handleClaimsClick}\n to={routes.CLAIMS}\n />\n\n <SideMenuItem\n Icon={InboxDocsIcon}\n label={t('inboxAndDocs')}\n onClick={props.onMenuItemPress}\n to={routes.INBOX_DOCS}\n />\n\n <SideMenuItem\n Icon={MyAccountIcon}\n label={t('myAccount')}\n onClick={props.onMenuItemPress}\n to={routes.MY_ACCOUNT}\n />\n\n {/* TODO uncomment when is ready to prod */}\n {/* <SideMenuItem\n activeIcon={vetsIcon}\n exact\n inactiveIcon={vetsIconInactive}\n label={t('vets')}\n onClick={props.onMenuItemPress}\n to=\"/vets\"\n /> */}\n </nav>\n </Col>\n </Row>\n\n <YourPetsSection\n onContactUsClick={onContactUsClick}\n onMenuItemPress={props.onMenuItemPress}\n />\n\n <ContactUsModal\n companyStep={CONTACT_US_STEPS.HOME}\n onClose={onContactUsClose}\n show={props.contactUsVisible}\n />\n\n <div className=\"Side-menu-logout-container\">\n <SideMenuActionButton\n className=\"Side-menu-contact-us\"\n Icon={HeadsetIcon}\n iconClassName=\"Side-menu-contact-us-icon\"\n label={t('contactUs.menuTitle')}\n onClick={onContactUsClick}\n />\n\n <SideMenuActionButton\n className=\"Side-menu-logout\"\n Icon={LogoutIcon}\n iconClassName=\"Side-menu-logout-icon\"\n label={t('logout')}\n onClick={logout}\n />\n </div>\n </Col>\n </Row>\n </div>\n );\n};\n\nexport default SideMenu;\n","export default \"data:image/png;base64,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\"","import React from 'react';\nimport './Shimmer.css';\n\nconst Shimmer = (props = { visible: true }) => {\n function isVisible() {\n if (props.visible) {\n return `${props.className} Shimmer`;\n }\n\n return props.className || '';\n }\n\n function styles() {\n if (!props.visible) {\n return {};\n }\n\n const style = { borderRadius: props.borderRadius, margin: props.margin };\n\n if (props.height) {\n style.height = props.height;\n }\n\n if (props.width) {\n style.width = props.width;\n }\n\n return style;\n }\n\n switch (props.element) {\n case 'span': {\n return (\n <span className={isVisible()} style={styles()}>\n {props.children}\n </span>\n );\n }\n\n case 'touchableDiv': {\n return (\n <button\n ref={props.compRef}\n className={isVisible()}\n id={props.id}\n onClick={props.onClick}\n onKeyDown={props.onKeyDown}\n onKeyPress={props.onKeyPress}\n style={styles()}\n type=\"button\"\n {...props.ariaProps}\n >\n {props.children}\n </button>\n );\n }\n\n case 'fragment':\n return (\n <>\n {props.visible ? (\n <div className={isVisible()} style={styles()}>\n {props.children}\n </div>\n ) : (\n <>\n {props.children}\n </>\n )}\n </>\n );\n\n default: return (\n <div className={isVisible()} style={styles()}>\n {props.children}\n </div>\n );\n }\n};\n\nShimmer.defaultProps = {\n borderRadius: 8,\n height: 0,\n visible: true,\n width: 0,\n};\n\nexport default Shimmer;\n","import React from 'react';\nimport { CLAIM_STATUS_BY_TEXT } from '../../../constants';\n\nexport const ClaimInfoItem = ({\n title = '',\n value = '',\n direction = '',\n bold = false,\n}) => (\n <div className={`Claim-info-item ${direction === 'column'\n ? 'Claim-info-item-column'\n : ''}`}\n >\n <h4 className=\"Claim-info-title\">{title}</h4>\n\n <div className={'Claim-info-value'\n + ` ${value === CLAIM_STATUS_BY_TEXT.attentionNeeded\n ? 'Claim-info-value-attentionNeeded' : ''}`\n + `${bold ? 'Claim-info-bold' : ''}`}\n >\n {value}\n </div>\n </div>\n);\n","export default __webpack_public_path__ + \"static/media/figo-logo.d8237f4c.svg\";","export default __webpack_public_path__ + \"static/media/figo-logo-white.274b0451.svg\";","export default __webpack_public_path__ + \"static/media/petpartners-logo.e0a8534f.svg\";","export default __webpack_public_path__ + \"static/media/akc-logo.420a1451.svg\";","export default __webpack_public_path__ + \"static/media/spot-logo.c3bc5a28.svg\";","export default __webpack_public_path__ + \"static/media/akc-simplified.1059047b.svg\";","export default __webpack_public_path__ + \"static/media/ppi-simplified.cae8a5dd.svg\";","export default __webpack_public_path__ + \"static/media/spot-simplified.1a305bfa.svg\";","export default __webpack_public_path__ + \"static/media/akc-logo-white.4ee90569.svg\";","export default __webpack_public_path__ + \"static/media/ppi-logo-white.1915fa23.svg\";","export default __webpack_public_path__ + \"static/media/ppi-onepack.fe4d954b.svg\";","export default __webpack_public_path__ + \"static/media/spot-logo-white.8cdfb865.svg\";","import {\n THEME_AKC,\n THEME_PET_PARTNERS,\n THEME_SPOT,\n MARKETING_CHANNEL_ID,\n} from './theme.constants';\nimport { getCompany, getStoreThemeId } from './theme.store';\n\nimport figoLogoDark\nfrom '../assets/brandLogos/dark-background/figo-logo.svg';\nimport figoLogoWhite from '../assets/figo-logo-white.svg';\nimport partnersLogoDark\nfrom '../assets/brandLogos/dark-background/petpartners-logo.svg';\nimport akcDark from '../assets/brandLogos/dark-background/akc-logo.svg';\nimport spotDark from '../assets/brandLogos/dark-background/spot-logo.svg';\nimport akcLogo from '../assets/brandLogos/simplified/akc-simplified.svg';\nimport ppiLogo from '../assets/brandLogos/simplified/ppi-simplified.svg';\nimport ppiOnePack from '../assets/brandProviderLogos/ppi-one-pack-logo.svg';\nimport spotLogo from '../assets/brandLogos/simplified/spot-simplified.svg';\nimport akcWhiteLogo from '../assets/brandLogos/white/akc-logo-white.svg';\nimport ppiWhiteLogo from '../assets/brandLogos/white/ppi-logo-white.svg';\nimport ppiOPWhite from '../assets/brandLogos/white/ppi-onepack.svg';\nimport spotWhiteLogo from '../assets/brandLogos/white/spot-logo-white.svg';\n\nexport async function getTheme() {\n const defaultCompany = await getCompany();\n const defaultThemeId = defaultCompany.Id;\n\n return { company: defaultCompany, themeId: defaultThemeId };\n}\n\nexport async function getThemeId() {\n const defaultTheme = await getStoreThemeId();\n\n return defaultTheme;\n}\n\nexport function getThemeLogoById(themeId) {\n let themeLogo = {\n dark: figoLogoDark,\n simplified: null,\n white: figoLogoWhite,\n };\n\n switch (parseInt(themeId, 10)) {\n case MARKETING_CHANNEL_ID.akc:\n themeLogo = {\n dark: akcDark,\n simplified: akcLogo,\n white: akcWhiteLogo,\n };\n break;\n case MARKETING_CHANNEL_ID.ppi:\n themeLogo = {\n dark: partnersLogoDark,\n simplified: ppiLogo,\n white: ppiWhiteLogo,\n };\n break;\n case MARKETING_CHANNEL_ID.ppiOnePack:\n themeLogo = {\n dark: ppiOnePack,\n simplified: ppiLogo,\n white: ppiOPWhite,\n };\n break;\n case MARKETING_CHANNEL_ID.spot:\n themeLogo = {\n dark: spotDark,\n simplified: spotLogo,\n white: spotWhiteLogo,\n };\n break;\n default:\n themeLogo = {\n dark: figoLogoDark,\n simplified: null,\n white: figoLogoWhite,\n };\n }\n\n return themeLogo;\n}\n\nexport async function getThemeLogo() {\n const themeFromStore = await getStoreThemeId();\n\n return getThemeLogoById(themeFromStore);\n}\n\nexport function isOrcaCompany(companyId) {\n return [THEME_AKC, THEME_PET_PARTNERS, THEME_SPOT].includes(companyId);\n}\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAACXBIWXMAAAsSAAALEgHS3X78AAAFYElEQVR42u1czW8TRxRfUVBvPXDkgsQVqYdwCApnLvwHHDij9JRDpKQHhMWX+KZqgX6KtgkIEgRIgEJaBRJ7d+cjChIlEFG1qdKqqkQvbfohkabB/N5mHK+d2F57Z4ZxWEtPtuz1zsxv33vze+/NjOdZfOVyuQ1BEGwpcN4RCLF7gsm9+NxdYKInH/I+vB8gUZ976De6hq6N/oP/0j289fQaEeIdn/NOGmieiX4MPpdKcA+6F92T7t2WoExNTW0qCPGuH4p9PpcHU4NSQ+je1Aa1RW26ry0jI2/DFHbhKfeaAqWOZvVS29QH54AZHh5+K89YF/kO68Cslj7qC/XJCXDuh+HWiVC85wAwFUJ9or69NmDGx8c35gOxxzVgVgn6SH21Cs4oY5uhxvudB2fFP7H91Gcr4Pi+vw0c5f22AUcJ9Zn6bhScIJjcrohcrh2F+k5jMKM5QuwwyWlsScSdMBbtmrMewImDpE2TlM85sF7AiZtbap9Enr8dHXIzjrvl2S3iOe00laegAC3xpLYggRrJZNPhwxsDjpLEYQkFeS7GVjZit0QBrorKHXKkfLIQyl8KIT9qwR91NcznOJKyKIFz1mdyqRCKIkCatJEqqZtPipJdTmmPHF0GJ5KXPhPnjbcJDGqmSV9LJrBuZ+X3MYCK4C0z+O7jgMujJjOTa6ZvKa/rVjggDsOsXlQAVJb//VA+wzWnjTwYYLE6pAjFPqe0J5TXa4BTlkB8Z+ThAIs1SjNuBaM0+EYAKQf+mYlgtqKkNB6Inc5F3DChhhoU+SX5jxmQeGfZvKio5x5A04kAUiBpJ47AZKUcrKXiqd0HiW+SAoQH/K+B2aw/KnNTvdvJVAQX15JrkJgx0QfChshhh5MAhfJzIoeNAQIVADcyRBo7PFo54WxqFMzZZ3y6DlDPMNudM9U+YeNNuOiguTwDs5mCZlwsAQUwHhNBjJnVHK4zG+GTo6Y1OJrDgw+j6JuJn/B+uUlgjmDwDLKonC9pzkzJhPD7cXx3B9/NwkddshCXdXtq8ZLO7NzXsdkFAaa8mZC9XgCgv9ecqUL5I0AZtJyz7vFMpDcAym2YxX8KpAUM/EwDXzOwfF2iWWseU/CIrZUinqmSDsjbVyXniqDSrwPmUIVvSTatP7RVGvJM1rwi/4EB5UPxaw2uM4jfl5oCJwKIj1kDyGQGEQ3cUoNaxOdDVWb1aRNmVSF5mLBNE+sxBxAfKw+Mn4gBdxLf/dUKOMqvDVlz0rqn+ZiGfEAxkgom/6xq+IdWwVEAXbET7mCaN0EUl6ds8cfKoBBXlfM88l4acJRYme4joqg71FBEsZQq/RvgXI1pzqk6adTkPghcywZAUaihO1hVIQGInXhOvqaKKT/SoD1070uWTKxDe7qj5HeqZxoKKss1rpQAMfmFFQ2idIfuhBkGsKDI3N0q4hjqAEf5NPMaVEqY6U65lmYomMFcFXDzGgH60oqDNpG0pyl4xRS4+FY57rPawFnWzgHzKZdY0l5n2YdyNABptiIKp/SERoD8gF8xnI86uGonkc7CIZ7wMQzkN61aU2li18xWVKoKhyZKzxRaAKinJgCC6d4wOr2vVXo2tXgB5vYJyCGDqf2sDaBQPLC+eMHG8hcMzm+JSVP1lInnRD4joBn/yPryF1sLqCjtESXTmBiFCAgx7yfQtCeUCIv4EpOjFLFH2gd/ZnOvWcMNea4twbO8JLgrW8SZdhFntgw4W0iefiF5thUh28ySfjNLth0q21Cnd2tmtiUz29SbbQs3vi08O1ggO5oiO9wkOx7HteNxsgOWsiO6zB/yRnU3X+Mhb367H/JW61UsFtvumMBXHvePp0hZlL4AAAAASUVORK5CYII=\"","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport moment from 'moment';\nimport { useTrackOnMount } from '../../../hooks';\nimport {\n currencyFormat,\n getBrandNameByChannelId,\n} from '../../../services/utils';\nimport { EV6 } from '../../../services/mixpanel';\nimport { ClaimInfoItem } from './ClaimInfoItem';\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\nimport { getThemeLogoById } from '../../../theme/theme.utils';\nimport { CLAIM_STATUS_BY_TEXT, PET_TYPE_MULTIBRAND } from '../../../constants';\nimport dogDefaultImage from\n'../../../assets/billingPayments/dog-placeholder.png';\nimport catDefaultImage from\n'../../../assets/billingPayments/cat-placeholder.png';\n\nconst CLAIM_COMPLETED = [\n CLAIM_STATUS_BY_TEXT.done,\n CLAIM_STATUS_BY_TEXT.completed,\n];\n\nconst OrcaDetail = ({\n logo,\n completed = false,\n claim,\n marketingChannelId = MARKETING_CHANNEL_ID.akc,\n getImage = () => { },\n pets = [],\n}) => {\n const { t } = useTranslation('claims');\n\n return (\n <section className=\"Claim-details-container\">\n <div className=\"Claim-details-header\">\n <div className=\"Claim-details-header-content\">\n <h3 className=\"Claim-details-header-title\">\n {t('claimSummary')}\n </h3>\n\n <div className=\"Claim-details-info-container\">\n <ClaimInfoItem\n bold={completed}\n title={t('titleStatus')}\n value={claim.ClaimStatus}\n />\n\n <ClaimInfoItem\n title={t('claimNumber')}\n value={claim.ClaimNumber}\n />\n\n <ClaimInfoItem\n title={t('dateSubmitted')}\n value={claim.DateSubmitted\n ? `${moment(claim.DateSubmitted,\n 'YYYY-MM-DDTHH:mm:ss.SSSZ')\n .format('MMMM D, YYYY')}`\n : ''}\n />\n\n <ClaimInfoItem\n title={t('titleClamedAmount')}\n value={`${currencyFormat({ value: claim.ClaimedAmount })}`}\n />\n\n {completed ? (\n <ClaimInfoItem\n title={t('titlePaid')}\n value={`${currencyFormat({ value: claim.AmountPaid })}`}\n />\n ) : null}\n </div>\n </div>\n\n <div className=\"Claim-details-header-company-logo\">\n <img\n alt=\"\"\n className={`Claim-details-header-company-${marketingChannelId}`}\n src={logo}\n />\n </div>\n </div>\n\n <div className=\"Claim-diagnosis-container\">\n <header className=\"Claim-details-header\">\n <h3 className=\"Claim-details-header-title\">\n {t('petsOnClaim')}\n </h3>\n </header>\n\n {pets.map((pet) => (\n <div key={pet.PetId} className=\"Claim-diagnosis-content\">\n <div className=\"Claim-details-pet-info\">\n <img alt=\"pet-pic\" src={getImage(pet)} />\n\n <div className=\"Claim-details-pet\">\n <span className=\"Claim-details-pet-name\">{pet.PetName}</span>\n\n <span className=\"Claim-details-pet-breedname\">\n {pet.BreedName}\n </span>\n </div>\n </div>\n\n <div className=\"Claim-diagnosis-dates\">\n <ClaimInfoItem\n direction=\"column\"\n title={t('injuryDate')}\n value={pet.OnsetDate\n ? `${moment(pet.OnsetDate,\n 'YYYY-MM-DDTHH:mm:ss.SSSZ')\n .format('MMMM D, YYYY')}`\n : ''}\n />\n\n <ClaimInfoItem\n direction=\"column\"\n title={t('treatmentDate')}\n value={pet?.TreatmentStartDate\n ? `${moment(pet.TreatmentStartDate,\n 'YYYY-MM-DDTHH:mm:ss.SSSZ')\n .format('MMMM D, YYYY')}`\n : ''}\n />\n </div>\n\n <div className=\"Claim-description-container\">\n <h6 className=\"Claim-description-title\">\n {t('titleDescription')}\n </h6>\n\n <div className=\"Claim-description-body\">\n {pet.Diagnosis}\n </div>\n </div>\n </div>\n ))}\n </div>\n </section>\n );\n};\n\nconst FigoDetail = ({\n claim,\n getImage = () => { },\n logo,\n pet,\n completed = false,\n}) => {\n const { t } = useTranslation('claims');\n\n return (\n <section className=\"Claim-details-container\">\n <div className=\"Claim-details-header\">\n <div className=\"Claim-details-header-content\">\n <h3 className=\"Claim-details-header-title\">\n {t('claimSummary')}\n </h3>\n\n <div className=\"Claim-details-pet-info\">\n <img alt={pet?.PetName} src={getImage(pet)} />\n\n <div className=\"Claim-details-pet\">\n <span className=\"Claim-details-pet-name\">\n {pet?.PetName}\n </span>\n\n <span className=\"Claim-details-pet-breedname\">\n {pet?.BreedName}\n </span>\n </div>\n </div>\n </div>\n\n <div className=\"Claim-details-header-company-logo\">\n <img\n alt=\"\"\n className=\"Claim-details-header-company-1\"\n src={logo}\n />\n </div>\n </div>\n\n <div className=\"Claim-info-wrapper\">\n <div className=\"Claim-info-col\">\n <ClaimInfoItem\n bold={completed}\n title={t('titleStatus')}\n value={claim.ClaimStatus}\n />\n\n <ClaimInfoItem\n title={t('dateSubmitted')}\n value={claim.DateSubmitted\n ? `${moment(claim.DateSubmitted,\n 'YYYY-MM-DDTHH:mm:ss.SSSZ')\n .format('MMMM D, YYYY')}`\n : ''}\n />\n\n <ClaimInfoItem\n title={t('claimNumber')}\n value={claim.ClaimNumber}\n />\n </div>\n\n <div className=\"Claim-info-col\">\n <ClaimInfoItem\n title={t('titleTypeClaim')}\n value={claim.ClaimTypeDescription}\n />\n\n <ClaimInfoItem\n title={t('titleClamedAmount')}\n value={`${currencyFormat({ value: claim.ClaimedAmount })}`}\n />\n\n {completed ? (\n <ClaimInfoItem\n title={t('titlePaid')}\n value={`${currencyFormat({ value: claim.AmountPaid })}`}\n />\n ) : null}\n\n <ClaimInfoItem\n title={t('reimbursementText')}\n value={claim.Reimbursement}\n />\n </div>\n </div>\n\n <div className=\"Claim-description-container\">\n <h4 className=\"Claim-description-title\">\n {t('titleDescription')}\n </h4>\n\n <div className=\"Claim-description-body\">\n {pet?.Diagnosis}\n </div>\n </div>\n </section>\n );\n};\n\nconst DetailsList = () => {\n const store = useSelector(({ claims }) => ({ claims }), shallowEqual);\n\n const {\n claimById: {\n Diagnoses,\n MarketingChannelId,\n PolicyManagementSystem,\n ...claim\n },\n isLoadingDetails,\n } = store.claims;\n\n const viewClaimsDetailsEvent = useMemo(() => {\n if (!isLoadingDetails && claim.ClaimNumber) {\n return EV6({\n claimNumber: claim.ClaimNumber,\n claimStatusLabel: claim,\n paidAmount: claim.AmountPaid,\n petName: Diagnoses?.[0]?.PetName,\n pms: PolicyManagementSystem,\n policyBrand: getBrandNameByChannelId(MarketingChannelId),\n policyNumber: claim.PolicyNumber,\n });\n }\n return null;\n }, [\n claim.ClaimNumber,\n claim.AmountPaid,\n claim.PolicyNumber,\n isLoadingDetails,\n ]);\n\n useTrackOnMount(viewClaimsDetailsEvent, [viewClaimsDetailsEvent]);\n\n const themeLogos = useMemo(\n () => getThemeLogoById(MarketingChannelId),\n [MarketingChannelId],\n );\n\n const getImage = (pet) => {\n if (pet?.ProfileImage) {\n return pet.ProfileImage;\n }\n return pet?.PetType === PET_TYPE_MULTIBRAND.CAT\n ? catDefaultImage : dogDefaultImage;\n };\n\n if (!MarketingChannelId || !themeLogos?.dark) {\n return null;\n }\n\n return MarketingChannelId === MARKETING_CHANNEL_ID.figo ? (\n <FigoDetail\n claim={claim}\n completed={CLAIM_COMPLETED.includes(claim?.ClaimStatus)}\n getImage={getImage}\n logo={themeLogos.dark}\n pet={Diagnoses[0]}\n />\n ) : (\n <OrcaDetail\n claim={claim}\n completed={CLAIM_COMPLETED.includes(claim?.ClaimStatus)}\n getImage={getImage}\n logo={themeLogos.dark}\n marketingChannelId={MarketingChannelId}\n pets={Diagnoses}\n />\n );\n};\n\nexport { DetailsList };\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/doc-navy.d4928cb5.svg\";","export default __webpack_public_path__ + \"static/media/plus-navy.6e13c5a3.svg\";","export default __webpack_public_path__ + \"static/media/delete-sm.ebd47ca9.svg\";","export default __webpack_public_path__ + \"static/media/radio-check-leaf.ca36bdf1.svg\";","export default __webpack_public_path__ + \"static/media/cross-hydrant.d2552cf6.svg\";","export default __webpack_public_path__ + \"static/media/upload-circle.4219a715.svg\";","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport plusImage from '../../../assets/fileClaim/plus.png';\nimport docNavyImage from '../../../assets/fileClaim/doc-navy.svg';\nimport plusNavyImage from '../../../assets/fileClaim/plus-navy.svg';\nimport deleteIcon from '../../../assets/fileClaim/delete-sm.svg';\nimport radioCheckIcon from '../../../assets/fileClaim/radio-check-leaf.svg';\nimport crossIcon from '../../../assets/fileClaim/cross-hydrant.svg';\nimport uploadIcon from '../../../assets/fileClaim/upload-circle.svg';\n\nimport { fileSizeToMB } from '../../../services/utils';\n\nimport ScrollableDiv from '../../common/ScrollableDiv';\nimport './InputFile.css';\n\nconst FileRow = ({\n disabled,\n file,\n isModal,\n loadingAtt,\n onDelete = () => { },\n successSave,\n t,\n}) => {\n const renderFileName = ({ filename, extension }) => {\n const parts = filename.split('.');\n const name = parts.slice(0, parts.length - 1).join('.');\n return (\n <div className=\"File-row-name-container\">\n <span className=\"File-row-name\">\n {name}\n </span>\n\n <span className=\"File-row-name File-row-extension\">{extension}</span>\n </div>\n );\n };\n\n function renderTxtBtn() {\n if (file.percentage === 100 && !file.valid) {\n return null;\n }\n\n if (isModal) {\n if (loadingAtt || successSave) {\n return null;\n }\n return (\n <img\n alt={t('delete')}\n className=\"No-clicked\"\n src={deleteIcon}\n />\n );\n }\n\n return t('cancel');\n }\n\n function getFileStatus() {\n switch (file.percentage) {\n case 100:\n if (!file.valid) {\n return <img alt={t('uploaded')} src={crossIcon} />;\n }\n\n return (\n <img alt={t('uploaded')} src={radioCheckIcon} />\n );\n\n case 0:\n if (!file.valid && isModal) {\n return <img alt={t('uploaded')} src={crossIcon} />;\n }\n return <> • {t('queued')}</>;\n\n default:\n return <> • {`${file.percentage}%`}</>;\n }\n }\n\n function renderColorBarProgres() {\n if (file.percentage > 50) {\n if (isModal && !file.valid) {\n return 'var(--pc-color-hydrant-400)';\n }\n\n return 'var(--pc-color-leaf-300)';\n }\n\n return 'var(--pc-color-blue-300)';\n }\n\n return (\n <div key={file.key} className=\"File-row\">\n <div className=\"File-row-data\">\n <div className=\"File-row-left\">\n {renderFileName(file)}\n\n <div className=\"File-row-status\">\n <span>{getFileStatus(file)}</span>\n </div>\n </div>\n\n <div className=\"File-row-right\">\n <span className=\"File-row-size\">\n {fileSizeToMB({ fileSize: file.size })} MB\n </span>\n\n <div className=\"File-row-delete\">\n <button\n className={file.hideDelete ? 'Gone' : ''}\n disabled={disabled}\n id={file.key}\n onClick={onDelete}\n type=\"button\"\n >\n {renderTxtBtn(file)}\n </button>\n </div>\n </div>\n </div>\n\n <div className=\"File-row-progress-bar\">\n <div\n className=\"Input-file-file-progress\"\n style={{\n backgroundColor: renderColorBarProgres(file),\n width: `${file.percentage}%`,\n }}\n />\n </div>\n\n <span className=\"File-row-error\">\n {!file.errorMsg && !file.valid\n ? t('failedUpload')\n : file.errorMsg}\n </span>\n </div>\n );\n};\n\nconst InputFile = ({\n acceptFiles,\n className = '',\n containerClassName = '',\n fileDefinition = '',\n files,\n isModal = false,\n loadingAtt,\n onFileAdd = () => { },\n onFileDelete = () => { },\n showCounter = true,\n successSave,\n disabled = false,\n}) => {\n const { t } = useTranslation('fileClaims');\n const [isDragging, setIsDragging] = useState(false);\n const dropzoneCoverRef = useRef();\n const dropzoneRef = useRef();\n const modalClass = isModal ? 'Input-file-modal' : '';\n\n const handleDragover = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDragenter = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n const draggingFiles = event.dataTransfer.types.indexOf('Files') >= 0;\n\n if (draggingFiles) {\n setIsDragging(true);\n }\n }, []);\n\n const handleDragleave = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n const { fromElement, toElement } = event;\n const { current: dropzoneElement } = dropzoneRef;\n const { current: dropzoneCoverElement } = dropzoneCoverRef;\n if ((fromElement !== dropzoneElement\n || toElement !== dropzoneCoverElement)\n && (fromElement !== dropzoneCoverElement\n || toElement !== dropzoneElement)) {\n setIsDragging(false);\n }\n }, []);\n\n const handleDrop = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n if (event.dataTransfer.files) {\n setIsDragging(false);\n onFileAdd(event.dataTransfer.files);\n event.dataTransfer.clearData();\n }\n }, []);\n\n const handleDropOnCover = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n setIsDragging(false);\n }, []);\n\n useEffect(() => {\n const currentCover = dropzoneCoverRef.current;\n if (currentCover) {\n currentCover.addEventListener('dragleave', handleDragleave);\n currentCover.addEventListener('drop', handleDropOnCover);\n }\n\n const currentDropzone = dropzoneRef.current;\n if (currentDropzone) {\n currentDropzone.addEventListener('drop', handleDrop);\n }\n\n return () => {\n if (currentCover) {\n currentCover.removeEventListener('dragleave', handleDragleave);\n currentCover.removeEventListener('drop', handleDropOnCover);\n }\n\n if (currentDropzone) {\n currentDropzone.removeEventListener('drop', handleDrop);\n }\n };\n }, [handleDrop, handleDragleave, dropzoneCoverRef, dropzoneRef, isDragging]);\n\n useEffect(() => {\n window.addEventListener('dragover', handleDragover);\n window.addEventListener('dragenter', handleDragenter);\n\n return () => {\n window.removeEventListener('dragover', handleDragover);\n window.removeEventListener('dragenter', handleDragenter);\n };\n }, [handleDragenter, handleDragover]);\n\n function handleFileChange(event) {\n onFileAdd(event.target.files);\n }\n\n function handleFileDelete(event) {\n onFileDelete(event.target.id);\n }\n\n function renderDropzone() {\n if (!disabled && isDragging) {\n return (\n <div ref={dropzoneCoverRef} className=\"Input-file-dropzone-cover\">\n <div ref={dropzoneRef} className=\"Input-file-dropzone\">\n <div className=\"No-clicked\">\n <div className=\"Input-file-icon\">\n <img alt=\"doc\" src={docNavyImage} />\n\n <img\n alt=\"plus\"\n className=\"Input-file-plus-doc\"\n src={plusNavyImage}\n />\n </div>\n\n <span>{t('dropHere')}</span>\n </div>\n </div>\n </div>\n );\n }\n return null;\n }\n\n if (!files.length) {\n return (\n <div\n className={`Input-file ${modalClass} ${className} Input-file-empty`}\n >\n {renderDropzone()}\n\n <input\n accept={acceptFiles}\n disabled={disabled}\n multiple\n onChange={handleFileChange}\n type=\"file\"\n />\n\n <img alt=\"\" src={uploadIcon} />\n\n <div className=\"Input-file-action No-clicked\">\n <Trans\n components={{ b: <strong /> }}\n i18nKey=\"dragDrop\"\n ns=\"fileClaimbot\"\n t={t}\n />\n </div>\n\n <span className=\"Input-file-instruction No-clicked\">\n {fileDefinition || t('fileDefinition')}\n </span>\n </div>\n );\n }\n\n return (\n <div className={`Input-file-container ${containerClassName}`}>\n {renderDropzone()}\n\n {showCounter && (\n <div className=\"Input-file-count\">\n <span>\n {t('fileCounter', {\n fileCount: files.length,\n uploaded: files\n .filter((file) => file.valid && file.binary).length,\n })}\n </span>\n </div>\n )}\n\n <ScrollableDiv className={`Input-file ${className}`}>\n {files.map((file) => (\n <FileRow\n key={file.key}\n file={file}\n isModal={isModal}\n loadingAtt={loadingAtt}\n onDelete={handleFileDelete}\n successSave={successSave}\n t={t}\n />\n ))}\n </ScrollableDiv>\n\n {!isModal && (\n <div className=\"Input-file-add-files\">\n <div className=\"Input-file-add-browse\">\n <img\n alt=\"add file\"\n className=\"Input-file-plus\"\n src={plusImage}\n />\n\n <span>{t('addFiles')}</span>\n\n <input\n accept={acceptFiles}\n disabled={disabled}\n multiple\n onChange={handleFileChange}\n type=\"file\"\n value=\"\"\n />\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default InputFile;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport plusImage from '../../../assets/fileClaim/plus.png';\nimport { ACCEPTED_FILES } from '../../../constants';\n\nconst AddFilesButton = ({ addFile = () => { } }) => {\n const { t } = useTranslation('claims');\n\n function handleFileChange(event) {\n addFile(event.target.files);\n }\n\n return (\n <div className=\"Input-file-add-browse\">\n <img\n alt=\"add file\"\n className=\"Input-file-plus\"\n src={plusImage}\n />\n\n <span>{t('addFiles')}</span>\n\n <input\n accept={ACCEPTED_FILES}\n multiple\n onChange={handleFileChange}\n type=\"file\"\n value=\"\"\n />\n </div>\n );\n};\n\nexport { AddFilesButton };\n","import React from 'react';\n\n/**\n * @deprecated\n */\nconst TouchableDiv = ({\n ariaProps,\n children,\n className,\n divRef,\n id,\n onBlur = () => { },\n onClick = () => { },\n onKeyDown = () => { },\n onKeyPress = () => { },\n style,\n tabIndex = 0,\n}) => {\n function handleModalOverlayClick(event) {\n if (event.target.id === id) {\n onClick(event);\n }\n }\n\n function handleModalOverlayKeyPress(event) {\n if (event.target.id === id) {\n onKeyPress(event);\n }\n }\n\n function handleModalOverlayKeyDown(event) {\n if (event.target.id === id) {\n onKeyDown(event);\n }\n }\n\n function handleModalOverlayOnBlur(event) {\n if (event.target.id === id) {\n onBlur(event);\n }\n }\n\n return (\n <div\n ref={divRef}\n className={className}\n id={id}\n onBlur={handleModalOverlayOnBlur}\n onClick={handleModalOverlayClick}\n onKeyDown={handleModalOverlayKeyDown}\n onKeyPress={handleModalOverlayKeyPress}\n role=\"button\"\n tabIndex={tabIndex}\n {...ariaProps}\n style={style}\n >\n {children}\n </div>\n );\n};\n\nexport default TouchableDiv;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport TouchableDiv from '../../common/TouchableDiv';\n\nconst CancelButton = ({ handleShowModal }) => {\n const { t } = useTranslation('claims');\n const store = useSelector(({ fileClaims }) => ({ fileClaims }), shallowEqual);\n const { fileClaims: { uploadAttSuccess } } = store;\n\n return (\n <TouchableDiv\n className=\"Input-btn Btn-cancel\"\n id=\"btnCancel\"\n onClick={handleShowModal}\n >\n <span className=\"No-clicked\">\n {uploadAttSuccess ? t('fileTxtClose') : t('fileTxtCancel')}\n </span>\n </TouchableDiv>\n );\n};\n\nexport { CancelButton };\n","import React, { useMemo } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport TouchableDiv from '../../common/TouchableDiv';\nimport FigoLottie from '../../common/FigoLottie';\nimport loadingSpinner from '../../../assets/loading-spinner.json';\nimport {\n addAttachmentsLoad,\n addAttachmentToClaim,\n fileClaimsAttachmentRemoved,\n} from '../../../actions';\n\nconst SubmitAttachmentButton = () => {\n const dispatch = useDispatch();\n const { t } = useTranslation('claims');\n const store = useSelector(({\n claims,\n fileClaims,\n }) => ({\n attachments: claims.attachmentsByClaim,\n claims,\n fileClaims,\n }), shallowEqual);\n\n const {\n claims: {\n claimById: { ClaimId },\n },\n fileClaims: {\n attachments: fileClaimsAttachments,\n uploadAttLoading,\n },\n } = store;\n\n const attachmentWithNoError = useMemo(() => (fileClaimsAttachments\n .filter((attachment) => !attachment.errorMsg)), [fileClaimsAttachments]);\n\n const renderLoding = () => {\n if (uploadAttLoading) {\n return (\n <FigoLottie\n animationData={loadingSpinner}\n height={30}\n width={40}\n />\n );\n }\n\n return <span className=\"No-clicked\"> {t('filesSumit')} </span>;\n };\n\n const filesSize = fileClaimsAttachments.length;\n const attachmentsSize = attachmentWithNoError.length;\n const classNameStyles = filesSize && attachmentsSize\n ? 'Input-btn Btn-submit Btn-submit-blue'\n : 'Input-btn Btn-submit-non-files';\n\n const disabledBtn = uploadAttLoading || !filesSize\n || !attachmentsSize ? 'Btn-submit-disabled' : '';\n\n function saveAttachments() {\n dispatch(addAttachmentsLoad({\n loading: true,\n success: false,\n }));\n\n fileClaimsAttachments\n .filter((attachment) => attachment.errorMsg)\n .forEach((attach) => dispatch(\n fileClaimsAttachmentRemoved(attach.key),\n ));\n\n dispatch(addAttachmentToClaim({\n ClaimId,\n files: attachmentWithNoError,\n t,\n }));\n }\n\n return (\n <TouchableDiv\n className={`${classNameStyles} ${disabledBtn}`}\n id=\"btnSubmit\"\n onClick={saveAttachments}\n >\n {renderLoding()}\n </TouchableDiv>\n );\n};\n\nexport { SubmitAttachmentButton };\n","import React from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport ModalContainer from '../../common/ModalContainer';\nimport InputFile from '../steps/InputFile';\nimport { ACCEPTED_FILES, ALLOWED_EXT, MAX_SIZE_MB } from '../../../constants';\nimport { toBase64, doNothing } from '../../../services/utils';\nimport {\n getClaimByIdRequested,\n fileClaimsAttachmentUpdated,\n fileClaimsAttachmentAdded,\n fileClaimsAttachmentRemoved,\n fileClaimsRestart,\n} from '../../../actions';\nimport { AddFilesButton } from './AddFilesButton';\nimport { CancelButton } from './CancelButton';\nimport { SubmitAttachmentButton } from './SubmitAttachmentButton';\n\nconst AddAttachmentModal = ({\n setShowModalAddAttachments = () => { },\n showModalAddAttachements = false,\n}) => {\n const location = useLocation();\n const dispatch = useDispatch();\n const { t } = useTranslation('claims');\n const store = useSelector(({\n claims,\n fileClaims,\n }) => ({\n attachments: claims.attachmentsByClaim,\n claims,\n fileClaims,\n }), shallowEqual);\n\n const {\n fileClaims: {\n attachments: fileClaimsAttachments,\n uploadAttLoading,\n uploadAttSuccess,\n },\n } = store;\n\n const closeButtonClassName = !uploadAttLoading && uploadAttSuccess\n ? 'Btn-close-blue' : '';\n\n async function convertToBinary({ file, fileKey }) {\n try {\n const binaryDoc = await toBase64(file);\n\n dispatch(fileClaimsAttachmentUpdated({\n binary: binaryDoc,\n errorMsg: '',\n key: fileKey,\n }));\n } catch (_) {\n doNothing();\n }\n }\n\n function validateFile(file, maxSize) {\n let errorMsg = '';\n let isValid = true;\n if (file.size > (maxSize * 1024 * 1024)) {\n isValid = false;\n errorMsg = t('largeFile');\n }\n\n return {\n errorMsg,\n isValid,\n };\n }\n\n async function addFile(files) {\n for (let i = 0; i < files.length; i += 1) {\n const file = files[i];\n const validation = validateFile(file, MAX_SIZE_MB);\n const extMatch = file.name.match(ALLOWED_EXT);\n const uniqueKey = `${file.name}-${Date.now()}`;\n\n if (extMatch) {\n dispatch(fileClaimsAttachmentAdded({\n errorMsg: validation.errorMsg,\n extension: extMatch.slice(1)[0],\n filename: file.name,\n key: uniqueKey,\n percentage: 0,\n size: file.size,\n valid: validation.isValid,\n }));\n\n if (validation.isValid) {\n convertToBinary({ file, fileKey: uniqueKey });\n }\n }\n }\n }\n\n function handleDeleteFile(fileKeyToRemove) {\n dispatch(fileClaimsAttachmentRemoved(fileKeyToRemove));\n }\n\n function handleShowModal() {\n dispatch(fileClaimsRestart());\n setShowModalAddAttachments(!showModalAddAttachements);\n if (uploadAttSuccess) {\n dispatch(getClaimByIdRequested({ claimId: location.state.claimId }));\n }\n }\n\n return (\n <ModalContainer show={showModalAddAttachements}>\n <div className=\"Modal-add-file-container\">\n <InputFile\n acceptFiles={ACCEPTED_FILES}\n files={fileClaimsAttachments}\n isModal\n loadingAtt={uploadAttLoading}\n onFileAdd={addFile}\n onFileDelete={handleDeleteFile}\n successSave={uploadAttSuccess}\n />\n\n <div className=\"Input-buttons-add-file-container\">\n <div className=\"Input-add-files\">\n {!uploadAttLoading\n && !uploadAttSuccess\n && <AddFilesButton addFile={addFile} />}\n </div>\n\n <div className={`Input-btts-container ${closeButtonClassName}`}>\n {!uploadAttLoading && (\n <CancelButton handleShowModal={handleShowModal} />)}\n\n {!uploadAttSuccess && <SubmitAttachmentButton />}\n </div>\n </div>\n </div>\n </ModalContainer>\n );\n};\n\nexport { AddAttachmentModal };\n","export default __webpack_public_path__ + \"static/media/avi.a5285e20.svg\";","export default __webpack_public_path__ + \"static/media/empty.0a0b3d1b.svg\";","export default __webpack_public_path__ + \"static/media/html.6cd4f7e9.svg\";","export default __webpack_public_path__ + \"static/media/jpeg.bcf892be.svg\";","export default __webpack_public_path__ + \"static/media/mov.137c69b3.svg\";","export default __webpack_public_path__ + \"static/media/mp3.dc2bd047.svg\";","export default __webpack_public_path__ + \"static/media/pdf.05847660.svg\";","export default __webpack_public_path__ + \"static/media/png.6dfda39d.svg\";","export default __webpack_public_path__ + \"static/media/txt.58823fce.svg\";","export default __webpack_public_path__ + \"static/media/doc.670d5597.svg\";","export default __webpack_public_path__ + \"static/media/xls.b92ebb2b.svg\";","export default __webpack_public_path__ + \"static/media/zip.c6a15029.svg\";","import React from 'react';\nimport avi from '../../../assets/inboxDocsMultibrand/iconsFolder/avi.svg';\nimport empty from '../../../assets/inboxDocsMultibrand/iconsFolder/empty.svg';\nimport html from '../../../assets/inboxDocsMultibrand/iconsFolder/html.svg';\nimport jpeg from '../../../assets/inboxDocsMultibrand/iconsFolder/jpeg.svg';\nimport mov from '../../../assets/inboxDocsMultibrand/iconsFolder/mov.svg';\nimport mp3 from '../../../assets/inboxDocsMultibrand/iconsFolder/mp3.svg';\nimport pdf from '../../../assets/inboxDocsMultibrand/iconsFolder/pdf.svg';\nimport png from '../../../assets/inboxDocsMultibrand/iconsFolder/png.svg';\nimport txt from '../../../assets/inboxDocsMultibrand/iconsFolder/txt.svg';\nimport word from '../../../assets/inboxDocsMultibrand/iconsFolder/doc.svg';\nimport excel from '../../../assets/inboxDocsMultibrand/iconsFolder/xls.svg';\nimport zip from '../../../assets/inboxDocsMultibrand/iconsFolder/zip.svg';\n\nconst RecentFileIcon = ({\n alt = '',\n className = '',\n fileExtension = '',\n}) => {\n const fileExtensionList = {\n '': empty,\n '.avi': avi,\n '.doc': word,\n '.docx': word,\n '.htm': html,\n '.html': html,\n '.jpeg': jpeg,\n '.jpg': jpeg,\n '.mov': mov,\n '.mp3': mp3,\n '.pdf': pdf,\n '.png': png,\n '.txt': txt,\n '.xls': excel,\n '.xlsx': excel,\n '.zip': zip,\n };\n return (\n <img\n alt={alt}\n className={className}\n src={fileExtensionList[fileExtension] || empty}\n />\n );\n};\n\nexport { RecentFileIcon };\n","export default __webpack_public_path__ + \"static/media/add-icon-blue.ecc678e7.svg\";","import React, { useState, useMemo } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport { AddAttachmentModal } from './AddAttachmentModal';\nimport {\n fileClaimsRestart,\n markFilesAsRead,\n openMediaFileToBlob,\n getClaimByIdRequested,\n} from '../../../actions';\nimport { READ_FILE_SOURCE, CLAIM_STATUS_BY_TEXT }\nfrom '../../../constants';\nimport { useMixpanel, useTrackOnMount } from '../../../hooks';\nimport { EV7, EV8 } from '../../../services/mixpanel';\nimport { getBrandNameByChannelId } from '../../../services/utils';\nimport { RecentFileIcon }\nfrom '../../inboxAndDocs/recentActivity/RecentFileIcon';\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\nimport addIconBlue from '../../../assets/myPets/add-icon-blue.svg';\n\nconst ClaimsAttachments = () => {\n const { t } = useTranslation('claims');\n const { sendEvent } = useMixpanel();\n const [\n showModalAddAttachements,\n setShowModalAddAttachments] = useState(false);\n const store = useSelector(({\n claims,\n fileClaims,\n }) => ({\n claims,\n fileClaims,\n }), shallowEqual);\n\n const {\n claims: {\n claimById: {\n ClaimStatus,\n Attachments,\n ClaimId,\n MarketingChannelId,\n },\n isLoadingDetails,\n },\n fileClaims: { uploadAttSuccess },\n } = store;\n const dispatch = useDispatch();\n const location = useLocation();\n\n const attachments = useMemo(() => Attachments ?? [], [Attachments]);\n\n const shouldBeShowBtnUpload = () => (ClaimStatus\n !== CLAIM_STATUS_BY_TEXT.closed\n && ClaimStatus !== CLAIM_STATUS_BY_TEXT.done)\n && MarketingChannelId === MARKETING_CHANNEL_ID.figo;\n\n const viewClaimAttachmentsEvent = useMemo(() => {\n if (!isLoadingDetails && attachments.length) {\n return EV7({\n claimNumber: location.state.claimNumber,\n numberOfAttachments: attachments.length,\n policyBrand: getBrandNameByChannelId(MarketingChannelId),\n });\n }\n return null;\n }, [attachments, isLoadingDetails]);\n\n useTrackOnMount(viewClaimAttachmentsEvent, [attachments]);\n\n function handleShowModal() {\n dispatch(fileClaimsRestart());\n setShowModalAddAttachments(!showModalAddAttachements);\n if (uploadAttSuccess) {\n dispatch(getClaimByIdRequested({ claimId: ClaimId }));\n }\n }\n\n const handleMarkAttachmentAsRead = (file) => () => {\n dispatch(openMediaFileToBlob(file.Id));\n if (!file.IsRead) {\n dispatch(markFilesAsRead({\n filesIds: [file.Id],\n source: READ_FILE_SOURCE.claims,\n }));\n }\n\n sendEvent(EV8({\n claimNumber: location.state.claimNumber,\n fileName: file.FileNameAndExtension,\n filePath: file.Url,\n policyBrand: getBrandNameByChannelId(MarketingChannelId),\n }));\n };\n\n return (\n <div className=\"Claim-attachment-multibrand-container\">\n <div className=\"Claim-attachments-wrapper\">\n <div className=\"Claim-attachment-title-wrapper\">\n <h3 className=\"Claim-attachments-title\">{t('attachments')}</h3>\n </div>\n\n <div className=\"Claim-attachments-items-wrapper\">\n {attachments.map((attachment) => (\n <div\n key={attachment.Id}\n className=\"Claim-attachments-item-container\"\n onClick={handleMarkAttachmentAsRead(attachment)}\n onKeyPress={handleMarkAttachmentAsRead(attachment)}\n role=\"button\"\n tabIndex=\"0\"\n type=\"button\"\n >\n <div className=\"Claim-attachments-item-img\">\n <RecentFileIcon\n alt=\"file extension icon\"\n className=\"Docs-file-icon-row\"\n fileExtension={attachment.Extension?.toLowerCase()}\n />\n </div>\n\n <div className=\"Claim-attachments-item-text\">\n <p className=\"Claim-attachments-item-name\">\n {attachment.FileNameAndExtension}\n </p>\n\n <p className=\"Claim-attachments-item-date\">\n {moment(attachment.UpdatedOnUtc, 'YYYY-MM-DDTHH:mm:ss.SSSZ')\n .format('MMMM D, YYYY')}\n </p>\n </div>\n </div>\n ))}\n </div>\n\n {shouldBeShowBtnUpload() && (\n <button\n className=\"Claim-button-upload-attachment\"\n onClick={handleShowModal}\n type=\"button\"\n >\n <img\n alt=\"\"\n className=\"Claim-button-image\"\n src={addIconBlue}\n />\n\n <span className=\"No-clicked\">{t('addAttachment')}</span>\n </button>\n )}\n </div>\n\n <AddAttachmentModal\n setShowModalAddAttachments={setShowModalAddAttachments}\n showModalAddAttachements={showModalAddAttachements}\n />\n </div>\n );\n};\n\nexport { ClaimsAttachments };\n","export default __webpack_public_path__ + \"static/media/nav-arrow.0524d5ca.svg\";","import React, { useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport navArrowIcon from '../../../assets/myAccount/nav-arrow.svg';\n\nimport './PetCloudBreadcrumbs.css';\n\nconst PetCloudBreadcrumbs = ({\n activeRoute = '',\n rootRoute = '',\n rootRouteLink = '',\n}) => {\n const history = useHistory();\n\n const handleRootClick = useCallback(() => {\n if (rootRouteLink) {\n history.push(rootRouteLink);\n } else {\n history.goBack();\n }\n }, [rootRouteLink]);\n\n return (\n <nav aria-label=\"Breadcrumb\" className=\"Pet-cloud-breadcrumbs-container\">\n <ol className=\"Pet-cloud-breadcrumbs-inner-container\">\n <li className=\"Pet-cloud-breadcrumbs-item\">\n <button\n onClick={handleRootClick}\n type=\"button\"\n >\n {rootRoute}\n </button>\n </li>\n\n <li\n aria-hidden=\"true\"\n className=\"Pet-cloud-breadcrumbs-divider\"\n role=\"presentation\"\n >\n <img alt=\"\" src={navArrowIcon} />\n </li>\n\n <li aria-current=\"page\" className=\"Pet-cloud-breadcrumbs-item-active\">\n {activeRoute}\n </li>\n </ol>\n </nav>\n );\n};\n\nexport { PetCloudBreadcrumbs };\n","export default __webpack_public_path__ + \"static/media/warning-icon.b39e9a40.svg\";","import React, { useState } from 'react';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport { CONTACT_US_STEPS_BY_NUMBER }\nfrom '../../sideMenu/contactUs/contactUs.constants';\n\nimport { ContactUsModal } from '../../sideMenu/contactUs/ContactUsModal';\n\nimport Warning from '../../../assets/claims/warning-icon.svg';\n\nconst AttentionNeeded = () => {\n const { t } = useTranslation('claims');\n const [contactUsVisible, setContactUsVisible] = useState(false);\n\n const store = useSelector(({ claims }) => ({ claims }), shallowEqual);\n\n const { claimById } = store.claims;\n\n const onContactUsClick = () => {\n setContactUsVisible(true);\n };\n\n const onContactUsClose = () => {\n setContactUsVisible(false);\n };\n return (\n <>\n <ContactUsModal\n companyStep={CONTACT_US_STEPS_BY_NUMBER[claimById.MarketingChannelId]}\n hasHeader\n onClose={onContactUsClose}\n show={contactUsVisible}\n />\n\n <div className=\"Claim-attention-needed-container\">\n <div className=\"Claim-attention-needed-title-container\">\n <img alt=\"\" src={Warning} />\n\n <h2>{t('attentionNeeded')}</h2>\n </div>\n\n <div className=\"Claim-attention-needed-description-container\">\n <p>\n {t('attentionNeededTxt')}\n\n <button onClick={onContactUsClick} type=\"button\">\n {t('contactUs')}\n </button>\n </p>\n </div>\n </div>\n </>\n );\n};\n\nexport { AttentionNeeded };\n","import React, { useEffect, useCallback } from 'react';\nimport { useLocation, useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport {\n restartClaimsDetails, getClaimByIdRequested,\n} from '../../../actions';\nimport Shimmer from '../../common/Shimmer';\nimport { CLAIMS } from '../../navigation/routes.constants';\nimport { DetailsList } from './DetailsList';\nimport { ClaimsAttachments } from './ClaimsAttachments';\nimport './ClaimDetails.css';\nimport { PetCloudBreadcrumbs } from '../../myPets/common/PetCloudBreadcrumbs';\nimport { CLAIM_STATUS_BY_TEXT } from '../../../constants';\nimport { AttentionNeeded } from './AttentionNeeded';\n\nconst ClaimsDetails = () => {\n const { t } = useTranslation('claims');\n const location = useLocation();\n const history = useHistory();\n const dispatch = useDispatch();\n const store = useSelector(({\n claims,\n fileClaims,\n }) => ({\n attachments: claims.attachmentsByClaim,\n claims,\n fileClaims,\n }), shallowEqual);\n const { claimById: { ClaimNumber, ClaimStatus } } = store.claims;\n\n const getDataClaim = () => {\n if (location.state) {\n dispatch(getClaimByIdRequested({\n claimId: location.state.claimId,\n }));\n }\n };\n\n const loadDataCallback = useCallback(getDataClaim, []);\n\n useEffect(() => {\n loadDataCallback();\n\n return () => {\n dispatch(restartClaimsDetails());\n };\n }, [dispatch, loadDataCallback]);\n\n if (!location.state) {\n history.replace(CLAIMS);\n }\n\n return (\n <div className=\"Claim-details-general-container-multibrand\">\n <PetCloudBreadcrumbs\n activeRoute={`${t('breadcrumb.subtitle')} ${ClaimNumber}`}\n rootRoute={t('breadcrumb.title')}\n />\n\n {ClaimStatus === CLAIM_STATUS_BY_TEXT.attentionNeeded\n && <AttentionNeeded />}\n\n <div className=\"Claim-details-general-body\">\n <Shimmer\n className=\"Shimmer-wrapper\"\n height={474}\n visible={store.claims.isLoadingDetails}\n width={736}\n >\n <DetailsList />\n </Shimmer>\n\n <Shimmer\n className=\"Shimmer-wrapper\"\n height={118}\n visible={store.claims.isLoadingDetails}\n width={352}\n >\n <ClaimsAttachments />\n </Shimmer>\n </div>\n </div>\n );\n};\n\nexport default ClaimsDetails;\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { PET_TYPE_MULTIBRAND } from '../../../constants';\nimport dogDefaultImage\nfrom '../../../assets/billingPayments/dog-placeholder.png';\nimport catDefaultImage\nfrom '../../../assets/billingPayments/cat-placeholder.png';\n\nimport './PetCard.css';\n\nconst PetCard = ({\n age = '',\n breed = '',\n classContainer = '',\n gender = '',\n name = '',\n onClick = () => { },\n picture = null,\n type = '',\n weight = '',\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const isDog = type === PET_TYPE_MULTIBRAND.DOG;\n\n const petCardImage = useMemo(() => {\n if (picture) {\n return picture;\n }\n\n return isDog ? dogDefaultImage : catDefaultImage;\n }, [isDog, picture]);\n\n return (\n <button\n className={`Pet-card-container ${classContainer}`}\n onClick={onClick}\n type=\"button\"\n >\n <div className=\"Pet-card-top-container\">\n <img alt=\"\" src={petCardImage} />\n\n <div className=\"Pet-card-top-info-container\">\n <h3 className=\"Pet-card-name\">{name}</h3>\n\n <span className=\"Pet-card-breed\">{breed}</span>\n </div>\n </div>\n\n <div className=\"Pet-card-bottom-container\">\n <div className=\"Pet-card-age-container\">\n <span className=\"Pet-card-info-title\">\n {t('multiplePets.ageTitle')}\n </span>\n\n <span className=\"Pet-card-info-subtitle\">\n {(t('multiplePets.ageValue', { age }))}\n </span>\n </div>\n\n <div className=\"Pet-card-vertical-divider\" />\n\n <div className=\"Pet-card-gender-container\">\n <span className=\"Pet-card-info-title\">\n {t('multiplePets.genderTitle')}\n </span>\n\n <span className=\"Pet-card-info-subtitle-gender\">{gender}</span>\n </div>\n\n <div className=\"Pet-card-vertical-divider\" />\n\n <div className=\"Pet-card-weight-container\">\n <span className=\"Pet-card-info-title\">\n {t('multiplePets.weightTitle')}\n </span>\n\n <span className=\"Pet-card-info-subtitle\">\n {weight\n ? (t('multiplePets.weightValue', { weight }))\n : '-'}\n </span>\n </div>\n </div>\n </button>\n );\n};\n\nexport { PetCard };\n","import React from 'react';\n\nimport { PetCard } from './PetCard';\n\nimport './MultiplePetsSelector.css';\n\nconst MultiplePetsSelector = ({\n pets = [],\n subTitle = '',\n handlePetSelect,\n title = '',\n}) => {\n function renderContent() {\n return pets.map((pet) => (\n <PetCard\n key={`${pet.petId}`}\n age={pet.petAge}\n breed={pet.petBreed}\n gender={pet.petGender}\n name={pet.petName}\n onClick={handlePetSelect(pet.petId)}\n picture={pet.petProfileImage}\n type={pet.petType}\n weight={pet.petWeight}\n />\n ));\n }\n\n return (\n <div className=\"Multiple-pet-selector-main-container\">\n <div className=\"Multiple-pet-selector-container\">\n <h1>{title}</h1>\n\n <span>{subTitle}</span>\n\n <div className=\"Multiple-pet-selector-grid-container\">\n {renderContent()}\n </div>\n </div>\n </div>\n );\n};\n\nexport { MultiplePetsSelector };\n","import React, { useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useHistory, Redirect } from 'react-router-dom';\n\nimport { PET_GENDER } from '../../constants';\nimport { MARKETING_CHANNEL_ID } from '../../theme/theme.constants';\n\nimport { MultiplePetsSelector } from './multiplePets/MultiplePetsSelector';\nimport {\n billingPaymentReseted,\n clearPolicyNotifications,\n getMultibrandPolicies,\n petSelected, policySelected,\n policySelectedOnClaims,\n setSelectedPetId,\n setSelectedPetIndex,\n} from '../../actions';\nimport { INSURANCE } from '../navigation/routes.constants';\nimport { useMixpanel, usePMS } from '../../hooks';\nimport { EV1 } from '../../services/mixpanel';\nimport { getBrandNameByChannelId } from '../../services/utils';\nimport FigoLottie from '../common/FigoLottie';\n\nimport loadingSpinnerBlue\nfrom '../../assets/lottieFiles/loading-blue.json';\n\nimport './css/PolicySummary.css';\n\nconst InsuranceScreen = () => {\n const { t } = useTranslation('insuranceScreen');\n const dispatch = useDispatch();\n const { sendEvent } = useMixpanel();\n const { pms } = usePMS();\n const store = useSelector(({\n billingPayments,\n claims,\n inboxAndDocs,\n personalInformation,\n policies,\n session,\n }) => ({\n billingPayments,\n claims,\n inboxAndDocs,\n personalInformation,\n policies,\n session,\n }), shallowEqual);\n\n const { loading, multibrandPolicies } = store.policies;\n const history = useHistory();\n useEffect(() => {\n dispatch(getMultibrandPolicies());\n }, []);\n\n function onResetPolicySelector() {\n dispatch(policySelected(0));\n dispatch(policySelectedOnClaims(0));\n }\n\n const handleMultiplePetsSelect = (petId) => () => {\n const multibrandPets = multibrandPolicies;\n const allPets = store.policies.allPets;\n const isFigo = multibrandPets.some((pet) => pet.PetId === petId\n && pet.Policies.some((policy) => policy\n .PolicyMarketingChannelId === MARKETING_CHANNEL_ID.figo));\n const arrayData = isFigo ? allPets : multibrandPets || [];\n const petIndex = arrayData?.findIndex((pet) => pet.PetId === petId);\n const policyBrand = isFigo\n ? getBrandNameByChannelId(MARKETING_CHANNEL_ID.figo)\n : arrayData[petIndex]?.Policies\n .map((item) => getBrandNameByChannelId(item.PolicyMarketingChannelId))\n .join('');\n dispatch(petSelected(petIndex));\n dispatch(setSelectedPetId(petId));\n dispatch(clearPolicyNotifications());\n dispatch(setSelectedPetIndex(petIndex));\n dispatch(billingPaymentReseted());\n onResetPolicySelector();\n sendEvent(EV1({ pms, policyBrand }));\n\n const selectedPetData = multibrandPolicies\n .find((item) => item.PetId === +petId) || {};\n\n if (selectedPetData.Policies?.length > 1) {\n history.push(`${INSURANCE}/${petId}/morePolicies`);\n } else {\n history.push(`${INSURANCE}/${petId}`);\n }\n };\n\n const multibrandPetList = useMemo(() => {\n if (!multibrandPolicies) {\n return [];\n }\n\n return multibrandPolicies\n .map((element) => ({\n petAge: element.PetAge,\n petBreed: element.Breed,\n petGender: element.PetGender === PET_GENDER.MALE\n ? t('male') : t('female'),\n petGenderId: element.PetGender,\n petId: element.PetId,\n petName: element.PetName,\n petProfileImage: element.ProfileUrl,\n petType: element.Type,\n petWeight: element.Weight,\n policies: element.Policies,\n }));\n }, [multibrandPolicies]);\n\n function renderContent() {\n if (!multibrandPetList.length || loading) {\n return (\n <div className=\"Policy-summary-shimmer-content\">\n <FigoLottie\n animationData={loadingSpinnerBlue}\n height={50}\n width={50}\n />\n </div>\n );\n }\n\n const singlePet = multibrandPetList.length === 1;\n\n if (singlePet) {\n const [petAndPolicyInfo] = multibrandPetList;\n const singlePolicy = petAndPolicyInfo\n && petAndPolicyInfo.policies.length === 1;\n const { petId } = petAndPolicyInfo;\n\n // single policy (policy detail)\n if (singlePolicy) {\n return <Redirect to={`${INSURANCE}/${petId}`} />;\n }\n\n // multiple policy (policy selection)\n return <Redirect to={`${INSURANCE}/${petId}/morePolicies`} />;\n }\n\n return (\n <MultiplePetsSelector\n handlePetSelect={handleMultiplePetsSelect}\n pets={multibrandPetList}\n subTitle={t('multiplePets.subtitle')}\n title={t('title')}\n />\n );\n }\n\n return renderContent();\n};\n\nexport { InsuranceScreen };\n","export default __webpack_public_path__ + \"static/media/add-white.fbfd6885.svg\";","export default __webpack_public_path__ + \"static/media/add-onyx.a3e3aecd.svg\";","export default __webpack_public_path__ + \"static/media/active-green.d8fc07f1.svg\";","export default __webpack_public_path__ + \"static/media/cancelled-red.3d2f4536.svg\";","export default __webpack_public_path__ + \"static/media/future-brown.c10cc16c.svg\";","export default __webpack_public_path__ + \"static/media/past-black.7a5c4e76.svg\";","import React from 'react';\nimport { POLICY_STATUS } from '../../../constants';\n\nimport activeIcon from '../../../assets/policy/active-green.svg';\nimport cancelledIcon from '../../../assets/policy/cancelled-red.svg';\nimport futureIcon from '../../../assets/policy/future-brown.svg';\nimport pastIcon from '../../../assets/policy/past-black.svg';\n\nimport './css/CoveragePolicyStatus.css';\n\nconst CoveragePolicyStatus = ({ label, status }) => {\n let statusIcon = null;\n let statusClass = '';\n\n switch (status) {\n case POLICY_STATUS.active:\n statusIcon = activeIcon;\n statusClass = 'active';\n break;\n\n case POLICY_STATUS.cancelled:\n statusIcon = cancelledIcon;\n statusClass = 'cancelled';\n break;\n\n case POLICY_STATUS.future:\n statusIcon = futureIcon;\n statusClass = 'future';\n break;\n\n case POLICY_STATUS.unPolicy:\n case POLICY_STATUS.expired:\n case POLICY_STATUS.past:\n statusIcon = pastIcon;\n statusClass = 'unPolicy';\n break;\n\n default:\n statusIcon = pastIcon;\n statusClass = 'unPolicy';\n break;\n }\n\n return (\n <div className={`Coverage-policy-status-${statusClass}`}>\n <img alt=\"\" className=\"Coverage-policy-status-icon\" src={statusIcon} />\n\n <p>{label}</p>\n </div>\n );\n};\n\nexport { CoveragePolicyStatus };\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAclBMVEUAAAAz/8wez8wdz8oc0Moc0Msc0M0dz8uA//8e0cscz8o51dBh3doi0Msz08/1/Pz///+27+1G2NPT9fR34t+p7OtE19Nk3tqL5uN24t/B8vDo+vmK5uPA8fD9/v6f6ujd9/f8/v6N5+Ss7etO2dVu4N1G6Bt2AAAACnRSTlMABVWl2fNR3AKKw76XCQAAAAFiS0dEEJWyDSwAAAAHdElNRQfkAhUQNCTHCbOvAAAAn0lEQVQYV22RxxKDMAxE1x2UppBGSCPF//+LOUgGZmBPb95BllcAABjrfAjeWYMhMZEmRVVVTZPUFQBA3Wq9EQsAUdx2x3uhCBid1zAfhJKBLcOOp7OShRO4tG17VengBTpmvqn0CAL3xyhDkUTPifRz6ctDU+nGlUZpy/Kvnvndf4iIkinf7JiZ+UtEFIdCfjnnnBvSQparWywZs3P8AfYeDz7md1yHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTAyLTIxVDE2OjUyOjM2KzAwOjAwp2sRWAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wMi0yMVQxNjo1MjozNiswMDowMNY2qeQAAAAASUVORK5CYII=\"","export default __webpack_public_path__ + \"static/media/info-icon.c786c991.svg\";","import React, { useMemo, useState } from 'react';\nimport infoIcon from '../../assets/billingPayments/info.png';\nimport infoIconDark from '../../assets/info-icon.svg';\nimport TouchableDiv from './TouchableDiv';\nimport './IconTooltip.css';\n\nexport const TOOL_TIP_POSITION = {\n center: {\n containerArrowPosition: 'Icon-tooltip-arrow-container-center',\n left: -115,\n },\n end: {\n containerArrowPosition: 'Icon-tooltip-arrow-container-end',\n left: -204,\n },\n start: {\n containerArrowPosition: 'Icon-tooltip-arrow-container-start',\n left: -24,\n },\n};\n\nconst LEFT = 'left';\nconst RIGHT = 'right';\nconst DOWN = 'down';\nconst TOP = 'top';\nconst DOWN_LEFT = 'down-left';\nconst TOP_LEFT = 'top-left';\n\nconst IconTooltip = ({\n activeOnTouch = false,\n arrowClass = '',\n buttonClass = '',\n containerClass = '',\n description = '',\n direction = TOP,\n height = 0,\n icon = null,\n iconClassName = '',\n mainClass = '',\n teal = false,\n text = '',\n textClassName = '',\n width = 234,\n xPosition = 0,\n yPosition = 0,\n}) => {\n const [tooltipVisible, setTooltipVisible] = useState(false);\n\n const getDescriptionPosition = () => {\n let top = yPosition;\n let left = xPosition;\n let containerWidth = width || 234;\n\n if (!xPosition && !yPosition) {\n switch (direction) {\n case DOWN:\n top = 44;\n left = -(containerWidth / 2);\n break;\n case RIGHT:\n left = 28;\n top = -(containerWidth * 0.805);\n break;\n case LEFT:\n left = -(containerWidth + 7);\n top = -(height / 2);\n break;\n case DOWN_LEFT:\n top = 44;\n left = -(containerWidth - (containerWidth * 0.09));\n containerWidth = width || 274;\n break;\n case TOP_LEFT:\n top = -(height + 5);\n left = -((containerWidth / 2) - 90);\n break;\n default:\n top = -(height + 5);\n left = -((containerWidth / 2) - 10);\n }\n }\n return {\n height: height || 'auto',\n left: `${left}px`,\n top: `${top}px`,\n width: containerWidth,\n };\n };\n\n const getArrowContainerPosition = () => {\n switch (direction) {\n case DOWN:\n case DOWN_LEFT:\n return 'Tooltip-arrow-container-down';\n case RIGHT:\n return 'Tooltip-arrow-container-right';\n case LEFT:\n return 'Tooltip-arrow-container-left';\n case TOP_LEFT:\n return 'Tooltip-arrow-container-top-left';\n default:\n return 'Tooltip-arrow-container-top';\n }\n };\n\n const getArrowStyle = () => {\n switch (direction) {\n case TOP:\n case TOP_LEFT:\n return 'Tooltip-arrow-down';\n case DOWN:\n case DOWN_LEFT:\n return 'Tooltip-arrow-top';\n case RIGHT: return 'Tooltip-arrow-left';\n case LEFT: return 'Tooltip-arrow-right';\n default: return '';\n }\n };\n\n function handleHoverIn() {\n if (!activeOnTouch) {\n setTooltipVisible(true);\n }\n }\n\n function handleClose() {\n setTooltipVisible(false);\n }\n\n function handleHoverOut() {\n if (!activeOnTouch) {\n handleClose();\n }\n }\n\n function handleClick() {\n if (activeOnTouch) {\n setTooltipVisible(true);\n }\n }\n\n function renderTooltip() {\n if (!tooltipVisible) {\n return null;\n }\n\n return (\n <>\n {activeOnTouch && (\n <TouchableDiv\n className=\"Tooltip-backdrop\"\n id=\"modalOuterTooltip\"\n onClick={handleClose}\n onKeyPress={handleClose}\n />\n )}\n\n <div className={`Tooltip-main-container ${mainClass}`} data-teal={teal}>\n <div\n className={`Tooltip-description-container ${containerClass}`}\n style={getDescriptionPosition()}\n >\n <span className={`Tooltip-description ${textClassName}`}>\n {description}\n </span>\n </div>\n\n <div\n className={`Tooltip-arrow-container ${getArrowContainerPosition()}`}\n >\n <div className={`${arrowClass} ${getArrowStyle()}`} />\n </div>\n </div>\n </>\n );\n }\n\n const iconSrc = useMemo(() => (\n icon || (!teal && infoIcon) || infoIconDark),\n [icon]);\n\n return (\n <div className=\"Tooltip-icon-container\">\n <button\n className={`Like-span ${buttonClass}`}\n onClick={handleClick}\n type=\"button\"\n >\n {text || (\n <img\n alt=\"\"\n className={`Tooltip-icon-default ${iconClassName}`}\n onMouseEnter={handleHoverIn}\n onMouseLeave={handleHoverOut}\n src={iconSrc}\n />\n )}\n </button>\n\n {renderTooltip()}\n </div>\n );\n};\n\nexport default IconTooltip;\n","export default __webpack_public_path__ + \"static/media/info-circle.4515cacf.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport './css/CoverageFigoInfoFee.css';\n\nconst CoverageInfoFeeCancelled = ({\n cancellationDate = '',\n effectiveDate = '',\n payAmount = '',\n policyNumber = '',\n}) => {\n const { t } = useTranslation('insuranceScreen');\n\n return (\n <>\n <div className=\"Coverage-overview-column\">\n <div className=\"Flex Flex-column\">\n <span className=\"Coverage-overview-info-title\">\n {t('policyNumberTitle')}\n </span>\n\n <span className=\"Coverage-overview-info-value\">\n {policyNumber}\n </span>\n </div>\n\n <div className=\"Flex Flex-column\">\n <span className=\"Coverage-overview-info-title\">\n {t('policyCancelled')}\n </span>\n\n <span className=\"Coverage-overview-info-value\">\n {cancellationDate}\n </span>\n </div>\n </div>\n\n <div className=\"Coverage-overview-column\">\n <div className=\"Flex Flex-column\">\n <span className=\"Coverage-overview-info-title\">\n {t('policyEffectiveDate')}\n </span>\n\n <span className=\"Coverage-overview-info-value\">\n {effectiveDate}\n </span>\n </div>\n\n <div className=\"Flex Flex-column\">\n <span className=\"Coverage-overview-info-title\">\n {t('monthlyCost')}\n </span>\n\n <span className=\"Coverage-overview-info-value\">\n {payAmount}\n </span>\n </div>\n </div>\n </>\n );\n};\n\nexport { CoverageInfoFeeCancelled };\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { usePetPolicies } from '../../../hooks/usePetPolicies';\n\nimport IconTooltip from '../../common/IconTooltip';\n\nimport Shimmer from '../../common/Shimmer';\n\nimport infoIcon from '../../../assets/policy/info-circle.svg';\n\nimport { getDateBasicFormat } from '../../../services/utils';\n\nimport { CoverageInfoFeeCancelled } from './CoverageInfoFeeCancelled';\n\nimport './css/CoverageFigoInfoFee.css';\n\nconst CoverageFigoInfoFee = ({\n effectiveDate = '',\n isCancelled = false,\n selectedPolicy = {},\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const petPolicies = usePetPolicies();\n const { loading } = petPolicies;\n\n function formatDate(date) {\n if (!date) {\n return t('na');\n }\n\n return getDateBasicFormat(date.split('T')[0], 'MM/DD/YYYY');\n }\n\n const annualCoverage = useMemo(() => {\n if (selectedPolicy.PolicyDisplayNumber) {\n return selectedPolicy.Benefit.includes('K')\n ? `$${selectedPolicy.Benefit.replace('K', ',000')}`\n : selectedPolicy.Benefit;\n }\n\n return t('na');\n }, [selectedPolicy]);\n const deductible = selectedPolicy.PolicyDisplayNumber\n ? `$${selectedPolicy.Deductible}` : t('na');\n const reimbursement = selectedPolicy.PolicyDisplayNumber\n ? `${selectedPolicy.Reimbursement}%` : t('na');\n\n function renderShimmer() {\n return (\n <div className=\"Flex Flex-column\">\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n </div>\n );\n }\n\n function renderContent() {\n if (isCancelled) {\n const payAmount = selectedPolicy.TotalPremium\n || selectedPolicy.TotalPremium === 0\n ? `$${selectedPolicy.TotalPremium.toFixed(2)}` : t('na');\n\n return (\n <CoverageInfoFeeCancelled\n cancellationDate={formatDate(selectedPolicy.CancellationDate)}\n effectiveDate={formatDate(effectiveDate)}\n payAmount={payAmount}\n policyNumber={selectedPolicy.PolicyDisplayNumber}\n />\n );\n }\n\n return (\n <>\n <div className=\"Flex Flex-column\">\n <span className=\"Coverage-overview-info-title\">\n {t('policyNumberTitle')}\n </span>\n\n <span className=\"Coverage-overview-info-value\">\n {selectedPolicy.PolicyDisplayNumber}\n </span>\n </div>\n\n <div className=\"Flex Flex-column\">\n <span className=\"Coverage-overview-info-title\">\n {t('policyTerm')}\n </span>\n\n <span className=\"Coverage-overview-info-value\">\n {`${formatDate(selectedPolicy.PolicyStartDate)} - \n ${formatDate(selectedPolicy.PolicyEndDate)}`}\n </span>\n </div>\n </>\n );\n }\n\n return loading ? renderShimmer() : (\n <>\n <div className={'Coverage-overview-policy-info-container '\n + 'Change-coverate-policy-row'}\n >\n {renderContent()}\n </div>\n\n {isCancelled ? null : (\n <div className=\"Coverage-overview-figo-info\">\n <div className=\"Coverage-overview-figo-info-row\">\n <div className=\"Coverage-overview-figo-fee-title\">\n <span>{t('annualCoverage')}</span>\n\n <IconTooltip\n activeOnTouch\n arrowClass=\"Coverage-overview-tooltip-arrow\"\n containerClass=\"Coverage-overview-tooltip-description\"\n description={t('tooltip.annualCoverageTooltip')}\n direction=\"top-left\"\n height={58}\n icon={infoIcon}\n iconClassName=\"Coverage-overview-tooltip-icon\"\n mainClass=\"Coverage-overview-tooltip-main-class\"\n textClassName=\"Coverage-overview-tooltip-text\"\n width={200}\n />\n </div>\n\n <span className=\"Coverage-overview-figo-fee-value\">\n {annualCoverage}\n </span>\n </div>\n\n <div className=\"Coverage-overview-figo-info-row\">\n <div className=\"Coverage-overview-figo-fee-title\">\n <span>{t('reimbursement')}</span>\n\n <IconTooltip\n activeOnTouch\n arrowClass=\"Coverage-overview-tooltip-arrow\"\n containerClass=\"Coverage-overview-tooltip-description\"\n description={t('tooltip.reimbursementTooltip')}\n direction=\"top-left\"\n height={64}\n icon={infoIcon}\n iconClassName=\"Coverage-overview-tooltip-icon\"\n mainClass=\"Coverage-overview-tooltip-main-class\"\n textClassName=\"Coverage-overview-tooltip-text\"\n width={200}\n />\n </div>\n\n <span className=\"Coverage-overview-figo-fee-value\">\n {reimbursement}\n </span>\n </div>\n\n <div className=\"Coverage-overview-figo-info-row\">\n <div className=\"Coverage-overview-figo-fee-title\">\n <span>{t('deductible')}</span>\n\n <IconTooltip\n activeOnTouch\n arrowClass=\"Coverage-overview-tooltip-arrow\"\n containerClass=\"Coverage-overview-tooltip-description\"\n description={t('tooltip.deductibleTooltip')}\n direction=\"top-left\"\n height={64}\n icon={infoIcon}\n iconClassName=\"Coverage-overview-tooltip-icon\"\n mainClass=\"Coverage-overview-tooltip-main-class\"\n textClassName=\"Coverage-overview-tooltip-text\"\n width={200}\n />\n </div>\n\n <span className=\"Coverage-overview-figo-fee-value\">\n {deductible}\n </span>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport { CoverageFigoInfoFee };\n","export default __webpack_public_path__ + \"static/media/check-green.4ef53477.svg\";","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { usePetPolicies } from '../../../hooks/usePetPolicies';\n\nimport checkIcon from '../../../assets/policy/check-green.svg';\n\nimport Shimmer from '../../common/Shimmer';\n\nimport { currencyFormat } from '../../../services/utils';\nimport './css/CoverageFigoProgressBar.css';\n\nconst CoverageFigoProgressBar = ({\n loadingOverview = false,\n policies = [],\n selectedPolicy = {},\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const petPolicies = usePetPolicies();\n const {\n loading,\n unPolicyPet,\n policyCancelled,\n } = petPolicies;\n\n const overviewValue = useMemo(() => {\n const { policiesOverView } = policies;\n if (loading || loadingOverview || !policiesOverView\n || !selectedPolicy || unPolicyPet()) {\n return {\n AnnualBenefit: 0,\n AvailableBenefits: 0,\n benefitsValue: 0,\n deductibleCoverage: 0,\n deductibleMet: false,\n deductiblePaid: 0,\n deductiblePaidPercentage: 0,\n };\n }\n\n const { PolicyDisplayNumber } = selectedPolicy;\n\n const policyOverView = policiesOverView\n .find((policy) => policy\n .PetInformation.PolicyNumber === PolicyDisplayNumber);\n\n if (policyOverView) {\n const {\n AnnualBenefit,\n AvailableBenefits,\n DeductibleBalance,\n IsUnlimited,\n } = policyOverView;\n let deductiblePaid = selectedPolicy.Deductible - DeductibleBalance;\n deductiblePaid = deductiblePaid < 0 ? 0 : deductiblePaid;\n\n const deductibleCoverage = selectedPolicy.Deductible;\n const deductiblePaidPercentage = (deductiblePaid * 100)\n / deductibleCoverage;\n\n return {\n AnnualBenefit,\n AvailableBenefits,\n benefitsValue:\n (((AnnualBenefit - AvailableBenefits) * 100)\n / AnnualBenefit),\n deductibleCoverage: selectedPolicy.Deductible,\n deductibleMet: deductiblePaidPercentage === 100,\n deductiblePaid,\n deductiblePaidPercentage,\n isUnlimited: IsUnlimited,\n };\n }\n\n return {\n AnnualBenefit: 0,\n AvailableBenefits: 0,\n benefitsValue: 0,\n deductibleCoverage: 0,\n deductibleMet: false,\n deductiblePaid: 0,\n deductiblePaidPercentage: 0,\n };\n }, [policies, loading, selectedPolicy]);\n\n const {\n AnnualBenefit,\n AvailableBenefits,\n benefitsValue,\n deductibleCoverage,\n deductibleMet,\n deductiblePaid,\n deductiblePaidPercentage,\n isUnlimited,\n } = overviewValue;\n\n const fullBenefit = useMemo(() => (\n isUnlimited ? false : benefitsValue === 100\n ), [AvailableBenefits, isUnlimited]);\n\n if (policyCancelled()) {\n return null;\n }\n\n function renderShimmer() {\n return (\n <div className=\"Coverage-overview-figo-progress-container\">\n <Shimmer className=\"Coverage-overview-progress-shimmer\" visible />\n\n <Shimmer className=\"Coverage-overview-progress-shimmer\" visible />\n </div>\n );\n }\n\n return loading || loadingOverview ? renderShimmer() : (\n <div className=\"Coverage-overview-figo-progress-container\">\n <div className=\"Coverage-overview-figo-progress-row\">\n <span className=\"Coverage-overview-figo-progress-title\">\n {t('benefitUsed')}\n </span>\n\n <span className=\"Coverage-overview-figo-progress-values\">\n {isUnlimited ? t('unlimited')\n : `${currencyFormat({\n fixed: 0,\n value: AnnualBenefit - AvailableBenefits,\n })}`\n + `/$${selectedPolicy.Benefit}`}\n </span>\n </div>\n\n <div className=\"Coverage-overview-progress\">\n <div\n className={`Coverage-overview-progress-fill${isUnlimited\n ? '-unlimited' : ''}`}\n style={{ width: `${isUnlimited ? '100' : benefitsValue}%` }}\n />\n </div>\n\n {fullBenefit ? (\n <div className=\"Coverage-overview-progress-full\">\n <img alt=\"\" src={checkIcon} />\n\n <span>{t('fullBenefitUsed')}</span>\n </div>\n ) : null}\n\n <div className=\"Coverage-overview-figo-progress-row-deductible\">\n <span className=\"Coverage-overview-figo-progress-title\">\n {t('deductiblePaid')}\n </span>\n\n <span className=\"Coverage-overview-figo-progress-values\">\n {`${currencyFormat({ fixed: 0, value: deductiblePaid })}`}\n /{`${currencyFormat({ fixed: 0, value: deductibleCoverage })}`}\n </span>\n </div>\n\n <div className=\"Coverage-overview-progress\">\n <div\n className=\"Coverage-overview-progress-fill\"\n style={{ width: `${deductiblePaidPercentage}%` }}\n />\n </div>\n\n {deductibleMet ? (\n <div className=\"Coverage-overview-progress-full\">\n <img alt=\"\" src={checkIcon} />\n\n <span>{t('deductibleMetText')}</span>\n </div>\n ) : null}\n </div>\n );\n};\n\nexport { CoverageFigoProgressBar };\n","import React from 'react';\n\nconst CoverageOverviewField = ({ label, value }) => (\n <div className=\"Coverage-overview-field\">\n <span className=\"Coverage-overview-info-title\">\n {label}\n </span>\n\n <span className=\"Coverage-overview-info-value\">\n {value}\n </span>\n </div>\n);\n\nexport { CoverageOverviewField };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { currencyFormat, getDateBasicFormat } from '../../../services/utils';\n\nimport { usePetPolicies } from '../../../hooks/usePetPolicies';\n\nimport Shimmer from '../../common/Shimmer';\n\nimport './css/CoverageOverview.css';\nimport { CoverageOverviewField } from './CoverageOverviewField';\n\nconst CoverageInfoFee = ({\n isCancelled = false,\n selectedPolicy = {},\n}) => {\n const petPolicies = usePetPolicies();\n const { loading } = petPolicies;\n const { t } = useTranslation('insuranceScreen');\n\n const {\n Benefit = '',\n CancellationDate = '',\n Copay = '',\n Deductible = '',\n IncidentLimit = '',\n PetCoverages = '',\n PolicyDisplayNumber = '',\n PolicyEndDate = '',\n PolicyStartDate = '',\n ProductName = '',\n TotalPremium = '',\n } = selectedPolicy;\n\n function formatDate(date) {\n if (!date) {\n return t('na');\n }\n\n return getDateBasicFormat(date.split('T')[0], 'MM/DD/YYYY');\n }\n\n function renderShimmer() {\n return (\n <div className=\"Flex Flex-column\">\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n </div>\n );\n }\n\n function renderContent() {\n if (isCancelled) {\n const payAmount = TotalPremium\n || TotalPremium === 0\n ? `$${TotalPremium.toFixed(2)}` : t('na');\n\n return (\n <CoverageInfoFee\n cancellationDate={formatDate(CancellationDate)}\n effectiveDate={formatDate(PolicyStartDate)}\n payAmount={payAmount}\n policyNumber={PolicyDisplayNumber}\n />\n );\n }\n\n return (\n <>\n <div className=\"Coverage-overview-column\">\n <CoverageOverviewField\n label={t('product')}\n value={ProductName}\n />\n\n <CoverageOverviewField\n label={t('totalPremium')}\n value={`$${TotalPremium}`}\n />\n\n <CoverageOverviewField\n label={t('coinsurance')}\n value={`${Copay}%`}\n />\n </div>\n\n <div className=\"Coverage-overview-column\">\n <CoverageOverviewField\n label={t('policyNumberTitle')}\n value={PolicyDisplayNumber}\n />\n\n <CoverageOverviewField\n label={t('incidentLimit')}\n value={currencyFormat({ value: IncidentLimit })}\n />\n\n <CoverageOverviewField\n label={t('coverageLimit')}\n value={currencyFormat({ value: Benefit })}\n />\n </div>\n\n <div className=\"Coverage-overview-column\">\n <CoverageOverviewField\n label={t('coveragePeriod')}\n value={`${formatDate(PolicyStartDate)} - \n ${formatDate(PolicyEndDate)}`}\n />\n\n <CoverageOverviewField\n label={t('deductible')}\n value={currencyFormat({ value: Deductible })}\n />\n\n <CoverageOverviewField\n label={t('otherPetsOnThisPolicy')}\n value={PetCoverages\n .map((coverages) => coverages.Pet.Name).join(', ')}\n />\n </div>\n </>\n );\n }\n\n return loading ? renderShimmer() : (\n <>\n <div className=\"Coverage-overview-policy-info-container\">\n {renderContent()}\n </div>\n </>\n );\n};\n\nexport { CoverageInfoFee };\n","import React from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { currencyFormat, getDateBasicFormat } from '../../../services/utils';\nimport { usePetPolicies } from '../../../hooks/usePetPolicies';\n\nimport Shimmer from '../../common/Shimmer';\nimport { CoverageOverviewField } from './CoverageOverviewField';\nimport './css/CoverageOverview.css';\n\nconst CoverageGroupInfoFee = ({\n isCancelled = false,\n selectedPolicy = {},\n}) => {\n const petPolicies = usePetPolicies();\n const { loading } = petPolicies;\n const { t } = useTranslation('insuranceScreen');\n // TBD business logic\n const showOnePackDisclaimer = false;\n\n const {\n Benefit = '',\n CancellationDate = '',\n Copay = '',\n Deductible = '',\n IncidentLimit = '',\n PetCoverages = '',\n PolicyDisplayNumber = '',\n PolicyEndDate = '',\n PolicyStartDate = '',\n ProductName = '',\n TotalPremium = '',\n GroupName = '',\n } = selectedPolicy;\n\n function formatDate(date) {\n if (!date) {\n return t('na');\n }\n\n return getDateBasicFormat(date.split('T')[0], 'MM/DD/YYYY');\n }\n\n function renderShimmer() {\n return (\n <div className=\"Flex Flex-column\">\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n\n <Shimmer className=\"Coverage-overview-info-shimmer\" visible />\n </div>\n );\n }\n\n function renderContent() {\n if (isCancelled) {\n const payAmount = TotalPremium\n || TotalPremium === 0\n ? `$${TotalPremium.toFixed(2)}` : t('na');\n\n return (\n <CoverageGroupInfoFee\n cancellationDate={formatDate(CancellationDate)}\n effectiveDate={formatDate(PolicyStartDate)}\n payAmount={payAmount}\n policyNumber={PolicyDisplayNumber}\n />\n );\n }\n\n return (\n <>\n <div className=\"Coverage-overview-column\">\n <CoverageOverviewField\n label={t('product')}\n value={ProductName}\n />\n\n <CoverageOverviewField\n label={t('coveragePeriod')}\n value={`${formatDate(PolicyStartDate)} - \n ${formatDate(PolicyEndDate)}`}\n />\n\n <CoverageOverviewField\n label={t('coinsurance')}\n value={`${Copay}%`}\n />\n </div>\n\n <div className=\"Coverage-overview-column\">\n <CoverageOverviewField\n label={t('certificateNumber')}\n value={PolicyDisplayNumber}\n />\n\n <CoverageOverviewField\n label={t('incidentLimit')}\n value={currencyFormat({ value: IncidentLimit })}\n />\n\n <CoverageOverviewField\n label={t('deductible')}\n value={currencyFormat({ value: Deductible })}\n />\n </div>\n\n <div className=\"Coverage-overview-column\">\n <CoverageOverviewField\n label={t('groupName')}\n value={GroupName}\n />\n\n <CoverageOverviewField\n label={t('coverageLimit')}\n value={currencyFormat({ value: Benefit })}\n />\n\n <CoverageOverviewField\n label={t('otherPetsOnThisPolicy')}\n value={PetCoverages\n .map((coverages) => coverages.Pet.Name).join(', ')}\n />\n </div>\n </>\n );\n }\n\n return loading ? renderShimmer() : (\n <>\n <div className=\"Coverage-overview-policy-info-container\">\n {renderContent()}\n </div>\n\n {showOnePackDisclaimer ? (\n <p className=\"Coverage-overview-disclaimer\">\n <Trans\n components={{ bold: <strong /> }}\n i18nKey=\"onePackDisclaimer\"\n ns=\"insuranceScreen\"\n />\n </p>\n ) : null}\n </>\n );\n};\n\nexport { CoverageGroupInfoFee };\n","var _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgArrowRightToPaint(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 18,\n viewBox: \"0 0 16 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Chevron\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M3.66699 1.5L10.8137 8.64667C10.8601 8.69304 10.8969 8.74812 10.9221 8.80875C10.9472 8.86938 10.9602 8.93437 10.9602 9C10.9602 9.06563 10.9472 9.13062 10.9221 9.19125C10.8969 9.25188 10.8601 9.30696 10.8137 9.35333L3.66699 16.5\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowRightToPaint);\nexport default __webpack_public_path__ + \"static/media/arrow-right-to-paint.fe836e01.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useCallback } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { ReactComponent as ArrowRight }\nfrom '../../assets/arrow-right-to-paint.svg';\n\nimport './ViewMoreButton.css';\n\nconst ViewMoreButton = ({\n className = '',\n text = '',\n onClick = () => { },\n isLink = false,\n to = '',\n}) => {\n const Wrapper = useCallback(({ children }) => {\n if (isLink) {\n return (\n <Link className={`View-more-button ${className}`} to={to}>\n {children}\n </Link>\n );\n }\n\n return (\n <button\n className={`View-more-button ${className}`}\n onClick={onClick}\n type=\"button\"\n >\n {children}\n </button>\n );\n }, [isLink, onClick, to]);\n\n return (\n <Wrapper>\n <span>{text}</span>\n\n <ArrowRight className=\"Branded-icon\" />\n </Wrapper>\n );\n};\n\nexport { ViewMoreButton };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { CoveragePolicyStatus } from './CoveragePolicyStatus';\nimport { CoverageFigoInfoFee } from './CoverageFigoInfoFee';\nimport { CoverageFigoProgressBar } from './CoverageFigoProgressBar';\nimport Shimmer from '../../common/Shimmer';\nimport { CoverageInfoFee } from './CoverageInfoFee';\n\nimport { MULTIBRAND_POLICY_STATUS, POLICY_STATUS } from '../../../constants';\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\n\nimport { CoverageGroupInfoFee } from './CoverageGroupInfoFee';\nimport { ViewMoreButton } from '../ViewMoreButton';\nimport { isBasicOrcaPolicy } from './changeCoverage.utils';\n\nimport './css/CoverageOverview.css';\n\nconst CoverageOverview = ({\n marketingChanneld = MARKETING_CHANNEL_ID.figo,\n effectiveDate = '',\n isCancelled = false,\n loading = false,\n loadingOverview = false,\n policies = [],\n selectedPolicy,\n onOpenIframe = () => { },\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const {\n StatusDisplay = '',\n } = selectedPolicy;\n const status = POLICY_STATUS[StatusDisplay?.toLowerCase()];\n\n function renderShimmer() {\n return <Shimmer className=\"Coverage-overview-title-shimmer\" visible />;\n }\n\n const handleChangeCoverage = () => {\n onOpenIframe();\n };\n\n function renderLeftSide() {\n switch (marketingChanneld) {\n case MARKETING_CHANNEL_ID.ppiOnePack:\n return (\n <CoverageGroupInfoFee\n company={marketingChanneld}\n effectiveDate={effectiveDate}\n isCancelled={isCancelled}\n selectedPolicy={selectedPolicy}\n />\n );\n case MARKETING_CHANNEL_ID.akc:\n case MARKETING_CHANNEL_ID.ppi:\n case MARKETING_CHANNEL_ID.spot:\n return (\n <CoverageInfoFee\n company={marketingChanneld}\n effectiveDate={effectiveDate}\n isCancelled={isCancelled}\n selectedPolicy={selectedPolicy}\n />\n );\n case MARKETING_CHANNEL_ID.figo:\n default:\n return (\n <CoverageFigoInfoFee\n effectiveDate={effectiveDate}\n isCancelled={isCancelled}\n selectedPolicy={selectedPolicy}\n />\n );\n }\n }\n\n function renderRightSide() {\n if (marketingChanneld !== MARKETING_CHANNEL_ID.figo) {\n return null;\n }\n\n return (\n <div className=\"Coverage-overview-right-info-side\">\n <CoverageFigoProgressBar\n loadingOverview={loadingOverview}\n policies={policies}\n selectedPolicy={selectedPolicy}\n />\n </div>\n );\n }\n\n function render30DayPolicy() {\n if (!selectedPolicy.IsTrialPolicy\n || marketingChanneld !== MARKETING_CHANNEL_ID.akc\n || StatusDisplay === POLICY_STATUS.cancelled) {\n return null;\n }\n\n return (\n <div className=\"Coverage-overview-30-day-policy-container\">\n <span>{t('thirtyDayPolicy')}</span>\n </div>\n );\n }\n\n function renderChangeCoverage() {\n if (marketingChanneld === MARKETING_CHANNEL_ID.figo\n || marketingChanneld === MARKETING_CHANNEL_ID.ppiOnePack\n || StatusDisplay === MULTIBRAND_POLICY_STATUS.cancelled\n || StatusDisplay === MULTIBRAND_POLICY_STATUS.past) {\n return null;\n }\n\n if (isBasicOrcaPolicy(selectedPolicy?.IncidentLimit)) {\n return null;\n }\n\n return (\n <ViewMoreButton\n className=\"Coverage-overview-change-coverage\"\n onClick={handleChangeCoverage}\n text={t('changeCoverage')}\n />\n );\n }\n\n if (loading) {\n return renderShimmer();\n }\n\n return (\n <>\n <div className=\"Coverage-overview-title-container\">\n <h2>{t('coverageOverview')}</h2>\n\n <CoveragePolicyStatus\n label={t(`policyStatus-${status}`)}\n status={status}\n />\n\n {render30DayPolicy()}\n\n {renderChangeCoverage()}\n </div>\n\n <div className=\"Coverage-overview-section-container\">\n <div className=\"Coverage-overview-left-info-side\">\n {renderLeftSide()}\n </div>\n\n {renderRightSide()}\n </div>\n </>\n );\n};\n\nexport { CoverageOverview };\n","/**\n * Orca validation, in order to know if the policy is basic,\n * based on its incident limit.\n * @param {*} incidentLimit incident limit of the Orca policy.\n */\nexport const isBasicOrcaPolicy = (\n incidentLimit,\n) => parseInt(incidentLimit, 10) === 500;\n","import React from 'react';\n\nimport Shimmer from '../common/Shimmer';\n\nimport { PET_TYPE } from '../../constants';\nimport dogDefaultImage from '../../assets/billingPayments/dog-placeholder.png';\nimport catDefaultImage from '../../assets/billingPayments/cat-placeholder.png';\nimport './css/CurrentPetPolicy.css';\n\nconst CurrentPetPolicy = ({ currentPet = {}, loading = false }) => {\n const placeholderImage = currentPet.Type === PET_TYPE.CAT\n ? catDefaultImage\n : dogDefaultImage;\n\n return (\n <Shimmer\n className=\"Current-pet-policy-shimmer\"\n element=\"fragment\"\n visible={loading}\n >\n <div className=\"Current-pet-policy-container\">\n <img alt=\"\" src={currentPet.ProfileUrl || placeholderImage} />\n\n <div className=\"Current-pet-policy-info-container\">\n <span className=\"Current-pet-policy-name\">{currentPet.PetName}</span>\n\n <span className=\"Current-pet-policy-breed\">\n {currentPet.Breed}\n </span>\n </div>\n </div>\n </Shimmer>\n );\n};\n\nexport { CurrentPetPolicy };\n","import React from 'react';\nimport Lottie from 'react-lottie';\nimport loadingAnimation from '../../../assets/loading-spinner.json';\nimport loadingBlue from '../../../assets/lottieFiles/loading-blue.json';\nimport successAnimation from '../../../assets/loading-check.json';\nimport './LoadingActionButton.css';\n\nconst loadingAnimationOptions = (blueSpinner) => ({\n animationData: blueSpinner ? loadingBlue : loadingAnimation,\n autoplay: true,\n loop: true,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n});\n\nconst successAnimationOptions = {\n animationData: successAnimation,\n autoplay: true,\n loop: false,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n};\n\nconst LoadingActionButton = ({\n className = '',\n disabled = false,\n height = 34,\n icon = null,\n id,\n loading = false,\n blueSpinner = false,\n onClick = () => { },\n onSuccessAnimationEnd = () => { },\n size = '',\n submit = true,\n success = false,\n text = '',\n textStyle = '',\n width = 34,\n ...rest\n}) => {\n function handleAnimationEnd() {\n if (onSuccessAnimationEnd) {\n onSuccessAnimationEnd();\n }\n }\n\n function renderButtonContent() {\n if (loading) {\n return (\n <Lottie\n height={height}\n options={loadingAnimationOptions(blueSpinner)}\n width={width}\n />\n );\n }\n\n if (!loading && success) {\n return (\n <Lottie\n eventListeners={[{\n callback: handleAnimationEnd,\n eventName: 'complete',\n }]}\n height={height}\n options={successAnimationOptions}\n width={width}\n />\n );\n }\n\n return (\n <span className={textStyle || 'Loading-button-text'}>\n {icon && (\n <img alt=\"\" className=\"Loading-button-icon\" src={icon} />\n )}\n\n {text}\n </span>\n );\n }\n\n function handleOnClick(event) {\n if (onClick && !loading && !success) {\n onClick(event);\n }\n }\n\n return (\n <button\n className={`${className || 'Loading-button-container'}`}\n disabled={disabled}\n id={id}\n onClick={handleOnClick}\n size={size}\n type={submit ? 'submit' : 'button'}\n {...rest}\n >\n {renderButtonContent()}\n </button>\n );\n};\n\nexport default LoadingActionButton;\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport { PET_TYPE } from '../../constants';\nimport { CurrentPetPolicy } from './CurrentPetPolicy';\nimport './UninsuredPet.css';\nimport LoadingActionButton from '../common/petCloud/LoadingActionButtonMyPets';\n\nconst UninsuredPet = ({\n showLearnMore = false,\n onGetQuote = () => { },\n petBreedName,\n petImage,\n petName,\n petType = PET_TYPE.DOG,\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const loading = useSelector(\n ({ orcaInsurance }) => orcaInsurance.getQuoteValidation.loading,\n shallowEqual,\n );\n\n const pet = useMemo(() => ({\n Breed: petBreedName,\n PetName: petName,\n ProfileUrl: petImage,\n Type: petType,\n }), [petName, petImage, petBreedName, petType]);\n\n return (\n <div className=\"Uninsured-pet-container\">\n <div className=\"Uninsured-pet-card\">\n <div>\n <h2 className=\"Uninsured-pet-card-title\">My Pet</h2>\n\n <div className=\"Uninsured-pet-card-pet-card-profile\">\n <CurrentPetPolicy currentPet={pet} />\n </div>\n </div>\n\n <div className=\"Uninsured-pet-content\">\n <h2 className=\"Uninsured-pet-content-subtitle\">\n {t('takeTheNextStep', {\n interpolation: { escapeValue: false },\n petName,\n })}\n </h2>\n\n <p className=\"Uninsured-pet-content-paragraph\">\n {t('insurancePlans')}\n\n <br />\n\n {t('reimbursementCovered')}\n </p>\n\n <div className=\"Uninsured-pet-buttons\">\n {showLearnMore && (\n <a\n className=\"Uninsured-pet-buttons-learn-more\"\n href=\"https://figopetinsurance.com/pet-insurance\"\n rel=\"noreferrer\"\n target=\"_blank\"\n type=\"button\"\n >\n {t('learnMore')}\n </a>\n )}\n\n <LoadingActionButton\n className=\"Uninsured-pet-buttons-get-quote\"\n loading={loading}\n onClick={onGetQuote}\n text={t('getAQuote')}\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default UninsuredPet;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport { youngPetModalClosed } from '../../actions';\nimport ModalContainer from '../common/ModalContainer';\nimport TouchableDiv from '../common/TouchableDiv';\nimport './YoungPetModal.css';\n\nconst YoungPetModal = ({ isVisible }) => {\n const { t } = useTranslation('insuranceScreen');\n const dispatch = useDispatch();\n\n function handleCloseModal() {\n dispatch(youngPetModalClosed());\n }\n\n return (\n <ModalContainer show={isVisible}>\n <div className=\"Young-pet-modal-container\">\n <span className=\"Young-pet-modal-title\">\n {t('youngPetModal.title')}\n </span>\n\n <span className=\"Young-pet-modal-message\">\n {t('youngPetModal.message')}\n </span>\n\n <TouchableDiv\n className=\"Young-pet-button-container-blue\"\n id=\"youngPetButton\"\n onClick={handleCloseModal}\n >\n <span className=\"Young-pet-button-text\">\n {t('youngPetModal.button')}\n </span>\n </TouchableDiv>\n\n </div>\n </ModalContainer>\n );\n};\n\nexport { YoungPetModal };\n","import React, { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport UninsuredPet from './UninsuredPet';\nimport { YoungPetModal } from './YoungPetModal';\n\nimport dogDefaultImage from '../../assets/billingPayments/dog-placeholder.png';\nimport catDefaultImage from '../../assets/billingPayments/cat-placeholder.png';\nimport { PET_TYPE_ID } from '../../constants';\nimport { resetValidationBreedMultibrand } from '../../actions';\n\nconst NoPolicyPets = ({\n currentPet,\n isYoungPetModalVisible = false,\n onGetQuote = () => { },\n onlyFigo = false,\n}) => {\n const dispatch = useDispatch();\n useEffect(() => () => {\n dispatch(resetValidationBreedMultibrand());\n }, [dispatch]);\n\n const handleGetQuote = () => {\n onGetQuote({ petID: currentPet.PetId });\n };\n\n const placeholderImage = currentPet?.Type === PET_TYPE_ID.CAT\n ? catDefaultImage\n : dogDefaultImage;\n\n return (\n <>\n <UninsuredPet\n onGetQuote={handleGetQuote}\n petBreedName={currentPet?.Breed}\n petImage={currentPet?.ProfileUrl || placeholderImage}\n petName={currentPet?.PetName}\n showLearnMore={onlyFigo}\n />\n\n <YoungPetModal isVisible={isYoungPetModalVisible} />\n </>\n );\n};\n\nexport { NoPolicyPets };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContainer from '../common/ModalContainer';\nimport './CancelPolicyModal.css';\n\nconst CancelPolicyModal = (props) => {\n const { t } = useTranslation('insuranceScreen');\n const firstPart = t('cancelPolicyModal.messages.firstPart');\n const phoneNumber = t('cancelPolicyModal.messages.phoneNumber');\n const secondPart = t('cancelPolicyModal.messages.secondPart');\n const email = t('cancelPolicyModal.messages.email');\n const buttonText = t('cancelPolicyModal.buttonText');\n const title = t('cancelPolicyModal.title');\n\n function handleOnClickButton() {\n if (props.onClose) {\n props.onClose();\n }\n }\n\n function greenText(content) {\n return (\n <span className=\"Cancel-policy-modal-content-green\">\n {content}\n </span>\n );\n }\n\n return (\n <ModalContainer\n id=\"cancelPolicyModal\"\n show={props.visible}\n >\n <div className=\"Cancel-policy-modal-container\">\n <span className=\"Cancel-policy-modal-title\">{title}</span>\n\n <span className=\"Cancel-policy-modal-content\">\n {firstPart} {greenText(phoneNumber)} \n {secondPart} {greenText(email)}\n </span>\n\n <button\n className=\"Cancel-policy-modal-close-button\"\n onClick={handleOnClickButton}\n type=\"button\"\n >\n {buttonText}\n </button>\n </div>\n </ModalContainer>\n );\n};\n\nexport default CancelPolicyModal;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContainer from '../../common/ModalContainer';\nimport TouchableDiv from '../../common/TouchableDiv';\n\nimport './ChangeCoverageErrorModal.css';\n\nconst ChangeCoverageErrorModal = ({\n showModal = false,\n errorMessage = '',\n handleCloseModal = () => { },\n}) => {\n const { t } = useTranslation('changeCoverage');\n return (\n <ModalContainer show={showModal}>\n <div className=\"CCEM-container\">\n <h1 className=\"CCEM-title\">{t('error')}</h1>\n\n <p className=\"CCEM-message\">{errorMessage}</p>\n\n <TouchableDiv\n className=\"CCEM-close-container\"\n id=\"closeChangeCoverageErrorModal\"\n onClick={handleCloseModal}\n >\n <span className=\"CCEM-close-text\">{t('close')}</span>\n </TouchableDiv>\n </div>\n </ModalContainer>\n );\n};\n\nexport { ChangeCoverageErrorModal };\n","export default __webpack_public_path__ + \"static/media/close.b057f2af.svg\";","export default __webpack_public_path__ + \"static/media/selected.f8092eec.svg\";","import React from 'react';\nimport selectedIcon from '../../../assets/myPets/selected.svg';\nimport './FoundVetItem.css';\n\nconst FoundVetItem = ({\n added = false,\n addedLabel = '',\n address = '',\n distance = 0,\n name = '',\n rightText = '',\n showDistance = true,\n}) => (\n <>\n <div className={'Found-vet-item-data'\n + `${rightText ? ' Found-vet-item-data-margin' : ''}`}\n >\n <span className=\"Found-vet-item-name\">{name}</span>\n\n <span className=\"Found-vet-item-address\">{address}</span>\n\n {showDistance && (\n <span className=\"Found-vet-item-distance\">\n {distance.toFixed(2)} \n </span>\n )}\n </div>\n\n {added ? (\n <div className=\"Found-vet-item-added\">\n <img alt=\"\" src={selectedIcon} />\n\n <span>\n {addedLabel}\n </span>\n </div>\n ) : (\n <span className=\"Found-vet-item-extra-text\">\n {rightText}\n </span>\n )}\n </>\n);\n\nexport { FoundVetItem };\n","export default __webpack_public_path__ + \"static/media/search-icon.72f8e8b6.svg\";","import React, { useEffect, useState } from 'react';\nimport { useDebounceSearch } from '../../../hooks';\nimport searchICon from '../../../assets/search-icon.svg';\nimport loadingBlue from '../../../assets/lottieFiles/loading-blue.json';\nimport ScrollableDiv from '../../common/ScrollableDiv';\nimport TouchableDiv from '../../common/TouchableDiv';\nimport FigoLottie from '../../common/FigoLottie';\nimport { removeEmojis } from '../../../services/utils';\nimport './SearchInput.css';\n\nconst SearchInput = ({\n emptyMessage = '',\n hideInput = false,\n id = '',\n isLoadingVets = true,\n itemListRender = () => { },\n itemSelected = null,\n itemsFound = [],\n onSearch = () => { },\n onSelected = () => { },\n renderSelectedItem = () => { },\n}) => {\n const [open, setOpen] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const [itemsFiltered, setItemsFiltered] = useState([]);\n\n function handleInputChange(event) {\n const { value } = event.target;\n setInputValue(removeEmojis(value));\n }\n\n function handleInputFocus() {\n setOpen(true);\n }\n\n function closeDropdown() {\n setOpen(false);\n }\n\n const handleSelection = (item) => () => {\n onSelected(item);\n };\n\n const { searchResults } = useDebounceSearch(onSearch, 500);\n\n useEffect(() => {\n searchResults(inputValue);\n }, [inputValue]);\n\n useEffect(() => {\n setItemsFiltered(itemsFound);\n }, [itemsFound]);\n\n useEffect(() => {\n closeDropdown();\n }, [itemSelected]);\n\n useEffect(() => {\n if (hideInput) {\n setOpen(false);\n }\n }, [hideInput]);\n\n return (\n <div className=\"Search-input-wrapper\">\n\n {itemSelected ? (\n <div>\n {renderSelectedItem()}\n </div>\n ) : (\n <div className=\"Search-input-container\">\n <img\n alt=\"search\"\n className=\"Veterinarian-search-icon\"\n src={searchICon}\n />\n\n <input\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n value={inputValue}\n />\n </div>\n )}\n\n {open && (\n <div className=\"Search-input-dropdown-container\">\n <ScrollableDiv className=\"Search-input-dropdown\">\n <TouchableDiv\n className=\"Search-input-overlay\"\n id={`searchInput${id}`}\n onClick={closeDropdown}\n />\n\n {isLoadingVets && <FigoLottie animationData={loadingBlue} />}\n\n {itemsFiltered.map((item) => (\n <button\n key={item.PlaceId || item.Title || item.Id}\n className=\"Search-input-list-item\"\n id={item.Id}\n onClick={handleSelection(item)}\n type=\"button\"\n >\n {itemListRender(item)}\n </button>\n ))}\n\n </ScrollableDiv>\n\n {!isLoadingVets && (\n <div className=\"Search-input-empty-message\">\n {emptyMessage}\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport { SearchInput };\n","export default __webpack_public_path__ + \"static/media/close-icon.51ebba93.svg\";","import { useReducer } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n isEmailValid,\n maskFaxNumber,\n maskPhoneNumber,\n removeEmojis,\n validateNumbersOnly,\n validatePhone,\n validateZipCode,\n} from '../../../../services/utils';\n\nconst useCustomVetForm = ({\n closeModal = () => { },\n handleSuccesCustomVetModal = () => { },\n clearSuccessLoading = () => { },\n}) => {\n const { t } = useTranslation('myPets');\n\n const types = {\n ADDRESS_ERROR: 'ADDRESS_ERROR',\n ADDRESS_VALUE: 'ADDRESS_VALUE',\n CITY_ERROR: 'CITY_ERROR',\n CITY_NAME: 'CITY_NAME',\n CLOSE_MODAL: 'CLOSE_MODAL',\n EMAIL_ERROR: 'EMAIL_ERROR',\n EMAIL_VALUE: 'EMAIL_VALUE',\n FAX_VALUE: 'FAX_VALUE',\n PHONE_ERROR: 'PHONE_ERROR',\n PHONE_VALUE: 'PHONE_VALUE',\n STATE_ERROR: 'STATE_ERROR',\n STATE_ID: 'STATE_ID',\n STATE_NAME: 'STATE_NAME',\n VET_COMPANY_NAME: 'VET_COMPANY_NAME',\n VET_COMPANY_NAME_ERROR: 'VET_COMPANY_NAME_ERROR',\n ZIP_CODE_ERROR: 'ZIP_CODE_ERROR',\n ZIP_CODE_VALUE: 'ZIP_CODE_VALUE',\n };\n\n const initialState = {\n cityError: '',\n cityName: '',\n stateId: '',\n stateName: '',\n vetAddressError: '',\n vetAddressValue: '',\n vetCompanyError: '',\n vetCompanyName: '',\n vetEmailError: '',\n vetEmailValue: '',\n vetFaxValue: '',\n vetPhoneError: '',\n vetPhoneValue: '',\n vetZipCodeError: '',\n vetZipCodeValue: '',\n };\n\n const reducer = (state, action) => {\n switch (action.type) {\n case types.ADDRESS_ERROR:\n return { ...state, vetAddressError: action.value };\n case types.ADDRESS_VALUE:\n return { ...state, vetAddressValue: action.value };\n case types.CITY_NAME:\n return { ...state, cityName: action.value };\n case types.CITY_ERROR:\n return { ...state, cityError: action.value };\n case types.CLOSE_MODAL:\n return initialState;\n case types.EMAIL_ERROR:\n return { ...state, vetEmailError: action.value };\n case types.EMAIL_VALUE:\n return { ...state, vetEmailValue: action.value };\n case types.FAX_VALUE:\n return { ...state, vetFaxValue: action.value };\n case types.PHONE_ERROR:\n return { ...state, vetPhoneError: action.value };\n case types.PHONE_VALUE:\n return { ...state, vetPhoneValue: action.value };\n case types.STATE_ID:\n return { ...state, stateId: action.value };\n case types.STATE_NAME:\n return { ...state, stateName: action.value };\n case types.STATE_ERROR:\n return { ...state, stateError: action.value };\n case types.VET_COMPANY_NAME_ERROR:\n return { ...state, vetCompanyError: action.value };\n case types.VET_COMPANY_NAME:\n return { ...state, vetCompanyName: action.value };\n case types.ZIP_CODE_ERROR:\n return { ...state, vetZipCodeError: action.value };\n case types.ZIP_CODE_VALUE:\n return { ...state, vetZipCodeValue: action.value };\n default:\n return { ...state };\n }\n };\n\n const [state, dispatch] = useReducer(reducer, initialState);\n\n function handleVetCompanyNameChange(event) {\n dispatch({\n type: types.VET_COMPANY_NAME,\n value: removeEmojis(event.target.value),\n });\n dispatch({ type: types.VET_COMPANY_NAME_ERROR, value: '' });\n }\n\n function handleCityNameChange(event) {\n dispatch({\n type: types.CITY_NAME,\n value: removeEmojis(event.target.value),\n });\n dispatch({ type: types.CITY_ERROR, value: '' });\n }\n\n function handleAddressChange(event) {\n dispatch({\n type: types.ADDRESS_VALUE,\n value: removeEmojis(event.target.value),\n });\n dispatch({ type: types.ADDRESS_ERROR, value: '' });\n }\n\n function handleZipCodeChange(event) {\n dispatch({\n type: types.ZIP_CODE_VALUE,\n value: validateZipCode(event.target.value),\n });\n dispatch({ type: types.ZIP_CODE_ERROR, value: '' });\n }\n\n function handleEmailChange(event) {\n dispatch({\n type: types.EMAIL_VALUE,\n value: removeEmojis(event.target.value),\n });\n dispatch({ type: types.EMAIL_ERROR, value: '' });\n }\n\n function handlePhoneChange(event) {\n dispatch({\n type: types.PHONE_VALUE,\n value: maskPhoneNumber(event.target.value),\n });\n dispatch({ type: types.PHONE_ERROR, value: '' });\n }\n\n function handleFaxChange(event) {\n const { value } = event.target;\n const cleanText = value ? value.replace(/[()-\\s]/g, '') : '';\n const onlyNumbersValue = validateNumbersOnly(cleanText)\n ? cleanText\n : cleanText.replace(/\\D/g, '');\n\n if (onlyNumbersValue) {\n dispatch({\n type: types.FAX_VALUE,\n value: maskFaxNumber(onlyNumbersValue),\n });\n }\n }\n\n function handleStateNameChange(event) {\n const { selectedIndex } = event.nativeEvent.target;\n const label = event.nativeEvent.target[selectedIndex].text;\n dispatch({ type: types.STATE_ID, value: event.target.value });\n dispatch({ type: types.STATE_NAME, value: label });\n dispatch({ type: types.STATE_ERROR, value: '' });\n }\n\n function handleVetCompanyError() {\n const required = `${t('AddCustomVetModal.required')}`;\n dispatch({\n type: types.VET_COMPANY_NAME_ERROR,\n value: !state.vetCompanyName ? required : '',\n });\n }\n\n function handleAddressError() {\n const required = `${t('AddCustomVetModal.required')}`;\n dispatch({\n type: types.ADDRESS_ERROR,\n value: !state.vetAddressValue ? required : '',\n });\n }\n\n function handleCityError() {\n const required = `${t('AddCustomVetModal.required')}`;\n dispatch({\n type: types.CITY_ERROR,\n value: !state.cityName ? required : '',\n });\n }\n\n function handleZipCodeError() {\n let message = '';\n\n if (!state.vetZipCodeValue) {\n message = t('AddCustomVetModal.required');\n } else if (state.vetZipCodeValue.length < 5) {\n message = t('AddCustomVetModal.zipCodeError');\n }\n\n dispatch({\n type: types.ZIP_CODE_ERROR,\n value: message,\n });\n }\n\n function handleEmailError() {\n let message = '';\n const cleanValue = removeEmojis(state.vetEmailValue);\n\n if (!cleanValue) {\n message = '';\n } else if (!isEmailValid(cleanValue)) {\n message = t('AddCustomVetModal.invalidEmail');\n }\n\n dispatch({ type: types.EMAIL_ERROR, value: message });\n }\n\n function handlePhoneError() {\n let message = '';\n\n if (state.vetPhoneValue && !validatePhone(state.vetPhoneValue)) {\n message = t('AddCustomVetModal.invalidPhone');\n }\n\n dispatch({\n type: types.PHONE_ERROR,\n value: message,\n });\n }\n\n function handleStateError() {\n const required = `${t('AddCustomVetModal.required')}`;\n dispatch({\n type: types.STATE_ERROR,\n value: !state.stateId ? required : '',\n });\n }\n\n function handleCloseModal() {\n dispatch({ type: types.CLOSE_MODAL });\n dispatch({ type: types.CITY_ERROR, value: '' });\n dispatch({ type: types.STATE_ERROR, value: '' });\n dispatch({ type: types.VET_COMPANY_NAME_ERROR, value: '' });\n dispatch({ type: types.EMAIL_ERROR, value: '' });\n dispatch({ type: types.PHONE_ERROR, value: '' });\n dispatch({ type: types.ZIP_CODE_ERROR, value: '' });\n closeModal();\n }\n\n function handleSuccess() {\n dispatch({ type: types.CLOSE_MODAL });\n clearSuccessLoading();\n handleSuccesCustomVetModal();\n }\n\n return {\n handleAddressChange,\n handleAddressError,\n handleCityError,\n handleCityNameChange,\n handleCloseModal,\n handleEmailChange,\n handleEmailError,\n handleFaxChange,\n handlePhoneChange,\n handlePhoneError,\n handleStateError,\n handleStateNameChange,\n handleSuccess,\n handleVetCompanyError,\n handleVetCompanyNameChange,\n handleZipCodeChange,\n handleZipCodeError,\n state,\n };\n};\n\nexport { useCustomVetForm };\n","import React, { useEffect, useMemo } from 'react';\nimport { useSelector, shallowEqual, useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport ModalContainer from '../../common/ModalContainer';\nimport TouchableDiv from '../../common/TouchableDiv';\nimport LoadingButton from '../../common/LoadingButton';\nimport closeIcon from '../../../assets/myPets/close-icon.svg';\nimport {\n addCustomToFavorites,\n vetCustomSavedCleared,\n} from '../../../actions/myVets';\nimport { EXPLORE_PROVIDERS } from '../../../constants';\nimport { useCustomVetForm } from './hooks/useCustomVetForm';\nimport './AddVetManuallyModal.css';\n\nconst AddVetInputContainer = ({\n children,\n inputContainerCSS = '',\n inputTitle = '',\n errorMessage = '',\n}) => (\n <div className={`AVMM-input-container ${inputContainerCSS}`}>\n <span className=\"AVMM-input-titles\">\n {inputTitle}\n </span>\n\n {children}\n\n {errorMessage && (\n <span className=\"AVMM-error-message\">\n {errorMessage}\n </span>\n )}\n </div>\n);\n\nconst StatesList = ({ states = [] }) => states?.map((usState) => (\n <option key={`${usState.Id}`} value={usState.Id}>\n {usState.StateName}\n </option>\n));\n\nconst AddVetManuallyModal = ({\n closeModal = () => { },\n handleSuccesCustomVetModal = () => { },\n onSavePrimaryVet = () => { },\n primaryVet = false,\n show = false,\n showCancelButton = false,\n}) => {\n const dispatch = useDispatch();\n const store = useSelector(({ myVets, personalInformation }) => ({\n myVets,\n personalInformation,\n }), shallowEqual);\n const { states } = store.personalInformation;\n const { isSavingCustomVet, vetCustomSaved } = store.myVets;\n const { t } = useTranslation('myPets');\n\n function clearSuccessLoading() {\n dispatch(vetCustomSavedCleared());\n }\n\n const {\n handleCityError,\n handleCityNameChange,\n handleCloseModal,\n handleStateError,\n handleStateNameChange,\n handleSuccess,\n handleVetCompanyError,\n handleVetCompanyNameChange,\n state,\n } = useCustomVetForm({\n clearSuccessLoading,\n closeModal,\n handleSuccesCustomVetModal,\n });\n\n const invalidForm = useMemo(() => !state.vetCompanyName || !state.cityName\n || !state.stateId, [state.vetCompanyName, state.cityName, state.stateId]);\n\n useEffect(() => {\n if (vetCustomSaved) {\n handleCloseModal();\n }\n }, [vetCustomSaved]);\n\n function handleSaveClick() {\n if (invalidForm) {\n handleVetCompanyError();\n handleCityError();\n handleStateError();\n return;\n }\n\n if (primaryVet) {\n onSavePrimaryVet({\n City: state.cityName,\n isCustom: true,\n Name: state.vetCompanyName,\n StateId: state.stateId,\n StateName: state.stateName,\n });\n } else {\n dispatch(addCustomToFavorites({\n categoryId: 1,\n city: state.cityName,\n name: state.vetCompanyName,\n providerId: EXPLORE_PROVIDERS.manuallyAdded,\n stateId: state.stateId,\n }));\n }\n }\n\n return (\n <ModalContainer show={show}>\n <div className=\"AVMM-container\">\n <TouchableDiv\n className=\"Cursor-pointer AVMM-close-btn\"\n id=\"closeIconBtn\"\n onClick={handleCloseModal}\n >\n <img alt=\"\" className=\"Add-figo-tag-close-icon\" src={closeIcon} />\n </TouchableDiv>\n\n <span className=\"AVMM-title\">\n {t('AddCustomVetModal.title')}\n </span>\n\n <AddVetInputContainer\n errorMessage={state.vetCompanyError}\n inputContainerCSS=\"AVMM-input-container-title\"\n inputTitle={t('AddCustomVetModal.vetCompanyTitle')}\n >\n <input\n className=\"AVMM-input\"\n onChange={handleVetCompanyNameChange}\n value={state.vetCompanyName}\n />\n </AddVetInputContainer>\n\n <div className=\"AVMM-inputs-row\">\n <AddVetInputContainer\n errorMessage={state.cityError}\n inputContainerCSS=\"AVMM-input-container-city\"\n inputTitle={t('AddCustomVetModal.cityTitle')}\n >\n <input\n className=\"AVMM-input\"\n onChange={handleCityNameChange}\n value={state.cityName}\n />\n </AddVetInputContainer>\n\n <AddVetInputContainer\n errorMessage={state.stateError}\n inputTitle={t('AddCustomVetModal.stateTitle')}\n >\n <select\n className=\"AVMM-select\"\n onChange={handleStateNameChange}\n value={state.stateId}\n >\n <option selected value=\"\">\n {t('AddCustomVetModal.statePlaceholder')}\n </option>\n\n <StatesList states={states} />\n </select>\n </AddVetInputContainer>\n </div>\n\n <div className=\"AVMM-buttons\">\n {showCancelButton && (\n <button\n className=\"AVMM-cancel-btn\"\n onClick={closeModal}\n type=\"button\"\n >\n {t('AddCustomVetModal.cancel')}\n </button>\n )}\n\n <LoadingButton\n className=\"AVMM-save-btn\"\n disabled={isSavingCustomVet}\n loading={isSavingCustomVet}\n onClick={handleSaveClick}\n onSuccessAnimationEnd={handleSuccess}\n success={vetCustomSaved}\n text={t('AddCustomVetModal.save')}\n type=\"button\"\n />\n </div>\n </div>\n </ModalContainer>\n );\n};\n\nexport { AddVetManuallyModal };\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport {\n addToFavorites,\n searchVets,\n validateZipCode,\n vetZipCodeChanged,\n cleanMyVetsErrors,\n searchPrimaryVet,\n} from '../../../actions/myVets';\nimport close from '../../../assets/close.svg';\nimport { validateNumbersOnly } from '../../../services/utils';\nimport { EXPLORE_PROVIDERS } from '../../../constants';\nimport ModalContainer from '../../common/ModalContainer';\nimport LoadingButton from '../../common/LoadingButton';\nimport { FoundVetItem } from './FoundVetItem';\nimport { SearchInput } from './SearchInput';\nimport { AddVetManuallyModal } from './AddVetManuallyModal';\nimport './AddVetModal.css';\n\n/**\n * @@deprecated\n * Remove with PetCloudManualVetFlow\n */\nconst AddVetModal = ({\n customVetShowCancelButton = false,\n displaySelectOnRows = false,\n hideZipcode = false,\n onClose = () => { },\n selectedVet = null,\n setAddVetModalOpen = () => { },\n onSelectedVet = () => { },\n primaryVet = false,\n}) => {\n const store = useSelector(({ personalInformation, myVets }) => ({\n ...myVets,\n userZipCode: personalInformation.zipCode,\n }), shallowEqual);\n const dispatch = useDispatch();\n const { t } = useTranslation('myPets');\n const [zipCode, setZipCode] = useState(store.userZipCode);\n const [willChangeZipCode, setWillChangeZipCode] = useState(false);\n const [zipCodeError, setZipCodeError] = useState('');\n const [isManuallyModalOpen, setIsManuallyModalOpen] = useState(false);\n\n const {\n addVetError,\n favoriteVets,\n isEditingZipCode,\n isLoadingVets,\n isSavingVet,\n isValidatingZipCode,\n isValidZipCode,\n lastZipcodeLoaded,\n userZipCode,\n vetSaved,\n vetsFound,\n } = store;\n\n useEffect(() => {\n if (!isValidatingZipCode) {\n if (zipCodeError === '' && !isValidZipCode\n && !isEditingZipCode) {\n setZipCodeError(t('MyVets.addVetModal.errorZipCode'));\n }\n\n if (isValidZipCode && !isEditingZipCode) {\n setWillChangeZipCode(false);\n }\n }\n }, [t, isValidZipCode, isEditingZipCode, zipCodeError, isValidatingZipCode]);\n\n useEffect(() => {\n if (zipCode.length < 5 || lastZipcodeLoaded === zipCode) {\n return;\n }\n\n if (primaryVet) {\n dispatch(searchPrimaryVet({ zipCode }));\n } else {\n dispatch(searchVets({ zipCode }));\n }\n }, [dispatch, zipCode]);\n\n function selectItem(item) {\n onSelectedVet(item);\n }\n\n function switchToChangeZipCode() {\n setWillChangeZipCode(true);\n }\n\n function handleClose() {\n onClose();\n dispatch(cleanMyVetsErrors());\n onSelectedVet(null);\n setWillChangeZipCode(false);\n setZipCode(userZipCode);\n }\n\n function handleCancel() {\n if (willChangeZipCode) {\n setWillChangeZipCode(false);\n return;\n }\n\n if (!isSavingVet || !isValidatingZipCode) {\n handleClose();\n }\n }\n\n function handleSaveChangeZipCode() {\n if (zipCode.length < 5) {\n setZipCodeError(t('MyVets.addVetModal.errorDigits'));\n return;\n }\n\n dispatch(validateZipCode({ zipCode }));\n setZipCodeError('');\n }\n\n function handleSave() {\n if (!willChangeZipCode && selectedVet) {\n dispatch(addToFavorites({\n categoryId: 1,\n placeId: selectedVet.PlaceId,\n providerId: EXPLORE_PROVIDERS.google,\n }));\n return;\n }\n\n handleSaveChangeZipCode();\n }\n\n function handleOnKeyDown(event) {\n const { keyCode } = event;\n const ENTER_KEY = 13;\n\n if (keyCode === ENTER_KEY) {\n handleSaveChangeZipCode();\n }\n }\n\n useEffect(() => {\n if (vetSaved && selectedVet) {\n handleClose();\n }\n }, [vetSaved]);\n\n function renderFoundItem(item) {\n return (\n <FoundVetItem\n key={item.PlaceId || item.Id}\n added={favoriteVets\n .find((vet) => vet.PlaceId === item.PlaceId)}\n addedLabel={t('MyVets.addVetModal.added')}\n address={item.Address}\n distance={item.Distance}\n name={item.Title || item.Name}\n rightText={displaySelectOnRows ? t('MyVets.addVetModal.select') : ''}\n />\n );\n }\n\n function handleOpenAddVetManuallyModal() {\n setIsManuallyModalOpen(true);\n }\n\n function handleCloseAddVetManuallyModal() {\n setIsManuallyModalOpen(false);\n setAddVetModalOpen(true);\n }\n\n function handleSuccesCustomVetModal() {\n setIsManuallyModalOpen(false);\n onClose();\n }\n\n const renderNotListedMessage = () => (\n <>\n <span className=\"Add-vet-modal-not-listed\">\n {t('MyVets.addVetModal.notListed')} \n </span>\n\n <button\n className=\"Like-span Add-vet-modal-add-manually\"\n onClick={handleOpenAddVetManuallyModal}\n type=\"button\"\n >\n {t('MyVets.addVetModal.enterManually')}\n </button>\n </>\n );\n\n function renderSelectedItem() {\n return (\n <div className=\"Add-vet-modal-selected-vet\">\n <span className=\"Add-vet-modal-vet-name\">\n {selectedVet.Title || selectedVet.Name}\n </span>\n\n <span className=\"Add-vet-modal-vet-address\">{selectedVet.Address}</span>\n </div>\n );\n }\n\n function handleChangeZipCode(event) {\n const { value } = event.target;\n const cleanText = value ? value.replace(/[()-\\s]/g, '') : '';\n const onlyNumbersValue = validateNumbersOnly(cleanText)\n ? cleanText\n : cleanText.replace(/\\D/g, '');\n setZipCode(onlyNumbersValue);\n\n if (onlyNumbersValue.length === 5) {\n setZipCodeError('');\n }\n\n dispatch(vetZipCodeChanged());\n }\n\n function handleEmptyItemsFiltered(query) {\n if (primaryVet) {\n dispatch(searchPrimaryVet({ query, zipCode }));\n } else {\n dispatch(searchVets({ query, zipCode }));\n }\n }\n\n return (\n <>\n <ModalContainer show>\n <div className=\"Add-vet-modal\">\n <button\n className=\"Add-vet-modal-close\"\n onClick={handleCancel}\n type=\"button\"\n >\n <img alt=\"\" src={close} />\n </button>\n\n <h2 className={hideZipcode ? 'Add-vet-modal-margin' : ''}>\n {t('MyVets.addVetModal.title')}\n </h2>\n\n {willChangeZipCode ? (\n <>\n <span className=\"Add-vet-modal-search\">\n {t('MyVets.addVetModal.searchNear')}\n </span>\n\n <input\n className={`Add-vet-zip-code-input${zipCodeError\n ? '-error' : ''}`}\n maxLength={5}\n onChange={handleChangeZipCode}\n onKeyDown={handleOnKeyDown}\n value={zipCode}\n />\n\n {zipCodeError ? (\n <span className=\"Add-vet-zip-code-error\">{zipCodeError}</span>\n )\n : null}\n </>\n ) : (\n <>\n {!selectedVet && !hideZipcode && (\n <div>\n <span className=\"Add-vet-modal-search\">\n {t('MyVets.addVetModal.searchingNear')}\n </span>\n\n <span className=\"Add-vet-modal-zipcode\">\n {zipCode}\n </span>\n\n |\n\n <button\n className=\"Add-vet-modal-change Like-span\"\n disabled={isLoadingVets}\n onClick={switchToChangeZipCode}\n type=\"button\"\n >\n {t('MyVets.addVetModal.change')}\n </button>\n </div>\n )}\n\n <SearchInput\n emptyMessage={renderNotListedMessage()}\n hideInput={isManuallyModalOpen || willChangeZipCode}\n id=\"addVet\"\n isLoadingVets={isLoadingVets}\n itemListRender={renderFoundItem}\n itemSelected={selectedVet}\n itemsFound={vetsFound}\n onSearch={handleEmptyItemsFiltered}\n onSelected={selectItem}\n renderSelectedItem={renderSelectedItem}\n />\n </>\n )}\n\n {(willChangeZipCode || selectedVet) && (\n <>\n {addVetError ? (\n <span className=\"Add-vet-zip-code-error\">\n {t('MyVets.addVetModal.errorAdding')}\n </span>\n ) : null}\n\n <div className=\"Add-vet-modal-actions\">\n <button\n className=\"Add-vet-modal-cancel\"\n onClick={handleCancel}\n type=\"button\"\n >\n {t('MyVets.addVetModal.cancel')}\n </button>\n\n <LoadingButton\n className=\"Add-vet-modal-save\"\n loading={isSavingVet || isValidatingZipCode}\n onClick={handleSave}\n text={t('MyVets.addVetModal.save')}\n type=\"button\"\n />\n </div>\n </>\n )}\n </div>\n </ModalContainer>\n\n <AddVetManuallyModal\n closeModal={handleCloseAddVetManuallyModal}\n handleSuccesCustomVetModal={handleSuccesCustomVetModal}\n onSavePrimaryVet={onSelectedVet}\n primaryVet={primaryVet}\n show={isManuallyModalOpen}\n showCancelButton={customVetShowCancelButton}\n />\n </>\n );\n};\n\nexport { AddVetModal };\n","export default __webpack_public_path__ + \"static/media/ok.98121a95.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport okIcon from '../../../assets/claims/ok.svg';\nimport LoadingButton from '../../common/LoadingButton';\nimport ModalContainer from '../../common/ModalContainer';\nimport './ConfirmPrimaryVetModal.css';\n\n/**\n * @@deprecated\n * Remove with PetCloudManualVetFlow\n */\nconst ConfirmPrimaryVetModal = ({\n error = false,\n loading = false,\n onBack = () => { },\n onClose = () => { },\n onConfirm = () => { },\n show = false,\n vetAddress = '',\n vetName = '',\n}) => {\n const { t } = useTranslation('claims');\n\n return (\n <ModalContainer\n cancelable\n contentStyle=\"Confirm-primary-vet-modal-container\"\n handleOutClick={onClose}\n show={show}\n >\n <img alt=\"\" src={okIcon} />\n\n <h2>{t('savePrimaryVet.title')}</h2>\n\n <p>{t('savePrimaryVet.text')}</p>\n\n <span className=\"Confirm-primary-vet-modal-name\">{vetName}</span>\n\n <span className=\"Confirm-primary-vet-modal-address\">{vetAddress}</span>\n\n <span className=\"Confirm-primary-vet-modal-error\">\n {error && t('savePrimaryVet.error')}\n </span>\n\n <div className=\"Flex\">\n <button\n className=\"Confirm-primary-vet-modal-back\"\n onClick={onBack}\n type=\"button\"\n >\n {t('savePrimaryVet.back')}\n </button>\n\n <LoadingButton\n className=\"Confirm-primary-vet-modal-confirm\"\n loading={loading}\n onClick={onConfirm}\n text={t('savePrimaryVet.confirm')}\n type=\"button\"\n />\n </div>\n </ModalContainer>\n );\n};\n\nexport { ConfirmPrimaryVetModal };\n","export default __webpack_public_path__ + \"static/media/veterinary-briefcase.9c839ce0.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useManualVet } from '../../../hooks';\n\nimport ModalContainer from '../../common/ModalContainer';\n\nimport placeHolderIcon from '../../../assets/myVets/veterinary-briefcase.svg';\n\nimport './NoVetModal.css';\n\nconst NoVetModal = ({\n show = false,\n onAddVetClick = () => { },\n onClose = () => { },\n}) => {\n const { t } = useTranslation('claims');\n const isManualVetRedesign = useManualVet();\n\n const renderModalButtons = () => {\n if (isManualVetRedesign) {\n return (\n <div className=\"No-vet-modal-buttons-container\">\n <button\n className=\"No-vet-modal-cancel-button\"\n onClick={onClose}\n type=\"button\"\n >\n {t('noPrimaryVet.cancel')}\n </button>\n\n <button\n className=\"No-vet-modal-save-button\"\n onClick={onAddVetClick}\n type=\"button\"\n >\n {t('noPrimaryVet.addAVet')}\n </button>\n </div>\n );\n }\n\n return (\n <button\n className=\"No-vet-modal-action-button Action-modal-button-blue\"\n onClick={onAddVetClick}\n type=\"button\"\n >\n {t('noPrimaryVet.action')}\n </button>\n );\n };\n\n return (\n <ModalContainer\n cancelable={!isManualVetRedesign}\n contentStyle={isManualVetRedesign\n ? 'No-vet-modal-content-container'\n : 'No-vet-modal-container'}\n handleOutClick={onClose}\n show={show}\n >\n {isManualVetRedesign ? (\n <img\n alt=\"\"\n className=\"No-vet-modal-placeholder-img\"\n src={placeHolderIcon}\n />\n ) : null}\n\n <h4>{t('noPrimaryVet.title')}</h4>\n\n <p>{t('noPrimaryVet.text')}</p>\n\n {renderModalButtons()}\n </ModalContainer>\n );\n};\n\nexport { NoVetModal };\n","export default __webpack_public_path__ + \"static/media/search-icon.dd7c7fa7.svg\";","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDebounceSearch } from '../../../hooks';\nimport searchIcon from '../../../assets/myVets/search-icon.svg';\nimport loadingBlue from '../../../assets/lottieFiles/loading-blue.json';\nimport ScrollableDiv from '../../common/ScrollableDiv';\nimport FigoLottie from '../../common/FigoLottie';\nimport { removeEmojis } from '../../../services/utils';\n\nimport './MyPetsSearchInput.css';\n\nconst MyPetsSearchInput = ({\n emptyMessage = '',\n hideInput = false,\n id = '',\n isLoadingVets = true,\n itemListRender = () => { },\n itemSelected = null,\n itemsFound = [],\n onSearch = () => { },\n onSelected = () => { },\n renderSelectedItem = () => { },\n placeholder = '',\n ...otherProps\n}) => {\n const [open, setOpen] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const [itemsFiltered, setItemsFiltered] = useState([]);\n const [isFocused, setIsFocused] = useState(false);\n const { t } = useTranslation('myPets');\n\n function handleInputChange(event) {\n const { value } = event.target;\n setInputValue(removeEmojis(value));\n }\n\n function handleInputFocus() {\n setOpen(true);\n setIsFocused(true);\n }\n\n function handleInputBlur() {\n setIsFocused(false);\n }\n\n function closeDropdown() {\n setOpen(false);\n }\n\n const handleSelection = (item) => () => {\n onSelected(item);\n };\n\n const { searchResults } = useDebounceSearch(onSearch, 500);\n\n useEffect(() => {\n searchResults(inputValue);\n }, [inputValue]);\n\n useEffect(() => {\n setItemsFiltered(itemsFound);\n }, [itemsFound]);\n\n useEffect(() => {\n closeDropdown();\n }, [itemSelected]);\n\n useEffect(() => {\n if (hideInput) {\n setOpen(false);\n }\n }, [hideInput]);\n\n return (\n <div\n className=\"My-pets-search-input-my-pets-add-vet-modal-input\"\n >\n\n {itemSelected ? (\n <div>\n {renderSelectedItem()}\n </div>\n ) : (\n <div\n className={`My-pets-search-input-container\n ${isFocused ? 'focused' : ''}`}\n >\n <img\n alt=\"search\"\n src={searchIcon}\n />\n\n <input\n className=\"My-pets-search-input-container-input\"\n onBlur={handleInputBlur}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n placeholder={placeholder}\n value={inputValue}\n {...otherProps}\n />\n </div>\n )}\n\n {open && (\n <div className=\"My-pets-search-input-dropdown-container\">\n <ScrollableDiv className=\"My-pets-search-input-dropdown\">\n <button\n aria-label={t('myVets.searchInput')}\n className=\"My-pets-pets-shade\"\n id={`searchInput${id}`}\n onClick={closeDropdown}\n type=\"button\"\n />\n\n {isLoadingVets && <FigoLottie animationData={loadingBlue} />}\n\n {itemsFiltered.map((item) => (\n <button\n key={`${item.PlaceId}` || `${item.Title}` || `${item.Id}`}\n className=\"My-pets-search-input-list-item\"\n id={item.Id}\n onClick={handleSelection(item)}\n type=\"button\"\n >\n {itemListRender(item)}\n </button>\n ))}\n\n </ScrollableDiv>\n\n {!isLoadingVets && (\n <div className=\"My-pets-search-input-empty-message\">\n {emptyMessage}\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport { MyPetsSearchInput };\n","import React from 'react';\nimport './AddVetManualComponents.css';\n\nexport const AddVetInputContainer = ({\n children,\n errorMessage = '',\n inputContainerCSS = '',\n inputLegend = '',\n inputTitle = '',\n}) => (\n <div className={`My-pets-manual-add-input-container ${inputContainerCSS}`}>\n <span className=\"My-pets-manual-add-input-titles\">\n {inputTitle}\n\n <span className=\"My-pets-manual-add-input-legend\">\n {inputLegend}\n </span>\n </span>\n\n {children}\n\n {errorMessage && (\n <span className=\"My-pets-manual-add-error-message\">\n {errorMessage}\n </span>\n )}\n </div>\n);\n\nexport const StatesList = ({ states = [] }) => states?.map((usState) => (\n <option key={`${usState.Id}`} value={usState.Id}>\n {usState.StateName}\n </option>\n));\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { useSelector, shallowEqual, useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport ModalContainer from '../../common/ModalContainer';\nimport LoadingActionButtonMyPets\nfrom '../../common/petCloud/LoadingActionButtonMyPets';\nimport { ActionButton } from '../../common/petCloud/ActionButton';\nimport closeIcon from '../../../assets/close-button.svg';\nimport {\n addCustomToFavorites,\n vetCustomSavedCleared,\n} from '../../../actions/myVets';\nimport { EXPLORE_PROVIDERS } from '../../../constants';\nimport { useCustomVetForm } from './hooks/useCustomVetForm';\nimport './MyPetsAddVetManuallyModal.css';\nimport { StatesList, AddVetInputContainer } from './AddVetManualComponents';\n\n/**\n * @@deprecated\n * Remove with PetCloudManualVetFlow\n */\nconst MyPetsVetManualAdd = ({\n closeModal = () => { },\n handleSuccesCustomVetModal = () => { },\n onSavePrimaryVet = () => { },\n primaryVet = false,\n show = false,\n}) => {\n const dispatch = useDispatch();\n const store = useSelector(({ myVets, personalInformation }) => ({\n myVets,\n personalInformation,\n }), shallowEqual);\n const { states } = store.personalInformation;\n const { isSavingCustomVet, vetCustomSaved } = store.myVets;\n const { t } = useTranslation('myPets');\n const [isFilled, setIsFilled] = useState(false);\n\n function clearSuccessLoading() {\n dispatch(vetCustomSavedCleared());\n }\n\n const {\n handleCityError,\n handleCityNameChange,\n handleCloseModal,\n handleStateError,\n handleStateNameChange,\n handleSuccess,\n handleVetCompanyError,\n handleVetCompanyNameChange,\n state,\n } = useCustomVetForm({\n clearSuccessLoading,\n closeModal,\n handleSuccesCustomVetModal,\n });\n\n const invalidForm = useMemo(() => !state.vetCompanyName\n || !state.cityName || !state.stateId,\n [state.vetCompanyName, state.cityName, state.stateId]);\n\n function handleNextClick() {\n if (invalidForm) {\n handleVetCompanyError();\n handleCityError();\n handleStateError();\n return;\n }\n setIsFilled(!isFilled);\n }\n\n function handleCancel() {\n setIsFilled(false);\n handleCloseModal();\n }\n\n useEffect(() => {\n if (vetCustomSaved) {\n handleCloseModal();\n }\n }, [vetCustomSaved]);\n\n function handleSaveClick() {\n if (invalidForm) {\n handleVetCompanyError();\n handleCityError();\n handleStateError();\n return;\n }\n\n if (primaryVet) {\n onSavePrimaryVet({\n City: state.cityName,\n isCustom: true,\n Name: state.vetCompanyName,\n StateId: state.stateId,\n StateName: state.stateName,\n });\n } else {\n dispatch(addCustomToFavorites({\n categoryId: 1,\n city: state.cityName,\n name: state.vetCompanyName,\n providerId: EXPLORE_PROVIDERS.manuallyAdded,\n stateId: state.stateId,\n }));\n }\n }\n\n return (\n <ModalContainer show={show}>\n <div className=\"My-pets-manual-add-container\">\n <div className=\"My-pets-manual-add-title-container\">\n <div className=\"My-pets-manual-add-title-box\">\n <h2 className=\"My-pets-manual-add-title\">\n {t('MyVets.addAVet')}\n </h2>\n\n <button\n className=\"My-pets-manual-add-close-btn\"\n id=\"closeIconBtn\"\n onClick={handleCancel}\n type=\"button\"\n >\n <img alt=\"\" className=\"Add-figo-tag-close-icon\" src={closeIcon} />\n </button>\n </div>\n\n <h3 className=\"My-pets-manual-add-vet-modal-subtitle\">\n {isFilled\n ? t('MyVets.checkInfo')\n : t('AddCustomVetModal.subtitle')}\n </h3>\n </div>\n\n {isFilled ? (\n <div className=\"My-pets-manual-add-check\">\n <span className=\"My-pets-manual-add-vet-check-name\">\n {state.vetCompanyName}\n </span>\n\n <div className=\"My-pets-manual-add-vet-check-state\">\n <span className=\"My-pets-manual-add-location\">\n {state.cityName},\n </span>\n\n <span className=\"My-pets-manual-add-location\">\n {state.stateId}\n </span>\n </div>\n </div>\n ) : (\n <>\n <AddVetInputContainer\n errorMessage={state.vetCompanyError}\n inputTitle={t('AddCustomVetModal.vetPractice')}\n >\n <input\n className=\"My-pets-manual-add-input-name\"\n onChange={handleVetCompanyNameChange}\n value={state.vetCompanyName}\n />\n </AddVetInputContainer>\n\n <div className=\"My-pets-manual-add-inputs-row\">\n <AddVetInputContainer\n errorMessage={state.cityError}\n inputTitle={t('AddCustomVetModal.city')}\n >\n <input\n className=\"My-pets-manual-add-input-city\"\n onChange={handleCityNameChange}\n value={state.cityName}\n />\n </AddVetInputContainer>\n\n <AddVetInputContainer\n errorMessage={state.stateError}\n inputTitle={t('AddCustomVetModal.state')}\n >\n <select\n className=\"My-pets-manual-add-select\"\n onChange={handleStateNameChange}\n value={state.stateId || ''}\n >\n <option disabled hidden value=\"\">\n {t('AddCustomVetModal.statePlaceholder')}\n </option>\n\n <StatesList states={states} />\n </select>\n </AddVetInputContainer>\n </div>\n </>\n )}\n\n <div className=\"My-pets-manual-add-buttons\">\n <LoadingActionButtonMyPets\n loading={isSavingCustomVet}\n onClick={isFilled ? handleSaveClick : handleNextClick}\n onSuccessAnimationEnd={handleSuccess}\n success={vetCustomSaved}\n text={isFilled\n ? t('MyVets.addVetModal.add')\n : t('MyVets.addVetModal.next')}\n type=\"button\"\n />\n\n <ActionButton\n className=\"Action-button My-pets-manual-add-button\"\n isSecondaryButton\n onClick={handleCancel}\n title={t('AddCustomVetModal.cancel')}\n type=\"button\"\n />\n </div>\n </div>\n </ModalContainer>\n );\n};\n\nexport { MyPetsVetManualAdd };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { EXPLORE_PROVIDERS } from '../../../constants';\n\nimport './AddAVetConfirm.css';\n\nconst AddAVetConfirm = ({\n handleEditButton = () => { },\n state,\n vetProvider = EXPLORE_PROVIDERS.google,\n}) => {\n const { t } = useTranslation('myPets');\n\n function renderPhone() {\n if (!state.vetPhoneValue) {\n return null;\n }\n\n return (\n <span>\n {t('AddCustomVetModal.phoneConfirm', {\n phoneValue: state.vetPhoneValue,\n })}\n </span>\n );\n }\n\n function renderFax() {\n if (!state.vetFaxValue) {\n return null;\n }\n\n return (\n <span>\n {t('AddCustomVetModal.faxConfirm', {\n faxValue: state.vetFaxValue,\n })}\n </span>\n );\n }\n\n function renderEmail() {\n if (!state.vetEmailValue) {\n return null;\n }\n\n return (\n <span className=\"Add-a-vet-confirm-card-email\">\n {state.vetEmailValue}\n </span>\n );\n }\n\n function renderAddress() {\n if (vetProvider !== EXPLORE_PROVIDERS.manuallyAdded) {\n return (\n <span className=\"Add-a-vet-confirm-address\">\n {`${state.vetAddressValue1}${state.vetAddressValue2\n ? `,\\n${state.vetAddressValue2}`\n : ''}`}\n </span>\n );\n }\n\n return (\n <span className=\"Add-a-vet-confirm-address\">\n {`${state.vetAddressValue}, ${state.cityName},\\n\n ${state.stateId} ${state.vetZipCodeValue}`}\n </span>\n );\n }\n\n function renderEditButton() {\n if (vetProvider !== EXPLORE_PROVIDERS.manuallyAdded) {\n return null;\n }\n\n return (\n <button\n className=\"Add-a-vet-confirm-edit-button\"\n onClick={handleEditButton}\n type=\"button\"\n >\n <span>{t('AddCustomVetModal.edit')}</span>\n </button>\n );\n }\n\n return (\n <div className=\"Add-a-vet-confirm-card\">\n <div className=\"Add-a-vet-confirm-title-container\">\n <h4>{state.vetCompanyName}</h4>\n\n {renderEditButton()}\n </div>\n\n {renderAddress()}\n\n <div className=\"Add-a-vet-confirm-row-container\">\n {renderPhone()}\n\n {renderFax()}\n </div>\n\n {renderEmail()}\n </div>\n );\n};\n\nexport { AddAVetConfirm };\n","import React from 'react';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { StatesList, AddVetInputContainer } from './AddVetManualComponents';\n\nimport './AddAVetForm.css';\n\nconst AddAVetForm = ({\n handleAddressChange = () => { },\n handleCityNameChange = () => { },\n handleEmailChange = () => { },\n handleFaxChange = () => { },\n handlePhoneChange = () => { },\n handleStateNameChange = () => { },\n handleVetCompanyNameChange = () => { },\n handleZipCodeChange = () => { },\n state,\n}) => {\n const { t } = useTranslation('myPets');\n const store = useSelector(({ personalInformation }) => ({\n personalInformation,\n }), shallowEqual);\n const { states } = store.personalInformation;\n\n return (\n <>\n <AddVetInputContainer\n errorMessage={state.vetCompanyError}\n inputTitle={t('AddCustomVetModal.vetPractice')}\n >\n <input\n className=\"Add-a-vet-form-input-name\"\n onChange={handleVetCompanyNameChange}\n placeholder={t('AddCustomVetModal.vetPractice')}\n value={state.vetCompanyName}\n />\n </AddVetInputContainer>\n\n <AddVetInputContainer\n errorMessage={state.vetAddressError}\n inputTitle={t('AddCustomVetModal.address')}\n >\n <input\n className=\"Add-a-vet-form-input-name\"\n onChange={handleAddressChange}\n placeholder={t('AddCustomVetModal.address')}\n value={state.vetAddressValue}\n />\n </AddVetInputContainer>\n\n <div className=\"Add-a-vet-form-inputs-row-container\">\n <AddVetInputContainer\n errorMessage={state.cityError}\n inputTitle={t('AddCustomVetModal.city')}\n >\n <input\n className=\"Add-a-vet-form-input-city-name\"\n onChange={handleCityNameChange}\n placeholder={t('AddCustomVetModal.city')}\n value={state.cityName}\n />\n </AddVetInputContainer>\n\n <AddVetInputContainer\n errorMessage={state.stateError}\n inputTitle={t('AddCustomVetModal.state')}\n >\n <select\n className={!state.stateId\n ? 'Add-a-vet-form-select-state-placeholder'\n : 'Add-a-vet-form-select-state'}\n onChange={handleStateNameChange}\n value={state.stateId || ''}\n >\n <option disabled hidden value=\"\">\n {t('AddCustomVetModal.statePlaceholder')}\n </option>\n\n <StatesList states={states} />\n </select>\n </AddVetInputContainer>\n\n <AddVetInputContainer\n errorMessage={state.vetZipCodeError}\n inputTitle={t('AddCustomVetModal.zipCode')}\n >\n <input\n className=\"Add-a-vet-form-input-zip-code\"\n onChange={handleZipCodeChange}\n value={state.vetZipCodeValue}\n />\n </AddVetInputContainer>\n </div>\n\n <AddVetInputContainer\n errorMessage={state.vetEmailError}\n inputLegend={t('AddCustomVetModal.recommended')}\n inputTitle={t('AddCustomVetModal.email')}\n >\n <input\n className=\"Add-a-vet-form-input-email\"\n onChange={handleEmailChange}\n value={state.vetEmailValue}\n />\n </AddVetInputContainer>\n\n <div className=\"Add-a-vet-form-inputs-row-container\">\n <AddVetInputContainer\n errorMessage={state.vetPhoneError}\n inputLegend={t('AddCustomVetModal.optional')}\n inputTitle={t('AddCustomVetModal.phone')}\n >\n <input\n className=\"Add-a-vet-form-input-row\"\n onChange={handlePhoneChange}\n value={state.vetPhoneValue}\n />\n </AddVetInputContainer>\n\n <AddVetInputContainer\n errorMessage={state.vetFaxError}\n inputLegend={t('AddCustomVetModal.optional')}\n inputTitle={t('AddCustomVetModal.fax')}\n >\n <input\n className=\"Add-a-vet-form-input-row\"\n onChange={handleFaxChange}\n value={state.vetFaxValue}\n />\n </AddVetInputContainer>\n </div>\n </>\n );\n};\n\nexport { AddAVetForm };\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { useSelector, shallowEqual, useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport ModalContainer from '../../common/ModalContainer';\nimport LoadingActionButtonMyPets\nfrom '../../common/petCloud/LoadingActionButtonMyPets';\nimport { ActionButton } from '../../common/petCloud/ActionButton';\nimport closeIcon from '../../../assets/close-button.svg';\nimport {\n addManuallyVetToFavorites,\n vetCustomSavedCleared,\n} from '../../../actions/myVets';\nimport { useCustomVetForm } from './hooks/useCustomVetForm';\n\nimport { AddAVetConfirm } from './AddAVetConfirm';\nimport { AddAVetForm } from './AddAVetForm';\n\nimport { EXPLORE_PROVIDERS } from '../../../constants';\n\nimport './AddAVetModal.css';\n\nconst AddAVetModal = ({\n closeModal = () => { },\n handleSuccesCustomVetModal = () => { },\n show = false,\n}) => {\n const dispatch = useDispatch();\n const store = useSelector(({ myVets }) => ({ myVets }), shallowEqual);\n const { isSavingCustomVet, vetCustomSaved } = store.myVets;\n const { t } = useTranslation('myPets');\n const [isFilled, setIsFilled] = useState(false);\n\n function clearSuccessLoading() {\n dispatch(vetCustomSavedCleared());\n }\n\n const {\n handleAddressChange,\n handleAddressError,\n handleCityError,\n handleCityNameChange,\n handleCloseModal,\n handleEmailChange,\n handleEmailError,\n handleFaxChange,\n handlePhoneChange,\n handlePhoneError,\n handleStateError,\n handleStateNameChange,\n handleSuccess,\n handleVetCompanyError,\n handleVetCompanyNameChange,\n handleZipCodeChange,\n handleZipCodeError,\n state,\n } = useCustomVetForm({\n clearSuccessLoading,\n closeModal,\n handleSuccesCustomVetModal,\n });\n\n const invalidForm = useMemo(() => (!state.vetCompanyName\n || !state.cityName || !state.stateId\n || !state.vetZipCodeValue\n || !state.vetAddressValue\n ), [state]);\n\n function handleNextClick() {\n if (invalidForm) {\n handleVetCompanyError();\n handleCityError();\n handleStateError();\n handleAddressError();\n handleZipCodeError();\n handleEmailError();\n handlePhoneError();\n return;\n }\n\n setIsFilled(!isFilled);\n }\n\n function handleCancel() {\n setIsFilled(false);\n handleCloseModal();\n }\n\n function handleEditButton() {\n setIsFilled(false);\n }\n\n useEffect(() => {\n if (vetCustomSaved) {\n handleCloseModal();\n }\n }, [vetCustomSaved]);\n\n function handleSaveClick() {\n if (invalidForm) {\n handleVetCompanyError();\n handleCityError();\n handleStateError();\n handleAddressError();\n handleZipCodeError();\n handleEmailError();\n handlePhoneError();\n return;\n }\n\n dispatch(addManuallyVetToFavorites({\n address: state.vetAddressValue,\n city: state.cityName,\n email: state.vetEmailValue,\n fax: state.vetFaxValue,\n phone: state.vetPhoneValue,\n state: state.stateId,\n vetName: state.vetCompanyName,\n zipCode: state.vetZipCodeValue,\n }));\n }\n\n return (\n <ModalContainer show={show}>\n <div className=\"Add-a-vet-modal-container\">\n <div className=\"Flex Flex-column\">\n <div className=\"Add-a-vet-title-box\">\n <h2 className=\"Add-a-vet-title\">\n {t('MyVets.addAVet')}\n </h2>\n\n <button\n className=\"Add-a-vet-close-btn\"\n id=\"closeIconBtn\"\n onClick={handleCancel}\n type=\"button\"\n >\n <img alt=\"\" className=\"Add-figo-tag-close-icon\" src={closeIcon} />\n </button>\n </div>\n\n <h3 className=\"Add-a-vet-modal-subtitle\">\n {isFilled\n ? t('MyVets.checkInfo')\n : t('AddCustomVetModal.subtitle')}\n </h3>\n </div>\n\n {isFilled ? (\n <AddAVetConfirm\n handleEditButton={handleEditButton}\n state={state}\n vetProvider={EXPLORE_PROVIDERS.manuallyAdded}\n />\n ) : (\n <AddAVetForm\n handleAddressChange={handleAddressChange}\n handleCityNameChange={handleCityNameChange}\n handleEmailChange={handleEmailChange}\n handleFaxChange={handleFaxChange}\n handlePhoneChange={handlePhoneChange}\n handleStateNameChange={handleStateNameChange}\n handleVetCompanyNameChange={handleVetCompanyNameChange}\n handleZipCodeChange={handleZipCodeChange}\n state={state}\n />\n )}\n\n <div className=\"Add-a-vet-modal-buttons-container\">\n <LoadingActionButtonMyPets\n loading={isSavingCustomVet}\n onClick={isFilled ? handleSaveClick : handleNextClick}\n onSuccessAnimationEnd={handleSuccess}\n success={vetCustomSaved}\n text={isFilled\n ? t('MyVets.addVetModal.add')\n : t('MyVets.addVetModal.next')}\n type=\"button\"\n />\n\n <ActionButton\n className=\"Action-button Add-a-vet-cancel-button\"\n isSecondaryButton\n onClick={handleCancel}\n title={t('AddCustomVetModal.cancel')}\n type=\"button\"\n />\n </div>\n </div>\n </ModalContainer>\n );\n};\n\nexport { AddAVetModal };\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport {\n addToFavorites,\n searchVets,\n validateZipCode,\n vetZipCodeChanged,\n cleanMyVetsErrors,\n searchPrimaryVet,\n savePrimaryVet,\n} from '../../../actions/myVets';\nimport close from '../../../assets/close-button.svg';\nimport { validateNumbersOnly } from '../../../services/utils';\nimport { EXPLORE_PROVIDERS } from '../../../constants';\nimport ModalContainer from '../../common/ModalContainer';\nimport LoadingActionButtonMyPets\nfrom '../../common/petCloud/LoadingActionButtonMyPets';\nimport { FoundVetItem } from './FoundVetItem';\nimport { MyPetsSearchInput } from './MyPetsSearchInput';\nimport { MyPetsVetManualAdd } from './MyPetsAddVetManuallyModal';\nimport { ActionButton } from '../../common/petCloud/ActionButton';\nimport { AddAVetModal } from './AddAVetModal';\nimport { AddAVetConfirm } from './AddAVetConfirm';\n\nimport { useManualVet } from '../../../hooks';\n\nimport './MyPetsAddVetModal.css';\n\nconst MyPetsAddVetModal = ({\n customVetShowCancelButton = false,\n displaySelectOnRows = false,\n hideZipcode = false,\n onClose = () => { },\n selectedVet = null,\n setAddVetModalOpen = () => { },\n onSelectedVet = () => { },\n primaryVet = false,\n}) => {\n const store = useSelector(({ personalInformation, myVets }) => ({\n ...myVets,\n userZipCode: personalInformation.zipCode,\n }), shallowEqual);\n const dispatch = useDispatch();\n const { t } = useTranslation('myPets');\n const [zipCode, setZipCode] = useState(store.userZipCode);\n const [willChangeZipCode, setWillChangeZipCode] = useState(false);\n const [zipCodeError, setZipCodeError] = useState('');\n const [isManuallyModalOpen, setIsManuallyModalOpen] = useState(false);\n const previousZipCodeRef = useRef(zipCode);\n const isManualVetRedesign = useManualVet();\n\n const {\n addVetError,\n favoriteVets,\n isEditingZipCode,\n isLoadingVets,\n isSavingVet,\n isValidatingZipCode,\n isValidZipCode,\n userZipCode,\n vetSaved,\n vetsFound,\n } = store;\n\n useEffect(() => {\n if (!isValidatingZipCode) {\n if (zipCodeError === '' && !isValidZipCode\n && !isEditingZipCode) {\n setZipCodeError(t('MyVets.addVetModal.errorZipCode'));\n }\n\n if (isValidZipCode && !isEditingZipCode) {\n setWillChangeZipCode(false);\n }\n }\n }, [t, isValidZipCode, isEditingZipCode, zipCodeError, isValidatingZipCode]);\n\n const favoriteVetIds =\n useMemo(() => new Set(\n favoriteVets.map((vet) => vet.PlaceId || vet.id),\n ), [favoriteVets]);\n\n function selectItem(item) {\n onSelectedVet(item);\n }\n\n function switchToChangeZipCode() {\n setWillChangeZipCode(true);\n }\n\n function handleClose() {\n onClose();\n setAddVetModalOpen(false);\n dispatch(cleanMyVetsErrors());\n onSelectedVet(null);\n setWillChangeZipCode(false);\n setZipCode(userZipCode);\n setZipCodeError('');\n }\n\n function handleCancel() {\n if (willChangeZipCode) {\n setZipCode(previousZipCodeRef.current);\n setWillChangeZipCode(false);\n setZipCodeError('');\n return;\n }\n\n if (!isSavingVet || !isValidatingZipCode) {\n handleClose();\n }\n }\n\n function handleSaveChangeZipCode() {\n if (zipCode.length !== 5) {\n setZipCodeError(t('MyVets.addVetModal.errorDigits'));\n return;\n }\n\n dispatch(validateZipCode({ zipCode }));\n setZipCodeError('');\n }\n\n function handleSave() {\n if (!willChangeZipCode && selectedVet) {\n if (primaryVet) {\n dispatch(savePrimaryVet({\n selectedVetId: selectedVet.PlaceId || selectedVet.Id,\n }));\n } else {\n dispatch(addToFavorites({\n categoryId: 1,\n placeId: selectedVet.PlaceId || selectedVet.Id,\n providerId: EXPLORE_PROVIDERS.google,\n }));\n }\n return;\n }\n\n handleSaveChangeZipCode();\n }\n\n function handleOnKeyDown(event) {\n const { keyCode } = event;\n const ENTER_KEY = 13;\n\n if (keyCode === ENTER_KEY) {\n handleSaveChangeZipCode();\n }\n }\n\n useEffect(() => {\n if (vetSaved && selectedVet) {\n handleClose();\n }\n }, [vetSaved]);\n\n function renderFoundItem(item) {\n return (\n <FoundVetItem\n key={item.PlaceId || item.Id}\n added={favoriteVetIds.has(item.PlaceId || item.Id)}\n addedLabel={t('MyVets.addVetModal.added')}\n address={item.Address}\n name={item.Title || item.Name}\n rightText={displaySelectOnRows ? t('MyVets.addVetModal.select') : ''}\n showDistance={false}\n />\n );\n }\n\n function handleOpenAddVetManuallyModal() {\n setIsManuallyModalOpen(true);\n }\n\n function handleCloseAddVetManuallyModal() {\n setIsManuallyModalOpen(false);\n setAddVetModalOpen(true);\n }\n\n function handleSuccesCustomVetModal() {\n setIsManuallyModalOpen(false);\n onClose();\n }\n\n const renderNotListedMessage = () => (\n <>\n <hr className=\"My-pets-add-vet-modal-not-listed-hr\" />\n\n <button\n className={`${isManualVetRedesign\n ? ''\n : 'Like-span'} My-pets-add-vet-modal-not-listed`}\n onClick={handleOpenAddVetManuallyModal}\n type=\"button\"\n >\n {t('MyVets.addVetModal.notListed')}\n\n \n\n {t('MyVets.addVetModal.enterManually')}\n </button>\n </>\n );\n\n function handleChangeZipCode(event) {\n const { value } = event.target;\n const cleanText = value ? value.replace(/[()-\\s]/g, '') : '';\n const onlyNumbersValue = validateNumbersOnly(cleanText)\n ? cleanText\n : cleanText.replace(/\\D/g, '');\n setZipCode(onlyNumbersValue);\n\n if (onlyNumbersValue.length === 5) {\n setZipCodeError('');\n previousZipCodeRef.current = onlyNumbersValue;\n }\n\n dispatch(vetZipCodeChanged());\n }\n\n function handleEmptyItemsFiltered(query) {\n const action = primaryVet ? searchPrimaryVet : searchVets;\n\n dispatch(action({ query, zipCode }));\n }\n\n function getSubtitle() {\n if (willChangeZipCode) {\n return t('MyVets.addVetModal.zipCodeSubtitle');\n }\n if (selectedVet) {\n return t('MyVets.checkInfo');\n }\n return t('MyVets.subtitle');\n }\n\n function getButtonText() {\n if (willChangeZipCode) {\n return t('MyVets.addVetModal.save');\n }\n if (selectedVet) {\n return t('MyVets.addVetModal.add');\n }\n return t('MyVets.addVetModal.next');\n }\n\n const VetModalActions = () => (\n <div className=\"My-pets-add-vet-modal-actions\">\n <LoadingActionButtonMyPets\n disabled={!(willChangeZipCode || selectedVet)}\n loading={isSavingVet || isValidatingZipCode}\n onClick={handleSave}\n text={getButtonText(t, willChangeZipCode, selectedVet)}\n type=\"button\"\n />\n\n <ActionButton\n isSecondaryButton\n onClick={handleCancel}\n title={t('MyVets.addVetModal.cancel')}\n />\n </div>\n );\n\n function renderSelectedItem() {\n if (isManualVetRedesign) {\n const vetInfoState = {\n vetAddressValue1: selectedVet.AddressLine1 || selectedVet.Address,\n vetAddressValue2: selectedVet.AddressLine2 || '',\n vetCompanyName: selectedVet.Title || selectedVet.Name,\n };\n\n return (\n <div className=\"My-pets-add-vet-modal-confirm-vet\">\n <AddAVetConfirm state={vetInfoState} />\n\n <VetModalActions />\n </div>\n );\n }\n\n return (\n <>\n <div className=\"My-pets-add-vet-modal-selected-vet\">\n <span className=\"My-pets-add-vet-modal-vet-name\">\n {selectedVet.Title || selectedVet.Name}\n </span>\n\n <div className=\"My-pets-add-vet-modal-vet-address\">\n <span className=\"My-pets-add-vet-modal-vet-address-location\">\n {selectedVet.AddressLine1 || selectedVet.Address}\n </span>\n\n <span className=\"My-pets-add-vet-modal-vet-address-location\">\n {selectedVet.AddressLine2}\n </span>\n </div>\n </div>\n\n <VetModalActions />\n </>\n );\n }\n\n return (\n <>\n <ModalContainer show>\n <div className=\"My-pets-add-vet-modal\">\n <button\n className=\"My-pets-add-vet-modal-close\"\n onClick={handleCancel}\n type=\"button\"\n >\n <img alt=\"\" src={close} />\n </button>\n\n <h2 className={hideZipcode ? 'My-pets-add-vet-modal-margin' : ''}>\n {t('MyVets.addAVet')}\n </h2>\n\n <p className=\"My-pets-add-vet-modal-subtitle\">\n {getSubtitle()}\n </p>\n\n {willChangeZipCode ? (\n <>\n <span className=\"My-pets-add-vet-modal-search\">\n {t('MyVets.addVetModal.zipCode')}\n </span>\n\n <div className=\"My-pets-add-vet-zip-code-input-container\">\n <input\n className={`My-pets-add-vet-zip-code-input${zipCodeError\n ? '-error' : ''}`}\n maxLength={5}\n onChange={handleChangeZipCode}\n onKeyDown={handleOnKeyDown}\n placeholder={t('MyVets.addVetModal.searchNearLocation')}\n value={zipCode}\n />\n\n <VetModalActions />\n </div>\n\n {zipCodeError ? (\n <span className=\"My-pets-add-vet-zip-code-error\">\n {zipCodeError}\n </span>\n )\n : null}\n </>\n ) : (\n <>\n {!selectedVet && !hideZipcode && (\n <div>\n <span className=\"My-pets-add-vet-modal-search\">\n {t('MyVets.addVetModal.searchingNear')}\n </span>\n\n <span className=\"My-pets-add-vet-modal-zipcode\">\n {zipCode}\n </span>\n\n <span className=\"My-pets-separator\">\n |\n </span>\n\n <button\n className=\"My-pets-add-vet-modal-change Like-span\"\n disabled={isLoadingVets}\n onClick={switchToChangeZipCode}\n type=\"button\"\n >\n {t('MyVets.addVetModal.change')}\n </button>\n </div>\n )}\n\n <MyPetsSearchInput\n emptyMessage={renderNotListedMessage()}\n hideInput={isManuallyModalOpen || willChangeZipCode}\n id=\"addVet\"\n isLoadingVets={isLoadingVets}\n itemListRender={renderFoundItem}\n itemSelected={selectedVet}\n itemsFound={vetsFound}\n onSearch={handleEmptyItemsFiltered}\n onSelected={selectItem}\n placeholder={t('MyVets.addVetModal.searchByName')}\n renderSelectedItem={renderSelectedItem}\n />\n </>\n )}\n\n {addVetError ? (\n <span className=\"My-pets-add-vet-zip-code-error\">\n {t('MyVets.addVetModal.errorAdding')}\n </span>\n ) : null}\n </div>\n </ModalContainer>\n\n {isManualVetRedesign ? (\n <AddAVetModal\n closeModal={handleCloseAddVetManuallyModal}\n handleSuccesCustomVetModal={handleSuccesCustomVetModal}\n show={isManuallyModalOpen}\n showCancelButton={customVetShowCancelButton}\n />\n ) : (\n <MyPetsVetManualAdd\n closeModal={handleCloseAddVetManuallyModal}\n handleSuccesCustomVetModal={handleSuccesCustomVetModal}\n onSavePrimaryVet={onSelectedVet}\n primaryVet={primaryVet}\n show={isManuallyModalOpen}\n showCancelButton={customVetShowCancelButton}\n />\n )}\n </>\n );\n};\n\nexport { MyPetsAddVetModal };\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { cleanMyVetsErrors, savePrimaryVet } from '../../../actions';\nimport { AddVetModal } from '../../myPets/addVetModal/AddVetModal';\nimport { ConfirmPrimaryVetModal } from './ConfirmPrimaryVetModal';\nimport { NoVetModal } from './NoVetModal';\nimport { useManualVet } from '../../../hooks';\nimport { MyPetsAddVetModal } from '../../myPets/addVetModal/MyPetsAddVetModal';\n\nconst AddPrimaryVet = ({ onClose = () => { } }) => {\n const [showNoVetModal, setShowNoVetModal] = useState(true);\n const [showAddVet, setShowAddVet] = useState(false);\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\n const [selectedVet, setSelectedVet] = useState(null);\n const {\n isSavingVet,\n addVetError,\n } = useSelector(({ myVets }) => ({ ...myVets }));\n const isManualVetRedesign = useManualVet();\n\n const dispatch = useDispatch();\n\n useEffect(() => () => {\n dispatch(cleanMyVetsErrors());\n }, []);\n\n useEffect(() => {\n if (selectedVet && !isManualVetRedesign) {\n setShowConfirmationModal(true);\n setShowAddVet(false);\n }\n }, [isManualVetRedesign, selectedVet]);\n\n function handleAddVetClick() {\n setShowAddVet(true);\n setShowNoVetModal(false);\n }\n\n function goBackToVetSelector() {\n setShowAddVet(true);\n setShowConfirmationModal(false);\n setSelectedVet(null);\n dispatch(cleanMyVetsErrors());\n }\n\n function closeModals() {\n onClose();\n }\n\n function addPrimaryVet() {\n dispatch(savePrimaryVet({\n isCustomVet: selectedVet.isCustom,\n selectedVetId: selectedVet.Id,\n stateId: selectedVet.StateId,\n vetCity: selectedVet.City,\n vetCompany: selectedVet.Name,\n }));\n }\n\n const renderAddVetModal = () => {\n if (isManualVetRedesign) {\n return showAddVet && (\n <MyPetsAddVetModal\n onClose={closeModals}\n onSelectedVet={setSelectedVet}\n primaryVet\n selectedVet={selectedVet}\n setAddVetModalOpen={setShowAddVet}\n />\n );\n }\n\n return (\n <>\n {showAddVet && (\n <AddVetModal\n customVetShowCancelButton\n displaySelectOnRows\n hideZipcode\n onClose={closeModals}\n onSelectedVet={setSelectedVet}\n primaryVet\n selectedVet={selectedVet}\n />\n )}\n\n {selectedVet && (\n <ConfirmPrimaryVetModal\n error={addVetError}\n loading={isSavingVet}\n onBack={goBackToVetSelector}\n onClose={closeModals}\n onConfirm={addPrimaryVet}\n show={showConfirmationModal}\n vetAddress={selectedVet.isCustom\n ? `${selectedVet.City}, ${selectedVet.StateName}`\n : selectedVet.Address}\n vetName={selectedVet.Name}\n />\n )}\n </>\n );\n };\n\n return (\n <>\n <NoVetModal\n onAddVetClick={handleAddVetClick}\n onClose={closeModals}\n show={showNoVetModal}\n />\n\n {renderAddVetModal()}\n </>\n );\n};\n\nexport { AddPrimaryVet };\n","import React, { useEffect, useRef, useState } from 'react';\nimport './css/ModifierModalInfoItemContent.css';\n\nconst ModifierModalInfoItemContent = ({\n isBold,\n subtitle,\n title,\n value,\n}) => {\n const titleRef = useRef();\n const subtitleRef = useRef();\n const [contentLoaded, setContentLoaded] = useState();\n\n useEffect(() => {\n if (titleRef.current && !contentLoaded) {\n let htmlContent = title;\n let htmlContainer = document.createElement('div');\n htmlContainer.innerHTML = htmlContent;\n titleRef.current.appendChild(htmlContainer);\n\n htmlContent = subtitle;\n htmlContainer = document.createElement('div');\n htmlContainer.innerHTML = htmlContent;\n subtitleRef.current.appendChild(htmlContainer);\n\n setContentLoaded(true);\n }\n }, [contentLoaded, subtitle, title]);\n\n return (\n <div className=\"Modifier-modal-info-content-row\">\n <div className=\"Modifier-modal-info-content-row-top\">\n <span\n ref={titleRef}\n className={`Modifier-modal-info-content-row-title ${isBold\n ? 'Modifier-modal-info-content-row-title-semi-bold' : ''}`}\n />\n\n <span className=\"Modifier-modal-info-content-row-value\">\n {value}\n </span>\n </div>\n\n <div className={`Modifier-modal-info-content-row-middle ${subtitle\n ? '' : 'Modifier-modal-info-element-gone'}`}\n >\n <span\n ref={subtitleRef}\n className=\"Modifier-modal-info-content-row-subtitle\"\n />\n </div>\n </div>\n );\n};\n\nexport { ModifierModalInfoItemContent };\n","export default __webpack_public_path__ + \"static/media/included-check-white.6e297f25.svg\";","import React from 'react';\n\nimport checkIcon from '../../../assets/policy/included-check-white.svg';\n\nimport './css/ModifierWellnessGroup.css';\n\nconst ModifierWellnessButton = ({\n handleOnClick = () => { },\n isBasic = true,\n isSelected = false,\n title = '',\n}) => {\n const buttonClassName = `Modifier-modal-wellness-${isBasic\n ? 'basic' : 'plus'}-button${!isSelected ? '-not-selected' : ''}`;\n const textClassName = `Modifier-modal-wellness-text${!isSelected\n ? '-not-selected' : ''}`;\n const imageClassname = isSelected ? 'Modifier-modal-wellness-img' : 'Hide';\n\n return (\n <button\n className={buttonClassName}\n onClick={handleOnClick}\n type=\"button\"\n >\n <img alt=\"\" className={imageClassname} src={checkIcon} />\n\n <span className={textClassName}>\n {title}\n </span>\n </button>\n );\n};\n\nexport { ModifierWellnessButton };\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { WELLNESS_MODIFIER_ID } from '../../../constants';\n\nimport { ModifierWellnessButton } from './ModifierWellnessButton';\n\nimport './css/ModifierWellnessGroup.css';\n\nconst ModifierWellnessGroup = ({\n categoryList = [],\n isWhatsCovered = false,\n menuSelected = 0,\n onClickMenu = () => { },\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const WELLNESS_BASIC = 15;\n const WELLNESS_PLUS = 16;\n\n const wellnessBasicId = useMemo(() => {\n if (isWhatsCovered) {\n return WELLNESS_BASIC;\n }\n\n return categoryList\n .filter((element) => element.InsuranceModifierId\n === WELLNESS_MODIFIER_ID)[0]?.Id;\n }, [categoryList]);\n\n const wellnessPlusId = useMemo(() => {\n if (isWhatsCovered) {\n return WELLNESS_PLUS;\n }\n\n return categoryList\n .filter((element) => element.InsuranceModifierId\n === WELLNESS_MODIFIER_ID)[1]?.Id;\n }, [categoryList]);\n\n const handleOnClick = (id) => () => {\n onClickMenu(id);\n };\n\n function renderContent() {\n if (categoryList.length === 1) {\n return null;\n }\n\n return (\n <div className=\"Modifier-modal-wellness-button-container\">\n <ModifierWellnessButton\n handleOnClick={handleOnClick(wellnessBasicId)}\n isBasic\n isSelected={menuSelected === wellnessBasicId}\n title={t('wellnessBasic')}\n />\n\n <ModifierWellnessButton\n handleOnClick={handleOnClick(wellnessPlusId)}\n isBasic={false}\n isSelected={menuSelected === wellnessPlusId}\n title={t('wellnessPlus')}\n />\n </div>\n );\n }\n\n return renderContent();\n};\n\nexport { ModifierWellnessGroup };\n","/* eslint-disable react/no-danger */\nimport React from 'react';\n\nconst ContentfulComponent = ({ className = '', htmlContent = '' }) => (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: htmlContent }}\n />\n);\n\nexport { ContentfulComponent };\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport { useOnEscEvent } from '../../../hooks';\nimport { useResponsive } from '../../../hooks/useResponsive';\n\nimport closeIcon from '../../../assets/close-button.svg';\nimport loadingSpinner from '../../../assets/lottieFiles/loading-blue.json';\n\nimport ModalContainer from '../../common/ModalContainer';\nimport ScrollableDiv from '../../common/ScrollableDiv';\nimport { ModifierModalInfoItemContent } from './ModfierModalInfoItemContent';\nimport { ModifierWellnessGroup } from './ModifierWellnessGroup';\nimport { ContentfulComponent } from '../../common/petCloud/ContentfulComponent';\nimport FigoLottie from '../../common/FigoLottie';\n\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\nimport { WELLNESS_MODIFIER_ID } from '../../../constants';\n\nimport { currencyFormat } from '../../../services/utils';\n\nimport {\n WELLNESS_COVERAGE_LIMIT_FPI,\n WELLNESS_MULTIMODAL_ID,\n} from '../../changeCoverage/powerups/powerups.constans';\n\nimport './css/ModifierModalInfo.css';\n\nconst ModifierModalInfo = ({\n company = MARKETING_CHANNEL_ID.figo,\n initialMenuSelected = 0,\n isVisible,\n isWhatsCovered = false,\n multiModalData,\n onClose,\n policyNumber,\n wellnessBenefits = null,\n}) => {\n const { t } = useTranslation('changeCoverage');\n const store = useSelector(({\n orcaInsurance,\n }) => ({ orcaInsurance }), shallowEqual);\n const {\n orcaInsurance: {\n powerUpDetailsLoading,\n powerUpDetails,\n },\n } = store;\n const [menuSelected, setMenuSelected] = useState(initialMenuSelected);\n const titleContainerStyle = isWhatsCovered\n ? 'Modifier-whats-covered-title-container'\n : 'Modifier-modal-info-content-title-container';\n const { isTablet } = useResponsive();\n\n useEffect(() => {\n setMenuSelected(initialMenuSelected);\n }, [initialMenuSelected]);\n\n useOnEscEvent(() => {\n if (isVisible) {\n onClose();\n }\n }, [isVisible, onClose]);\n\n function filterByPolicyNumber() {\n if (multiModalData && multiModalData.PolicyOptionalDetailsDto) {\n return (\n multiModalData.PolicyOptionalDetailsDto\n .find((element) => element.PolicyNumber === policyNumber) || {}\n );\n }\n\n return {};\n }\n\n function getModalContent() {\n if (multiModalData && multiModalData.InsuranceMultiModalCategoryDtoList) {\n return multiModalData;\n }\n\n return {};\n }\n\n const multiModalContent = policyNumber\n ? filterByPolicyNumber()\n : getModalContent();\n\n function handleCloseModal() {\n if (onClose) {\n onClose();\n }\n }\n\n const categoryList = useMemo(() => {\n if (multiModalContent.OptionalsBenefit) {\n return multiModalContent.OptionalsBenefit;\n }\n\n const categoryDto = multiModalContent.InsuranceMultiModalCategoryDtoList;\n\n if (categoryDto) {\n const isWellnessMenu = categoryDto\n .find((item) => item.Id === WELLNESS_MULTIMODAL_ID.BASIC\n || item.Id === WELLNESS_MULTIMODAL_ID.PLUS);\n\n if (wellnessBenefits.length === 1 && isWellnessMenu) {\n const coverageLimitId = wellnessBenefits[0]?.CoverageLimitId;\n const categoryId = WELLNESS_COVERAGE_LIMIT_FPI.BASIC\n .includes(coverageLimitId)\n ? WELLNESS_MULTIMODAL_ID.BASIC\n : WELLNESS_MULTIMODAL_ID.PLUS;\n\n return categoryDto.filter((item) => item.Id === categoryId);\n }\n\n return categoryDto;\n }\n\n return [];\n }, [multiModalContent]);\n\n const currentCategory = useMemo(() => {\n if (categoryList && categoryList.length) {\n return categoryList.find((element) => element.Id === menuSelected);\n }\n\n return {\n CategoryHeader: '',\n ImageUrl: '',\n InsuranceModifierId: '',\n InsuranceMultiModalItemsDtoList: [],\n IsIncluded: '',\n OptionalBenefitsDetailsItems: [],\n SubTitle: '',\n };\n }, [categoryList, menuSelected]);\n\n useEffect(() => {\n if (categoryList[0] && categoryList[0].Id) {\n setMenuSelected(categoryList[0].Id);\n }\n }, [categoryList]);\n\n function getHeaderTitle() {\n if (company !== MARKETING_CHANNEL_ID.figo) {\n return powerUpDetailsLoading ? {\n subTitle: '',\n title: '',\n } : {\n subTitle: powerUpDetails?.Subtitle,\n title: powerUpDetails?.Title,\n };\n }\n\n return {\n included: currentCategory?.IsIncluded\n ? t('included') : t('notIncluded'),\n isIncluded: currentCategory?.IsIncluded,\n subTitle: currentCategory?.SubTitle,\n title: currentCategory?.CategoryHeader,\n };\n }\n\n function getHeaderImage() {\n return currentCategory?.ImageUrl;\n }\n\n function getCategoryContent() {\n return currentCategory?.OptionalBenefitsDetailsItems\n || currentCategory?.InsuranceMultiModalItemsDtoList\n || [];\n }\n\n const headerTitle = getHeaderTitle();\n const headerImage = getHeaderImage();\n const categoryContent = getCategoryContent();\n\n function renderModalContent() {\n if (company === MARKETING_CHANNEL_ID.figo) {\n return categoryContent.map((element) => (\n <ModifierModalInfoItemContent\n key={String(element.Id)}\n isBold={element.IsBold}\n subtitle={element.ItemSubtext || element.ItemSubText || ''}\n title={element.ItemLabel}\n value={policyNumber && element.Value\n ? currencyFormat({ value: element.Value })\n : element.Value}\n />\n ));\n }\n\n if (powerUpDetailsLoading) {\n return (\n <div className=\"Reimbursement-screen-shimmer-container\">\n <FigoLottie\n animationData={loadingSpinner}\n height={50}\n width={50}\n />\n </div>\n );\n }\n\n return (\n <ContentfulComponent\n className=\"Modifier-modal-contentful-content\"\n htmlContent={powerUpDetails?.DescriptionHTML}\n />\n );\n }\n\n function renderWellnessContent() {\n if (company === MARKETING_CHANNEL_ID.figo\n && (currentCategory?.InsuranceModifierId === WELLNESS_MODIFIER_ID\n || headerTitle?.title?.includes('Wellness'))\n && wellnessBenefits.length > 1) {\n return (\n <ModifierWellnessGroup\n categoryList={categoryList}\n isWhatsCovered={isWhatsCovered}\n menuSelected={menuSelected}\n onClickMenu={setMenuSelected}\n />\n );\n }\n\n return null;\n }\n\n return (\n <ModalContainer\n cancelable={false}\n disableClickOutside={isTablet}\n handleOutClick={handleCloseModal}\n id=\"modalContainerNeedToKnow\"\n show={isVisible}\n >\n <ScrollableDiv\n className=\"Modifier-modal-info-container\"\n scrollbarMargin\n >\n <div className=\"Modifier-modal-info-content-container\">\n <div className={titleContainerStyle}>\n <div className=\"Modifier-modal-title-container\">\n <h3 className=\"Modifier-modal-info-content-title\">\n {headerTitle.title}\n </h3>\n\n <button\n className=\"Modifier-modal-close-icon\"\n onClick={handleCloseModal}\n type=\"button\"\n >\n <img alt=\"\" src={closeIcon} />\n </button>\n </div>\n </div>\n\n <span className=\"Modifier-modal-info-content-subtitle\">\n {headerTitle.subTitle}\n </span>\n\n {headerImage && (\n <div className=\"Modifier-modal-info-content-image-container\">\n <img\n alt=\"need to know\"\n className=\"Modifier-modal-info-content-image\"\n src={headerImage}\n />\n </div>\n )}\n\n <div className=\"Modifier-modal-info-content-rows-container\">\n {renderWellnessContent()}\n\n {renderModalContent()}\n </div>\n\n <div className=\"Modifier-modal-bottom-container\">\n <button\n onClick={handleCloseModal}\n type=\"button\"\n >\n {t('close')}\n </button>\n </div>\n </div>\n </ScrollableDiv>\n </ModalContainer>\n );\n};\n\nexport { ModifierModalInfo };\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport {\n checkIfHasPrimaryVet,\n loadNewClaimSteps,\n validateChangeCoverageCleared,\n} from '../../actions';\n\nimport CancelPolicyModal from './CancelPolicyModal';\nimport FigoLoadingOverlay from '../common/FigoLoadingOverlay';\nimport { ChangeCoverageErrorModal }\nfrom './changeCoverage/ChangeCoverageErrorModal';\nimport { AddPrimaryVet } from '../claims/primaryVet/AddPrimaryVet';\nimport { FILE_CLAIMBOT } from '../navigation/routes.constants';\nimport { ModifierModalInfo } from './modifiers/ModifierModalInfo';\nimport { MARKETING_CHANNEL_ID } from '../../theme/theme.constants';\nimport { WELLNESS_MODIFIER_ID } from '../../constants';\n\nconst PolicyModals = ({\n changeCoverageValidation,\n company = MARKETING_CHANNEL_ID.figo,\n loadingSeeMoreInfo,\n multiModalCategoryId,\n multiModalData,\n multiModalVisible,\n myVetsInfo,\n newClaimStarted,\n onClosePrimaryVetModal,\n onMultiModalClose,\n policyNumber,\n selectedPolicy = null,\n showPrimaryVetModal = false,\n}) => {\n const dispatch = useDispatch();\n const history = useHistory();\n const {\n addVetError,\n checkedPrimaryVet,\n checkingPrimaryVet,\n hasPrimaryVet,\n isSavingVet,\n vetSaved,\n } = myVetsInfo;\n const [cancelPolicyModalVisible, setCancelPolicyModalVisible] =\n useState(false);\n const [\n showChangeCoverageErrorModal,\n setChangeCoverageErrorModal,\n ] = useState(false);\n\n useEffect(() => {\n const { isSuccess, isValid } = changeCoverageValidation;\n setChangeCoverageErrorModal(isSuccess && !isValid);\n }, [changeCoverageValidation]);\n\n useEffect(() => {\n if (!checkedPrimaryVet && !checkingPrimaryVet) {\n dispatch(checkIfHasPrimaryVet());\n }\n }, []);\n\n useEffect(() => {\n if (newClaimStarted) {\n history.push(FILE_CLAIMBOT);\n }\n }, [newClaimStarted]);\n\n useEffect(() => {\n if (showPrimaryVetModal\n && !isSavingVet\n && !addVetError\n && vetSaved\n && hasPrimaryVet) {\n dispatch(loadNewClaimSteps());\n onMultiModalClose();\n }\n }, [dispatch, isSavingVet, addVetError, hasPrimaryVet, onMultiModalClose]);\n\n function handleCloseChangeCoverageErrorModal() {\n setChangeCoverageErrorModal(false);\n dispatch(validateChangeCoverageCleared());\n }\n\n function handleCloseCancelPolicyModal() {\n setCancelPolicyModalVisible(false);\n }\n\n const multiModalDataSelected = useMemo(() => {\n if (multiModalData && multiModalData.PolicyOptionalDetailsDto) {\n return {\n ...multiModalData,\n PolicyOptionalDetailsDto: multiModalData.PolicyOptionalDetailsDto\n .map((detail) => ({\n ...detail,\n OptionalsBenefit: detail.OptionalsBenefit\n .filter((benefit) => !benefit.GeneralPolicyInfo),\n })),\n };\n }\n return multiModalData;\n }, [multiModalData]);\n\n const wellnessBenefits = useMemo(() => {\n if (selectedPolicy?.PowerUps) {\n const wellnessModifier = selectedPolicy?.PowerUps\n ?.find((modifier) => (\n modifier.InsuranceModifierId === WELLNESS_MODIFIER_ID\n ));\n\n return wellnessModifier?.OptionalBenefits;\n }\n\n return [];\n }, [selectedPolicy]);\n\n return (\n <>\n <CancelPolicyModal\n onClose={handleCloseCancelPolicyModal}\n visible={cancelPolicyModalVisible}\n />\n\n <ModifierModalInfo\n company={company}\n initialMenuSelected={multiModalCategoryId}\n isVisible={multiModalVisible}\n multiModalData={multiModalDataSelected}\n onClose={onMultiModalClose}\n policyNumber={policyNumber}\n wellnessBenefits={wellnessBenefits}\n />\n\n <FigoLoadingOverlay\n visible={loadingSeeMoreInfo}\n />\n\n <ChangeCoverageErrorModal\n errorMessage={changeCoverageValidation.message}\n handleCloseModal={handleCloseChangeCoverageErrorModal}\n showModal={showChangeCoverageErrorModal}\n />\n\n {showPrimaryVetModal && (\n <AddPrimaryVet\n onClose={onClosePrimaryVetModal}\n />\n )}\n </>\n );\n};\n\nexport { PolicyModals };\n","import React, { useMemo } from 'react';\n\nimport './css/PolicyHeader.css';\nimport { getThemeLogoById } from '../../theme/theme.utils';\n\nconst PolicyHeader = ({ company }) => {\n const getCompanyLogo = useMemo(() => {\n const logos = getThemeLogoById(company);\n return logos.white;\n }, [company]);\n\n return (\n <div className=\"Policy-header-container\">\n <img\n alt=\"\"\n className={`Policy-header-logo-${company}`}\n src={getCompanyLogo}\n />\n </div>\n );\n};\n\nexport { PolicyHeader };\n","import React, { useEffect, useRef, useState } from 'react';\n\nconst HtmlContent = ({\n classNameContainer = '',\n content = '',\n elementType = 'div',\n}) => {\n const [contentLoaded, setContentLoaded] = useState();\n const ref = useRef();\n\n useEffect(() => {\n if (ref.current && !contentLoaded && content) {\n const htmlContent = content;\n const htmlContainer = document.createElement(elementType);\n\n if (classNameContainer.trim()) {\n htmlContainer.classList.add(classNameContainer);\n }\n\n htmlContainer.innerHTML = htmlContent;\n ref.current.appendChild(htmlContainer);\n setContentLoaded(true);\n }\n }, [classNameContainer, content, contentLoaded, elementType, ref]);\n\n return (\n <div ref={ref} />\n );\n};\n\nexport { HtmlContent };\n","export default __webpack_public_path__ + \"static/media/included-check.cecbfb65.svg\";","export default __webpack_public_path__ + \"static/media/not-included-cross.0780a1cd.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport { HtmlContent } from '../../common/HtmlContent';\n\nimport { getOrcaPowerUp } from '../../../actions';\n\nimport includedIcon from '../../../assets/policy/included-check.svg';\nimport notIncludedIcon from '../../../assets/policy/not-included-cross.svg';\n\nimport './css/PowerupInfoCard.css';\n\nconst PowerupInfoCard = ({\n contentfulKey = '',\n description = '',\n included = false,\n name = '',\n optionalBenefits = [],\n onClickLearnMore = () => { },\n wellnessTypeId = '',\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const dispatch = useDispatch();\n\n function renderIncluded() {\n const icon = included ? includedIcon : notIncludedIcon;\n const text = included ? t('included') : t('notIncluded');\n\n return (\n <div className=\"Powerup-info-included-container\">\n <img alt=\"\" src={icon} />\n\n <span className={!included\n ? 'Powerup-info-not-included' : ''}\n >\n {text}\n </span>\n </div>\n );\n }\n\n function onClick() {\n const content = optionalBenefits;\n if (content && content.length) {\n const selectedId = wellnessTypeId || content[0].Id;\n onClickLearnMore(selectedId);\n } else {\n dispatch(getOrcaPowerUp({ productKey: contentfulKey }));\n onClickLearnMore();\n }\n }\n\n return (\n <div className=\"Powerup-info-card-container\">\n <div className=\"Powerup-info-title-container\">\n <h4>{name}</h4>\n\n {renderIncluded()}\n </div>\n\n <HtmlContent\n className=\"Powerup-info-description\"\n content={description}\n elementType=\"p\"\n />\n\n {optionalBenefits.length > 0 && included && (\n <button\n className=\"Powerup-info-learn-more\"\n onClick={onClick}\n type=\"button\"\n >\n <span>{t('learnMore')}</span>\n </button>\n )}\n </div>\n );\n};\n\nexport { PowerupInfoCard };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { usePetPolicies } from '../../../hooks/usePetPolicies';\nimport Shimmer from '../../common/Shimmer';\nimport { PowerupInfoCard } from './PowerupInfoCard';\n\nimport './css/PowerupInfoCard.css';\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\nimport {\n POWER_UPS_RELATION,\n} from '../../changeCoverage/powerups/powerups.constans';\n\nconst Powerups = ({\n company = MARKETING_CHANNEL_ID.figo,\n items = [],\n onClickLearnMore = () => { },\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const petPolicies = usePetPolicies();\n const {\n loading,\n } = petPolicies;\n\n function renderContent() {\n if (loading) {\n return (\n <Shimmer height={30} />\n );\n }\n\n return (\n <div className=\"Powerup-info-section-container\">\n <h2>\n {company === MARKETING_CHANNEL_ID.figo\n ? t('powerUpsTitle')\n : t('upgradesTitle')}\n </h2>\n\n <div className=\"Powerup-info-grid-container\">\n {items.map((benefits, index) => {\n let name = benefits.Name;\n let wellnessTypeId = null;\n\n if (benefits.Included && benefits\n .InsuranceModifierId === POWER_UPS_RELATION.WELLNESS_PSM_ID) {\n const includedWellness = benefits.OptionalBenefits?.find(({\n IsIncluded,\n }) => IsIncluded);\n\n name = includedWellness?.CategoryHeader;\n wellnessTypeId = includedWellness?.Id;\n }\n\n return (\n <PowerupInfoCard\n key={benefits.Id || String(index)}\n contentfulKey={benefits?.ContentfulKey}\n description={benefits.Description}\n included={benefits.Included}\n name={name}\n onClickLearnMore={onClickLearnMore}\n optionalBenefits={benefits.OptionalBenefits}\n wellnessTypeId={wellnessTypeId}\n />\n );\n })}\n </div>\n </div>\n );\n }\n\n return renderContent();\n};\n\nexport { Powerups };\n","export default __webpack_public_path__ + \"static/media/information-icon.b8e11cbe.svg\";","export default __webpack_public_path__ + \"static/media/information-alert-icon.1d09864d.svg\";","import React from 'react';\n\nfunction createHighlightSpan(text, className) {\n return <span className={className}>{text}</span>;\n}\n\nfunction highlightWithRegex(text, regex) {\n const parts = text.split(regex);\n const matches = text.match(regex) || [];\n const highlighted = [];\n\n parts.forEach((part, index) => {\n highlighted.push(part);\n\n if (index < parts.length - 1) {\n highlighted.push(\n <span className=\"Policy-alert-bold-text\">{matches[index]}</span>,\n );\n }\n });\n\n return highlighted;\n}\n\nfunction highlightDate(textParts) {\n const dateRegex = /\\d{2}\\/\\d{2}\\/\\d{4}/;\n\n return textParts.flatMap((part) => {\n const parts = String(part).split(dateRegex);\n const dates = String(part).match(dateRegex) || [];\n\n if (dates.length === 0) {\n return [part];\n }\n\n const highlightedParts = [];\n for (let i = 0; i < parts.length; i += 1) {\n highlightedParts.push(parts[i]);\n if (dates[i]) {\n highlightedParts.push(\n createHighlightSpan(dates[i], 'Policy-alert-bold-text'),\n );\n }\n }\n\n return highlightedParts;\n });\n}\n\nexport function highlightPrice(message, className) {\n const priceRegex = /\\$\\d+\\.?\\d{0,2}/g;\n\n const highlighted = highlightWithRegex(message, priceRegex, className);\n\n return highlightDate(highlighted);\n}\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport policyInfoIcon from '../../assets/policy/information-icon.svg';\nimport policyOrangeAlertIcon\nfrom '../../assets/policy/information-alert-icon.svg';\nimport { loadPolicyNotifications } from '../../actions';\nimport { CHANGE_COVERAGE_WEB } from '../navigation/routes.constants';\nimport './PolicyNotifications.css';\nimport { MY_ACCOUNT, POLICY_STATUS } from '../../constants';\nimport { objectToBase64 } from '../../services/utils';\nimport { highlightPrice } from './policyNotificationsUtils ';\nimport { MARKETING_CHANNEL_ID } from '../../theme/theme.constants';\n\nconst PAYMENT_INFO_ACTION = 2;\nconst CLICK_HERE_RENEWAL = 3;\nconst CLICK_HERE_ROLLOVER = 4;\n\nconst PolicyNotifications = (props) => {\n const { t } = useTranslation('insuranceScreen');\n const dispatch = useDispatch();\n const store = useSelector(({ policies }) => policies);\n\n useEffect(() => {\n if (props.policy && props.policy.Number) {\n dispatch(loadPolicyNotifications(props.policy.Number));\n }\n }, [props.policy]);\n\n const getFuturePolicy = () => {\n const { petId } = props;\n const selectedPet = store.allPets.find((pet) => pet.PetId === petId);\n\n if (!selectedPet) {\n return '';\n }\n\n const futurePolicy = selectedPet.policies\n .find((policy) => policy.Status === POLICY_STATUS.future);\n\n return futurePolicy?.Number;\n };\n\n const breadCrumbData = () => {\n const { policy } = props;\n\n const data = [\n {\n id: MY_ACCOUNT.landing,\n name: t('breadCrumbNotification.myAccount'),\n },\n {\n extraData: '',\n id: MY_ACCOUNT.billingAndPayments,\n name: t('breadCrumbNotification.billingAndPayments'),\n },\n {\n extraData: {\n marketingChannelId: MARKETING_CHANNEL_ID.figo,\n policyNumber: policy?.Number || '',\n },\n id: MY_ACCOUNT.billingAndPaymentDetails,\n name: t('breadCrumbNotification.policyNumber', {\n policyNumber: policy.Number || '',\n }),\n },\n ];\n\n return `data=${objectToBase64(data)}`;\n };\n\n const getNotificationAction = (action) => {\n const { policy } = props;\n\n if (action === PAYMENT_INFO_ACTION) {\n return (\n <Link\n className=\"Policy-alert-info-red-link\"\n to={`/myAccount/Policy%20${policy.Number}/8?${breadCrumbData()}`}\n >\n {t('updateBillingInfo')}\n </Link>\n );\n }\n\n if (action === CLICK_HERE_RENEWAL) {\n return (\n <Link\n className=\"Policy-alert-info-link\"\n to={`${CHANGE_COVERAGE_WEB}/${policy.Number}`}\n >\n {t('clickHere')}\n </Link>\n );\n }\n\n if (action === CLICK_HERE_ROLLOVER) {\n return (\n <Link\n className=\"Policy-alert-info-link\"\n to={`${CHANGE_COVERAGE_WEB}/${getFuturePolicy()}`}\n >\n {t('clickHere')}\n </Link>\n );\n }\n\n return (\n <>\n <span className=\"Policy-alert-description\">\n {t('questions')} \n </span>\n\n <a\n className=\"Policy-alert-info-link\"\n href=\"https://figopetinsurance.com/contact-us-figo-pet-insurance\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {t('contactUs')}\n </a>\n </>\n );\n };\n\n const renderMessage = ({ action, message }) => {\n const clickHereText = ' {{click_here}}.';\n const notificationMessage = action === CLICK_HERE_RENEWAL\n || action === CLICK_HERE_ROLLOVER\n ? message.replace(clickHereText, '')\n : message;\n\n const highlightedMessage = highlightPrice(notificationMessage);\n\n return (\n <>\n {highlightedMessage} \n {getNotificationAction(action)}\n </>\n );\n };\n\n const renderPolicyNotifications = () => {\n if (store.policyNotifications\n && Array.isArray(store.policyNotifications)\n && store.policyNotifications.length) {\n const notifications = store.policyNotifications\n .map((notification, index) => {\n const { Action, Message, Title } = notification;\n\n return (\n <div\n key={`${Action}${Title.replace(/\\s/g, '')}`}\n className={'Policy-renewal-info-container '\n + `${Action === PAYMENT_INFO_ACTION\n ? 'Policy-renewal-container-red' : ''}\n ${index >= 1 ? ' Policy-alerts-separation' : ''}`}\n >\n <img\n alt=\"policy alert\"\n className=\"Policy-alert-icon\"\n src={Action === PAYMENT_INFO_ACTION\n ? policyOrangeAlertIcon : policyInfoIcon}\n />\n\n <div className=\"Policy-alert-content\">\n <span className=\"Policy-alert-info-title\">\n {Title}\n </span>\n\n <div className=\"Policy-alert-description-container\">\n <span className=\"Policy-alert-info-description\">\n {renderMessage({ action: Action, message: Message })}\n </span>\n </div>\n </div>\n </div>\n );\n });\n\n return (\n <div className=\"Policy-alerts-container\">\n {notifications}\n </div>\n );\n }\n\n return null;\n };\n\n return renderPolicyNotifications();\n};\n\nexport default PolicyNotifications;\n","export default __webpack_public_path__ + \"static/media/medical-records.5c4ea79a.svg\";","export default __webpack_public_path__ + \"static/media/paid-invoice.9a6e28ad.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { GenericModal } from '../common/petCloud/GenericModal';\n\nimport medicalRecords from '../../assets/claimbot/medical-records.svg';\nimport paidInvoice from '../../assets/claimbot/paid-invoice.svg';\n\nimport './FirstFigoClaimModal.css';\n\nconst FirstFigoClaimModal = ({\n onCancelPress = () => { },\n onContinuePress = () => { },\n}) => {\n const { t } = useTranslation('fileClaimbot');\n\n return (\n <GenericModal\n description={t('firstFigoClaimModal.subtitle')}\n handleOutClick={onCancelPress}\n onPrimaryClick={onContinuePress}\n onSecondaryClick={onCancelPress}\n primaryButtonText={t('firstFigoClaimModal.primaryButton')}\n secondaryButtonText={t('firstFigoClaimModal.secondaryButton')}\n show\n title={t('firstFigoClaimModal.title')}\n >\n <div className=\"First-figo-claim-modal-item\">\n <div className=\"First-figo-claim-modal-row\">\n <img alt=\"\" src={medicalRecords} />\n\n <span>{t('firstFigoClaimModal.medicalRecords.title')}</span>\n </div>\n\n <span>\n {t('firstFigoClaimModal.medicalRecords.content')}\n </span>\n </div>\n\n <div className=\"First-figo-claim-modal-item\">\n <div className=\"First-figo-claim-modal-row\">\n <img alt=\"\" src={paidInvoice} />\n\n <span>{t('firstFigoClaimModal.paidInvoice.title')}</span>\n </div>\n\n <span>{t('firstFigoClaimModal.paidInvoice.content')}</span>\n </div>\n </GenericModal>\n );\n};\n\nexport { FirstFigoClaimModal };\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport { useMixpanel } from '../../hooks';\nimport { EV3 } from '../../services/mixpanel';\n\nimport {\n checkIfHasPrimaryVet,\n loadClaimSteps,\n loadHasFigoClaims,\n loadNewClaimSteps,\n} from '../../actions';\nimport { FILE_CLAIMBOT } from '../navigation/routes.constants';\nimport { useNewClaimbot } from '../../services/utils';\nimport { MARKETING_CHANNEL_ID } from '../../theme/theme.constants';\n\nimport addIcon from '../../assets/policy/add-white.svg';\n\nimport { AddPrimaryVet } from './primaryVet/AddPrimaryVet';\nimport LoadingActionButtonMyPets from\n'../common/petCloud/LoadingActionButtonMyPets';\nimport { FirstFigoClaimModal } from './FirstFigoClaimModal';\n\nimport './FileClaimButton.css';\n\nconst FileClaimButton = ({\n className = '',\n}) => {\n const [showModal, setShowModal] = useState(false);\n const [\n firstFigoClaimModalVisible,\n setFirstFigoClaimModalVisible,\n ] = useState(false);\n\n const { t } = useTranslation('claims');\n\n const { sendEvent } = useMixpanel();\n\n const store = useSelector(({\n billingPayments,\n claims,\n claimsGeneric,\n myVets,\n personalInformation,\n policies,\n }) => ({\n billingPayments,\n claims,\n claimsGeneric,\n myVets,\n personalInformation,\n policies,\n }), shallowEqual);\n\n const {\n claims: { loadingClaimSteps, newClaimStarted },\n claimsGeneric: {\n claimSteps,\n claimStepsViewed,\n figoClaimValidations,\n loadingSteps,\n },\n myVets: {\n hasPrimaryVet,\n isSavingVet,\n addVetError,\n vetSaved,\n checkedPrimaryVet,\n checkingPrimaryVet,\n },\n } = store;\n\n const dispatch = useDispatch();\n const history = useHistory();\n\n const hasAnyFigoPolicy = useMemo(() => {\n if (!store.personalInformation.userInfo) {\n return false;\n }\n\n const companies = store.personalInformation.userInfo.Companies;\n\n return companies && !!companies\n .find((comp) => comp.Id === MARKETING_CHANNEL_ID.figo);\n }, [store.personalInformation.userInfo]);\n\n useEffect(() => {\n if (!checkedPrimaryVet && !checkingPrimaryVet) {\n dispatch(checkIfHasPrimaryVet());\n }\n\n if (hasAnyFigoPolicy) {\n dispatch(loadHasFigoClaims());\n }\n }, []);\n\n useEffect(() => {\n if (newClaimStarted) {\n history.push(FILE_CLAIMBOT);\n }\n }, [newClaimStarted]);\n\n useEffect(() => {\n if (useNewClaimbot && !claimStepsViewed && claimSteps) {\n history.push(FILE_CLAIMBOT);\n }\n }, [claimSteps, claimStepsViewed, useNewClaimbot]);\n\n const doLoadSteps = () => {\n if (useNewClaimbot) {\n dispatch(loadClaimSteps());\n } else {\n dispatch(loadNewClaimSteps());\n }\n };\n\n function handleNewClaim() {\n sendEvent(EV3());\n\n if (hasAnyFigoPolicy && !figoClaimValidations.hasClaimFigo) {\n setFirstFigoClaimModalVisible(true);\n return;\n }\n\n if (!hasPrimaryVet) {\n setShowModal(true);\n } else {\n doLoadSteps();\n }\n }\n\n function closePrimaryVetModal() {\n setShowModal(false);\n }\n\n const onCloseFirstFigoClaim = () => {\n setFirstFigoClaimModalVisible(false);\n };\n\n const onContinueFirstFigoClaimPress = () => {\n setFirstFigoClaimModalVisible(false);\n\n if (!hasPrimaryVet) {\n setShowModal(true);\n } else {\n doLoadSteps();\n }\n };\n\n useEffect(() => {\n if (showModal && !isSavingVet && !addVetError\n && vetSaved && hasPrimaryVet) {\n doLoadSteps();\n setShowModal(false);\n }\n }, [dispatch, showModal, isSavingVet, addVetError, hasPrimaryVet]);\n\n return (\n <>\n <LoadingActionButtonMyPets\n className={`File-claim-button-blue ${className}`}\n icon={addIcon}\n loading={loadingClaimSteps || loadingSteps}\n onClick={handleNewClaim}\n text={t('fileAClaim')}\n type=\"button\"\n />\n\n {showModal && <AddPrimaryVet onClose={closePrimaryVetModal} />}\n\n {firstFigoClaimModalVisible ? (\n <FirstFigoClaimModal\n onCancelPress={onCloseFirstFigoClaim}\n onContinuePress={onContinueFirstFigoClaimPress}\n />\n ) : null}\n </>\n );\n};\n\nexport { FileClaimButton };\n","export default __webpack_public_path__ + \"static/media/costco-insurance-agency.780ce8b5.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ModalContainer, {\n MODAL_CONTAINER_ANIMATION_TYPE,\n} from '../ModalContainer';\n\nimport costcoIcon\nfrom '../../../assets/brandProviderLogos/costco-insurance-agency.svg';\n\nimport './CostcoMemberQuoteModal.css';\n\nconst CostcoMemberQuoteModal = ({\n onContinueWithCostco = () => { },\n onContinueWithStandardQuote = () => { },\n onClosePress = () => { },\n visible = false,\n}) => {\n const { t } = useTranslation('multibrand');\n\n return (\n <ModalContainer\n animationType={MODAL_CONTAINER_ANIMATION_TYPE.OPACITY}\n cancelable\n handleOutClick={onClosePress}\n show={visible}\n >\n <div className=\"Costco-quote-modal-main-container\">\n <img alt=\"\" src={costcoIcon} />\n\n <h1>{t('costcoMemberQuoteModal.title')}</h1>\n\n <span>\n {t('costcoMemberQuoteModal.descriptionBegining')}\n\n <span>\n {t('costcoMemberQuoteModal.descriptionDiscount')}\n </span>\n\n {t('costcoMemberQuoteModal.descriptionEnd')}\n </span>\n\n <button\n className={'Costco-quote-modal-button Costco-quote-modal-button-blue'\n + ' Margin-top-24'}\n onClick={onContinueWithCostco}\n type=\"button\"\n >\n <span>\n {t('costcoMemberQuoteModal.withCostcoDiscount')}\n </span>\n </button>\n\n <button\n className={'Costco-quote-modal-button Costco-quote-modal-button-white'\n + ' Margin-top-8'}\n onClick={onContinueWithStandardQuote}\n type=\"button\"\n >\n <span>\n {t('costcoMemberQuoteModal.withStandardQuote')}\n </span>\n </button>\n </div>\n </ModalContainer>\n );\n};\n\nexport { CostcoMemberQuoteModal };\n","export default __webpack_public_path__ + \"static/media/credit-card.f6a2a312.svg\";","export default __webpack_public_path__ + \"static/media/saving-bank.47a29b2e.svg\";","import React from 'react';\nimport Lottie from 'react-lottie';\nimport loadingAnimation from '../../../assets/loading-spinner.json';\nimport loadingBlue from '../../../assets/lottieFiles/loading-blue.json';\nimport successAnimation from '../../../assets/loading-check.json';\nimport './LoadingActionButton.css';\n\nconst loadingAnimationOptions = (blueSpinner) => ({\n animationData: blueSpinner ? loadingBlue : loadingAnimation,\n autoplay: true,\n loop: true,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n});\n\nconst successAnimationOptions = {\n animationData: successAnimation,\n autoplay: true,\n loop: false,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n};\n\nconst LoadingActionButton = ({\n children = null,\n className = '',\n disabled = false,\n height = 34,\n id,\n loading = false,\n blueSpinner = false,\n onClick = () => { },\n onSuccessAnimationEnd = () => { },\n size = '',\n submit = true,\n success = false,\n text = '',\n textStyle = '',\n width = 34,\n ...rest\n}) => {\n function handleAnimationEnd() {\n if (onSuccessAnimationEnd) {\n onSuccessAnimationEnd();\n }\n }\n\n function renderButtonContent() {\n if (loading) {\n return (\n <Lottie\n height={height}\n options={loadingAnimationOptions(blueSpinner)}\n width={width}\n />\n );\n }\n\n if (!loading && success) {\n return (\n <Lottie\n eventListeners={[{\n callback: handleAnimationEnd,\n eventName: 'complete',\n }]}\n height={height}\n options={successAnimationOptions}\n width={width}\n />\n );\n }\n\n if (!loading && children) {\n return children;\n }\n\n return (\n <span className={textStyle || 'Loading-button-text'}>\n {text}\n </span>\n );\n }\n\n function handleOnClick(event) {\n if (onClick && !loading && !success) {\n onClick(event);\n }\n }\n\n return (\n <button\n className={`${className || 'Loading-button-container'}`}\n disabled={disabled}\n id={id}\n onClick={handleOnClick}\n size={size}\n type={submit ? 'submit' : 'button'}\n {...rest}\n >\n {renderButtonContent()}\n </button>\n );\n};\n\nexport default LoadingActionButton;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport creditCard from '../../../assets/billingPayments/credit-card.svg';\nimport savingBank from '../../../assets/billingPayments/saving-bank.svg';\nimport LoadingActionButton from '../../common/petCloud/LoadingActionButton';\nimport addIcon from '../../../assets/policy/add-white.svg';\n\nconst CreditCard = ({\n cardNumber = '',\n expirationDate = '',\n t,\n}) => (\n <div className=\"Payment-method__card\">\n <img alt=\"credit-card\" src={creditCard} />\n\n <span>{t('cardEnding', { cardNumber })}</span>\n\n <span>{t('expirationDate', {\n expirationDate,\n interpolation: {\n escapeValue: false,\n },\n })}\n </span>\n </div>\n);\n\nconst SavingBank = ({\n bankNumber = '',\n t,\n}) => (\n <div className=\"Payment-method__card\">\n <img alt=\"saving-bank\" src={savingBank} />\n\n <span>{t('bankEnding', { bankNumber })}</span>\n </div>\n);\n\nconst AddPaymentMethod = ({\n isLoading = false,\n isRedirectAvailable = false,\n onAddPaymentMethod = () => { },\n t,\n}) => {\n const handlePaymentMethod = () => {\n onAddPaymentMethod();\n };\n\n return (\n <div className=\"Payment-method__card\">\n <span className=\"Payment-method__text\">\n {`${t('noPaymentMethodSet')} ${isRedirectAvailable\n ? t('addMethod')\n : ''}`}\n </span>\n\n {isRedirectAvailable && (\n <LoadingActionButton\n className=\"Payment-method__add-button\"\n loading={isLoading}\n onClick={handlePaymentMethod}\n type=\"button\"\n >\n <img alt=\"\" src={addIcon} />\n\n <span>{t('addPaymentMethod')}</span>\n </LoadingActionButton>\n )}\n </div>\n );\n};\n\nexport const PaymentMethodCard = ({\n expirationDate = '',\n isLoading = false,\n isRedirectAvailable = false,\n lastNumbers = '',\n methodType = '',\n onAddPaymentMethod = () => { },\n}) => {\n const { t } = useTranslation('insuranceScreen');\n\n const paymentMethods = {\n creditCard: (\n <CreditCard\n cardNumber={lastNumbers}\n expirationDate={expirationDate}\n t={t}\n />\n ),\n savingBank: (\n <SavingBank\n bankNumber={lastNumbers}\n t={t}\n />\n ),\n };\n\n return paymentMethods[methodType] || (\n <AddPaymentMethod\n isLoading={isLoading}\n isRedirectAvailable={isRedirectAvailable}\n onAddPaymentMethod={onAddPaymentMethod}\n t={t}\n />\n );\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { PAYMENT_PLANS } from '../../../constants';\n\nimport './BillingInformation.css';\n\nconst RowInformation = ({\n title = '',\n description = '',\n containerClassName = '',\n}) => (\n <div className={`Billing-payments-information-row ${containerClassName}`}>\n <h5 className=\"Billing-payments-information-row-title\">\n {title}\n </h5>\n\n <span className=\"Billing-payments-information-row-description\">\n {description}\n </span>\n </div>\n);\n\nconst BillingInformation = ({\n paymentPlan = 0,\n name = '',\n nextBillingDate = '',\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const isMonthly = paymentPlan === PAYMENT_PLANS.monthly;\n\n return (\n <div className=\"Billing-payments-information-main-container\">\n <h2 className=\"Billing-payments-information-title\">\n {t('billingInformation.title')}\n </h2>\n\n {name ? (\n <RowInformation\n containerClassName=\"Margin-top-16\"\n description={name}\n title={t('billingInformation.ownerName')}\n />\n ) : null}\n\n <div\n className={'Billing-payments-information-row '\n + 'Billing-payments-information-double-row'}\n >\n <RowInformation\n description={isMonthly ? t('billingCycleTypes.monthly')\n : t('billingCycleTypes.annual')}\n title={t('billingInformation.billingCycle')}\n />\n\n <RowInformation\n description={nextBillingDate}\n title={t('billingInformation.nextBillingDate')}\n />\n </div>\n </div>\n );\n};\n\nexport { BillingInformation };\n","import React from 'react';\n\nimport './BillingPremiumCostRow.css';\n\nconst BillingPremiumCostRow = ({\n description = '',\n descriptionClassName = '',\n styleContainer = '',\n title = '',\n titleClassName = '',\n}) => (\n <div className={`Billing-premium-cost-row ${styleContainer}`}>\n <span className={`Billing-premium-cost-row-title ${titleClassName}`}>\n {title}\n </span>\n\n <span\n className={`Billing-premium-cost-row-description ${descriptionClassName}`}\n >\n {description}\n </span>\n </div>\n);\n\nexport { BillingPremiumCostRow };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { BillingPremiumCostRow } from './BillingPremiumCostRow';\n\nimport { PAYMENT_PLANS } from '../../../constants';\nimport { currencyFormat } from '../../../services/utils';\n\nimport './BillingPremiumCostFigo.css';\n\nconst BillingPremiumCostFigo = ({\n annualTotal = 0,\n isGPI = false,\n monthlyInstallmentFee = '',\n monthlyPremiumCost = 0,\n monthlyTotal = 0,\n paymentPlan = 0,\n}) => {\n const isMonthlyPlan = paymentPlan === PAYMENT_PLANS.monthly;\n const { t } = useTranslation('insuranceScreen');\n\n if (isGPI) {\n return null;\n }\n\n if (isMonthlyPlan) {\n return (\n <div className=\"Billing-premium-cost-figo-monthly-container\">\n <h1 className=\"Billing-premium-cost-figo-title\">\n {t('billingInformation.monthlyPremiumCost')}\n </h1>\n\n <BillingPremiumCostRow\n description={currencyFormat({ value: monthlyPremiumCost })}\n styleContainer=\"Margin-top-16\"\n title={t('billingInformation.premiumCosts')}\n />\n\n {monthlyInstallmentFee ? (\n <BillingPremiumCostRow\n description={currencyFormat({ value: monthlyInstallmentFee })}\n styleContainer=\"Margin-top-12\"\n title={t('billingInformation.monthlyInstallmentFee')}\n />\n ) : null}\n\n <div className=\"Billing-premium-cost-figo-divider Margin-top-12\" />\n\n <BillingPremiumCostRow\n description={currencyFormat({ value: monthlyTotal })}\n descriptionClassName=\"Billing-premium-cost-figo-title\"\n styleContainer=\"Margin-top-16\"\n title={t('billingInformation.monthlyTotal')}\n />\n </div>\n );\n }\n\n return (\n <div className=\"Billing-premium-cost-figo-annual-container\">\n <h1>{t('billingInformation.annualTotal')}</h1>\n\n <span>{currencyFormat({ value: annualTotal })}</span>\n </div>\n );\n};\n\nexport { BillingPremiumCostFigo };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { BillingPremiumCostRow } from './BillingPremiumCostRow';\n\nimport { PAYMENT_PLANS } from '../../../constants';\nimport { currencyFormat } from '../../../services/utils';\n\nimport './BillingPremiumCostOrca.css';\n\nconst BillingPremiumCostOrca = ({\n bottomInfo = [],\n paymentPlan = 0,\n topInfo = [],\n totalPayAmount = 0,\n}) => {\n const isMonthlyPlan = paymentPlan === PAYMENT_PLANS.monthly;\n const { t } = useTranslation('insuranceScreen');\n\n return (\n <div className=\"Billing-premium-cost-orca-monthly-container\">\n <h1 className=\"Billing-premium-cost-orca-title\">\n {isMonthlyPlan ? t('billingInformation.monthlyPremiumCost')\n : t('billingInformation.annualPremiumCost')}\n </h1>\n\n <div className=\"Billing-premium-cost-orca-top-container\">\n {topInfo.map((item) => {\n if (!item || !item.Amount) {\n return null;\n }\n\n return (\n <BillingPremiumCostRow\n key={`${item.Name} - ${item.Value}`}\n description={currencyFormat({ value: item.Amount })}\n descriptionClassName=\"Billing-premium-cost-orca-light-text\"\n title={item.Name}\n titleClassName=\"Billing-premium-cost-orca-light-text\"\n />\n );\n })}\n </div>\n\n {isMonthlyPlan && bottomInfo.length ? (\n <div className=\"Billing-premium-cost-orca-bottom-container\">\n <div\n className={'Billing-premium-cost-orca-divider-dashed '\n + 'Margin-top-16 Margin-bottom-8'}\n />\n\n {bottomInfo.map((item) => {\n if (!item || !item.Amount) {\n return null;\n }\n\n return (\n <BillingPremiumCostRow\n key={`${item.Name} - ${item.Value}`}\n description={currencyFormat({ value: item.Amount })}\n title={item.Name}\n />\n );\n })}\n </div>\n\n ) : null}\n\n <div className=\"Billing-premium-cost-orca-divider Margin-top-12\" />\n\n <BillingPremiumCostRow\n description={currencyFormat({ value: totalPayAmount })}\n styleContainer=\"Margin-top-16\"\n title={isMonthlyPlan ? t('billingInformation.monthlyTotal')\n : t('billingInformation.annualTotal')}\n />\n </div>\n );\n};\n\nexport { BillingPremiumCostOrca };\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\n\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { PaymentMethodCard } from './PaymentMethodCard';\nimport { ViewMoreButton } from '../ViewMoreButton';\nimport { BillingInformation } from './BillingInformation';\nimport { BillingPremiumCostFigo } from './BillingPremiumCostFigo';\nimport { BillingPremiumCostOrca } from './BillingPremiumCostOrca';\n\nimport {\n PAYMENT_METHOD_NAMES,\n MULTIBRAND_POLICY_STATUS,\n PAYMENT_PLANS_BY_NAME,\n PAYMENT_PLANS,\n} from '../../../constants';\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\nimport {\n useBillingAndPayments,\n} from '../../myAccount/BillingAndPayments/hooks/useBillingAndPayments';\n\nimport './BillingAndPayments.css';\n\nexport const BillingAndPayments = ({\n company = MARKETING_CHANNEL_ID.figo,\n isGPI = false,\n selectedPolicy = {},\n}) => {\n const store = useSelector(({\n billingPayments,\n policies,\n }) => ({ billingPayments, policies }), shallowEqual);\n const { t } = useTranslation('insuranceScreen');\n\n const {\n MarketChannelId,\n NextBillingDate,\n PolicyDisplayNumber,\n StatusDisplay,\n } = selectedPolicy || {};\n\n const billingInformationFigo = useMemo(() => {\n if (!selectedPolicy) {\n return {\n billingName: '',\n paymentPlan: 0,\n };\n }\n\n const policyFound = store.policies.allPolicies\n .find((policy) => policy.Policy.Number === PolicyDisplayNumber) || {};\n\n let billingName = '';\n const { billingDetails } = store.billingPayments;\n\n if (billingDetails && (billingDetails.CCFirstName\n || billingDetails.CCLastName)) {\n billingName = `${billingDetails.CCFirstName} `\n + `${billingDetails.CCLastName}`;\n }\n\n return {\n ...policyFound.BillingInformation || {},\n billingName,\n paymentPlan: policyFound.Policy?.PaymentPlan,\n };\n }, [store.policies, PolicyDisplayNumber, store.billingPayments]);\n\n const billingInformationOrca = useMemo(() => {\n if (!selectedPolicy) {\n return {\n billingName: '',\n bottomInfo: [],\n paymentPlan: 0,\n topInfo: [],\n totalPayAmount: 0,\n };\n }\n\n const coverages = selectedPolicy.PetCoveragesByPet || {};\n // matches integer value from Figo enum\n const paymentPlan = selectedPolicy?.BillingCycle === PAYMENT_PLANS_BY_NAME\n .monthly ? PAYMENT_PLANS.monthly : PAYMENT_PLANS.annual;\n\n let billingName = '';\n const { PaymentOption } = selectedPolicy;\n\n if (PaymentOption && (PaymentOption.FirstNameOnCard\n || PaymentOption.LastNameOnCard)) {\n billingName = `${PaymentOption.FirstNameOnCard} `\n + `${PaymentOption.LastNameOnCard}`;\n }\n\n return {\n billingName,\n bottomInfo: [{\n Amount: coverages.PaymentBreakdown?.TotalPremiumCost,\n Name: t('billingInformation.premiumCosts'),\n },\n ...(selectedPolicy.CostLineItems || [])],\n paymentPlan,\n topInfo: coverages.CostLineItems || [],\n totalPayAmount: coverages.PaymentBreakdown?.TotalPayAmount,\n };\n }, [selectedPolicy, t]);\n\n const {\n ExpirationMonth,\n ExpirationYear,\n LastFour,\n PaymentMethodName,\n } = selectedPolicy?.PaymentOption || {};\n\n const hasPaymentMethod = PAYMENT_METHOD_NAMES.includes(PaymentMethodName);\n const isRedirectAvailable = useMemo(() => (\n StatusDisplay === MULTIBRAND_POLICY_STATUS.active\n || (StatusDisplay === MULTIBRAND_POLICY_STATUS.future\n && MarketChannelId === MARKETING_CHANNEL_ID.figo\n )), [StatusDisplay, MarketChannelId]);\n\n const {\n onOpenPaymentMethod,\n } = useBillingAndPayments({ policyInfo: selectedPolicy || {} });\n\n // :skull:\n const paymentMethodCardCases = {\n [PAYMENT_METHOD_NAMES[0]]: {\n lastNumbers: LastFour,\n methodType: 'savingBank',\n },\n [PAYMENT_METHOD_NAMES[1]]: {\n expirationDate: ExpirationMonth && ExpirationYear\n ? `${ExpirationMonth.toString().padStart(2, '0')}/${ExpirationYear}`\n : '',\n lastNumbers: LastFour,\n methodType: 'creditCard',\n },\n default: {\n isRedirectAvailable,\n methodType: 'addPaymentMethod',\n onAddPaymentMethod: onOpenPaymentMethod,\n },\n };\n\n const paymentMethodCardProps = paymentMethodCardCases[PaymentMethodName]\n || paymentMethodCardCases.default;\n\n if (selectedPolicy?.StatusDisplay === MULTIBRAND_POLICY_STATUS.cancelled\n || selectedPolicy?.StatusDisplay === MULTIBRAND_POLICY_STATUS.past) {\n return null;\n }\n\n return (\n <div className=\"Billing-payments__container\">\n <div className=\"Billing-payments__header\">\n <h3 className=\"Billing-payments__title\">{t('billingAndPayments')}</h3>\n\n {hasPaymentMethod && isRedirectAvailable && (\n <ViewMoreButton\n onClick={onOpenPaymentMethod}\n text={t('viewBillingDetails')}\n />\n )}\n </div>\n\n {hasPaymentMethod && (\n <div className=\"Billing-payments__body\">\n <div className=\"Billing-payments-general\">\n {company === MARKETING_CHANNEL_ID.figo ? (\n <BillingPremiumCostFigo\n annualTotal={billingInformationFigo.PayAmount}\n isGPI={isGPI}\n monthlyInstallmentFee={billingInformationFigo.InstallmentFee}\n monthlyPremiumCost={billingInformationFigo.PayAmount}\n monthlyTotal={billingInformationFigo.TotalPayAmount}\n paymentPlan={billingInformationFigo.paymentPlan}\n />\n ) : (\n <BillingPremiumCostOrca\n bottomInfo={billingInformationOrca.bottomInfo}\n paymentPlan={billingInformationOrca.paymentPlan}\n topInfo={billingInformationOrca.topInfo}\n totalPayAmount={billingInformationOrca.totalPayAmount}\n />\n )}\n\n <BillingInformation\n name={company === MARKETING_CHANNEL_ID.figo\n ? billingInformationFigo.billingName\n : billingInformationOrca.billingName}\n nextBillingDate={NextBillingDate ? `${moment(NextBillingDate,\n 'YYYY-MM-DDTHH:mm:ss.SSSZ')\n .format('MM/D/YYYY')}` : ''}\n paymentPlan={company === MARKETING_CHANNEL_ID.figo\n ? billingInformationFigo.paymentPlan\n : billingInformationOrca.paymentPlan}\n />\n </div>\n\n {company !== MARKETING_CHANNEL_ID.figo && (\n // TODO: Add this block when the Monthly Premiums data is ready\n <></>\n )}\n </div>\n )}\n\n <div className=\"Billing-payments__footer\">\n <h5>{t('paymentMethod')}</h5>\n\n <PaymentMethodCard {...paymentMethodCardProps} />\n </div>\n </div>\n );\n};\n","import { useCallback, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { MY_ACCOUNT, WEB_VIEW_TYPES } from '../../../../constants';\nimport { MY_ACCOUNT as MY_ACCOUNT_ROUTE }\nfrom '../../../navigation/routes.constants.js';\nimport { MARKETING_CHANNEL_ID } from '../../../../theme/theme.constants.js';\nimport { useWebviewMultibrand }\nfrom '../../../../hooks/useWebViewMultibrand.js';\n\nconst useBillingAndPayments = ({\n policyInfo = {},\n}) => {\n const { t } = useTranslation('myAccount');\n const history = useHistory();\n const {\n getWebView,\n title,\n url,\n } = useWebviewMultibrand();\n\n const onOpenPaymentMethod = useCallback(() => {\n if (policyInfo.MarketChannelId !== MARKETING_CHANNEL_ID.figo) {\n getWebView({\n companyId: policyInfo.MarketChannelId,\n policyId: policyInfo.Id,\n policyNumber: policyInfo.PolicyDisplayNumber,\n webViewType: WEB_VIEW_TYPES.billingAndPayment,\n });\n return;\n }\n\n history.push({\n pathname: MY_ACCOUNT_ROUTE,\n state: {\n breadCrumbId: MY_ACCOUNT.billingAndPaymentDetails,\n breadCrumbName: t('breadCrumbs.breadCrumbPolicy', {\n ns: 'myAccount',\n policyNumber: policyInfo.PolicyDisplayNumber,\n }),\n breadCrumbNameExtraData: {\n marketingChannelId: policyInfo.MarketChannelId,\n policyNumber: policyInfo.PolicyDisplayNumber,\n },\n },\n });\n }, [policyInfo, url]);\n\n useEffect(() => {\n // Go to Billing and payments for nonfigo policies\n if (url && policyInfo\n && policyInfo.MarketChannelId !== MARKETING_CHANNEL_ID.figo) {\n history.push({\n pathname: MY_ACCOUNT_ROUTE,\n state: {\n breadCrumbId: MY_ACCOUNT.billingAndPaymentDetails,\n breadCrumbName: t('breadCrumbs.breadCrumbPolicy', {\n ns: 'myAccount',\n policyNumber: policyInfo.PolicyDisplayNumber,\n }),\n breadCrumbNameExtraData: {\n marketingChannelId: policyInfo.MarketChannelId,\n title,\n url,\n },\n },\n });\n }\n }, [url]);\n\n return {\n onOpenPaymentMethod,\n };\n};\n\nexport { useBillingAndPayments };\n","export default __webpack_public_path__ + \"static/media/cash-payment-sign.4ae4ef2a.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport check from '../../../assets/billingPayments/cash-payment-sign.svg';\nimport savingBank from '../../../assets/billingPayments/saving-bank.svg';\nimport LoadingActionButton from '../../common/petCloud/LoadingActionButton';\nimport addIcon from '../../../assets/policy/add-white.svg';\n\nconst Check = ({\n addressCheck = '',\n t,\n}) => (\n <div className=\"Reimbursement-method__card\">\n <img alt=\"check\" src={check} />\n\n <span>{t('checkSent', { addressCheck })}</span>\n </div>\n);\n\nconst DirectDeposit = ({\n bankNumber = '',\n t,\n}) => (\n <div className=\"Reimbursement-method__card\">\n <img alt=\"saving-bank\" src={savingBank} />\n\n <span>{t('directDepositEding', { bankNumber })}</span>\n </div>\n);\n\nconst AddReimbursementMethod = ({\n isLoading = false,\n isRedirectAvailable = false,\n onReimbursementMethod = () => { },\n t,\n}) => {\n const handleAddReimbursementMethod = () => {\n onReimbursementMethod();\n };\n\n return (\n <div className=\"Reimbursement-method__card\">\n <span className=\"Reimbursement-method__text\">\n {`${t('noReimbursementMethod')} ${isRedirectAvailable\n ? t('addMethod')\n : ''}`}\n </span>\n\n {isRedirectAvailable && (\n <LoadingActionButton\n className=\"Reimbursement-method__add-button\"\n loading={isLoading}\n onClick={handleAddReimbursementMethod}\n type=\"button\"\n >\n <img alt=\"\" src={addIcon} />\n\n <span>{t('addReimbursementMethod')}</span>\n </LoadingActionButton>\n )}\n </div>\n );\n};\n\nexport const ReimbursementMethodCard = ({\n addressCheck = '',\n isLoading = false,\n isRedirectAvailable = false,\n lastNumbers = '',\n methodType = '',\n onReimbursementMethod = () => { },\n}) => {\n const { t } = useTranslation('insuranceScreen');\n\n const reimbursementMethods = {\n check: (\n <Check\n addressCheck={addressCheck}\n t={t}\n />\n ),\n directDeposit: (\n <DirectDeposit\n bankNumber={lastNumbers}\n t={t}\n />\n ),\n };\n\n return reimbursementMethods[methodType] || (\n <AddReimbursementMethod\n isLoading={isLoading}\n isRedirectAvailable={isRedirectAvailable}\n onReimbursementMethod={onReimbursementMethod}\n t={t}\n />\n );\n};\n","import { useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { getAllBrandsData, loadReimbursementMethod } from '../../../../actions';\nimport { MY_ACCOUNT } from '../../../../constants';\nimport { formatDate } from '../../../../services/utils';\nimport { MY_ACCOUNT as MY_ACCOUNT_ROUTE }\nfrom '../../../navigation/routes.constants.js';\nimport { MARKETING_CHANNEL_ID } from '../../../../theme/theme.constants.js';\n\nconst useReimbursementScreen = ({ breadCrumbs }) => {\n const { t } = useTranslation('myAccount');\n const dispatch = useDispatch();\n const history = useHistory();\n\n const store = useSelector(({ billingPayments, personalInformation }) => ({\n billingPayments,\n personalInformation,\n }), shallowEqual);\n const { billingPayments: {\n allBrandsData,\n loadingAllBrandsData,\n reimbursementMethod,\n }, personalInformation } = store;\n\n useEffect(() => {\n dispatch(getAllBrandsData());\n }, []);\n\n const reimbursementOption = useMemo(() => {\n if (!reimbursementMethod) {\n return {\n AccountNumberLastFour: '',\n Details: {},\n Id: '',\n PreferredReimbursementMethod: '',\n RoutingNumberLastFour: '',\n };\n }\n\n const {\n AccountNumber,\n PreferredReimbursementMethod,\n RoutingNumber,\n } = reimbursementMethod;\n\n return {\n AccountNumberLastFour: AccountNumber\n ? AccountNumber.substr(AccountNumber?.length - 4) : '',\n Details: {\n AddressLine1: `${personalInformation.address1},`,\n AddressLine2: personalInformation.address2\n ? `${personalInformation.address2},` : '',\n City: personalInformation.city,\n State: personalInformation.state,\n Zipcode: personalInformation.zipCode,\n },\n Id: PreferredReimbursementMethod,\n PreferredReimbursementMethod,\n RoutingNumberLastFour: RoutingNumber\n ? RoutingNumber?.substr(RoutingNumber?.length - 4) : '',\n };\n }, [personalInformation, reimbursementMethod]);\n\n const onClickReimbursementCard = useCallback(({\n policyInfo,\n policyNumber,\n }) => {\n if (breadCrumbs) {\n breadCrumbs.onAddBreadcrumbItem({\n extraData: { policyInfo },\n id: MY_ACCOUNT.reimbursementDetails,\n name: t('breadCrumbs.breadCrumbPolicy', {\n policyNumber,\n }),\n });\n }\n\n dispatch(loadReimbursementMethod(policyNumber));\n }, [breadCrumbs]);\n\n const onOpenReimbursementMethod = useCallback(({\n policyInfo,\n }) => {\n const startDate = formatDate(policyInfo.PolicyStartDate);\n const endDate = formatDate(policyInfo.PolicyEndDate);\n const policyPets = allBrandsData?.find((policy) => policy.PolicyNumber\n === policyInfo.PolicyDisplayNumber)?.Pets || [];\n\n const data = {\n policyInfo: {\n MarketingChannelId: policyInfo.MarketChannelId,\n Pets: policyPets,\n PolicyNumber: policyInfo.PolicyDisplayNumber,\n PolicyStatus: policyInfo.StatusDisplay,\n PolicyTerm: `${startDate} - ${endDate}`,\n },\n };\n\n if (policyInfo.MarketChannelId !== MARKETING_CHANNEL_ID.figo) {\n data.policyInfo.PolicyData = policyInfo;\n }\n\n dispatch(loadReimbursementMethod(policyInfo.PolicyDisplayNumber));\n\n history.push({\n pathname: MY_ACCOUNT_ROUTE,\n state: {\n breadCrumbId: MY_ACCOUNT.reimbursementDetails,\n breadCrumbName: t('breadCrumbs.breadCrumbPolicy', {\n ns: 'myAccount',\n policyNumber: policyInfo.PolicyDisplayNumber,\n }),\n breadCrumbNameExtraData: data,\n },\n });\n }, []);\n\n return {\n allBrandsData,\n loadingAllBrandsData,\n onClickReimbursementCard,\n onOpenReimbursementMethod,\n reimbursementOption,\n };\n};\n\nexport { useReimbursementScreen };\n","import './Reimbursement.css';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ReimbursementMethodCard } from './ReimbursementMethodCard';\nimport {\n MULTIBRAND_POLICY_STATUS,\n REIMBURSEMENT_METHODS,\n} from '../../../constants';\nimport { useReimbursementScreen }\nfrom '../../myAccount/reimbursement/hooks/useReimbursementScreen';\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\nimport { ViewMoreButton } from '../ViewMoreButton';\n\nexport const Reimbursement = ({\n selectedPolicy = {},\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const { onOpenReimbursementMethod } =\n useReimbursementScreen({ breadCrumbs: null });\n\n const {\n MarketChannelId,\n ReimbursementOption: {\n AccountNumberLastFour,\n CheckAddress,\n ReimbursementMethodId,\n },\n StatusDisplay,\n } = selectedPolicy;\n\n const hasReimbursementMethod = ReimbursementMethodId\n !== REIMBURSEMENT_METHODS.none;\n\n const isRedirectAvailable =\n (StatusDisplay === MULTIBRAND_POLICY_STATUS.active\n || (StatusDisplay === MULTIBRAND_POLICY_STATUS.future\n && MarketChannelId === MARKETING_CHANNEL_ID.figo));\n\n const handleReimbursementMethod = () => {\n onOpenReimbursementMethod({\n policyInfo: selectedPolicy,\n });\n };\n\n const reimbursementMethodCardCases = {\n [REIMBURSEMENT_METHODS.check]: {\n addressCheck: CheckAddress,\n methodType: 'check',\n },\n [REIMBURSEMENT_METHODS.deposit]: {\n lastNumbers:\n AccountNumberLastFour?.substr(AccountNumberLastFour?.length - 4) || '',\n methodType: 'directDeposit',\n },\n [REIMBURSEMENT_METHODS.none]: {\n isRedirectAvailable,\n methodType: 'addReimbursementMethod',\n onReimbursementMethod:\n handleReimbursementMethod,\n },\n };\n\n const reimbursementMethodCardProps =\n reimbursementMethodCardCases[ReimbursementMethodId]\n || reimbursementMethodCardCases[REIMBURSEMENT_METHODS.none];\n\n return (\n <div className=\"Reimbursement__container\">\n <div className=\"Reimbursement__header\">\n <div>\n <h3 className=\"Reimbursement__title\">{t('reimbursement')}</h3>\n\n <div className=\"Reimbursement__text\">{t('reimbursementText')}</div>\n </div>\n\n {hasReimbursementMethod && isRedirectAvailable && (\n <ViewMoreButton\n onClick={handleReimbursementMethod}\n text={t('reimbursementEdit')}\n />\n )}\n </div>\n\n <div className=\"Reimbursement-content\">\n <h5>{t('reimbursementMethod')}</h5>\n\n <ReimbursementMethodCard {...reimbursementMethodCardProps} />\n </div>\n </div>\n );\n};\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport { WEBVIEW_API_TOKEN } from '../../../services/constants';\nimport { validateExpirationToken } from '../../../services/utils';\nimport { useB2CInfo } from '../../../hooks';\nimport { getData } from '../../../services/api';\n\n/** iFrame with refresh getToken b2c functionality */\nexport const Iframe = ({ allowFullScreen = false, className, src, title }) => {\n const iFrameRef = useRef(null);\n const { getProxyToken } = useB2CInfo();\n\n const getToken = useCallback(async (forceRefresh) => {\n try {\n let token = getData(WEBVIEW_API_TOKEN);\n\n const isExpiredValidToken = validateExpirationToken(token);\n\n if (forceRefresh || isExpiredValidToken) {\n token = await getProxyToken();\n }\n\n iFrameRef.current.contentWindow.postMessage({\n apis: [\n {\n api: 'proxy',\n token,\n },\n ],\n requestType: 'token',\n });\n } catch (error) {\n iFrameRef.current.contentWindow.postMessage({\n error: error?.message || '',\n requestType: 'token',\n });\n }\n }, [getProxyToken]);\n\n const onMessage = useCallback(({ data }) => {\n if (!src) {\n return;\n }\n\n if (data?.id === 'policy') {\n getToken(data?.forceRefresh || false);\n }\n }, [src]);\n\n useEffect(() => {\n window.addEventListener('message', onMessage);\n\n return () => {\n window.removeEventListener('message', onMessage);\n };\n }, [onMessage]);\n\n return (\n <iframe\n ref={iFrameRef}\n allowFullScreen={allowFullScreen}\n className={className || ''}\n src={src}\n title={title}\n />\n );\n};\n","import './ChangeCoverageFrame.css';\nimport React, { useEffect, useLayoutEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n PetCloudBreadcrumbs,\n} from '../../../myPets/common/PetCloudBreadcrumbs';\nimport { POST_MESSAGE_TYPES, WEB_VIEW_TYPES } from '../../../../constants';\nimport { useWebviewMultibrand } from '../../../../hooks';\nimport { Iframe } from '../../../common/iframe/Iframe';\n\nconst HTTPS_KEY = 'https://';\n\nexport const ChangeCoverageFrame = ({\n onClose = () => { },\n petId = '',\n policy = {},\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const {\n getWebView,\n isLoading,\n title,\n url,\n } = useWebviewMultibrand();\n\n const { Id, MarketChannelId, PolicyDisplayNumber } = policy;\n\n const onMessage = React.useCallback(({ data, origin }) => {\n if (!url) {\n return;\n }\n\n const [webViewOrigin] = url.replace(HTTPS_KEY, '').split('/');\n const domain = `${HTTPS_KEY}${webViewOrigin}`;\n const validPostMessage = data === POST_MESSAGE_TYPES.CLOSE_PAGE\n || data === POST_MESSAGE_TYPES.POLICY_UPDATED;\n\n if (origin === domain && validPostMessage\n && typeof onClose === 'function') {\n onClose();\n }\n }, [url]);\n\n useEffect(() => {\n const params = {\n companyId: MarketChannelId,\n petId,\n policyId: Id,\n policyNumber: PolicyDisplayNumber,\n webViewType: WEB_VIEW_TYPES.changeCoverage,\n };\n\n if (getWebView) {\n getWebView(params);\n }\n }, [getWebView, petId, policy]);\n\n useLayoutEffect(() => {\n window.removeEventListener('message', onMessage);\n window.addEventListener('message', onMessage);\n\n return () => {\n window.removeEventListener('message', onMessage);\n };\n }, [onMessage]);\n\n return (\n <div\n className={`Change-coverage-frame__container Colors-${MarketChannelId}`}\n >\n <PetCloudBreadcrumbs\n activeRoute={t('changeCoverage')}\n rootRoute={t('title')}\n />\n\n <div className=\"Change-coverage-frame__page-title\">\n <h1>{t('changeCoverage')}</h1>\n </div>\n\n <div className=\"Coverage-overview-iframe\">\n {!isLoading && (\n <Iframe allowFullScreen src={url} title={title} />\n )}\n </div>\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport closeIcon from '../../../assets/close-button.svg';\nimport arrowIcon from '../../../assets/back-arrow.svg';\nimport { getThemeLogoById } from '../../../theme/theme.utils';\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\n\nimport ModalContainer, {\n MODAL_CONTAINER_ANIMATION_TYPE,\n} from '../ModalContainer';\n\nimport './ProvidersSelector.css';\n\nconst ProviderListItem = ({\n marketingChannelId = MARKETING_CHANNEL_ID.figo,\n onClick = () => { },\n}) => {\n const logo = useMemo(() => {\n const theme = getThemeLogoById(marketingChannelId);\n return theme.dark;\n }, [marketingChannelId]);\n\n const handleClick = (providerId) => () => {\n onClick(providerId);\n };\n\n return (\n <li>\n <button onClick={handleClick(marketingChannelId)} type=\"button\">\n <img\n alt=\"\"\n className={`Provider-selector-${marketingChannelId}`}\n src={logo}\n />\n\n <img alt=\"\" className=\"Provider-selector-go-icon\" src={arrowIcon} />\n </button>\n </li>\n );\n};\n\nexport const ProvidersSelector = ({\n onClose = () => { },\n onProviderSelected = () => { },\n show = false,\n}) => {\n const { t } = useTranslation('common');\n const store = useSelector(({ orcaInsurance }) => ({\n ...orcaInsurance,\n }), shallowEqual);\n\n const webviewsData = useMemo(() => {\n const { getQuoteValidation } = store;\n if (getQuoteValidation && getQuoteValidation.webviewsData) {\n return getQuoteValidation.webviewsData;\n }\n\n return [];\n }, [store.getQuoteValidation]);\n\n return (\n <ModalContainer\n animationType={MODAL_CONTAINER_ANIMATION_TYPE.OPACITY}\n cancelable\n contentStyle=\"Provider-selector\"\n customCloseIcon={closeIcon}\n handleOutClick={onClose}\n show={show}\n >\n <h2 className=\"Provider-selector-title\">{t('providerSelector.title')}</h2>\n\n <p className=\"Provider-selector-desc\">\n {t('providerSelector.description')}\n </p>\n\n <ul className=\"Provider-selector-list\">\n {webviewsData.map((company) => (\n <ProviderListItem\n key={company.Id}\n marketingChannelId={company.Id}\n onClick={onProviderSelected}\n />\n ))}\n </ul>\n </ModalContainer>\n );\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useLocation, useHistory, useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport { useAlphabeticalSortedPets, usePetPolicies } from '../../hooks';\nimport {\n clearPolicyNotifications,\n getMultibrandDefaultPolicy,\n getMultibrandPolicies,\n getPolicyDetail,\n loadFolderStructure,\n loadMultiModalData,\n loadPlanSummaryDetails,\n loadPoliciesOverview,\n loadPolicyDetails,\n loadReimbursementMethod,\n loadWhatWeCoverInfo,\n policyDetailCleaned,\n refreshPolicies,\n setSelectedPetId,\n validateBreedMultibrand,\n} from '../../actions';\n\nimport {\n ADD_ORCA_PET,\n INBOX_DOCS as INBOX_DOCS_ROUTE,\n INSURANCE,\n} from '../navigation/routes.constants';\nimport {\n PRODUCT_FAMILY,\n MULTIBRAND_POLICY_STATUS,\n INBOX_DOCS,\n} from '../../constants';\nimport { MARKETING_CHANNEL_ID } from '../../theme/theme.constants';\n\nimport addIcon from '../../assets/policy/add-white.svg';\nimport loadingSpinnerBlue\nfrom '../../assets/lottieFiles/loading-blue.json';\nimport addIconOnyx from '../../assets/policy/add-onyx.svg';\n\nimport { CoverageOverview } from './coverageOverview/CoverageOverview';\nimport { PetCloudBreadcrumbs } from '../myPets/common/PetCloudBreadcrumbs';\nimport { NoPolicyPets } from './NoPolicyPets';\nimport { PolicyModals } from './PolicyModals';\nimport { CurrentPetPolicy } from './CurrentPetPolicy';\nimport FigoLottie from '../common/FigoLottie';\nimport { PolicyHeader } from './PolicyHeader';\nimport { Powerups } from './powerups/Powerups';\nimport PolicyNotifications from './PolicyNotifications';\nimport { FileClaimButton } from '../claims/FileClaimButton';\nimport { CostcoMemberQuoteModal } from '../common/costcoMemberQuote';\n\nimport { BillingAndPayments } from './billingAndPayments';\nimport { Reimbursement } from './reimbursement';\nimport { ChangeCoverageFrame } from './changeCoverage/ChangeCoverageFrame';\nimport {\n ProvidersSelector,\n} from '../common/providersSelector/ProvidersSelector';\nimport { ContactUsModal } from '../sideMenu/contactUs/ContactUsModal';\nimport { CONTACT_US_STEPS } from '../sideMenu/contactUs/contactUs.constants';\nimport { ActionButton } from '../common/petCloud/ActionButton';\nimport { ViewMoreButton } from './ViewMoreButton';\nimport { objectToBase64, sleep } from '../../services/utils';\n\nimport './css/PolicySummary.css';\n\nconst PolicySummary = ({\n onClosePPIGroupModal = () => { },\n onGetQuoteByBrand = () => { },\n showPPIGroupModal = false,\n}) => {\n const store = useSelector(({\n billingPayments,\n claims,\n claimsGeneric,\n inboxAndDocs,\n myVets,\n orcaInsurance,\n personalInformation,\n policies,\n session,\n }) => ({\n billingPayments,\n claims,\n claimsGeneric,\n inboxAndDocs,\n myVets,\n orcaInsurance,\n personalInformation,\n policies,\n session,\n }), shallowEqual);\n const { t } = useTranslation('insuranceScreen');\n const dispatch = useDispatch();\n const location = useLocation();\n const { petId, policyId } = useParams();\n const history = useHistory();\n\n const [selectedPolicy, setSelectedPolicy] = useState({});\n const [multiModalVisible, setMultiModalvisible] = useState(false);\n const [multiModalCategoryId, setMultiModalCategoryId] = useState(0);\n const [showPrimaryVetModal, setShowPrimaryVetModal] = useState(false);\n const [openChangeCoverageFrame, setOpenChangeCoverageFrame] = useState(false);\n const [showProviderSelector, setShowProviderSelector] = useState(false);\n const [\n showCostcoMemberQuoteModal,\n setShowCostcoMemberQuoteModal,\n ] = useState(false);\n const [\n showMultiplePoliciesError,\n setShowMultiplePoliciesError,\n ] = useState(false);\n\n const petPolicies = usePetPolicies();\n const { allPets } = petPolicies;\n\n const {\n billingPayments: {\n billingDetails,\n paymentMethodData,\n policyDetails,\n reimbursementMethod,\n },\n inboxAndDocs: { folderStructure },\n personalInformation,\n personalInformation: {\n userInfo: {\n Companies: companies,\n },\n },\n policies: {\n changeCoverageValidation,\n defaultPolicy,\n isYoungPetModalVisible,\n loading,\n loadingDefaultPolicy,\n loadingOtherPolicy,\n loadingOverview,\n loadingSeeMoreInfo,\n multibrandPolicies,\n multiModalData,\n otherPolicyDetail,\n },\n claims: { newClaimStarted },\n orcaInsurance: { getQuoteValidation },\n } = store;\n\n const getAlphabeticalSortedPets = useAlphabeticalSortedPets();\n\n const handleOpenIframe = () => {\n setOpenChangeCoverageFrame(true);\n };\n\n const loadingInfo = useMemo(() => loading || loadingOtherPolicy\n || loadingDefaultPolicy, [\n loading,\n loadingOtherPolicy,\n loadingDefaultPolicy,\n ]);\n\n const isGPI = useMemo(() => selectedPolicy\n ?.ProductFamilyId === PRODUCT_FAMILY.GPI, [selectedPolicy]);\n\n const currentPet = useMemo(\n () => multibrandPolicies.find((pet) => String(petId) === String(pet.PetId)),\n [petId, multibrandPolicies],\n );\n\n const init = useCallback(() => {\n const petData = getAlphabeticalSortedPets\n ?.find((item) => item.PetId === +petId);\n const policy = policyId\n ? petData?.policies.find((p) => p.Number === policyId)\n : petData?.policies?.[0];\n if (policy?.Number) {\n dispatch(loadPolicyDetails(policy.Number));\n dispatch(loadReimbursementMethod(policy.Number));\n dispatch(loadPlanSummaryDetails(policy.Number));\n dispatch(policyDetailCleaned());\n } else if (policyId && /^\\d+$/g.test(policyId)) {\n dispatch(getPolicyDetail({ policyId }));\n } else if (petId) {\n dispatch(getMultibrandDefaultPolicy(petId));\n }\n setSelectedPolicy(policy);\n }, [getAlphabeticalSortedPets, petId, policyId]);\n\n const onCloseIframe = async () => {\n await sleep(2000);\n setOpenChangeCoverageFrame(false);\n init();\n };\n\n useEffect(() => {\n if (loading || !allPets.length) {\n return;\n }\n\n init();\n }, [\n allPets,\n dispatch,\n init,\n loading,\n ]);\n\n useEffect(() => {\n dispatch(clearPolicyNotifications());\n dispatch(loadFolderStructure());\n }, []);\n\n const zipCodeMemo = useMemo(() => personalInformation.zipCode,\n [personalInformation]);\n\n useEffect(() => {\n // is this what really means?\n const isFigoPolicy = policyDetails && selectedPolicy\n && policyDetails.PolicyNumber === selectedPolicy.Number;\n if (isFigoPolicy) {\n const { EffectiveDate } = policyDetails;\n const effectiveDate = EffectiveDate.split('T')[0];\n\n dispatch(loadPoliciesOverview());\n dispatch(loadWhatWeCoverInfo({\n effectiveDate,\n policyNumber: selectedPolicy.Number,\n stateAbbr: personalInformation.state,\n }));\n }\n }, [\n dispatch,\n selectedPolicy,\n policyDetails,\n zipCodeMemo,\n personalInformation.state,\n ]);\n\n useEffect(() => {\n const { userInfo: { CustomerId } } = personalInformation;\n\n if (Object.entries(multiModalData).length === 0) {\n dispatch(loadMultiModalData({ CustomerId }));\n }\n }, [\n dispatch,\n personalInformation.userInfo.CustomerId,\n ]);\n\n useEffect(() => {\n if (getAlphabeticalSortedPets\n && getAlphabeticalSortedPets.length\n && !petId) {\n dispatch(setSelectedPetId(getAlphabeticalSortedPets[0].PetId));\n }\n }, [dispatch, getAlphabeticalSortedPets, petId]);\n\n useEffect(() => {\n if (location?.state?.changeCoverageId) {\n dispatch(refreshPolicies());\n }\n }, []);\n\n useEffect(() => {\n if (!multibrandPolicies.length) {\n dispatch(getMultibrandPolicies());\n }\n }, [multibrandPolicies.length]);\n\n const onlyFigo = useMemo(() => {\n if (companies.length === 1) {\n const [company] = companies;\n return company.Id === MARKETING_CHANNEL_ID.figo;\n }\n return false;\n }, [companies]);\n\n const isCostcoAvailable = (webviewData) => webviewData && webviewData.Id\n === MARKETING_CHANNEL_ID.figo && !!webviewData.GetQuoteCostcoUrl;\n\n useEffect(() => {\n if (getQuoteValidation.requested) {\n const { hasMultipleOrcaPolicies, webviewsData } = getQuoteValidation;\n\n // multiple policies\n if (hasMultipleOrcaPolicies) {\n setShowMultiplePoliciesError(true);\n } else if (webviewsData.length === 1) {\n // single policy scenario\n const [webviewData] = getQuoteValidation.webviewsData;\n\n // previous Costco policy\n if (isCostcoAvailable(webviewData)) {\n setShowCostcoMemberQuoteModal(true);\n return;\n }\n\n // quote by brand\n onGetQuoteByBrand({\n marketingChannelId: webviewData.Id,\n petId: currentPet.PetId,\n quoteUrl: webviewData.GetQuoteUrl,\n });\n } else {\n setShowProviderSelector(true);\n }\n }\n }, [getQuoteValidation]);\n\n const handleGetAQuote = useCallback(({ petID }) => {\n dispatch(validateBreedMultibrand({ petId: petID }));\n }, [onGetQuoteByBrand, companies]);\n\n const handleGetQuoteByBrand = () => (providerId) => {\n setShowProviderSelector(false);\n\n const webviewData = getQuoteValidation.webviewsData\n .find((webview) => webview.Id === providerId) || {};\n\n if (isCostcoAvailable(webviewData)) {\n setShowCostcoMemberQuoteModal(true);\n return;\n }\n\n onGetQuoteByBrand({\n marketingChannelId: providerId,\n petId: currentPet.PetId,\n quoteUrl: webviewData.GetQuoteUrl,\n });\n };\n\n const closeProviderSelector = () => {\n setShowProviderSelector(false);\n };\n\n const onCloseCostcoMemberModalPress = () => {\n setShowCostcoMemberQuoteModal(false);\n };\n\n const onContinueWithCostco = () => {\n const webviewData = getQuoteValidation.webviewsData\n .find((webview) => webview.Id === MARKETING_CHANNEL_ID.figo) || {};\n\n onGetQuoteByBrand({\n marketingChannelId: MARKETING_CHANNEL_ID.figo,\n petId: currentPet.PetId,\n quoteUrl: webviewData.GetQuoteCostcoUrl,\n });\n\n setShowCostcoMemberQuoteModal(false);\n };\n\n const onContinueWithStandardQuote = () => {\n const webviewData = getQuoteValidation.webviewsData\n .find((webview) => webview.Id === MARKETING_CHANNEL_ID.figo) || {};\n\n onGetQuoteByBrand({\n marketingChannelId: MARKETING_CHANNEL_ID.figo,\n petId: currentPet.PetId,\n quoteUrl: webviewData.GetQuoteUrl,\n });\n\n setShowCostcoMemberQuoteModal(false);\n };\n\n const policyData = useMemo(() => {\n const pet = multibrandPolicies.find((item) => item.PetId === +petId) || {};\n let policy = defaultPolicy;\n\n if (policyId) {\n policy = otherPolicyDetail;\n }\n\n const selectedPetData = pet;\n if (policy?.MarketChannelId === MARKETING_CHANNEL_ID.figo\n || (!policyId && !defaultPolicy)\n || (policyId && !otherPolicyDetail)) {\n const petData = getAlphabeticalSortedPets\n ?.find((item) => item.PetId === +petId);\n\n const item = (policyId\n ? petData?.policies.find((p) => p.Number === policyId)\n : petData?.policies?.[0]) || {};\n\n policy = {\n Benefit: item?.Benefit,\n BillingCycle: billingDetails?.PaymentPlan,\n CancellationDate: item?.CancellationDate,\n CoverageSummary: null,\n Deductible: item?.Deductible,\n Extras: item?.PowerUps?.map((powerup) => ({\n Description: powerup.Description,\n Included: powerup.IsIncluded,\n InsuranceModifierId: powerup.InsuranceModifierId,\n Name: powerup.FullName,\n OptionalBenefits: powerup.OptionalBenefits,\n })),\n Id: item?.Number,\n MarketChannelId: MARKETING_CHANNEL_ID.figo,\n NextBillingDate: item?.NextBillingDate,\n PaymentOption: {\n ExpirationMonth: billingDetails?.CCExpMonth,\n ExpirationYear: billingDetails?.CCExpYear,\n FirstNameOnCard: paymentMethodData?.firstName,\n LastFour: billingDetails?.CCCardNumber\n ?? billingDetails?.ACHAccountNumber,\n LastNameOnCard: paymentMethodData?.lastName,\n PaymentMethodName: item?.PaymentType,\n },\n PetCoverage: policy?.PetCoverages || [],\n PolicyDisplayNumber: item?.Number,\n PolicyEndDate: item?.ExpirationDate,\n PolicySourceId: 0,\n PolicyStartDate: item?.CoverageStartDate,\n Reimbursement: item?.Reimbursement,\n ReimbursementOption: {\n AccountNumberLastFour: reimbursementMethod?.AccountNumber,\n CheckAddress: reimbursementMethod?.Address,\n ReimbursementMethodId: reimbursementMethod\n ?.PreferredReimbursementMethod,\n RoutingNumberLastFour: String(\n reimbursementMethod?.RoutingNumber,\n ).slice(-4),\n },\n SelectedPaymentOptionId: '', // TODO:\n SelectedReimbursementOptionId: '',\n StatusDisplay: Object.values(MULTIBRAND_POLICY_STATUS)[item.Status],\n TotalPremium: item.PayAmount,\n };\n }\n\n const coveragesByPet = policy?.PetCoverages\n ?.find((summary) => summary.Pet.Id === +petId);\n const coverageSummary = coveragesByPet?.CoverageSummary;\n const extras = coveragesByPet?.Extras || policy?.Extras || [];\n\n const data = {\n loading: loadingInfo,\n selectedPet: selectedPetData,\n selectedPolicy: {\n ...policy,\n ...coverageSummary,\n Benefit: policy?.Benefit || coverageSummary?.BenefitAmount,\n Deductible: policy?.Deductible || coverageSummary?.Deductible,\n Extras: extras,\n PetCoverages: policy?.PetCoverages\n ?.filter((coverage) => coverage.Pet.Id !== +petId),\n PetCoveragesByPet: coveragesByPet,\n },\n };\n\n const isOrcaPolicy = policy?.MarketChannelId !== MARKETING_CHANNEL_ID.figo;\n if (isOrcaPolicy) {\n const details = policy?.ReimbursementOption?.Details || {};\n\n return {\n ...data,\n selectedPolicy: {\n ...data.selectedPolicy,\n ReimbursementOption: {\n ...data.selectedPolicy.ReimbursementOption,\n CheckAddress: `${details.Address}, ${details.City}`,\n },\n },\n };\n }\n\n return data;\n }, [\n billingDetails,\n defaultPolicy,\n getAlphabeticalSortedPets,\n loadingInfo,\n multibrandPolicies,\n otherPolicyDetail,\n paymentMethodData,\n policyDetails,\n reimbursementMethod,\n ]);\n\n const getSelectedPolicyDirectory = useCallback((policyNumber) => {\n const directory = folderStructure\n .find((dir) => String(dir.Id) === INBOX_DOCS.policyDocuments);\n\n if (directory) {\n // TODO: Remove 'Childrens' validation when v2 is complete\n const selectedDirectory = directory\n .Childrens?.find((dir) => dir.Name === policyNumber)\n || directory.Folders?.find((dir) => dir.Name === policyNumber);\n\n if (selectedDirectory) {\n return selectedDirectory.Id;\n }\n }\n\n return null;\n }, [folderStructure]);\n\n const getPolicyDocumentsFolder = useCallback(() => folderStructure\n .find((dir) => dir.Id === INBOX_DOCS.policyDocuments), [folderStructure]);\n\n const policyDocumentsURL = useMemo(() => {\n let folderName = policyData?.selectedPolicy?.PolicyFolderDescription;\n let folderId = policyData?.selectedPolicy?.PolicyFolderId;\n if (!folderId) {\n folderName = policyData?.selectedPolicy?.PolicyDisplayNumber;\n folderId = getSelectedPolicyDirectory(folderName);\n }\n\n if (folderName && folderId) {\n const navData = [\n {\n id: INBOX_DOCS.landing,\n name: t('home'),\n },\n {\n id: INBOX_DOCS.policyDocuments,\n name: t('policyDocuments'),\n },\n {\n id: folderId,\n name: folderName,\n },\n ];\n\n const breadCrumbData = `data=${objectToBase64(navData)}`;\n\n return `${INBOX_DOCS_ROUTE}/${folderName}/${folderId}?${breadCrumbData}`;\n }\n\n const defaultFolder = getPolicyDocumentsFolder();\n if (defaultFolder) {\n return `${INBOX_DOCS_ROUTE}/${defaultFolder.Name}/${defaultFolder.Id}`;\n }\n\n return INBOX_DOCS_ROUTE;\n }, [policyData, getSelectedPolicyDirectory, getPolicyDocumentsFolder]);\n\n if (loadingInfo || !currentPet) {\n return (\n <div className=\"Policy-summary-shimmer-content\">\n <FigoLottie\n animationData={loadingSpinnerBlue}\n height={50}\n width={50}\n />\n </div>\n );\n }\n\n function onMultiModalClose() {\n setMultiModalvisible(false);\n }\n\n function onClickLearnMore(categoryId) {\n setMultiModalvisible(true);\n\n if (policyData?.selectedPolicy?.MarketChannelId\n === MARKETING_CHANNEL_ID.figo && categoryId) {\n setMultiModalCategoryId(categoryId);\n }\n }\n\n function closePrimaryVetModal() {\n setShowPrimaryVetModal(false);\n }\n\n const onCloseErrorModal = () => {\n setShowMultiplePoliciesError(false);\n };\n\n const handleAddPetClick = () => {\n history.push(ADD_ORCA_PET, {\n selectedPolicy: policyData.selectedPolicy,\n });\n };\n\n function renderAddAPetButton() {\n const { selectedPolicy: policy } = policyData;\n if (policy?.MarketChannelId === MARKETING_CHANNEL_ID.figo\n || policy?.MarketChannelId === MARKETING_CHANNEL_ID.ppiOnePack) {\n return null;\n }\n return (\n <div className=\"Policy-summary-add-pet\">\n <ActionButton\n isSecondaryButton\n leftIcon={addIconOnyx}\n leftIconClassName=\"Policy-summary-add-pet-icon\"\n noMargin\n onClick={handleAddPetClick}\n title={t('addPet')}\n />\n </div>\n );\n }\n\n function renderFileAClaimButton() {\n if (policyData?.selectedPet?.Policies?.length === 0\n || isGPI || !policyData?.selectedPolicy?.Id) {\n return null;\n }\n\n return (\n <FileClaimButton\n className=\"Policy-summary-file-claim\"\n icon={addIcon}\n />\n );\n }\n\n function renderPolicyInfo() {\n if (policyData?.StatusDisplay === MULTIBRAND_POLICY_STATUS.cancelled) {\n return (\n <CoverageOverview\n isCancelled\n loading={loadingInfo}\n loadingOverview={loadingOverview}\n marketingChanneld={policyData.selectedPolicy?.MarketChannelId}\n policies={store.policies}\n selectedPolicy={policyData?.selectedPolicy}\n />\n );\n }\n\n const isNotPpiOnePack = policyData?.selectedPolicy?.MarketChannelId\n !== MARKETING_CHANNEL_ID.ppiOnePack;\n\n return (\n <>\n <CoverageOverview\n loading={loadingInfo}\n loadingOverview={loadingOverview}\n marketingChanneld={policyData.selectedPolicy?.MarketChannelId}\n onOpenIframe={handleOpenIframe}\n policies={store.policies}\n selectedPolicy={policyData?.selectedPolicy}\n />\n\n <Powerups\n company={policyData?.selectedPolicy?.MarketChannelId}\n items={policyData?.selectedPolicy?.Extras}\n onClickLearnMore={onClickLearnMore}\n />\n\n {isNotPpiOnePack ? (\n <BillingAndPayments\n company={policyData.selectedPolicy?.MarketChannelId}\n isGPI={isGPI}\n selectedPolicy={policyData?.selectedPolicy}\n />\n ) : null}\n\n {isNotPpiOnePack ? (\n <Reimbursement\n selectedPolicy={policyData?.selectedPolicy}\n />\n ) : null}\n\n </>\n );\n }\n\n function renderContactUsModal() {\n const { policyProvider } = getQuoteValidation;\n let extraText = null;\n let companyStep = CONTACT_US_STEPS.PPI_ONE_PACK;\n const show = showMultiplePoliciesError\n || showPPIGroupModal;\n let close = () => { };\n\n if (showMultiplePoliciesError) {\n // More than one active policies error\n extraText = <p>{t('multiplePoliciesError')}</p>;\n close = onCloseErrorModal;\n companyStep = CONTACT_US_STEPS[policyProvider] || CONTACT_US_STEPS.HOME;\n } else if (showPPIGroupModal) {\n // add coverage to PPIG\n extraText = (\n <>\n <p>{t('addCoverageDesc')}</p>\n <p>{t('addCoverageDesc2')}</p>\n </>\n );\n close = onClosePPIGroupModal;\n companyStep = CONTACT_US_STEPS.PPI_ONE_PACK;\n }\n\n return (\n <ContactUsModal\n companyStep={companyStep}\n custom\n customTitle={t('addCoverage')}\n extraText={extraText}\n hasHeader\n onClose={close}\n show={show}\n />\n );\n }\n\n if (openChangeCoverageFrame) {\n return (\n <ChangeCoverageFrame\n onClose={onCloseIframe}\n petId={petId}\n policy={policyData?.selectedPolicy}\n />\n );\n }\n\n return (\n <div\n className={'Policy-summary-main-container'\n + ` Colors-${policyData.selectedPolicy?.MarketChannelId}`}\n >\n <PetCloudBreadcrumbs\n activeRoute={currentPet.PetName}\n rootRoute={t('title')}\n rootRouteLink={INSURANCE}\n />\n\n <div className=\"Policy-summary-title-page-container\">\n <h1>{t('title')}</h1>\n\n <div className=\"Policy-summary-header-actions\">\n {renderAddAPetButton()}\n\n {renderFileAClaimButton()}\n </div>\n </div>\n\n <PolicyNotifications\n petId={petId}\n policy={selectedPolicy}\n />\n\n <PolicyModals\n changeCoverageValidation={changeCoverageValidation}\n company={policyData?.selectedPolicy?.MarketChannelId}\n loadingSeeMoreInfo={loadingSeeMoreInfo}\n multiModalCategoryId={multiModalCategoryId}\n multiModalData={multiModalData}\n multiModalVisible={multiModalVisible}\n myVetsInfo={store.myVets}\n newClaimStarted={newClaimStarted}\n onClosePrimaryVetModal={closePrimaryVetModal}\n onMultiModalClose={onMultiModalClose}\n petID={petId}\n policyNumber={policyData.selectedPolicy.PolicyDisplayNumber}\n selectedPolicy={selectedPolicy}\n showPrimaryVetModal={showPrimaryVetModal}\n />\n\n {!!policyData?.selectedPolicy?.Id && !policyData.loading ? (\n <>\n <PolicyHeader company={policyData.selectedPolicy?.MarketChannelId} />\n\n <div className=\"Policy-summary-info-container\">\n <div className=\"Policy-summary-title\">\n <h2>{t('myPet')}</h2>\n\n {policyDocumentsURL && (\n <ViewMoreButton\n isLink\n text={t('viewPolicyDocuments')}\n to={policyDocumentsURL}\n />\n )}\n </div>\n\n <CurrentPetPolicy\n currentPet={policyData.selectedPet}\n loading={policyData.loading}\n />\n\n {renderPolicyInfo()}\n </div>\n </>\n ) : (\n <>\n <NoPolicyPets\n currentPet={currentPet}\n isYoungPetModalVisible={isYoungPetModalVisible}\n onGetQuote={handleGetAQuote}\n onlyFigo={onlyFigo}\n />\n\n {!onlyFigo && (\n <ProvidersSelector\n onClose={closeProviderSelector}\n onProviderSelected={handleGetQuoteByBrand(currentPet)}\n show={showProviderSelector}\n />\n )}\n\n <CostcoMemberQuoteModal\n onClosePress={onCloseCostcoMemberModalPress}\n onContinueWithCostco={onContinueWithCostco}\n onContinueWithStandardQuote={onContinueWithStandardQuote}\n visible={showCostcoMemberQuoteModal}\n />\n\n {renderContactUsModal()}\n </>\n )}\n </div>\n );\n};\n\nexport { PolicySummary };\n","import React from 'react';\n\nimport './NoClaimsPlaceholder.css';\nimport { useTranslation } from 'react-i18next';\n\nconst NoClaimsPlaceholder = () => {\n const { t } = useTranslation('claims');\n\n return (\n <div className=\"No-claims-placeholder-container\">\n <h3>{t('noClaimsPlaceholder.title')}</h3>\n\n <span>{t('noClaimsPlaceholder.description')}</span>\n </div>\n );\n};\n\nexport { NoClaimsPlaceholder };\n","export default __webpack_public_path__ + \"static/media/filter-controller.c9c83b19.svg\";","export default __webpack_public_path__ + \"static/media/chevron-down-blue.2f70ed4a.svg\";","export default __webpack_public_path__ + \"static/media/check-mark-gray.e3557b2e.svg\";","import React, { useState } from 'react';\nimport Image from 'react-bootstrap/Image';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n setIsCheckedOptionClosed,\n setIsCheckedOptionOpen,\n} from '../../actions';\nimport filterIcon from '../../assets/claims/filter-controller.svg';\nimport filterArrow from '../../assets/claims/chevron-down-blue.svg';\nimport checkIcon from '../../assets/claims/check-mark-gray.svg';\nimport './FilterClaims.css';\n\nconst FilterClaims = ({ disabled = false }) => {\n const { t } = useTranslation('claims');\n const [isFilterMenuOpen, setFilterMenuOpen] = useState(false);\n const {\n isCheckedOptionClosed,\n isCheckedOptionOpen,\n } = useSelector((state) => state.claims);\n const dispatch = useDispatch();\n\n const toggleFilterMenu = () => {\n setFilterMenuOpen(!isFilterMenuOpen);\n };\n\n const toggleCheckedOptionOpen = () => {\n dispatch(setIsCheckedOptionOpen(!isCheckedOptionOpen));\n };\n\n const toggleCheckedOptionClosed = () => {\n dispatch(setIsCheckedOptionClosed(!isCheckedOptionClosed));\n };\n\n return (\n <div className=\"Filter-claims-menu-main-container\">\n <button\n className=\"Filter-claims-menu-container\"\n disabled={disabled}\n id=\"myFilterMenu\"\n onClick={toggleFilterMenu}\n type=\"button\"\n >\n <Image\n id=\"myFilterMenu\"\n src={filterIcon}\n />\n\n <div className=\"Filter-claims-inner-container\">\n <span className=\"Filter-claims-content\">\n <span className=\"Filter-claims-text\">{t('filterClaims')}</span>\n\n <img alt=\"\" className=\"Filter-claims-text-icon\" src={filterArrow} />\n </span>\n </div>\n </button>\n\n {isFilterMenuOpen && (\n <div\n className=\"Filter-claims-menu-button-container\"\n id=\"filterOverlay\"\n >\n <div className=\"Filter-claims-menu\">\n <h4 className=\"Filter-claims-menu-title\">{t('claimStatus')}</h4>\n\n <div className=\"Filter-claims-menu-separator-line\" />\n\n <div className=\"Filter-claims-menu-item\">\n <button\n className=\"Filter-claims-menu-button\"\n id=\"filterOpenBtn\"\n onClick={toggleCheckedOptionOpen}\n type=\"button\"\n >\n <span className=\"Filter-claims-menu-button-span\">\n {t('filterMenuOpenText')}\n </span>\n\n {isCheckedOptionOpen && (\n <img\n alt=\"checked\"\n className=\"Filter-claims-checkbox\"\n src={checkIcon}\n />\n )}\n </button>\n </div>\n\n <div className=\"Filter-claims-menu-item\">\n <button\n className=\"Filter-claims-menu-button\"\n id=\"filterClosedBtn\"\n onClick={toggleCheckedOptionClosed}\n type=\"button\"\n >\n <span className=\"Filter-claims-menu-button-span\">\n {t('filterMenuClosedText')}\n </span>\n\n {isCheckedOptionClosed && (\n <img\n alt=\"checked\"\n className=\"Filter-claims-checkbox\"\n src={checkIcon}\n />\n )}\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default FilterClaims;\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport './ClaimsScreenComponent.css';\nimport {\n setIsCheckedOptionClosed,\n setIsCheckedOptionOpen,\n} from '../../actions';\n\nconst NoMatchingFilters = () => {\n const dispatch = useDispatch();\n const { t } = useTranslation('claims');\n\n function clearFilters() {\n dispatch(setIsCheckedOptionOpen(true));\n dispatch(setIsCheckedOptionClosed(true));\n }\n\n return (\n <div className=\"Claims-screen-no-match-container\">\n <h3 className=\"Claims-screen-no-match-title\">\n {t('noMatchFilters')}\n </h3>\n\n <button\n className=\"Filter-claims-clear-button\"\n onClick={clearFilters}\n type=\"button\"\n >\n {t('clearFilters')}\n </button>\n </div>\n );\n};\nexport default NoMatchingFilters;\n","export default __webpack_public_path__ + \"static/media/right-arrow.113e4a2d.svg\";","export default __webpack_public_path__ + \"static/media/empty-ellipsis.438602db.svg\";","export default __webpack_public_path__ + \"static/media/check-circle-blue.43fc32b7.svg\";","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport notCheckIcon from '../../assets/claims/empty-ellipsis.svg';\nimport checkMark from '../../assets/claims/check-circle-blue.svg';\n\nimport './Stepper.css';\nimport { CLAIM_STATUS_BY_TEXT } from '../../constants';\n\nconst CLAIM_STATUS = {\n open: 0,\n records: 1,\n // eslint-disable-next-line sort-keys\n inReview: 2,\n // eslint-disable-next-line sort-keys\n done: 3,\n};\n\nconst Step = ({ icon, isComplete = false, stepValue = '' }) => (\n <div className=\"Circle-status\">\n <img alt=\"\" src={icon} />\n\n <span className=\"Circle-number\" data-completed={isComplete}>\n {stepValue}\n </span>\n </div>\n);\n\nconst Stepper = ({ status }) => {\n const { t } = useTranslation('claims');\n\n const convertedStatus = useMemo(() => {\n const statusFound = Object.entries(CLAIM_STATUS)\n .find(([key]) => key.toLowerCase()\n === status.toLowerCase().replace(/\\s/g, ''));\n return statusFound?.[1] ?? CLAIM_STATUS.open;\n }, [status]);\n\n const getLineStyle = (checkStatus, currentStatus) => {\n const notFilledLineClass = 'Line-status';\n const baseStyle = currentStatus >= checkStatus\n ? 'Line-complete' : notFilledLineClass;\n\n return baseStyle === 'Line-complete' ? 'Line-Complete-Blue' : baseStyle;\n };\n\n const openLineStyle = getLineStyle(CLAIM_STATUS.records, convertedStatus);\n const recordsLineStyle = getLineStyle(CLAIM_STATUS.inReview, convertedStatus);\n const reviewLineStyle = getLineStyle(CLAIM_STATUS.done, convertedStatus);\n\n const inRecordsComplete = [\n CLAIM_STATUS_BY_TEXT.records,\n CLAIM_STATUS_BY_TEXT.inReview,\n ].includes(status);\n const inReviewComplete = CLAIM_STATUS_BY_TEXT.inReview === status;\n const inDoneComplete = CLAIM_STATUS_BY_TEXT.done === status;\n\n return (\n <div className=\"General-container\">\n <div className=\"Status-container\">\n <div className=\"Status-txt-container-blue\">\n <span className=\"Status-txt-open\">{t('statusOpen')}</span>\n </div>\n\n <div className=\"Status-txt-container-blue\">\n <span className=\"Status-txt\">\n {t('statusRecords')}\n </span>\n </div>\n\n <div className=\"Status-txt-container-blue\">\n <span className=\"Status-txt Status-txt-review\">\n {t('statusInReview')}\n </span>\n </div>\n\n <div className=\"Status-txt-container-blue\">\n <span className=\"Status-txt Status-txt-done\">\n {t('statusDone')}\n </span>\n </div>\n </div>\n\n <div className=\"Stepper-container\">\n <div className=\"Circle-container\">\n <Step icon={checkMark} isComplete />\n\n <div className={openLineStyle} />\n </div>\n\n <div className=\"Circle-container Circle-container-center\">\n <Step\n icon={inRecordsComplete ? checkMark : notCheckIcon}\n isComplete={inRecordsComplete}\n stepValue={CLAIM_STATUS.records}\n />\n\n <div className={recordsLineStyle} />\n\n <Step\n icon={inReviewComplete ? checkMark : notCheckIcon}\n isComplete={inReviewComplete}\n stepValue={CLAIM_STATUS.inReview}\n />\n </div>\n\n <div className=\"Circle-container\">\n <div className={reviewLineStyle} />\n\n <Step\n icon={inDoneComplete ? checkMark : notCheckIcon}\n isComplete={inDoneComplete}\n stepValue={CLAIM_STATUS.done}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport default Stepper;\n","import React, { useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\nimport moment from 'moment';\n\nimport arrowIcon from '../../assets/fileClaim/right-arrow.svg';\nimport { MARKETING_CHANNEL_ID } from '../../theme/theme.constants';\nimport { getThemeLogoById } from '../../theme/theme.utils';\nimport dogDefaultImage from '../../assets/billingPayments/dog-placeholder.png';\nimport catDefaultImage from '../../assets/billingPayments/cat-placeholder.png';\n\nimport Stepper from './Stepper';\nimport './MultibrandClaimCard.css';\nimport { PET_TYPE_MULTIBRAND } from '../../constants';\nimport { currencyFormat } from '../../services/utils';\n\nconst STATUS_DISPLAY = {\n attention: 'Attention Needed',\n closed: 'Closed',\n completed: 'Completed',\n done: 'Done!',\n};\n\nconst ClaimHeader = ({\n buttonLabel,\n date,\n goToClaimDetails = () => { },\n isClosed = false,\n logo,\n}) => (\n <div className=\"Claim-header\" data-closed={isClosed}>\n <span>{date}</span>\n\n {logo && (\n <img alt=\"\" className=\"Claim-header-logo\" src={logo} />\n )}\n\n <button\n className=\"Claim-header-button\"\n onClick={goToClaimDetails}\n type=\"button\"\n >\n {buttonLabel} <img alt=\"\" src={arrowIcon} />\n </button>\n </div>\n);\n\nconst ClaimDataRow = ({ label, text, textClassName = '' }) => (\n <div>\n <span className=\"Claim-data-row-label\">{label}</span>\n\n <span className={`Claim-data-row-text ${textClassName}`}>{text}</span>\n </div>\n);\n\nconst ClaimOrcaData = ({ status, claimNumber, pets, logo }) => {\n const { t } = useTranslation('claims');\n\n const petsNames = Array.from(\n new Set(pets?.map(({ PetName }) => PetName)) || [],\n );\n\n return (\n <div className=\"Claim-data-container\">\n <div className=\"Claim-data-content\">\n <ClaimDataRow\n label={t('status')}\n text={status}\n textClassName={status === STATUS_DISPLAY.attention\n ? 'Claim-data-status' : ''}\n />\n\n <ClaimDataRow label={t('titleClaim#')} text={claimNumber} />\n\n <ClaimDataRow\n label={t('petsOnClaim')}\n text={petsNames.join(', ')}\n />\n </div>\n\n <div>\n <img alt=\"\" src={logo} />\n </div>\n </div>\n );\n};\n\nconst ClaimFigoData = ({\n status,\n pets = [],\n claimNumber,\n amountPaid = 0,\n claimAmount = 0,\n reimbursementType = '',\n}) => {\n const { t } = useTranslation('claims');\n const [pet] = pets;\n\n const isClosed = status === STATUS_DISPLAY.closed\n || status === STATUS_DISPLAY.completed\n || status === STATUS_DISPLAY.paid\n || status === STATUS_DISPLAY.done;\n\n const image = useMemo(() => {\n if (pet?.ProfileImage) {\n return pet.ProfileImage;\n }\n return pet?.PetType === PET_TYPE_MULTIBRAND.CAT\n ? catDefaultImage : dogDefaultImage;\n }, [pet]);\n\n return (\n <div className=\"Claim-data-container Claim-data-figo-container\">\n <div className=\"Claim-data-container-open\">\n <div className=\"Claim-data-figo\">\n <div className=\"Claim-data-pet\">\n <img\n alt=\"\"\n className=\"Claim-data-pet-image\"\n src={image}\n />\n\n <span>{pet?.PetName}</span>\n </div>\n\n <div className=\"Claim-data-info\">\n <ClaimDataRow label={t('titleClaim#')} text={claimNumber} />\n\n {isClosed && (\n <ClaimDataRow\n label={t('paid')}\n text={reimbursementType ? t('paidWith', {\n amount: currencyFormat({ value: amountPaid }),\n reimbursementType,\n }) : currencyFormat({ value: amountPaid })}\n />\n )}\n </div>\n </div>\n\n {!isClosed && (\n <div className=\"Claim-data-amount\">\n {`${currencyFormat({ value: claimAmount })}`}\n </div>\n )}\n\n </div>\n\n {!isClosed && (\n <Stepper status={status} />\n )}\n\n </div>\n );\n};\n\nconst ClaimData = ({\n marketingChannelId = MARKETING_CHANNEL_ID.figo,\n ...claimInfo\n}) => {\n switch (marketingChannelId) {\n case MARKETING_CHANNEL_ID.akc:\n case MARKETING_CHANNEL_ID.ppi:\n case MARKETING_CHANNEL_ID.ppiOnePack:\n case MARKETING_CHANNEL_ID.spot:\n return (\n <ClaimOrcaData {...claimInfo} />\n );\n case MARKETING_CHANNEL_ID.figo:\n default:\n return <ClaimFigoData {...claimInfo} />;\n }\n};\n\nconst MultibrandClaimCard = ({\n amountPaid = 0,\n claimAmount = 0,\n claimId,\n claimNumber,\n date,\n marketingChannelId = MARKETING_CHANNEL_ID.figo,\n pets = [],\n reimbursementType = '',\n status,\n}) => {\n const { t } = useTranslation('claims');\n const history = useHistory();\n const match = useRouteMatch();\n\n const goToClaimDetails = useCallback(() => {\n history.push(`${match.path}/details`, { claimId, claimNumber });\n }, [history, match, claimNumber]);\n\n const themeLogos = useMemo(\n () => getThemeLogoById(marketingChannelId),\n [marketingChannelId],\n );\n\n const formattedDate = useMemo(() => {\n const correctedDate = date.split('T')[0];\n return moment(correctedDate).format('MMMM D, YYYY');\n }, [date]);\n\n return (\n <div className={`Multibrand-claim-card Colors-${marketingChannelId}`}>\n <ClaimHeader\n buttonLabel={t('viewDetails')}\n date={formattedDate}\n goToClaimDetails={goToClaimDetails}\n isClosed={status === STATUS_DISPLAY.completed\n || status === STATUS_DISPLAY.closed\n || status === STATUS_DISPLAY.done}\n logo={marketingChannelId === MARKETING_CHANNEL_ID.figo\n && themeLogos.white}\n />\n\n <ClaimData\n amountPaid={amountPaid}\n claimAmount={claimAmount}\n claimNumber={claimNumber}\n logo={marketingChannelId !== MARKETING_CHANNEL_ID.figo\n && themeLogos.simplified}\n marketingChannelId={marketingChannelId}\n pets={pets}\n reimbursementType={reimbursementType}\n status={status}\n />\n </div>\n );\n};\n\nexport { MultibrandClaimCard };\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport 'react-circular-progressbar/dist/styles.css';\nimport {\n clearPolicyNotifications,\n loadPoliciesOverview,\n requestClaimsResults,\n} from '../../actions';\nimport './ClaimsScreenComponent.css';\nimport Shimmer from '../common/Shimmer';\nimport { NoClaimsPlaceholder } from './NoClaimsPlaceholder';\nimport { FileClaimButton } from './FileClaimButton';\nimport LoadingActionButton from '../common/petCloud/LoadingActionButtonMyPets';\nimport FilterClaims from './FilterClaims';\nimport NoMatchingFilters from './NoMatchingFIlters';\nimport { NO_CLAIMS, CLAIM_STATUS_ACTION } from '../../constants';\nimport { MultibrandClaimCard } from './MultibrandClaimCard';\n\nconst ClaimGroupTitle = ({ claimStatus }) => {\n const { t } = useTranslation('claims');\n\n const claimOpen = claimStatus === CLAIM_STATUS_ACTION.OPEN;\n\n const titleText = t(claimOpen ? 'openClaims' : 'closedClaims');\n\n return (\n <h2\n className={`Claims-screen-secondary-title${\n !claimOpen ? ' Margin-top-32' : ''}`}\n >\n {titleText}\n </h2>\n );\n};\n\nconst ClaimsCards = ({ claimGroups }) => (\n <>\n {claimGroups.map(\n (claimGroup) => claimGroup.data.length > 0 && (\n <div key={claimGroup.claimStatus}>\n <ClaimGroupTitle claimStatus={claimGroup.claimStatus} />\n\n {claimGroup.data.map((claim) => (\n <MultibrandClaimCard\n key={claim.ClaimNumber}\n amountPaid={claim.AmountPaid}\n claimAmount={claim.ClaimedAmount}\n claimId={claim.ClaimId}\n claimNumber={claim.ClaimNumber}\n date={claim.DateSubmitted}\n marketingChannelId={claim.MarketingChannelId}\n pets={claim?.Diagnoses}\n reimbursementType={claim.Reimbursement}\n status={claim.ClaimStatus}\n />\n ))}\n </div>\n ),\n )}\n </>\n);\n\nconst ClaimsScreenComponent = () => {\n const { t } = useTranslation('claims');\n const dispatch = useDispatch();\n const store = useSelector(\n ({ billingPayments, claims, policies }) => ({\n billingPayments,\n claims,\n policies,\n }),\n shallowEqual,\n );\n const [totalShownClaims, setTotalShownClaims] = useState(0);\n const [currentPage, setCurrentPage] = useState(0);\n const { policies, claims } = store;\n const { isCheckedOptionClosed, isCheckedOptionOpen } = claims;\n const {\n claims: {\n claimsResults = {\n closed: {},\n open: {},\n },\n },\n } = useSelector((state) => state);\n const { open, closed } = claimsResults;\n const openClaimsOnly = !isCheckedOptionClosed && isCheckedOptionOpen;\n const closedClaimsOnly = isCheckedOptionClosed && !isCheckedOptionOpen;\n const hasPets = !policies.loading && !!policies.allPets.length;\n const totalOpenClaims = open?.totalCount || 0;\n const totalClosedClaims = closed?.totalCount || 0;\n\n const fetchClaims = useCallback(\n ({ statusClaim, pageNumber = 0 }) => {\n dispatch(\n requestClaimsResults({\n marketChannelId: null,\n pageNumber,\n petId: null,\n status: statusClaim,\n }),\n );\n },\n [dispatch],\n );\n\n useEffect(() => {\n fetchClaims(\n { statusClaim: CLAIM_STATUS_ACTION.OPEN },\n );\n fetchClaims(\n { statusClaim: CLAIM_STATUS_ACTION.CLOSED },\n );\n }, [fetchClaims]);\n\n const mapData = ({ data, status }) => ({\n claimStatus: status,\n data: data?.items || [],\n });\n\n const allClaims = useMemo(\n () => [\n mapData({ data: open, status: CLAIM_STATUS_ACTION.OPEN }),\n mapData({ data: closed, status: CLAIM_STATUS_ACTION.CLOSED }),\n ],\n [open, closed],\n );\n\n const areAllClaimsEmpty = useMemo(() => (\n allClaims.every((claim) => claim.data.length === NO_CLAIMS)\n ), [allClaims]);\n\n const filteredClaims = useMemo(() => {\n const closedClaimsData = closed?.items || [];\n const openClaimsData = open?.items || [];\n\n const openClaims = {\n claimStatus: CLAIM_STATUS_ACTION.OPEN,\n data: openClaimsData,\n };\n\n const closedClaims = {\n claimStatus: CLAIM_STATUS_ACTION.CLOSED,\n data: closedClaimsData,\n };\n\n const result = [];\n if (isCheckedOptionClosed || isCheckedOptionOpen) {\n if (openClaims.data.length && !closedClaimsOnly) {\n result.push(openClaims);\n }\n\n if (closedClaims.data.length && !openClaimsOnly) {\n result.push(closedClaims);\n }\n }\n\n return result;\n }, [open, closed, isCheckedOptionClosed, isCheckedOptionOpen, currentPage]);\n\n const loadingContent = useMemo(() => (\n policies.loading || claims.loading\n ), [policies.loading, claims.loading]);\n\n useEffect(() => {\n const shownOpenClaims =\n filteredClaims.find((c) => c.claimStatus\n === CLAIM_STATUS_ACTION.OPEN)?.data\n ?.length || NO_CLAIMS;\n\n const shownClosedClaims =\n filteredClaims.find((c) => c.claimStatus\n === CLAIM_STATUS_ACTION.CLOSED)?.data\n ?.length || NO_CLAIMS;\n\n setTotalShownClaims(shownOpenClaims + shownClosedClaims);\n }, [filteredClaims]);\n\n useEffect(() => {\n dispatch(clearPolicyNotifications());\n dispatch(loadPoliciesOverview());\n }, [dispatch]);\n\n const onLoadMore = useCallback(() => {\n setCurrentPage((prevPage) => {\n const newPage = prevPage + 1;\n fetchClaims({\n pageNumber: newPage,\n statusClaim: CLAIM_STATUS_ACTION.CLOSED,\n });\n return newPage;\n });\n }, [filteredClaims]);\n\n const hasMoreClaims = useMemo(() => {\n const loadedClosedClaims = closed?.items?.length || NO_CLAIMS;\n\n return loadedClosedClaims < totalClosedClaims;\n }, [open, closed, totalShownClaims]);\n\n const renderClaimsCardsContainer = () => {\n if (!hasPets || areAllClaimsEmpty) {\n return <NoClaimsPlaceholder />;\n }\n\n if (filteredClaims.length === NO_CLAIMS) {\n return <NoMatchingFilters />;\n }\n\n if (hasPets || !areAllClaimsEmpty) {\n return (\n <>\n <ClaimsCards claimGroups={filteredClaims} />\n\n {hasMoreClaims && !openClaimsOnly && (\n <div className=\"d-flex justify-content-center\">\n <LoadingActionButton\n className=\"Load-more-claims-button\"\n loading={claims.isLoadingMore}\n onClick={onLoadMore}\n text={t('loadMoreClaim')}\n />\n </div>\n )}\n </>\n );\n }\n\n return null;\n };\n\n const renderClaimsCount = () => {\n const currentlyDisplayedClaims = filteredClaims.reduce(\n (total, group) => total + group.data.length,\n 0,\n );\n\n const totalClaims = totalClosedClaims + totalOpenClaims;\n\n return (\n <Shimmer\n className=\"Claims-screen-result-text-container\"\n visible={loadingContent}\n width={200}\n >\n <span className=\"Claims-screen-result-text\">\n {t('filterResultText', {\n count: currentlyDisplayedClaims,\n total: totalClaims,\n })}\n </span>\n </Shimmer>\n );\n };\n\n return (\n <div className=\"Claims-screen\">\n <h2 className=\"Claims-screen-main-title\">{t('firstTitle')}</h2>\n\n <div className=\"Claims-screen-selectors-container\">\n <div className=\"Claims-screen-buttons-row\">\n <FilterClaims\n disabled={(currentPage === NO_CLAIMS\n && totalOpenClaims + totalClosedClaims === NO_CLAIMS)\n || areAllClaimsEmpty || !hasPets}\n />\n\n {renderClaimsCount()}\n\n <FileClaimButton />\n </div>\n\n <div className=\"Claims-screen-cards-container\">\n {loadingContent ? (\n <>\n <Shimmer className=\"Claims-screen-shimmer-title\" />\n\n <div className=\"Claims-screen-shimmer\">\n <Shimmer className=\"Claims-screen-shimmer-row\" height={64} />\n\n <div className=\"Claims-screen-shimmer-container\">\n <div>\n <Shimmer className=\"Claims-screen-shimmer-label\" />\n\n <Shimmer className=\"Claims-screen-shimmer-label\" />\n\n <Shimmer className=\"Claims-screen-shimmer-label\" />\n </div>\n\n <div>\n <Shimmer className=\"Claims-screen-shimmer-img\" />\n </div>\n </div>\n </div>\n\n <div className=\"Claims-screen-shimmer\">\n <Shimmer className=\"Claims-screen-shimmer-row\" height={64} />\n\n <div className=\"Claims-screen-shimmer-container\">\n <div>\n <Shimmer className=\"Claims-screen-shimmer-label\" />\n\n <Shimmer className=\"Claims-screen-shimmer-label\" />\n\n <Shimmer className=\"Claims-screen-shimmer-label\" />\n </div>\n\n <div>\n <Shimmer className=\"Claims-screen-shimmer-img\" />\n </div>\n </div>\n </div>\n\n <div className=\"Claims-screen-shimmer\">\n <Shimmer className=\"Claims-screen-shimmer-row\" height={64} />\n\n <div className=\"Claims-screen-shimmer-container\">\n <div>\n <Shimmer className=\"Claims-screen-shimmer-label\" />\n\n <Shimmer className=\"Claims-screen-shimmer-label\" />\n\n <Shimmer className=\"Claims-screen-shimmer-label\" />\n </div>\n\n <div>\n <Shimmer className=\"Claims-screen-shimmer-img\" />\n </div>\n </div>\n </div>\n </>\n ) : (\n renderClaimsCardsContainer()\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default ClaimsScreenComponent;\n","export default __webpack_public_path__ + \"static/media/blue-circle.ab0edc73.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport blueCircleIcon from '../../../assets/changeCoverage/blue-circle.svg';\nimport { HtmlContent } from '../../common/HtmlContent';\n\nimport './PowerupCard.css';\n\nconst PowerupCard = ({\n detail = '',\n handleLearnMoreClick = () => { },\n included = false,\n title = '',\n}) => {\n const { t } = useTranslation('changeCoverage');\n\n return (\n <div className=\"Change-coverage-powerup-card\">\n <div className=\"Change-coverage-powerup-card-top-row\">\n <h4>{title}</h4>\n\n <div className=\"Change-coverage-powerup-card-status-pill\">\n <img alt=\"\" src={blueCircleIcon} />\n\n <span>{t(`preview.${included ? 'included' : 'notIncluded'}`)}</span>\n </div>\n </div>\n\n <HtmlContent\n classNameContainer=\"Change-coverage-powerup-card-detail\"\n content={detail}\n elementType=\"p\"\n />\n\n <button\n className=\"Change-coverage-powerup-card-learn-more\"\n onClick={handleLearnMoreClick}\n type=\"button\"\n >\n <span>{t('preview.learnMore')}</span>\n </button>\n </div>\n );\n};\n\nexport { PowerupCard };\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { possesiveAdaptationI18n } from '../../../services/utils';\n\nimport './css/ChangeCoverageScreenPreview.css';\n\nconst ChangeCoverageDetails = ({\n annualBenefit = '',\n deductible = 0,\n effectiveDate = '',\n lastDate = '',\n petName = '',\n price = 0,\n reimbursement = 0,\n}) => {\n const { t } = useTranslation('changeCoverage');\n\n const benefits = useMemo(() => ([\n {\n text: t('annualBenefit'),\n value: `$${annualBenefit.replace('K', ',000')}`,\n },\n { text: t('reimbursement'), value: reimbursement },\n { text: t('deductible'), value: deductible },\n ]), [annualBenefit, deductible, reimbursement]);\n\n const priceValue = useMemo(() => {\n if (price) {\n return {\n decimals: price?.split('.')[1],\n integer: price?.split('.')[0],\n };\n }\n\n return { decimals: '', integer: '' };\n }, [price]);\n\n return (\n <>\n <div className=\"Change-coverage-screen-price-container\">\n <span className=\"Change-coverage-screen-price\">\n {priceValue.integer}\n </span>\n\n <span className=\"Change-coverage-screen-price-decimals\">\n .{priceValue.decimals}\n </span>\n\n <span className=\"Change-coverage-screen-price-month\">\n {t('preview.pricePerMonth')}\n </span>\n </div>\n\n <p className=\"Change-coverage-screen-preview-dates\">\n {t('preview.resume1', {\n count: possesiveAdaptationI18n(petName),\n name: petName,\n })}\n <b>{effectiveDate}</b>\n {t('preview.resume2')}\n <b>{lastDate}</b>\n {t('preview.resume3')}\n </p>\n\n <h3>{t('preview.coverageDetails')}</h3>\n\n <div className=\"Change-coverage-screen-benefits-container\">\n {benefits.map((benefit) => (\n <div key={benefit.text} className=\"Flex Flex-column\">\n <span className=\"Change-coverage-screen-benefit-title\">\n {benefit.text}\n </span>\n\n <span className=\"Change-coverage-screen-benefit-value\">\n {benefit.value}\n </span>\n </div>\n ))}\n </div>\n </>\n );\n};\n\nexport { ChangeCoverageDetails };\n","import React from 'react';\n\nimport LoadingButton from '../../common/LoadingButton';\n\nimport './css/ChangeCoverageScreenPreview.css';\n\nconst ChangeCoverageButtons = ({\n containerClass = '',\n disabledPrimaryButton = false,\n loadingPrimaryButton = false,\n onClickPrimaryButton = () => { },\n onClickSecondaryButton = () => { },\n primaryText = '',\n secondaryText = '',\n successPrimaryButton = false,\n}) => (\n <div\n className={`Change-coverage-preview-buttons-container ${containerClass}`}\n >\n <button\n className=\"Change-coverage-preview-keep-button\"\n onClick={onClickSecondaryButton}\n type=\"button\"\n >\n {secondaryText}\n </button>\n\n <LoadingButton\n className=\"Change-coverage-preview-change-button\"\n disabled={disabledPrimaryButton}\n loading={loadingPrimaryButton}\n onClick={onClickPrimaryButton}\n success={successPrimaryButton}\n text={primaryText}\n />\n </div>\n);\n\nexport { ChangeCoverageButtons };\n","export const PLANS = {\n essential: 12,\n preferred: 9,\n ultimate: 39,\n};\n\nexport const MULTIMODAL_SECTIONS = {\n needToKnow: 1,\n petProtectCopay: 4,\n termsAndConditions: 3,\n vetExamFees: 5,\n wellnessDetails: 2,\n};\n","import { useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useParams } from 'react-router-dom';\nimport {\n POWER_UPS_RELATION,\n WELLNESS_COVERAGE_LIMIT_FPI,\n WELLNESS_MULTIMODAL_ID,\n} from '../../../changeCoverage/powerups/powerups.constans';\nimport { MULTIMODAL_SECTIONS } from '../../../changeCoverage/constants';\nimport {\n deductibleChanged,\n getChangeCoverageMultimodal,\n initialPowerUps,\n rateCoverage,\n reimbursementChanged,\n selectedPlanChanged,\n} from '../../../../actions';\n\nconst { WELLNESS_PSM_ID } = POWER_UPS_RELATION;\n\nconst useCoverageModal = () => {\n const dispatch = useDispatch();\n const { policyNumber } = useParams();\n const store = useSelector(({ policies }) => ({ ...policies.changeCoverage }));\n const [multiModalSectionSelected, setMultiModalSectionSelected] = useState(0);\n const [multiModalCategoryId, setMultiModalCategoryId] = useState(0);\n const [multiModalVisible, setMultiModalVisible] = useState(false);\n const { multimodalData, rate: {\n insuranceProduct,\n petQuoteResponseList = [],\n rateCreated,\n } } = store;\n\n const petInfo = useMemo(() => {\n if (petQuoteResponseList.length) {\n return petQuoteResponseList[0];\n }\n return {\n Plans: [],\n };\n }, [petQuoteResponseList]);\n\n useEffect(() => {\n dispatch(rateCoverage({ policyNumber }));\n }, [policyNumber]);\n\n useEffect(() => {\n if (rateCreated && petInfo.Plan) {\n const {\n Deductible,\n Deductibles,\n modifiers,\n Plan,\n Plans,\n Reimbursement,\n Reimbursements,\n } = petInfo;\n\n dispatch(selectedPlanChanged({\n planId: Plan,\n selectedAnnualBenefit:\n Plans.find((plan) => plan.Plan === Plan)?.MaxAnnual,\n }));\n const reimbursementDesc = Reimbursements\n .find((item) => item.Id === Reimbursement).Description || '';\n dispatch(reimbursementChanged({\n description: reimbursementDesc,\n reimbursementId: Reimbursement,\n }));\n const deductibleDesc = Deductibles\n .find((item) => item.Id === Deductible).Description || '';\n dispatch(deductibleChanged({\n deductibleId: Deductible,\n description: deductibleDesc,\n }));\n dispatch(initialPowerUps({ modifiers }));\n\n dispatch(getChangeCoverageMultimodal({ policyNumber }));\n }\n }, [rateCreated]);\n\n const multimodalDataSelected = useMemo(() => {\n let selection = null;\n if (multimodalData) {\n selection = multimodalData.InsuranceMultiModalSectionDtoList\n .find((data) => data.Id === multiModalSectionSelected);\n }\n\n if (!selection && multiModalSectionSelected && insuranceProduct) {\n const powerupInfo = insuranceProduct.InsuranceModifiers\n .find((modifier) => modifier.PMSModifierId\n === multiModalSectionSelected);\n\n return {\n InsuranceMultiModalCategoryDtoList: [{\n CategoryHeader: powerupInfo.TitleText,\n OptionalBenefitsDetailsItems: [\n ...powerupInfo.OptionalBenefitsDetailsItem,\n ],\n ...powerupInfo,\n }],\n Title: powerupInfo.TitleText,\n };\n }\n return selection;\n }, [insuranceProduct, multimodalData, multiModalSectionSelected]);\n\n const wellnessBenefits = useMemo(() => {\n if (insuranceProduct?.InsuranceModifiers) {\n const wellnessModifiers = insuranceProduct?.InsuranceModifiers\n .find((item) => item.PMSModifierId === WELLNESS_PSM_ID);\n\n return wellnessModifiers?.BundleInsuranceModifiers;\n }\n\n return [];\n }, [insuranceProduct]);\n\n function handleWellnessClick(coverageLimitId) {\n let newCategoryId = 0;\n if (coverageLimitId) {\n newCategoryId = WELLNESS_COVERAGE_LIMIT_FPI.BASIC\n .includes(coverageLimitId)\n ? WELLNESS_MULTIMODAL_ID.BASIC\n : WELLNESS_MULTIMODAL_ID.PLUS;\n }\n setMultiModalCategoryId(newCategoryId);\n setMultiModalVisible(true);\n setMultiModalSectionSelected(MULTIMODAL_SECTIONS.wellnessDetails);\n }\n\n function handleVetFeesClick(PMSModifierId) {\n setMultiModalVisible(true);\n setMultiModalSectionSelected(PMSModifierId);\n }\n\n function handlePetProtectCopayInfoClick() {\n setMultiModalVisible(true);\n setMultiModalSectionSelected(MULTIMODAL_SECTIONS.petProtectCopay);\n }\n\n return {\n handlePetProtectCopayInfoClick,\n handleVetFeesClick,\n handleWellnessClick,\n multiModalCategoryId,\n multimodalDataSelected,\n multiModalVisible,\n setMultiModalCategoryId,\n setMultiModalSectionSelected,\n setMultiModalVisible,\n wellnessBenefits,\n };\n};\n\nexport { useCoverageModal };\n","import React, { useMemo } from 'react';\nimport moment from 'moment';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport {\n doNothing,\n possesiveAdaptationI18n,\n} from '../../../services/utils';\n\nimport { POWER_UPS_RELATION, WELLNESS_MULTIMODAL_ID }\nfrom '../../changeCoverage/powerups/powerups.constans';\n\nimport FigoLoadingOverlay from '../../common/FigoLoadingOverlay';\n\nimport { PowerupCard }\nfrom '../../changeCoverage/changeCoveragePreview/PowerupCard';\nimport { ChangeCoverageDetails } from './ChangeCoverageDetails';\nimport { ModifierModalInfo } from '../modifiers/ModifierModalInfo';\nimport { ChangeCoverageButtons } from './ChangeCoverageButtons';\nimport { useCoverageModal } from './hooks/useCoverageModal';\n\nimport './css/ChangeCoverageScreenPreview.css';\n\nconst {\n VETERINARY_EXAM_FEES_PSM_ID,\n WELLNESS_PSM_ID,\n} = POWER_UPS_RELATION;\n\nconst ChangeCoverageScreenPreview = ({\n onChangeCoverageClick = () => { },\n onKeepClick = () => { },\n}) => {\n const { t } = useTranslation('changeCoverage');\n const { isTablet, isMobile } = useResponsive();\n const {\n policies: {\n changeCoverage: {\n loading,\n preview,\n },\n },\n } = useSelector(({ policies }) => ({ policies }));\n const {\n handlePetProtectCopayInfoClick,\n handleVetFeesClick,\n handleWellnessClick,\n multiModalCategoryId,\n multimodalDataSelected,\n multiModalVisible,\n setMultiModalVisible,\n wellnessBenefits,\n } = useCoverageModal();\n\n const powerups = useMemo(() => [\n {\n detail: preview.VeterinaryInformation,\n id: VETERINARY_EXAM_FEES_PSM_ID,\n included: preview.HaveVeterinaryFees,\n title: t('preview.vetFees'),\n },\n {\n detail: preview.WellnessInformation,\n id: WELLNESS_PSM_ID,\n included: preview.HaveWellness,\n title: t('preview.wellness'),\n },\n ], [preview]);\n\n const handlePowerupClick = (id) => () => {\n switch (id) {\n case VETERINARY_EXAM_FEES_PSM_ID:\n handleVetFeesClick(id);\n break;\n\n case WELLNESS_PSM_ID: {\n const wellnessId = wellnessBenefits[0].CoverageLimitId;\n\n handleWellnessClick(wellnessId || WELLNESS_MULTIMODAL_ID.BASIC);\n break;\n }\n\n default:\n doNothing();\n }\n };\n\n function formatDate(date) {\n return !date ? '-' : moment(date.split('T')[0]).format('MM/DD/YYYY');\n }\n\n function handleCloseMultiModal() {\n setMultiModalVisible(false);\n }\n\n return (\n <div className=\"Change-coverage-screen-preview-container\">\n <h3>\n {`${isTablet || isMobile\n ? t('preview.mTitle', {\n count: possesiveAdaptationI18n(preview.PetName),\n name: preview.PetName,\n })\n : t('preview.title', {\n count: possesiveAdaptationI18n(preview.PetName),\n name: preview.PetName,\n })}`}\n </h3>\n\n <ChangeCoverageDetails\n annualBenefit={preview.AnnualBenefit}\n deductible={preview.Deductible}\n effectiveDate={formatDate(preview.NewPremiumEffectiveDate)}\n lastDate={formatDate(preview.LastDateToChange)}\n petName={preview.PetName}\n plan={preview.PlanName}\n price={preview.Premium}\n reimbursement={preview.Reimbursement}\n />\n\n <div className=\"Change-coverage-preview-pet-protect-container\">\n <PowerupCard\n detail={preview.PerIncidentCopayInformation}\n handleLearnMoreClick={handlePetProtectCopayInfoClick}\n included={preview.HavePerIncidentCopay}\n title={t('preview.petProtectCopayTitle')}\n />\n </div>\n\n <h3>{t('powerups.Powerups')}</h3>\n\n <p className=\"Change-coverage-preview-powerup-description\">\n {t('preview.powerupsText', {\n count: possesiveAdaptationI18n(preview.PetName),\n name: preview.PetName,\n })}\n </p>\n\n <div className=\"Change-coverage-preview-powerup-powerups-container\">\n {powerups.map((powerup) => (\n <PowerupCard\n key={powerup.title}\n detail={powerup.detail}\n handleLearnMoreClick={handlePowerupClick(powerup.id)}\n included={powerup.included}\n title={powerup.title}\n />\n ))}\n </div>\n\n <h3>{t('preview.wantChanges')}</h3>\n\n <p className=\"Change-coverage-preview-want-changes-text\">\n {t('preview.wantChangesPet', {\n beforeDate: formatDate(preview.LastDateToChange),\n interpolation: { escapeValue: false },\n petName: preview.PetName,\n renewalDate: formatDate(preview.NewPremiumEffectiveDate),\n })}\n </p>\n\n <ChangeCoverageButtons\n onClickPrimaryButton={onChangeCoverageClick}\n onClickSecondaryButton={onKeepClick}\n primaryText={t('preview.changeCoverage')}\n secondaryText={t('preview.back')}\n />\n\n <FigoLoadingOverlay visible={loading} />\n\n {multimodalDataSelected && (\n <ModifierModalInfo\n initialMenuSelected={multiModalCategoryId}\n isVisible={multiModalVisible}\n isWhatsCovered\n multiModalData={multimodalDataSelected}\n onClose={handleCloseMultiModal}\n wellnessBenefits={wellnessBenefits}\n />\n )}\n </div>\n );\n};\n\nexport { ChangeCoverageScreenPreview };\n","import { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nconst useDisableSubmit = () => {\n const store = useSelector(({ policies }) => ({ ...policies.changeCoverage }));\n const {\n initialCoverageValues,\n quoteSelectedValues,\n } = store;\n\n const {\n deductibleId,\n reimbursementId,\n selectedPlan,\n } = quoteSelectedValues;\n\n const disableSubmit = useMemo(() => {\n let equalModifiers = true;\n const { modifiers } = initialCoverageValues;\n\n // Validate if there is no selected modifier\n if (!modifiers.length && quoteSelectedValues.modifiers.length) {\n equalModifiers = quoteSelectedValues\n .modifiers.every((item) => !item.isSelected);\n }\n\n // Get only the id from initial and current power ups\n const initialSelected = modifiers.filter((initial) => initial.isSelected)\n .map((initial) => initial.id).sort();\n const currentSelected = quoteSelectedValues.modifiers\n .filter((current) => current.isSelected)\n .map((current) => current.id).sort();\n\n // Validate there is a different item between both arrays\n const difference = currentSelected\n .filter((power) => initialSelected.indexOf(power) === -1)\n .concat(initialSelected\n .filter((power) => currentSelected.indexOf(power) === -1));\n equalModifiers = !difference.length;\n\n return initialCoverageValues.deductibleId === deductibleId\n && initialCoverageValues.reimbursementId === reimbursementId\n && initialCoverageValues.selectedPlan === selectedPlan\n && equalModifiers;\n }, [\n deductibleId,\n reimbursementId,\n selectedPlan,\n initialCoverageValues,\n quoteSelectedValues,\n ]);\n\n return disableSubmit;\n};\n\nexport { useDisableSubmit };\n","import {\n POWER_UPS_RELATION,\n PRODUCT_VALUES,\n} from './powerups/powerups.constans';\n\nconst {\n WELLNESS_PSM_ID,\n} = POWER_UPS_RELATION;\n\nfunction isChangeCoverage() {\n const path = window.location.href;\n\n return path.includes('changecoverage');\n}\n\nfunction isProductFPI(productId) {\n const { FPI_VALUES } = PRODUCT_VALUES;\n\n return FPI_VALUES.indexOf(productId) >= 0;\n}\n\nfunction isWellnessFPI(powerUp, insuranceProduct) {\n const productId = insuranceProduct.Id;\n return powerUp.PMSModifierId === WELLNESS_PSM_ID && isProductFPI(productId);\n}\n\nfunction toTruncate(value) {\n return Math.trunc((value * 100)) / 100;\n}\n\nexport { isChangeCoverage, isProductFPI, isWellnessFPI, toTruncate };\n","import { useEffect, useMemo, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport {\n deductibleChanged,\n getChangeCoverageMultimodal,\n initialPowerUps,\n powerUpSelected,\n quoteTotalRecalculated,\n rateCoverage,\n reimbursementChanged,\n restartRate,\n reviewChangesVisibleChanged,\n selectedPlanChanged,\n updatePowerUp,\n} from '../../../../actions';\nimport { useMixpanel, usePMS } from '../../../../hooks';\nimport {\n POWERUP_TYPE,\n POWER_UPS_RELATION,\n WELLNESS_COVERAGE_LIMIT_FPI,\n WELLNESS_MULTIMODAL_ID,\n} from '../../../changeCoverage/powerups/powerups.constans';\nimport { isWellnessFPI } from '../../../changeCoverage/utils';\nimport { MULTIMODAL_SECTIONS } from '../../../changeCoverage/constants';\nimport { INSURANCE } from '../../../navigation/routes.constants';\nimport { EV1 } from '../../../../services/mixpanel';\nimport { getBrandNameByChannelId } from '../../../../services/utils';\n\nconst {\n DISMINISHING_DEDUCTIBLE,\n PETPROTECT_COPAY,\n WELLNESS_DENTAL_PSM_ID,\n WELLNESS_PSM_ID,\n} = POWER_UPS_RELATION;\n\nconst useCoverageOptions = ({\n onRateCreationError = () => { },\n policyNumber = '',\n validatePromptWarning = () => true,\n}) => {\n const dispatch = useDispatch();\n const { sendEvent } = useMixpanel();\n const { pms } = usePMS();\n const history = useHistory();\n const [multiModalCategoryId, setMultiModalCategoryId] = useState(0);\n const [multiModalSectionSelected, setMultiModalSectionSelected] = useState(0);\n const [multiModalVisible, setMultiModalVisible] = useState(false);\n const [rateErrorModalVisible, setRateErrorModalVisible] = useState(false);\n const store = useSelector(({ policies }) => ({\n ...policies.changeCoverage,\n allPolicies: policies.allPolicies,\n }), shallowEqual);\n\n const {\n deductibleLegend,\n loading,\n loadingSubmit,\n multimodalData,\n quoteSelectedValues,\n rate: {\n effectiveDate,\n error: rateError,\n insuranceProduct,\n petQuoteResponseList = [],\n rateCreated,\n },\n powerUpLoadings,\n reviewChangesVisible,\n success,\n allPolicies,\n } = store;\n\n const { selectedPlan } = quoteSelectedValues;\n\n useEffect(() => {\n dispatch(rateCoverage({ policyNumber }));\n }, [policyNumber]);\n\n useEffect(() => {\n setRateErrorModalVisible(rateError);\n }, [rateError]);\n\n const petInfo = useMemo(() => {\n if (petQuoteResponseList.length) {\n return petQuoteResponseList[0];\n }\n return {\n Plans: [],\n };\n }, [petQuoteResponseList]);\n\n useEffect(() => {\n if (selectedPlan) {\n dispatch(quoteTotalRecalculated());\n }\n }, [\n quoteSelectedValues.deductibleId,\n quoteSelectedValues.reimbursementId,\n selectedPlan,\n petInfo,\n ]);\n\n useEffect(() => {\n if (rateCreated && petInfo.Plan) {\n const {\n Deductible,\n Deductibles,\n modifiers,\n Plan,\n Plans,\n Reimbursement,\n Reimbursements,\n } = petInfo;\n\n dispatch(selectedPlanChanged({\n planId: Plan,\n selectedAnnualBenefit:\n Plans.find((plan) => plan.Plan === Plan)?.MaxAnnual,\n }));\n const reimbursementDesc = Reimbursements\n .find((item) => item.Id === Reimbursement).Description || '';\n dispatch(reimbursementChanged({\n description: reimbursementDesc,\n reimbursementId: Reimbursement,\n }));\n const deductibleDesc = Deductibles\n .find((item) => item.Id === Deductible).Description || '';\n dispatch(deductibleChanged({\n deductibleId: Deductible,\n description: deductibleDesc,\n }));\n dispatch(initialPowerUps({ modifiers }));\n\n dispatch(getChangeCoverageMultimodal({ policyNumber }));\n }\n }, [rateCreated]);\n\n const policyBrandName = useMemo(() => {\n const foundPolicy = allPolicies\n ?.find((policyItem) => policyItem.Policy.Number === policyNumber);\n const productFamilyId = foundPolicy?.Policy.ProductFamilyId ?? '';\n return getBrandNameByChannelId(productFamilyId);\n }, [allPolicies, policyNumber]);\n\n const petProtectCopayModifier = useMemo(() => {\n if (loading || !petQuoteResponseList?.length) {\n return false;\n }\n\n const items = petQuoteResponseList[0];\n\n return items.InsuranceModifiers\n .find((modifier) => modifier.PMSModifierId\n === POWER_UPS_RELATION.PETPROTECT_COPAY);\n }, [loading, petQuoteResponseList]);\n\n const multimodalDataSelected = useMemo(() => {\n let selection = null;\n if (multimodalData) {\n selection = multimodalData.InsuranceMultiModalSectionDtoList\n .find((data) => data.Id === multiModalSectionSelected);\n }\n\n if (!selection && multiModalSectionSelected && insuranceProduct) {\n const powerupInfo = insuranceProduct.InsuranceModifiers\n .find((modifier) => modifier.PMSModifierId\n === multiModalSectionSelected);\n\n return {\n InsuranceMultiModalCategoryDtoList: [{\n CategoryHeader: powerupInfo.TitleText,\n OptionalBenefitsDetailsItems: [\n ...powerupInfo.OptionalBenefitsDetailsItem,\n ],\n ...powerupInfo,\n }],\n Title: powerupInfo.TitleText,\n };\n }\n return selection;\n }, [multimodalData, multiModalSectionSelected]);\n\n function handleAddPowerup({ isSelected = false, powerUp }) {\n const { Id } = powerUp;\n const { InsuranceModifiers } = insuranceProduct;\n const previosQuoteModifiers = (petInfo.modifiers || []);\n\n dispatch(powerUpSelected({ id: Id, isSelected }));\n\n const allModifiers = InsuranceModifiers\n .filter((modifier) => modifier.InsuranceModifierTypeId === POWERUP_TYPE\n && modifier.IsVisible)\n .map((item) => ({ id: item.Id, isSelected: false }));\n\n let modifiers = allModifiers.map((item) => {\n if (item.id === Id) {\n return { id: Id, isSelected };\n }\n\n const currentModifier = previosQuoteModifiers\n .find((petModifier) => petModifier.id === item.id) || {};\n\n return {\n ...item,\n isSelected: !!currentModifier.isSelected,\n };\n });\n\n // Diminishing Deductible modifier and child (if exist)\n const diminishingDeductible = InsuranceModifiers\n .find((modifier) => modifier.InsuranceModifierTypeId === POWERUP_TYPE\n && modifier.PMSModifierId === DISMINISHING_DEDUCTIBLE);\n let diminishingDeductibleChild = [];\n\n if (diminishingDeductible) {\n diminishingDeductibleChild =\n diminishingDeductible.BundleInsuranceModifiers\n .map((item) => ({ id: item.Id, isSelected: true }));\n\n modifiers = [\n ...modifiers,\n {\n id: diminishingDeductible.Id,\n isSelected: true,\n },\n ...diminishingDeductibleChild,\n ];\n }\n\n const wellnessPowerup = InsuranceModifiers\n .find((modifier) => modifier.InsuranceModifierTypeId === POWERUP_TYPE\n && modifier.IsVisible && modifier.PMSModifierId === WELLNESS_PSM_ID);\n const isFPI = wellnessPowerup\n && isWellnessFPI(wellnessPowerup, insuranceProduct);\n\n const petProtectCopayPowerup = InsuranceModifiers\n .find((modifier) => modifier.InsuranceModifierTypeId === POWERUP_TYPE\n && modifier.IsVisible && modifier.PMSModifierId === PETPROTECT_COPAY);\n\n if (petProtectCopayPowerup) {\n const ppipFather = { id: petProtectCopayPowerup.Id, isSelected };\n const ppipChildren = petProtectCopayPowerup.BundleInsuranceModifiers\n .map((child) => (child.Id === Id\n ? { id: child.Id, isSelected }\n : { id: child.Id, isSelected: false }));\n if (powerUp.BenefitParentId === petProtectCopayPowerup.Id) {\n modifiers = modifiers\n .filter((element) => element.id !== petProtectCopayPowerup.Id);\n modifiers = [\n ...modifiers,\n ...ppipChildren,\n ppipFather,\n ];\n } else {\n // add previous ppic\n const ppicChildrenIds = ppipChildren\n .map((child) => child.id);\n const previousPPIC = previosQuoteModifiers\n .filter((prevModifier) => ppicChildrenIds\n .includes(prevModifier.id));\n modifiers = [...modifiers, ...previousPPIC];\n }\n }\n\n if (isFPI) {\n const wellnessfather = { id: wellnessPowerup.Id, isSelected };\n const wellnessChildren = wellnessPowerup.BundleInsuranceModifiers\n .map((child) => {\n if (child.PMSModifierId === WELLNESS_DENTAL_PSM_ID\n || child.Id === Id) {\n return { id: child.Id, isSelected };\n }\n\n return { id: child.Id, isSelected: false };\n });\n\n if (wellnessChildren.find((child) => child.id === Id)) {\n modifiers = modifiers\n .filter((element) => element.id !== wellnessPowerup.Id);\n // any wellness clidren is selected\n modifiers = [\n ...modifiers,\n ...wellnessChildren,\n wellnessfather,\n ];\n } else {\n // add previous wellness powerups selected\n const wellnessChildrenIds = wellnessChildren\n .map((child) => child.id);\n const previousWellness = previosQuoteModifiers\n .filter((prevModifier) => wellnessChildrenIds\n .includes(prevModifier.id));\n\n modifiers = [...modifiers, ...previousWellness];\n }\n }\n\n if (powerUp.PMSModifierId === POWER_UPS_RELATION.WELLNESS_DENTAL_PSM_ID) {\n // Wellness IHC\n const childrenWellness = wellnessPowerup.BundleInsuranceModifiers\n .map((element) => ({ id: element.Id, isSelected }));\n\n modifiers = modifiers.concat(childrenWellness);\n }\n\n dispatch(updatePowerUp({ id: Id, isSelected, modifiers, policyNumber }));\n }\n\n function handlePetProtectCopayInfoClick() {\n setMultiModalVisible(true);\n setMultiModalSectionSelected(MULTIMODAL_SECTIONS.petProtectCopay);\n }\n\n function handleWellnessClick(coverageLimitId) {\n let newCategoryId = 0;\n if (coverageLimitId) {\n newCategoryId = WELLNESS_COVERAGE_LIMIT_FPI.BASIC\n .includes(coverageLimitId)\n ? WELLNESS_MULTIMODAL_ID.BASIC\n : WELLNESS_MULTIMODAL_ID.PLUS;\n }\n setMultiModalCategoryId(newCategoryId);\n setMultiModalVisible(true);\n setMultiModalSectionSelected(MULTIMODAL_SECTIONS.wellnessDetails);\n }\n\n function handleVetFeesClick(PMSModifierId) {\n setMultiModalVisible(true);\n setMultiModalSectionSelected(PMSModifierId);\n }\n\n function handleReviewChangesClick() {\n dispatch(reviewChangesVisibleChanged(true));\n }\n\n function onReviewChangesClosed() {\n dispatch(reviewChangesVisibleChanged(false));\n }\n\n function handleCloseMultiModal() {\n setMultiModalVisible(false);\n }\n\n function handleErrorModalClose() {\n setRateErrorModalVisible(false);\n onRateCreationError();\n }\n\n function cleanUpRate() {\n dispatch(restartRate());\n }\n\n function shouldPromptWarning(_crntLocation, nextLocation) {\n if (!nextLocation) {\n return true;\n }\n\n return validatePromptWarning(_crntLocation, nextLocation);\n }\n\n function handleCloseSubmit() {\n const source = window.location.pathname;\n sendEvent(EV1({ pms, policyBrand: policyBrandName, source }));\n history.push(INSURANCE, { changeCoverageId: policyNumber });\n }\n\n function handleGoBack() {\n history.goBack();\n }\n\n useEffect(() => () => onReviewChangesClosed(), []);\n\n return {\n cleanUpRate,\n deductibleLegend,\n effectiveDate,\n handleAddPowerup,\n handleCloseMultiModal,\n handleCloseSubmit,\n handleErrorModalClose,\n handleGoBack,\n handlePetProtectCopayInfoClick,\n handleReviewChangesClick,\n handleVetFeesClick,\n handleWellnessClick,\n insuranceProduct,\n loading,\n loadingSubmit,\n multiModalCategoryId,\n multimodalDataSelected,\n multiModalVisible,\n onReviewChangesClosed,\n petInfo,\n petProtectCopayModifier,\n policyBrandName,\n powerUpLoadings,\n quoteSelectedValues,\n rateErrorModalVisible,\n reviewChangesVisible,\n shouldPromptWarning,\n success,\n };\n};\n\nexport { useCoverageOptions };\n","export default __webpack_public_path__ + \"static/media/info-blue-light.efe5fb30.svg\";","import React, { useState, useRef } from 'react';\nimport infoIcon from '../../assets/info-blue-light.svg';\n\nimport './CustomTooltip.css';\n\nexport const TOOL_TIP_POSITION = {\n center: {\n containerArrowPosition: 'Icon-tooltip-arrow-container-center',\n left: -115,\n },\n end: {\n containerArrowPosition: 'Icon-tooltip-arrow-container-end',\n left: -204,\n },\n start: {\n containerArrowPosition: 'Icon-tooltip-arrow-container-start',\n left: -24,\n },\n};\n\nconst CustomTooltip = ({\n backgroundColor = 'var(--blue-main)',\n borderColor = '',\n containerClassName,\n description,\n descriptionClassName,\n icon,\n position = TOOL_TIP_POSITION.center,\n name = '',\n}) => {\n const [tooltipVisible, setTooltipVisible] = useState(false);\n const iconRef = useRef();\n const id = `tooltip-${name.replace(' ', '-')}`;\n\n const containerLocation = () => {\n if (!iconRef.current) {\n return {};\n }\n\n const { offsetTop, offsetLeft } = iconRef.current;\n\n const top = offsetTop - 128;\n const left = offsetLeft + position.left;\n return { left: `${left}px`, top: `${top}px` };\n };\n\n function handleHoverIn() {\n setTooltipVisible(true);\n }\n\n function handleHoverOut() {\n setTooltipVisible(false);\n }\n\n function handleVisibility() {\n if (tooltipVisible) {\n handleHoverOut();\n } else {\n handleHoverIn();\n }\n }\n\n function renderTooltip() {\n if (!tooltipVisible) {\n return null;\n }\n\n return (\n <div\n className=\"Icon-tooltip-main-container\"\n id={id}\n role=\"tooltip\"\n style={containerLocation()}\n >\n <div\n className={'Icon-tooltip-description-container '\n + `${containerClassName}`}\n style={{\n backgroundColor,\n borderColor,\n borderStyle: 'solid',\n borderWidth: 1,\n }}\n >\n <span className={`Icon-tooltip-description ${descriptionClassName}`}>\n {description}\n </span>\n </div>\n\n <div className={'Icon-tooltip-arrow-container '\n + `${position.containerArrowPosition}`}\n >\n <div\n className=\"Icon-tooltip-arrow-down-border\"\n style={{\n borderTopColor: `${borderColor || backgroundColor}`,\n borderTopStyle: 'solid',\n borderTopWidth: '11px',\n }}\n />\n\n <div\n className=\"Icon-tooltip-arrow-down\"\n style={{ borderTop: `10px solid ${backgroundColor}` }}\n />\n </div>\n </div>\n );\n }\n\n return (\n <>\n {renderTooltip()}\n\n <button\n aria-describedby={id}\n aria-label={tooltipVisible ? description : ''}\n aria-live={tooltipVisible ? 'assertive' : null}\n className=\"Icon-tooltip-icon-button\"\n onBlur={handleHoverOut}\n onClick={handleVisibility}\n type=\"button\"\n >\n <img\n ref={iconRef}\n alt=\"info\"\n className=\"Icon-tooltip-icon-default\"\n onMouseEnter={handleHoverIn}\n onMouseLeave={handleHoverOut}\n src={icon || infoIcon}\n />\n </button>\n </>\n );\n};\n\nexport default CustomTooltip;\n","export default __webpack_public_path__ + \"static/media/info.6561e93c.svg\";","export default __webpack_public_path__ + \"static/media/check.717abd12.svg\";","import React, { useCallback, useMemo } from 'react';\n\nimport checkIcon from '../../../../assets/plans/check.svg';\nimport './SelectorPill.css';\n\nconst SelectorPill = ({\n checked = false,\n disabled = false,\n itemExtraData,\n label = '',\n name = '',\n onChange = () => { },\n value = '',\n}) => {\n const id = useMemo(() => label.replace(/[^A-Za-z0-9]/g, ''), [label]);\n\n const handleChange = useCallback(() => {\n onChange({ ...itemExtraData, label, value });\n }, [onChange, itemExtraData, label, value]);\n\n return (\n <label\n aria-label={`${label} ${name}`}\n aria-live={checked ? 'polite' : 'off'}\n className=\"Selector-pill-wrapper\"\n data-checked={checked}\n data-disabled={disabled}\n htmlFor={`${id}-${name}`}\n >\n <input\n aria-disabled={disabled}\n checked={checked}\n className=\"Selector-pill-button\"\n id={`${id}-${name}`}\n name={name}\n onChange={handleChange}\n type=\"radio\"\n value={value}\n />\n\n {checked\n && <img alt=\"\" className=\"Selector-pill-button-icon\" src={checkIcon} />}\n\n {label}\n </label>\n );\n};\n\nexport { SelectorPill };\n","import React, { useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport infoIcon from '../../../../assets/plans/info.svg';\nimport { TOOL_TIP_POSITION } from '../../../common/IconTooltip';\n\nimport { SelectorPill } from './SelectorPill';\nimport CustomTooltip from '../../../common/CustomTooltip';\n\nimport './SelectorPills.css';\n\nexport const SelectorPills = ({\n children,\n items = [{ disabled: false, item: {}, value: '' }],\n onChange = () => { },\n position = TOOL_TIP_POSITION.start,\n title,\n tooltipDescription,\n value,\n}) => {\n const dispatch = useDispatch();\n\n const onOptionClick = useCallback((item) => {\n if (item.disabled) {\n return;\n }\n\n onChange(item);\n }, [dispatch, onChange]);\n\n const titleForId = title.replace(/\\s/g, '-');\n\n return (\n <fieldset className=\"Selector-pills-container\">\n <span className=\"Selector-pills-title\" id={`${titleForId}-label`}>\n <legend>{title}</legend>\n\n {tooltipDescription && (\n <CustomTooltip\n backgroundColor=\"var(--citron-shade-3)\"\n borderColor=\"#000\"\n description={tooltipDescription}\n icon={infoIcon}\n name={title}\n position={position}\n />\n )}\n </span>\n\n <div className=\"Selector-pills-options\">\n {items.map((item) => (\n <SelectorPill\n key={item.value}\n checked={value === item.id}\n disabled={item.disabled}\n itemExtraData={item}\n label={item.value}\n name={title.replace(' ', '')}\n onChange={onOptionClick}\n value={item.value}\n />\n ))}\n\n {children}\n </div>\n </fieldset>\n );\n};\n","export default __webpack_public_path__ + \"static/media/info-red.14fdd280.svg\";","import React, { useEffect, useState, useCallback, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport {\n changeDeductibleLegend,\n deductibleChanged,\n reimbursementChanged,\n selectedPlanChanged,\n} from '../../../actions';\n\nimport Shimmer from '../../common/Shimmer';\nimport { TOOL_TIP_POSITION } from '../../common/CustomTooltip';\nimport { SelectorPills }\nfrom '../changeCoverageOptions/selectorPills/SelectorPills';\n\nimport infoRedIcon from '../../../assets/changeCoverage/info-red.svg';\nimport { CONTACT_US_URL } from '../../../constants';\nimport './css/DeductibleReimbursement.css';\n\nconst ULTIMATE_PLAN = 'Unlimited';\nconst EMPTY_TEXT = '';\n\nexport const DeductibleReimbursement = ({\n plans,\n quoteSelected,\n}) => {\n const dispatch = useDispatch();\n const store = useSelector(({ policies }) => ({ ...policies.changeCoverage }));\n const { initialCoverageValues } = store;\n\n const [deductibles, setDeductibles] = useState([]);\n\n const {\n deductibleId,\n reimbursementId,\n selectedPlan,\n } = quoteSelected;\n const { t } = useTranslation('changeCoverage');\n\n const plansItems = useMemo(\n () => (plans.map((item) => ({\n ...item,\n id: item.Plan,\n value: item.MaxAnnual,\n }))),\n [plans],\n );\n\n const downgradePlan = useMemo(() => {\n const quoteValues = ['$5,000', '$10,000', ULTIMATE_PLAN];\n\n const initialIndex = quoteValues\n .indexOf(initialCoverageValues.selectedAnnualBenefit);\n const selectedIndex = quoteValues\n .indexOf(quoteSelected.selectedAnnualBenefit);\n\n return selectedIndex < initialIndex;\n }, [initialCoverageValues, quoteSelected.selectedAnnualBenefit]);\n\n const isUltimateSelected = quoteSelected.selectedAnnualBenefit\n === ULTIMATE_PLAN;\n\n const planMemo = useMemo(() => plans\n .find((item) => item.Plan === selectedPlan), [selectedPlan]);\n\n const updateDeductible = useCallback(({ value, id }) => {\n dispatch(deductibleChanged({ deductibleId: id, description: value }));\n }, [dispatch]);\n\n const noDeductibleReimbursement = useCallback(() => {\n const deductibleFilter = planMemo.RatingOptions\n .filter((item) => !item.Invalid)\n .map((item) => ({\n available: !item.Invalid,\n description: item.DeductibleName,\n disabled: item.Invalid,\n id: item.DeductibleId,\n }));\n const deductibleAvailable = deductibleFilter\n .reverse().find((item) => item.available);\n\n const { description, id } = deductibleAvailable;\n\n dispatch(deductibleChanged({ deductibleId: id, description }));\n }, [deductibleId, dispatch, planMemo]);\n\n const updateReimbursement = useCallback(() => {\n const ratingOptions = planMemo.RatingOptions\n .filter((rating) => rating.DeductibleId === deductibleId);\n const reimbursementsFilter = ratingOptions\n .filter((item) => item.DeductibleId === deductibleId && !item.Invalid)\n .map((item) => ({\n available: !item.Invalid,\n description: item.ReimbursementName,\n disabled: item.Invalid,\n id: item.ReimbursementId,\n }));\n const reimbursementAvailable = reimbursementsFilter\n .reverse().find((item) => item.available);\n\n if (!reimbursementAvailable) {\n noDeductibleReimbursement();\n return;\n }\n\n const { description, id } = reimbursementAvailable;\n\n dispatch(reimbursementChanged({ description, reimbursementId: id }));\n }, [deductibleId, dispatch, planMemo]);\n\n useEffect(() => {\n if (!planMemo) {\n return;\n }\n\n const ratingOptions = planMemo.RatingOptions\n .filter((rating) => rating.ReimbursementId === reimbursementId);\n const deductiblesFilter = ratingOptions\n .filter((item) => item.ReimbursementId === reimbursementId\n && !item.Invalid)\n .map((item) => ({\n available: !item.Invalid,\n disabled: item.Invalid,\n id: item.DeductibleId,\n value: item.DeductibleName,\n }));\n const deductiblesAvailables =\n deductiblesFilter.filter((item) => item.available);\n const currentDeductible =\n deductiblesFilter.find((item) => item.id === deductibleId) || {};\n let deductibleLegend = '';\n\n if (!deductiblesAvailables.length) {\n updateReimbursement();\n return;\n }\n\n const reimbursementPercentage = ratingOptions[0].ReimbursementName;\n\n if (deductiblesAvailables.length < deductiblesFilter.length) {\n const names = deductiblesAvailables.map((item) => item.value);\n let nameLegend = '';\n\n if (names.length === 1) {\n nameLegend = names.join(t('sliders.deductibleLegendJoin'));\n } else {\n names.forEach((item, index) => {\n const concat = names.length - 1 === index\n ? t('sliders.deductibleLegendJoin') : ', ';\n\n nameLegend = nameLegend\n ? `${nameLegend}${concat}${item}` : ` ${item}`;\n });\n }\n\n deductibleLegend = t('sliders.deductibleLegend', {\n names: nameLegend, reimbursementPercentage,\n });\n }\n\n dispatch(changeDeductibleLegend(deductibleLegend));\n\n if (!currentDeductible.available) {\n updateDeductible(\n [...deductiblesFilter].reverse().find((item) => item.available),\n );\n }\n\n setDeductibles(deductiblesFilter);\n }, [\n deductibleId,\n dispatch,\n reimbursementId,\n planMemo,\n updateDeductible,\n updateReimbursement,\n ]);\n\n const onDeductibleChange = useCallback(({ id, value }) => {\n updateDeductible({ id, value });\n }, [updateDeductible]);\n\n const [reimbursements, setReimbursements] = useState([]);\n\n useEffect(() => {\n if (!planMemo) {\n return;\n }\n\n const ratingOptions = planMemo.RatingOptions\n .filter((rating) => rating.DeductibleId === deductibleId);\n const reimbursementsFilter = ratingOptions\n .filter((item) => item.DeductibleId === deductibleId && !item.Invalid)\n .map((item) => ({\n available: !item.Invalid,\n disabled: item.Invalid,\n id: item.ReimbursementId,\n value: item.ReimbursementName,\n }));\n\n setReimbursements(reimbursementsFilter);\n }, [deductibleId, planMemo]);\n\n const onReimbursementChange = useCallback(({ id, value }) => {\n dispatch(reimbursementChanged({ description: value, reimbursementId: id }));\n }, [dispatch]);\n\n const onCoverageChange = useCallback(({ MaxAnnual, Plan }) => {\n dispatch(selectedPlanChanged({\n planId: Plan,\n selectedAnnualBenefit: MaxAnnual,\n }));\n }, [dispatch, plans]);\n\n return (\n <>\n <div className=\"DeductibleReimbursement-container\">\n <div className=\"DeductibleReimbursement-container-div Flex-column\">\n <Shimmer\n element=\"fragment\"\n height={70}\n visible={plansItems.length === 0}\n >\n <SelectorPills\n items={plansItems}\n onChange={onCoverageChange}\n title={t('sliders.annualCoverageTitle')}\n tooltipDescription={t('tooltip.annualCoverageTooltip')}\n value={quoteSelected.selectedPlan}\n >\n {downgradePlan && (\n <div className=\"d-flex\">\n <img\n alt=\"\"\n className=\"Deductible-legend-text-icon\"\n src={infoRedIcon}\n />\n\n <p className=\"Deductible-legend-text\">\n\n <Trans\n components={{\n a: <a href={CONTACT_US_URL}>{EMPTY_TEXT}</a>,\n }}\n i18nKey=\"sliders.annualCoverageLegend\"\n ns=\"changeCoverage\"\n />\n </p>\n </div>\n )}\n </SelectorPills>\n </Shimmer>\n\n <Shimmer\n element=\"fragment\"\n height={70}\n margin=\"16px 0\"\n visible={deductibles.length === 0}\n >\n <SelectorPills\n items={deductibles}\n onChange={onDeductibleChange}\n title={t('sliders.deductibleTitle')}\n tooltipDescription={t('tooltip.deductibleTooltip')}\n value={quoteSelected.deductibleId}\n >\n {isUltimateSelected && (\n <span\n aria-live=\"polite\"\n className=\"Deductible-legend-text\"\n >\n {t('sliders.100ReimbursementNoAvailable')}\n </span>\n )}\n </SelectorPills>\n </Shimmer>\n\n <Shimmer\n element=\"fragment\"\n height={70}\n visible={reimbursements.length === 0}\n >\n <SelectorPills\n items={reimbursements}\n onChange={onReimbursementChange}\n position={TOOL_TIP_POSITION.start}\n title={t('sliders.reimbursementTitle')}\n tooltipDescription={t('tooltip.reimbursementTooltip')}\n value={quoteSelected.reimbursementId}\n >\n {store.deductibleLegend && (\n <span aria-live=\"polite\" className=\"Deductible-legend-text\">\n {store.deductibleLegend}\n </span>\n )}\n </SelectorPills>\n </Shimmer>\n </div>\n </div>\n\n {store.deductibleLegend && (\n <span aria-live=\"polite\" className=\"Deductible-legend-text\">\n {store.deductibleLegend}\n </span>\n )}\n\n {isUltimateSelected && (\n <span aria-live=\"polite\" className=\"Deductible-legend-text\">\n {t('sliders.100ReimbursementNoAvailable')}\n </span>\n )}\n </>\n );\n};\n","export default __webpack_public_path__ + \"static/media/info-deep-blue.610092d9.svg\";","import React from 'react';\nimport './PowerUpSwitch.css';\n\nconst PowerUpSwitch = ({\n active,\n ariaProps,\n customClassname,\n label,\n onClick,\n switchBallColor = '#fff',\n switchRef,\n}) => {\n function handleButtonClick() {\n onClick();\n }\n\n function renderClassName() {\n if (active) {\n return 'PowerUp-Switch-active-container';\n }\n\n return 'PowerUp-Switch-inactive-container';\n }\n\n function renderBallPositionClassName() {\n if (active) {\n return 'PowerUp-Switch-position-active';\n }\n\n return 'PowerUp-Switch-position-inactive';\n }\n\n return (\n <div className=\"PowerUp-Switch-container\">\n <button\n ref={switchRef}\n className={`PowerUp-Switch-button-container ${renderClassName()}\n ${customClassname}`}\n onClick={handleButtonClick}\n type=\"button\"\n {...ariaProps}\n >\n <div\n className={`PowerUp-Switch-ball ${renderBallPositionClassName()}`}\n style={{ backgroundColor: switchBallColor }}\n />\n </button>\n\n <span className=\"PowerUp-Switch-label\">{label}</span>\n </div>\n );\n};\n\nexport default PowerUpSwitch;\n","export default __webpack_public_path__ + \"static/media/pet-protect-copay-active.13a27e32.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport copayImg\nfrom '../../../assets/changeCoverage/pet-protect-copay-active.svg';\n\nimport ModalContainer from '../../common/ModalContainer';\nimport './css/PetProtectCopayModal.css';\n\nconst PetProtectCopayModal = ({\n onCancel = () => { },\n onConfirm = () => { },\n show,\n}) => {\n const { t } = useTranslation('changeCoverage');\n\n return (\n <ModalContainer show={show}>\n <div className=\"Pet-protect-copay-modal\">\n <img alt=\"\" src={copayImg} />\n\n <h3>{t('petProtectCopay.title')}</h3>\n\n <h4>{t('petProtectCopay.subtitle')}</h4>\n\n <p>{t('petProtectCopay.text')}</p>\n\n <button\n className=\"Pet-protect-modal-confirm\"\n onClick={onConfirm}\n type=\"button\"\n >\n {t('petProtectCopay.continue')}\n </button>\n\n <button\n className=\"Pet-protect-modal-nevermind Like-span\"\n onClick={onCancel}\n type=\"button\"\n >\n {t('petProtectCopay.cancel')}\n </button>\n </div>\n </ModalContainer>\n );\n};\n\nexport { PetProtectCopayModal };\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport infoImg from '../../../assets/changeCoverage/info-deep-blue.svg';\n\nimport PowerUpSwitch from '../../common/PowerUpSwitch';\nimport { PetProtectCopayModal } from './PetProtectCopayModal';\n\nimport './css/PetCopayCoverageSection.css';\n\nconst PetCopayCoverageSection = ({\n active = false,\n howItWorksClick = () => { },\n modifierData = {},\n onAddPowerup = () => { },\n}) => {\n const [modalVisible, setModalVisible] = useState(false);\n const { t } = useTranslation('changeCoverage');\n\n const childPowerUp = modifierData.BundleInsuranceModifiers[0];\n\n function handleToggle() {\n if (active) {\n onAddPowerup({\n isSelected: false,\n powerUp: childPowerUp || modifierData,\n });\n } else {\n setModalVisible(true);\n }\n }\n\n function closeModal() {\n setModalVisible(false);\n }\n\n function handleConfirm() {\n onAddPowerup({\n isSelected: true,\n powerUp: childPowerUp || modifierData,\n });\n setModalVisible(false);\n }\n\n return (\n <div className={'Pet-copay-coverage-section-card'\n + `${active ? '-selected' : ''}`}\n >\n <span className=\"Pet-copay-coverage-section-title\">\n {modifierData.AppText}\n </span>\n\n <p className=\"Pet-copay-coverage-section-description\">\n {modifierData.InformationText}\n </p>\n\n <div className=\"Pet-copay-coverage-section-bottom-row\">\n <button\n className=\"Like-span\"\n onClick={howItWorksClick}\n type=\"button\"\n >\n <img\n alt=\"\"\n className=\"Pet-copay-coverage-section-info-img\"\n src={infoImg}\n />\n\n <span className=\"Pet-copay-coverage-section-info-text\">\n {t('options.howDoesItWork')}\n </span>\n </button>\n\n <PowerUpSwitch\n active={active}\n customClassname={'Powerup-switch'\n + `${active ? ' Powerup-added' : ''}`}\n onClick={handleToggle}\n switchBallColor={active ? 'var(--deep-blue-main)'\n : 'var(--base-pc-color-white)'}\n />\n </div>\n\n <PetProtectCopayModal\n onCancel={closeModal}\n onConfirm={handleConfirm}\n show={modalVisible}\n />\n </div>\n );\n};\n\nexport { PetCopayCoverageSection };\n","export default __webpack_public_path__ + \"static/media/info-white.02989c87.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport './css/PowerUpTitle.css';\n\nconst PowerUpTitle = ({\n children,\n localSelected,\n title,\n}) => {\n const { t } = useTranslation('changeCoverage');\n\n return (\n <div className=\"Powerup-title-container-optional\">\n <div className=\"Powerup-title\" data-selected={localSelected}>\n <h3>\n <span className=\"Powerup-optional\">\n {t('options.optional')}\n </span>\n\n {title}\n </h3>\n\n {children}\n </div>\n </div>\n );\n};\n\nexport { PowerUpTitle };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport './css/WhatsCoveredLinkUpdate.css';\n\nconst WhatsCoveredLinkUpdate = ({\n className = '',\n icon = null,\n id = 'whatsCoveredLink',\n isHeader,\n onClick = () => { },\n text = '',\n}) => {\n const { t } = useTranslation('changeCoverage');\n\n return (\n <button\n className={`Powerup-see-whats-covered-link-main-container ${className}`}\n id={id}\n onClick={onClick}\n type=\"button\"\n >\n {icon && (\n <img\n alt=\"\"\n className=\"Powerup-card-plan-info-image\"\n src={icon}\n />\n )}\n\n <p\n className={'Powerup-see-whats-covered-link '\n + `${isHeader ? 'No-mobile' : ''}`}\n >\n {text || t('whatsCovered')}\n </p>\n </button>\n );\n};\n\nexport { WhatsCoveredLinkUpdate };\n","export default __webpack_public_path__ + \"static/media/radio-selected.2a8038b9.svg\";","export default __webpack_public_path__ + \"static/media/radio-deselected.b102d2f3.svg\";","import React from 'react';\nimport selectedRadio from '../../assets/radio-selected.svg';\nimport deselectedRadio from '../../assets/radio-deselected.svg';\nimport './RadioButton.css';\n\nconst RadioButton = ({\n children,\n name = '',\n checked = false,\n onChange = () => { },\n}) => (\n // Disabled rule 'cause this structure replace the htmlFor attr\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label className=\"Radio-button\">\n <img\n alt=\"\"\n className=\"Radio-button-img\"\n src={checked ? selectedRadio : deselectedRadio}\n />\n\n <input id={name} name={name} onClick={onChange} type=\"radio\" />\n\n {children}\n </label>\n);\n\nexport { RadioButton };\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport infoSelected from '../../../assets/info-blue-light.svg';\nimport info from '../../../assets/info-white.svg';\n\nimport { PowerUpTitle } from './PowerUpTitle';\nimport { currencyFormat } from '../../../services/utils';\nimport { WhatsCoveredLinkUpdate } from './WhatsCoveredLinkUpdate';\nimport { RadioButton } from '../../common/RadioButton';\nimport { useResponsive } from '../../../hooks/useResponsive';\n\nimport './css/UpdatedCardPowerup.css';\n\nconst UpdatedCardPowerup = ({\n bundleModifierAdd = () => { },\n bundleModifierCheckSelection = () => { },\n content,\n handleAddPowerup,\n handleRemovePowerup,\n hideInfoImage,\n onClickWhatsCovered,\n petQuoteSelected,\n powerUpInfo,\n price,\n selected,\n title,\n}) => {\n const { t } = useTranslation('changeCoverage');\n const [isMounted, setMounted] = useState(false);\n const [localSelected, setLocalSelected] = useState(selected);\n const { isMobile } = useResponsive();\n\n useEffect(() => {\n setLocalSelected(selected);\n }, [petQuoteSelected, selected]);\n\n useEffect(() => {\n if (!isMounted) {\n setMounted(true);\n }\n }, [isMounted]);\n\n const handleInfoPowerup = ({ powerUp }) => () => {\n if (powerUp.PMSModifierId) {\n onClickWhatsCovered();\n }\n };\n\n function renderInfoImage() {\n if (hideInfoImage) {\n return null;\n }\n\n return (\n <WhatsCoveredLinkUpdate\n className=\"Powerup-whats-covered \"\n icon={localSelected ? infoSelected : info}\n id={title}\n onClick={handleInfoPowerup({ powerUp: powerUpInfo })}\n text={t('powerUpSection.whatsCovered')}\n />\n );\n }\n\n const handleAddPowerupOption = useCallback((event) => {\n if (!localSelected && handleAddPowerup) {\n handleAddPowerup(event);\n }\n }, [handleAddPowerup, localSelected]);\n\n const handleRemovePowerupOption = useCallback((event) => {\n if (localSelected && handleRemovePowerup) {\n handleRemovePowerup(event);\n }\n }, [handleRemovePowerup, localSelected]);\n\n const powerupCardClassname = useMemo(\n () => `Powerup-card-container${localSelected ? '-selected' : ''}`,\n [localSelected],\n );\n\n function renderOptions() {\n const contentModifiers = powerUpInfo.BundleInsuranceModifiers\n ?.filter((modifier) => modifier.IsVisible && modifier.IsActive);\n\n if (contentModifiers && contentModifiers.length) {\n const bundleModifiers = [...contentModifiers].reverse();\n\n return bundleModifiers.map((item, index) => (\n <RadioButton\n key={item.Id}\n checked={bundleModifierCheckSelection(item.Id)}\n name={`${index}-${title.replace(/\\s/g, '')}`}\n onChange={bundleModifiers.length >= 2\n ? bundleModifierAdd(\n {\n isSelected: !bundleModifierCheckSelection(item.Id),\n powerUp: item,\n },\n )\n : handleAddPowerupOption}\n >\n <div className=\"Powerup-card-option-wrapper\">\n <span className=\"Powerup-card-option\">\n {t('options.yesPowerup', {\n powerup: `${powerUpInfo.TitleText} ${item.TitleText}`,\n })}\n\n <span>\n {currencyFormat({ value: item.FeeAmount })}\n\n {isMobile\n ? t('options.monthly')\n : t('options.mMonthlyPremium')}\n </span>\n </span>\n </div>\n </RadioButton>\n ));\n }\n\n return (\n <RadioButton\n checked={localSelected}\n name={`yes-${title.replace(/\\s/g, '')}`}\n onChange={handleAddPowerupOption}\n >\n <span className=\"Powerup-card-option\">\n {t('options.yesPowerup', { powerup: powerUpInfo.TitleText })}\n\n <span>\n {currencyFormat({ value: price })}\n\n {isMobile\n ? t('options.monthly')\n : t('options.mMonthlyPremium')}\n </span>\n </span>\n </RadioButton>\n );\n }\n\n return (\n <section className={powerupCardClassname}>\n <div className=\"Powerup-card-body-content\">\n <PowerUpTitle localSelected={localSelected} title={title}>\n {renderInfoImage()}\n </PowerUpTitle>\n\n <div className=\"Powerup-card-content\">\n {content}\n\n <div\n className={'Powerup-card-actions-radios'\n + `${hideInfoImage ? ' Powerup-card-actions-end' : ''}`}\n >\n {renderOptions()}\n\n <RadioButton\n checked={!localSelected}\n name={`no-${title.replace(/\\s/g, '')}`}\n onChange={handleRemovePowerupOption}\n >\n {t('options.noPowerup')}\n </RadioButton>\n </div>\n </div>\n </div>\n </section>\n );\n};\n\nexport default UpdatedCardPowerup;\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n BENEFIT_FEE_TYPE,\n POWER_UPS_RELATION,\n POWERUP_TYPE,\n} from './powerups.constans';\nimport {\n doNothing,\n findSelectedModifier,\n} from '../../../services/utils';\nimport { isWellnessFPI, toTruncate } from '../utils';\n\nimport { useResponsive } from '../../../hooks/useResponsive';\n\nimport UpdatedCardPowerup from './UpdatedCardPowerup';\n\nimport './css/cardPowerupSection.css';\nimport { HtmlContent } from '../../common/HtmlContent';\n\nconst {\n EXTRA_CARE_PACK_PSM_ID,\n PETPROTECT_COPAY,\n VETERINARY_EXAM_FEES_PSM_ID,\n WELLNESS_PSM_ID,\n} = POWER_UPS_RELATION;\n\nconst CardPowerupSection = ({\n handleWellnessClick = () => { },\n insuranceProduct,\n onAddPowerup = () => { },\n onVetFeesClick = () => { },\n petName = '',\n petQuote = {},\n quoteSelected,\n}) => {\n const { t } = useTranslation('changeCoverage');\n const { isMobile, isTablet } = useResponsive();\n\n const handleWellnesInfoButtonClick = () => {\n handleWellnessClick();\n };\n\n const handleAddPowerup = ({ isSelected = false, powerUp }) => () => {\n onAddPowerup({ isSelected, powerUp });\n };\n\n const handleToggle = ({ isSelected = false, powerUp }) => {\n if (isWellnessFPI(powerUp, insuranceProduct)) {\n const contentModifiers = powerUp.BundleInsuranceModifiers\n .filter((modifier) => modifier.IsVisible && modifier.IsActive);\n const selectedModifier = contentModifiers.find((item) => item.IsSelected);\n const defaultModifier = contentModifiers[0];\n\n if (!selectedModifier) {\n const isChecked = findSelectedModifier({\n id: defaultModifier.Id,\n modifiers: petQuote.modifiers || [],\n });\n\n return handleAddPowerup({\n isSelected: !isChecked,\n powerUp: defaultModifier || [],\n });\n }\n\n const isChecked = findSelectedModifier({\n id: selectedModifier.Id,\n modifiers: petQuote.modifiers,\n });\n\n return handleAddPowerup({\n isSelected: !isChecked,\n powerUp: selectedModifier,\n });\n }\n\n return handleAddPowerup({ isSelected, powerUp });\n };\n\n const handleInfoPowerup = ({ powerUp }) => () => {\n switch (powerUp.PMSModifierId) {\n case VETERINARY_EXAM_FEES_PSM_ID:\n onVetFeesClick(powerUp.PMSModifierId);\n break;\n\n case EXTRA_CARE_PACK_PSM_ID:\n doNothing();\n break;\n\n case WELLNESS_PSM_ID:\n handleWellnesInfoButtonClick();\n break;\n\n default:\n doNothing();\n break;\n }\n };\n\n const isModifierSelected = ({ id, selectedModifiers }) => {\n const modifiersSelected =\n selectedModifiers.filter((modifier) => modifier.id === id\n && modifier.isSelected);\n\n return !!modifiersSelected.length;\n };\n\n const getFeeAmountChildren = ({\n benefitType, modifiers, selectedModifiers,\n }) => modifiers\n .filter((item) => item.InsuranceModifierTypeId === POWERUP_TYPE\n && item.BenefitFeeType === benefitType)\n .map((element) => {\n if (element.BundleInsuranceModifiers) {\n return element.BundleInsuranceModifiers\n .filter((filter) => filter.IsSelected\n || isModifierSelected({ id: filter.Id, selectedModifiers }))\n .reduce((a, b) => a + b.FeeAmount, 0);\n }\n\n return 0;\n }).reduce((a, b) => a + b, 0);\n\n const getCoverageFee = () => {\n const insuranceModifiers = petQuote.InsuranceModifiers;\n\n const modifiers = petQuote.modifiers\n ? petQuote.modifiers.filter((modifier) => modifier.isSelected)\n : [];\n const modifierIds = modifiers.map((modifier) => modifier.id);\n\n const powerUpsHidden = insuranceModifiers\n .filter((modifier) => modifier.InsuranceModifierTypeId === POWERUP_TYPE\n && modifier.IsSelected && !modifier.IsVisible);\n const powerUpsSelected = insuranceModifiers\n .filter((modifier) => modifierIds.includes(modifier.Id));\n const powerUps = [...powerUpsHidden, ...powerUpsSelected];\n\n const feeFactor = powerUps\n .filter((item) => item.BenefitFeeType === BENEFIT_FEE_TYPE.ftpFactor)\n .reduce((a, b) => a + b.FeeAmount, 0);\n const feeFixed = powerUps\n .filter((item) => item.BenefitFeeType === BENEFIT_FEE_TYPE.fixedFee\n || item.BenefitFeeType === BENEFIT_FEE_TYPE.dynamic)\n .reduce((a, b) => a + b.FeeAmount, 0);\n\n const feeFactorChildren = getFeeAmountChildren({\n benefitType: BENEFIT_FEE_TYPE.ftpFactor,\n modifiers: insuranceModifiers,\n selectedModifiers: petQuote.modifiers || [],\n });\n\n const feeFixedChildren = getFeeAmountChildren({\n benefitType: BENEFIT_FEE_TYPE.fixedFee,\n modifiers: insuranceModifiers,\n selectedModifiers: petQuote.modifiers || [],\n });\n\n return {\n feeFactor: feeFactor + feeFactorChildren,\n feeFixed: feeFixed + feeFixedChildren,\n };\n };\n\n const getPriceWithoutFees = () => {\n const { monthlyAmountPlan } = quoteSelected;\n const coverageFeeValue = getCoverageFee();\n const price = monthlyAmountPlan;\n const priceWithoutFees = (price - coverageFeeValue.feeFixed)\n / (1 + coverageFeeValue.feeFactor);\n\n return priceWithoutFees;\n };\n\n const getCoverageByBenefitFeeType = ({ BenefitFeeType, FeeAmount }) => {\n const priceWithoutFees = getPriceWithoutFees();\n\n if (BenefitFeeType === BENEFIT_FEE_TYPE.ftpFactor) {\n const coverageFee = FeeAmount * priceWithoutFees;\n\n return coverageFee;\n }\n\n return FeeAmount;\n };\n\n function calculateCoverageFeeUpdated(powerUp) {\n if (isWellnessFPI(powerUp, insuranceProduct)) {\n const wellnessArrayValues =\n powerUp.BundleInsuranceModifiers\n .map((item) => {\n const contentModifierSelected = (petQuote.modifiers || [])\n .find((element) => element.id === item.Id);\n const isSelected = contentModifierSelected\n ? contentModifierSelected.isSelected : false;\n\n return isSelected && item.FeeAmount\n ? item.FeeAmount : 0;\n });\n\n const wellnessPrice = wellnessArrayValues\n .reduce((accumulator, currentValue) => accumulator + currentValue, 0)\n || powerUp.BundleInsuranceModifiers[0].FeeAmount;\n\n return toTruncate(wellnessPrice).toFixed(2);\n }\n\n const coverageFee = getCoverageByBenefitFeeType(powerUp);\n return toTruncate(coverageFee).toFixed(2);\n }\n\n const renderPowerups = () => {\n if (!petQuote) {\n return null;\n }\n\n if (!petQuote.InsuranceModifiers) {\n return null;\n }\n\n const powerUps = petQuote.InsuranceModifiers\n .filter((modifier) => modifier.InsuranceModifierTypeId === POWERUP_TYPE\n && modifier.IsVisible && modifier.PMSModifierId !== PETPROTECT_COPAY);\n\n function shouldDisplayInfoImage(powerUp) {\n return powerUp.PMSModifierId === WELLNESS_PSM_ID;\n }\n\n const powerUpSelectedHandle = (id) => {\n const { modifiers } = petQuote;\n\n if (!modifiers || !modifiers.length) {\n return false;\n }\n\n const modifier = modifiers.find((item) => item.id === id);\n\n return modifier && modifier.isSelected;\n };\n\n function renderContent(powerUp) {\n return (\n <HtmlContent\n classNameContainer=\"Powerup-card-information\"\n content={powerUp.InformationText}\n elementType=\"p\"\n />\n );\n }\n\n return (\n <>\n {powerUps.map((powerUp) => (\n <UpdatedCardPowerup\n key={String(powerUp.Id)}\n bundleModifierAdd={handleAddPowerup}\n bundleModifierCheckSelection={powerUpSelectedHandle}\n content={renderContent(powerUp)}\n handleAddPowerup={handleToggle({\n isSelected: true, powerUp,\n })}\n handleRemovePowerup={handleToggle({ powerUp })}\n hideInfoImage={(isMobile || isTablet)\n && shouldDisplayInfoImage(powerUp)}\n onClickWhatsCovered={handleInfoPowerup({ powerUp })}\n petQuoteSelected={quoteSelected}\n powerUpInfo={powerUp}\n price={calculateCoverageFeeUpdated(powerUp)}\n selected={powerUpSelectedHandle(powerUp.Id)}\n title={powerUp.TitleText}\n />\n ))}\n </>\n );\n };\n\n const powerupTitle = useMemo(\n () => <h3>{t('powerUpSection.powerUpTitle')}</h3>,\n [isMobile, petName],\n );\n\n return (\n <>\n <div className=\"Card-plan-powerup-header-container\">\n <div className=\"Card-plan-powerup-header-title\">\n {powerupTitle}\n </div>\n </div>\n\n <p className=\"Card-plan-powerup-description\">\n {t('powerUpSection.description')}\n\n {isMobile ? ' ' : <br />}\n\n {t('powerUpSection.note')}\n </p>\n\n <div className=\"Card-plan-powerup-cards-container\">\n {renderPowerups()}\n </div>\n </>\n );\n};\n\nexport { CardPowerupSection };\n","export default __webpack_public_path__ + \"static/media/dog-selected.25a81a79.svg\";","export default __webpack_public_path__ + \"static/media/cat-selected.d63eab2a.svg\";","export default __webpack_public_path__ + \"static/media/policy-alert.946526ba.svg\";","import React, { useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport ModalContainer from '../../common/ModalContainer';\nimport TouchableDiv from '../../common/TouchableDiv';\nimport LoadingButton from '../../common/LoadingButton';\nimport { PET_TYPE_ID } from '../../../constants';\nimport {\n POWER_UPS_RELATION,\n POWERUP_TYPE,\n} from '../powerups/powerups.constans';\nimport dogIcon from '../../../assets/policy/dog-selected.svg';\nimport catIcon from '../../../assets/policy/cat-selected.svg';\nimport infoIcon from '../../../assets/policy/policy-alert.svg';\nimport { submitChangeCoverage } from '../../../actions';\nimport './ReviewChangesModal.css';\n\nconst ReviewChangesModal = ({\n disableSubmit = true,\n onClose = () => { },\n petInfo,\n policyNumber = '',\n showModal = false,\n}) => {\n const { t } = useTranslation('changeCoverage');\n const dispatch = useDispatch();\n const store = useSelector(({ policies }) => ({ ...policies.changeCoverage }));\n const {\n loadingSubmit,\n quoteSelectedValues: {\n deductibleDescription,\n reimbursementDescription,\n selectedAnnualBenefit,\n deductibleId,\n reimbursementId,\n selectedPlan,\n total,\n totalMonthly,\n totalAnnual,\n },\n rate: {\n effectiveDate,\n isAnnual,\n petQuoteResponseList,\n },\n success,\n } = store;\n\n const { DOG } = PET_TYPE_ID;\n\n const powerUps = useMemo(() => {\n const quoteModifiers = petQuoteResponseList\n ?.find((item) => item.petQuoteId === petInfo.petQuoteId)?.modifiers || [];\n const { InsuranceModifiers } = petInfo;\n if (InsuranceModifiers) {\n const powerUpsFilter = InsuranceModifiers\n .filter((modifier) => modifier.InsuranceModifierTypeId === POWERUP_TYPE\n && modifier.IsVisible)\n .map((powerUp) => ({\n id: powerUp.Id,\n isIncluded: quoteModifiers\n .find((item) => item.id === powerUp.Id)?.isSelected || false,\n name: powerUp.AppText,\n }));\n\n return powerUpsFilter;\n }\n return [];\n }, [petInfo, petQuoteResponseList]);\n\n const priceWithFormat = useMemo(() => {\n const price = isAnnual\n ? total : totalMonthly;\n const annualTotal = isAnnual ? totalAnnual : 0;\n\n if (!price) {\n return { decimal: '00', integer: 0, total: 0 };\n }\n\n return {\n annualTotal,\n monthlyDecimal: `.${price.toString().split('.')[1] || '00'}`,\n monthlyInteger: price.toString().split('.')[0],\n };\n }, [isAnnual, total, totalAnnual, totalMonthly]);\n\n const annualPrice = `$${priceWithFormat.annualTotal}`;\n const monthlyPrice =\n `$${priceWithFormat.monthlyInteger}${priceWithFormat.monthlyDecimal}`;\n\n const handleCancel = useCallback(() => {\n if (loadingSubmit) {\n return;\n }\n\n onClose();\n }, [onClose]);\n\n const handleSubmit = useCallback(() => {\n const { InsuranceModifiers, modifiers } = petInfo;\n const vetFees = InsuranceModifiers.find((item) => item.PMSModifierId\n === POWER_UPS_RELATION.VETERINARY_EXAM_FEES_PSM_ID);\n const hasVetFees = modifiers.length && modifiers\n .find((modifier) => modifier.id === vetFees.Id && modifier.isSelected);\n const selectedModifiers = modifiers || [];\n\n // powerups hidden and seleted id's\n const hideModifiers = petInfo.InsuranceModifiers\n .filter((insuranceModifer) => insuranceModifer\n .InsuranceModifierTypeId === POWERUP_TYPE\n && !insuranceModifer.IsVisible\n && insuranceModifer.IsSelected)\n .map((insuranceModifer) => ({\n id: insuranceModifer.Id,\n isSelected: true,\n }));\n\n // powerup id's selected, hidden and powerups children\n let allModifiers = [...selectedModifiers, ...hideModifiers];\n const extraCarePack = petInfo.InsuranceModifiers.find((item) => item\n .PMSModifierId === POWER_UPS_RELATION.EXTRA_CARE_PACK_PSM_ID);\n\n if (extraCarePack) {\n const extraCarePackSelected = allModifiers\n .find((modifier) => modifier.id === extraCarePack.Id);\n\n const extraCarePackChildren =\n extraCarePack.BundleInsuranceModifiers.map((child) => ({\n id: child.Id,\n isSelected: extraCarePackSelected\n && extraCarePackSelected.isSelected,\n }));\n\n allModifiers = [\n ...allModifiers,\n ...extraCarePackChildren,\n ];\n }\n\n dispatch(submitChangeCoverage({\n body: {\n Deductible: deductibleId,\n EffectiveDate: effectiveDate,\n HasVetFees: !!hasVetFees,\n modifiers: allModifiers,\n QuotePlan: selectedPlan,\n Reimbursement: reimbursementId,\n },\n policyNumber,\n }));\n }, [\n deductibleId,\n dispatch,\n effectiveDate,\n petInfo,\n policyNumber,\n reimbursementId,\n selectedPlan,\n ]);\n\n return (\n <ModalContainer show={showModal}>\n <div className=\"Review-changes-modal-main-container\">\n <div className=\"Review-changes-modal-main-top\">\n <img\n alt=\"\"\n className=\"Review-changes-modal-main-pet-icon\"\n src={petInfo.petType === DOG ? dogIcon : catIcon}\n />\n\n <p className=\"Review-changes-modal-main-pet-name\">\n {`${petInfo.petName}'s Plan`}\n </p>\n </div>\n\n <div className=\"Review-changes-modal-main-money\">\n <div className=\"Review-changes-modal-main-payment-summary\">\n <span className=\"Review-changes-modal-main-payment-text-top\">\n {selectedAnnualBenefit}\n </span>\n\n <span className=\"Review-changes-modal-main-payment-text-bottom\">\n {t('reviewChangesModal.annualBenefit')}\n </span>\n </div>\n\n <div className=\"Review-changes-modal-main-payment-summary\">\n <span className=\"Review-changes-modal-main-payment-text-top\">\n {reimbursementDescription || ''}\n </span>\n\n <span className=\"Review-changes-modal-main-payment-text-bottom\">\n {t('reviewChangesModal.reimbursement')}\n </span>\n </div>\n\n <div className=\"Review-changes-modal-main-payment-summary\">\n <span className=\"Review-changes-modal-main-payment-text-top\">\n {deductibleDescription || ''}\n </span>\n\n <span className=\"Review-changes-modal-main-payment-text-bottom\">\n {t('reviewChangesModal.deductible')}\n </span>\n </div>\n </div>\n\n <div className=\"Review-changes-modal-main-line-divisor\" />\n\n <div className=\"Review-changes-modal-main-powerups-container\">\n <div className=\"Review-changes-modal-main-powerups-section\">\n {powerUps.map((powerup) => (\n <div\n key={powerup.id}\n className=\"Review-changes-modal-main-powerup\"\n >\n <span className=\"Review-changes-modal-main-powerup-title\">\n {powerup.name}\n </span>\n\n <span className=\"Review-changes-modal-main-powerup-choice\">\n {powerup.isIncluded\n ? t('reviewChangesModal.included')\n : t('reviewChangesModal.notIncluded')}\n </span>\n </div>\n ))}\n\n <div className=\"Review-changes-modal-main-powerup-total\">\n <span\n className={`Review-changes-modal-main-total-pet \n Review-changes-modal-main-total-gap`}\n >\n {isAnnual\n ? t('reviewChangesModal.annualTotal')\n : t('reviewChangesModal.monthlyTotal')}\n </span>\n\n <span className=\"Review-changes-modal-main-total-pet\">\n {isAnnual ? annualPrice : monthlyPrice}\n </span>\n </div>\n </div>\n </div>\n\n <div className=\"Review-changes-modal-main-info-section\">\n <img\n alt=\"\"\n className=\"Review-changes-modal-main-info-icon\"\n src={infoIcon}\n />\n\n <span className=\"Review-changes-modal-main-disclaimer\">\n {t('reviewChangesModal.disclaimer')}\n </span>\n </div>\n\n <div className=\"Review-changes-modal-main-buttons\">\n <TouchableDiv\n className=\"Review-changes-modal-main-cancel-button\"\n id=\"rcmCancel\"\n onClick={handleCancel}\n >\n <span className=\"Review-changes-modal-main-cancel-button-text\">\n {t('reviewChangesModal.cancel')}\n </span>\n </TouchableDiv>\n\n <LoadingButton\n className=\"Review-changes-modal-main-submit-button\"\n disabled={disableSubmit}\n loading={loadingSubmit}\n onClick={handleSubmit}\n success={success}\n text={t('reviewChangesModal.submit')}\n textStyle=\"Review-changes-modal-main-submit-button-text\"\n />\n </div>\n </div>\n </ModalContainer>\n );\n};\n\nexport { ReviewChangesModal };\n","import React from 'react';\nimport { CONTACT_FIGO_URL } from '../../../constants';\nimport ModalContainer from '../../common/ModalContainer';\nimport './css/RateErrorModal.css';\n\nconst RateErrorModal = ({\n visible = false,\n tErrorText = () => { },\n onClose = () => { },\n}) => (\n <ModalContainer contentStyle=\"Rate-error-modal-container\" show={visible}>\n <div className=\"Rate-error-modal\">\n <h4>{tErrorText('rateError.title')}</h4>\n\n <p>\n {tErrorText('rateError.text')}\n <a href={CONTACT_FIGO_URL}>\n {tErrorText('rateError.linkLabel')}\n </a>\n </p>\n\n <button onClick={onClose} type=\"button\">\n {tErrorText('rateError.close')}\n </button>\n </div>\n </ModalContainer>\n);\n\nexport { RateErrorModal };\n","export default __webpack_public_path__ + \"static/media/check.391a2838.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContainer from '../../common/ModalContainer';\nimport successIcon from '../../../assets/check.svg';\nimport './css/SubmitChanges.css';\n\nconst SubmitChanges = ({ isVisible = false, onClose = () => { } }) => {\n const { t } = useTranslation('changeCoverage');\n\n return (\n <ModalContainer contentStyle=\"Submit-container\" show={isVisible}>\n <img alt=\"success\" src={successIcon} />\n\n <span>{t('submit.title')}</span>\n\n <p>{t('submit.description')}</p>\n\n <button onClick={onClose} type=\"button\">{t('close')}</button>\n </ModalContainer>\n );\n};\n\nexport { SubmitChanges };\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDogSelected(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 56,\n height: 56,\n viewBox: \"0 0 56 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M28 56C43.464 56 56 43.464 56 28C56 12.536 43.464 0 28 0C12.536 0 0 12.536 0 28C0 43.464 12.536 56 28 56Z\",\n fill: \"#1CCFCA\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M44.9921 19.2957L44.749 19.2513C44.0617 19.114 43.2864 19.1798 42.7792 18.6366L42.002 17.7669C41.3817 17.0846 40.6064 16.3096 39.9881 15.8747L40.0532 15.2369L40.1853 14.6435C40.3212 14.1158 39.9881 13.1146 39.4789 12.8846C38.9468 12.6566 38.2155 13.2287 38.0375 13.8182L37.8154 14.3458L37.6163 14.8252L36.6439 16.2825L33.7399 20.0263C35.0033 21.4179 36.5769 22.4655 38.5026 23.3333L39.454 22.5564L39.9192 22.2394H40.1432L40.8036 22.6008C42.2891 23.4261 44.3929 23.2889 45.1031 21.53L45.2582 21.1435C45.5051 20.5269 45.7444 19.7035 44.9921 19.2957ZM37.2045 41.5442C36.4848 41.3154 35.9648 41.2482 35.9874 40.2967L35.9422 39.3663C35.8536 37.3922 35.9874 35.395 36.3755 33.465L36.5959 32.3751C37.1423 29.6802 37.7735 28.6787 37.2045 24.1672C35.1132 23.3733 33.8471 22.443 32.3869 20.9225L31.1246 21.7375C30.4935 22.1469 29.883 22.6237 29.1652 22.8255L27.2227 23.3714L16.1501 23.258C14.6221 23.6194 14.9951 18.0833 13.7064 18.0833L13.2072 18.1103C12.4441 18.1103 12.9886 21.4645 13.599 23.5098C13.8817 24.4171 14.3395 24.8015 14.3866 24.9822L14.2754 25.1399C12.6834 27.4542 13.1412 29.7897 13.7064 32.1964C13.8817 32.9441 14.6221 34.0129 14.0135 35.4892L13.7064 36.2331C13.0319 37.4364 12.8567 39.5028 13.1864 40.8656L13.4031 41.7479C13.6876 42.9282 14.2754 44.3333 15.6056 44.3333C16.1727 44.3333 16.9772 44.0815 16.7624 43.3588L16.0615 41.1348C15.7789 40.2524 16.0615 35.9639 16.7624 36.1888L16.7398 38.5724C17.0186 40.2736 17.6762 42.611 18.4825 42.9493L19.6149 43.4472C21.1391 44.1296 20.9883 41.9978 20.4212 41.1348L19.7034 39.6143C19.353 39.0953 19.3323 38.0976 19.4208 37.8458L19.5263 37.5286L20.881 33.8745L21.1202 32.2656C21.2088 31.6754 21.0091 30.7682 21.7495 30.6547L23.3868 30.4279C25.674 31.6966 27.7032 32.2886 30.6479 33.0825L31.0153 34.0782C30.9513 35.9159 30.7101 36.7348 30.599 38.0496L30.4464 39.9795C30.2108 41.3154 29.8152 43.1992 32.5452 43.1089C33.4364 43.2454 34.3727 42.1785 33.5438 41.4289C32.3662 40.7945 32.5848 40.0006 32.76 39.1376L33.7171 34.578L33.9375 39.2971C33.979 41.7037 33.3704 43.8124 37.0971 43.1992C37.9883 42.7475 37.6623 41.7941 37.2045 41.5442Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDogSelected);\nexport default __webpack_public_path__ + \"static/media/dog-selected.25a81a79.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCatSelected(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 56,\n height: 56,\n viewBox: \"0 0 56 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M28 56C43.464 56 56 43.464 56 28C56 12.536 43.464 0 28 0C12.536 0 0 12.536 0 28C0 43.464 12.536 56 28 56Z\",\n fill: \"#1CCFCA\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M31.889 24.9329C27.5142 26.4951 20.2467 34.1221 19.6805 39.3487C17.8865 40.374 14.6311 35.9959 17.3315 34.5204C19.032 33.5904 19.2208 33.3064 19.701 32.5859C20.8559 30.8558 19.3422 26.0205 16.4307 25.3971C14.2648 24.9347 14.1247 26.7462 15.3151 27.3385C18.1388 28.8677 18.3761 31.4343 16.4513 32.6864C15.3655 33.3947 14.5994 33.8987 14.1266 35.4764C13.4594 37.7018 15.4646 41.2399 19.3198 42.3535C19.3198 42.3535 19.8823 42.4678 20.4822 42.4712C20.7905 42.8436 21.1773 43.1761 21.6744 43.4497C27.0284 45.4898 35.5741 43.332 36.7215 43.5225C37.8689 43.713 38.8425 43.642 39.3359 42.8973C39.6611 42.4089 39.2238 42.0296 39.2593 41.4183C39.2873 41.0061 38.779 31.3858 39.6667 27.5757C37.4952 27.0337 33.5783 25.1442 32.2758 24.5C32.1693 24.6559 32.0441 24.8031 31.889 24.9329ZM40.7063 16.5791C40.3077 15.1931 36.9824 15.1931 36.9824 15.1931C36.9824 15.1931 35.4402 11.5599 34.2854 11.6691C33.1139 11.78 32.5263 15.3745 32.3984 15.6986C31.6774 17.4985 31.3196 18.217 31.5903 19.4762C31.7589 20.2705 32.163 21.572 32.0685 22.7396C34.4708 24.1767 37.3846 25.1401 39.2512 25.6667C39.6034 24.6839 40.3096 23.4987 41.2846 23.2627C42.8824 22.8735 43.3699 20.3286 43.0937 19.3917C43.0214 19.1487 41.1826 18.2434 40.7063 16.5791Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCatSelected);\nexport default __webpack_public_path__ + \"static/media/cat-selected.d63eab2a.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/arrow-right-black.2628a0a1.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as DogIcon }\nfrom '../../../../assets/policy/dog-selected.svg';\nimport { ReactComponent as CatIcon }\nfrom '../../../../assets/policy/cat-selected.svg';\nimport arrowRight\nfrom '../../../../assets/changeCoverage/arrow-right-black.svg';\n\nimport {\n currencyFormat,\n possesiveAdaptationI18n,\n} from '../../../../services/utils';\n\nimport '../css/ChangeCoveragePreviewSubmit.css';\n\nconst PreviewSubmitUpdatedPlan = ({\n annualPrice = '',\n fees = [],\n initialCoverageValues = '',\n initialTotalPriceWithFees,\n isAnnual = false,\n isDog = true,\n monthlyPrice = '',\n petInfo = '',\n powerUps = [],\n quoteSelectedValues = '',\n totalPriceWithFees = '',\n}) => {\n const { t } = useTranslation('changeCoverage');\n const IconPet = isDog ? DogIcon : CatIcon;\n\n function renderName({ initialValue, text, updatedValue }) {\n const classNameValue = initialValue !== updatedValue\n ? 'Preview-plan-info-name-changed' : 'Preview-plan-info-name';\n\n return <span className={classNameValue}>{text}</span>;\n }\n\n function renderValues({ initialValue, updatedValue }) {\n if (initialValue !== updatedValue) {\n return (\n <div className=\"Preview-plan-info-value-row\">\n <span className=\"Preview-plan-info-value-changed\">\n {initialValue}\n </span>\n\n <img alt=\"\" src={arrowRight} />\n\n <span className=\"Preview-plan-info-value\">\n {updatedValue}\n </span>\n </div>\n );\n }\n\n return (\n <span className=\"Preview-plan-info-initial-value\">\n {initialValue}\n </span>\n );\n }\n\n return (\n <div className=\"Preview-submit-plan-container\">\n <div className=\"Preview-submit-plan-top-row\">\n <IconPet className=\"Preview-pet-icon\" />\n\n <div className=\"Preview-pet-name-updated-plan\">\n <span>{`${petInfo.petName}'s`}</span>\n\n <span>{t('preview.updatedPlan')}</span>\n </div>\n </div>\n\n <div className=\"Preview-plan-info-container\">\n <div className=\"Preview-plan-info-row\">\n {renderName({\n initialValue: initialCoverageValues.selectedAnnualBenefit,\n text: t('reviewChangesModal.annualBenefit'),\n updatedValue: quoteSelectedValues.selectedAnnualBenefit,\n })}\n\n {renderValues({\n initialValue: initialCoverageValues.selectedAnnualBenefit,\n updatedValue: quoteSelectedValues.selectedAnnualBenefit,\n })}\n </div>\n\n <div className=\"Preview-plan-info-row\">\n {renderName({\n initialValue: initialCoverageValues.reimbursementDescription,\n text: t('reviewChangesModal.reimbursement'),\n updatedValue: quoteSelectedValues.reimbursementDescription,\n })}\n\n {renderValues({\n initialValue: initialCoverageValues.reimbursementDescription,\n updatedValue: quoteSelectedValues.reimbursementDescription,\n })}\n </div>\n\n <div className=\"Preview-plan-info-row\">\n {renderName({\n initialValue: initialCoverageValues.deductibleDescription,\n text: t('reviewChangesModal.deductible'),\n updatedValue: quoteSelectedValues.deductibleDescription,\n })}\n\n {renderValues({\n initialValue: initialCoverageValues.deductibleDescription,\n updatedValue: quoteSelectedValues.deductibleDescription,\n })}\n </div>\n\n <div className=\"Preview-plan-info-powerups-container\">\n {powerUps.map((powerup) => {\n const initialPowerup = initialCoverageValues\n .InsuranceModifiers.find((initial) => initial.id === powerup.id);\n\n return (\n <div key={powerup.id} className=\"Preview-plan-info-row\">\n {renderName({\n initialValue: initialPowerup.isIncluded\n ? t('reviewChangesModal.included')\n : t('reviewChangesModal.notIncluded'),\n text: powerup.name,\n updatedValue: powerup.isIncluded\n ? t('reviewChangesModal.included')\n : t('reviewChangesModal.notIncluded'),\n })}\n\n {renderValues({\n initialValue: initialPowerup.isIncluded\n ? t('reviewChangesModal.included')\n : t('reviewChangesModal.notIncluded'),\n updatedValue: powerup.isIncluded\n ? t('reviewChangesModal.included')\n : t('reviewChangesModal.notIncluded'),\n })}\n </div>\n );\n })}\n </div>\n\n <div className=\"Preview-plan-info-row\">\n {renderName({\n initialValue: isAnnual ? `$${initialCoverageValues.totalAnnual}`\n : `$${initialCoverageValues.totalMonthly}`,\n text: isAnnual\n ? t('reviewChangesModal.annualPremium')\n : t('reviewChangesModal.monthlyPremium'),\n updatedValue: isAnnual ? annualPrice : monthlyPrice,\n })}\n\n {renderValues({\n initialValue: isAnnual ? `$${initialCoverageValues.totalAnnual}`\n : `$${initialCoverageValues.totalMonthly}`,\n updatedValue: isAnnual ? annualPrice : monthlyPrice,\n })}\n </div>\n\n <div className=\"Flex Flex-column\">\n {fees.map((fee, index) => (\n <div\n key={String(index)}\n className=\"Preview-plan-info-row\"\n >\n <span className=\"Preview-plan-info-name\">{fee.description}</span>\n\n <span className=\"Preview-plan-info-initial-value\">\n {currencyFormat({ value: fee.amount })}\n </span>\n </div>\n ))}\n </div>\n\n <div className=\"Preview-plan-info-row\">\n {renderName({\n initialValue: initialTotalPriceWithFees,\n text: t('preview.petTotal', {\n count: possesiveAdaptationI18n(petInfo.petName),\n name: petInfo.petName,\n }),\n updatedValue: totalPriceWithFees,\n })}\n\n {renderValues({\n initialValue: initialTotalPriceWithFees,\n updatedValue: totalPriceWithFees,\n })}\n </div>\n </div>\n </div>\n );\n};\n\nexport { PreviewSubmitUpdatedPlan };\n","export default __webpack_public_path__ + \"static/media/alert-icon.8aa9cb71.svg\";","import React from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport alertIcon from '../../../../assets/changeCoverage/alert-icon.svg';\n\nimport '../css/ChangeCoveragePreviewSubmit.css';\n\nconst PreviewSubmitNote = ({ onContactUsClick = () => { } }) => {\n const { t } = useTranslation('changeCoverage');\n\n const ContactUsButton = () => (\n <button\n className=\"Preview-plan-info-note-text-contact-us\"\n onClick={onContactUsClick}\n type=\"button\"\n >\n <span>{t('reviewChangesModal.contactUs')}</span>\n </button>\n );\n\n return (\n <div className=\"Preview-plan-info-note\" role=\"alert\">\n <div className=\"Preview-plan-info-note-top-row\">\n <img alt=\"\" src={alertIcon} />\n\n <span>{t('reviewChangesModal.annualBenefit')}</span>\n </div>\n\n <div className=\"Preview-plan-info-note-text\">\n <Trans\n components={{ button: <ContactUsButton /> }}\n i18nKey=\"reviewChangesModal.disclaimerNote\"\n t={t}\n />\n </div>\n\n </div>\n );\n};\n\nexport { PreviewSubmitNote };\n","import React from 'react';\nimport moment from 'moment';\n\nimport { useTranslation } from 'react-i18next';\nimport { useCoveragePreviewSubmit } from '../hooks/useCoveragePreviewSubmit';\nimport { possesiveAdaptationI18n } from '../../../../services/utils';\nimport { PET_TYPE_ID } from '../../../../constants';\nimport { CONTACT_US_STEPS }\nfrom '../../../sideMenu/contactUs/contactUs.constants';\n\nimport { PreviewSubmitUpdatedPlan } from './PreviewSubmitUpdatedPlan';\nimport { PreviewSubmitNote } from './PreviewSubmitNote';\nimport { ChangeCoverageButtons } from '../ChangeCoverageButtons';\n\nimport { ContactUsModal } from '../../../sideMenu/contactUs/ContactUsModal';\n\nimport '../css/ChangeCoveragePreviewSubmit.css';\n\nconst { DOG } = PET_TYPE_ID;\n\nconst ChangeCoveragePreviewSubmit = ({\n disableSubmit = true,\n petInfo,\n policyNumber = '',\n}) => {\n const { t } = useTranslation('changeCoverage');\n const {\n annualPrice,\n contactUsVisible,\n effectiveDate,\n fees,\n handleCancel,\n handleSubmit,\n initialCoverageValues,\n initialTotalPriceWithFees,\n isAnnual,\n loadingSubmit,\n monthlyPrice,\n onContactUsClick,\n onContactUsClose,\n powerUps,\n quoteSelectedValues,\n success,\n totalPriceWithFees,\n } = useCoveragePreviewSubmit({\n petInfo,\n policyNumber,\n });\n\n function formatDate(date) {\n return !date ? '-' : moment(date.split('T')[0]).format('MM/DD/YYYY');\n }\n\n return (\n <div className=\"Change-coverage-preview-submit-container\">\n <h3>{t('preview.submitTitle')}</h3>\n\n <p>\n {t('preview.reviewLegend', {\n count: possesiveAdaptationI18n(petInfo.name),\n effDate: formatDate(effectiveDate),\n interpolation: {\n escapeValue: false,\n },\n name: petInfo.petName,\n })}\n </p>\n\n <PreviewSubmitUpdatedPlan\n annualPrice={annualPrice}\n fees={fees}\n initialCoverageValues={initialCoverageValues}\n initialTotalPriceWithFees={initialTotalPriceWithFees}\n isAnnual={isAnnual}\n isDog={petInfo.petType === DOG}\n monthlyPrice={monthlyPrice}\n petInfo={petInfo}\n powerUps={powerUps}\n quoteSelectedValues={quoteSelectedValues}\n totalPriceWithFees={totalPriceWithFees}\n />\n\n <PreviewSubmitNote onContactUsClick={onContactUsClick} />\n\n <ChangeCoverageButtons\n disabledPrimaryButton={disableSubmit}\n loadingPrimaryButton={loadingSubmit}\n onClickPrimaryButton={handleSubmit}\n onClickSecondaryButton={handleCancel}\n primaryText={t('reviewChangesModal.submitChanges')}\n secondaryText={t('preview.back')}\n successPrimaryButton={success}\n />\n\n <ContactUsModal\n companyStep={CONTACT_US_STEPS.FIGO}\n onClose={onContactUsClose}\n show={contactUsVisible}\n />\n </div>\n );\n};\n\nexport { ChangeCoveragePreviewSubmit };\n","import { useCallback, useEffect, useState, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { currencyFormat } from '../../../../services/utils';\nimport {\n getContactBrandData,\n reviewChangesVisibleChanged,\n submitChangeCoverage,\n} from '../../../../actions';\nimport {\n POWERUP_TYPE,\n POWER_UPS_RELATION,\n} from '../../../changeCoverage/powerups/powerups.constans';\n\nconst useCoveragePreviewSubmit = ({\n petInfo = '',\n policyNumber = '',\n}) => {\n const dispatch = useDispatch();\n const [contactUsVisible, setContactUsVisible] = useState(false);\n const store = useSelector(({\n personalInformation,\n policies,\n }) => ({ ...policies.changeCoverage, personalInformation }));\n const {\n loadingSubmit,\n initialCoverageValues,\n quoteSelectedValues: {\n deductibleId,\n reimbursementId,\n selectedPlan,\n total,\n totalMonthly,\n totalAnnual,\n },\n rate: {\n effectiveDate,\n insuranceProduct,\n isAnnual,\n petQuoteResponseList,\n },\n success,\n } = store;\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n useEffect(() => {\n dispatch(getContactBrandData());\n }, []);\n\n const powerUps = useMemo(() => {\n const quoteModifiers = petQuoteResponseList\n ?.find((item) => item.petQuoteId === petInfo.petQuoteId)?.modifiers || [];\n const { InsuranceModifiers } = petInfo;\n if (InsuranceModifiers) {\n const powerUpsFilter = InsuranceModifiers\n .filter((modifier) => modifier.InsuranceModifierTypeId === POWERUP_TYPE\n && modifier.IsVisible)\n .map((powerUp) => {\n const isIncluded = quoteModifiers\n .find((item) => item.id === powerUp.Id)?.isSelected || false;\n\n return {\n id: powerUp.Id,\n isIncluded,\n isUpdated: initialCoverageValues.InsuranceModifiers\n .find((item) => item.id === powerUp.Id)?.isIncluded\n !== isIncluded,\n name: powerUp.AppText,\n };\n });\n\n return powerUpsFilter;\n }\n return [];\n }, [\n initialCoverageValues.InsuranceModifiers,\n petInfo,\n petQuoteResponseList,\n ]);\n\n const priceWithFormat = useMemo(() => {\n const price = isAnnual\n ? total : totalMonthly;\n const annualTotal = isAnnual ? totalAnnual : 0;\n\n if (!price) {\n return { decimal: '00', integer: 0, monthlyTotal: 0, total: 0 };\n }\n\n return {\n annualTotal: parseFloat(annualTotal),\n monthlyDecimal: `.${price.toString().split('.')[1] || '00'}`,\n monthlyInteger: price.toString().split('.')[0],\n monthlyTotal: parseFloat(totalMonthly),\n };\n }, [isAnnual, total, totalAnnual, totalMonthly]);\n\n const fees = useMemo(() => {\n if (!insuranceProduct?.InsuranceProductFee) {\n return [];\n }\n\n const { InsuranceProductFee } = insuranceProduct;\n\n return InsuranceProductFee.map(({ InsuranceFee }) => ({\n amount: InsuranceFee.Amount,\n description: InsuranceFee.DisplayName,\n }));\n }, [insuranceProduct]);\n\n const totalFees = fees.reduce((prev, next) => (prev + next.amount), 0);\n\n const annualPrice = `$${priceWithFormat.annualTotal}`;\n const monthlyPrice =\n `$${priceWithFormat.monthlyInteger}${priceWithFormat.monthlyDecimal}`;\n\n const totalPriceWithFees = useMemo(() => {\n const totalWithOutFees = isAnnual\n ? priceWithFormat.annualTotal : priceWithFormat.monthlyTotal;\n const totalWithFees = totalWithOutFees + totalFees;\n\n return currencyFormat({ value: totalWithFees });\n }, [isAnnual, totalFees, priceWithFormat]);\n\n const initialTotalPriceWithFees = useMemo(() => {\n const totalWithOutFees = isAnnual\n ? initialCoverageValues.annualAmountPlan\n : initialCoverageValues.monthlyAmountPlan;\n const totalWithFees = totalWithOutFees + totalFees;\n\n return currencyFormat({ value: totalWithFees });\n }, [isAnnual, totalFees, initialCoverageValues]);\n\n const handleCancel = useCallback(() => {\n if (loadingSubmit) {\n return;\n }\n\n dispatch(reviewChangesVisibleChanged(false));\n }, []);\n\n const handleSubmit = useCallback(() => {\n const { InsuranceModifiers, modifiers } = petInfo;\n const vetFees = InsuranceModifiers.find((item) => item.PMSModifierId\n === POWER_UPS_RELATION.VETERINARY_EXAM_FEES_PSM_ID);\n const hasVetFees = modifiers.length && modifiers\n .find((modifier) => modifier.id === vetFees.Id && modifier.isSelected);\n const selectedModifiers = modifiers || [];\n\n // powerups hidden and seleted id's\n const hideModifiers = petInfo.InsuranceModifiers\n .filter((insuranceModifer) => insuranceModifer\n .InsuranceModifierTypeId === POWERUP_TYPE\n && !insuranceModifer.IsVisible\n && insuranceModifer.IsSelected)\n .map((insuranceModifer) => ({\n id: insuranceModifer.Id,\n isSelected: true,\n }));\n\n // powerup id's selected, hidden and powerups children\n let allModifiers = [...selectedModifiers, ...hideModifiers];\n const extraCarePack = petInfo.InsuranceModifiers.find((item) => item\n .PMSModifierId === POWER_UPS_RELATION.EXTRA_CARE_PACK_PSM_ID);\n\n if (extraCarePack) {\n const extraCarePackSelected = allModifiers\n .find((modifier) => modifier.id === extraCarePack.Id);\n\n const extraCarePackChildren =\n extraCarePack.BundleInsuranceModifiers.map((child) => ({\n id: child.Id,\n isSelected: extraCarePackSelected\n && extraCarePackSelected.isSelected,\n }));\n\n allModifiers = [\n ...allModifiers,\n ...extraCarePackChildren,\n ];\n }\n\n dispatch(submitChangeCoverage({\n body: {\n Deductible: deductibleId,\n EffectiveDate: effectiveDate,\n HasVetFees: !!hasVetFees,\n modifiers: allModifiers,\n QuotePlan: selectedPlan,\n Reimbursement: reimbursementId,\n },\n policyNumber,\n }));\n }, [\n deductibleId,\n dispatch,\n effectiveDate,\n petInfo,\n policyNumber,\n reimbursementId,\n selectedPlan,\n ]);\n\n const onContactUsClick = () => {\n setContactUsVisible(true);\n };\n\n const onContactUsClose = () => {\n setContactUsVisible(false);\n };\n\n return {\n annualPrice,\n contactUsVisible,\n effectiveDate,\n fees,\n handleCancel,\n handleSubmit,\n initialCoverageValues,\n initialTotalPriceWithFees,\n isAnnual,\n loadingSubmit,\n monthlyPrice,\n onContactUsClick,\n onContactUsClose,\n powerUps,\n quoteSelectedValues: store.quoteSelectedValues,\n success,\n totalPriceWithFees,\n };\n};\n\nexport { useCoveragePreviewSubmit };\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\n\nimport Shimmer from '../../../common/Shimmer';\n\nimport { ChangeCoverageButtons } from '../ChangeCoverageButtons';\n\nimport '../css/ChangeCoverageScreenFooter.css';\n\nconst ChangeCoverageScreenFooter = ({\n handleGoBack = () => { },\n onReviewChangesClick = () => { },\n}) => {\n const store = useSelector(({ policies }) => ({ ...policies.changeCoverage }));\n const { rate: { isAnnual }, quoteSelectedValues } = store;\n const { t } = useTranslation('changeCoverage');\n\n const priceWithFormat = useMemo(() => {\n const price = isAnnual\n ? quoteSelectedValues.total : quoteSelectedValues.totalMonthly;\n const annualTotal = isAnnual ? quoteSelectedValues.totalAnnual : 0;\n\n if (!price) {\n return { decimal: '00', integer: 0, price: 0 };\n }\n\n return {\n annualTotal,\n monthlyDecimal: `.${price.toString().split('.')[1] || '00'}`,\n monthlyInteger: price.toString().split('.')[0],\n price: parseInt(price, 10),\n };\n }, [isAnnual, quoteSelectedValues, store.rate]);\n\n function handleReviewChanges() {\n if (store.loading || priceWithFormat.price === 0) {\n return;\n }\n\n onReviewChangesClick();\n }\n\n function renderPrice() {\n if (store.loading || !priceWithFormat.monthlyInteger) {\n return (\n <div className=\"Change-coverage-footer-price-shimmer\">\n <Shimmer height={48} visible />\n </div>\n );\n }\n\n const priceText = isAnnual ? `$${priceWithFormat.annualTotal}`\n : `$${priceWithFormat.monthlyInteger}${priceWithFormat.monthlyDecimal}`;\n\n return (\n <div className=\"Change-coverage-footer-price-container\">\n <h2 className=\"Change-coverage-footer-price\">\n {priceText}\n </h2>\n\n <span className=\"Change-coverage-footer-text\">\n /{isAnnual ? t('options.annual') : t('options.monthly')}\n </span>\n </div>\n );\n }\n\n return (\n <div className=\"Change-coverage-footer-container\">\n {renderPrice()}\n\n <ChangeCoverageButtons\n containerClass=\"Change-Coverage-footer-buttons-container\"\n onClickPrimaryButton={handleReviewChanges}\n onClickSecondaryButton={handleGoBack}\n primaryText={t('options.reviewChanges')}\n secondaryText={t('preview.back')}\n />\n </div>\n );\n};\n\nexport { ChangeCoverageScreenFooter };\n","export default \"data:image/png;base64,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\"","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport Card from 'react-bootstrap/Card';\nimport Button from 'react-bootstrap/Button';\nimport Image from 'react-bootstrap/Image';\nimport alertIcon from '../../assets/alert.png';\nimport { FILE_CLAIMS_STEPS } from '../../constants';\nimport { useMixpanel } from '../../hooks';\nimport { EV4 } from '../../services/mixpanel';\nimport {\n getDateBasicFormat,\n getClaimDataForMixPanel,\n} from '../../services/utils';\nimport './UnsavedChangesPrompt.css';\n\nconst UnsavedChangesPrompt = ({\n icon = alertIcon,\n containerClassName = '',\n currentStepNumber = 0,\n message = '',\n modalClassName = '',\n onCancel = () => { },\n onConfirm = () => { },\n policyBrandName,\n textCancel,\n textConfirm,\n title,\n}) => {\n const { t } = useTranslation(['common', 'fileClaims']);\n\n const store = useSelector(({ fileClaims }) => ({ fileClaims }), shallowEqual);\n\n const { fileClaims } = store;\n\n const { selectedPet } = fileClaims;\n\n const { sendEvent } = useMixpanel();\n\n function handleOnConfirm() {\n onConfirm();\n }\n\n function handleOnCancel() {\n onCancel();\n switch (currentStepNumber) {\n case FILE_CLAIMS_STEPS.selectPet.id:\n sendEvent(EV4({\n claimData: getClaimDataForMixPanel({\n selectedPet,\n }),\n ...(fileClaims.date && {\n dateOfLoss: getDateBasicFormat(new Date(Number(fileClaims.date))),\n }),\n lastBotText: t('evie.step1', { ns: 'fileClaims' }),\n lastInputFromUser: fileClaims.date\n ? getDateBasicFormat(new Date(Number(fileClaims.date)))\n : selectedPet?.Name,\n policyBrand: policyBrandName,\n policyNumber: fileClaims.date ? fileClaims.policyNumber : null,\n }));\n break;\n\n case FILE_CLAIMS_STEPS.claimType.id:\n case FILE_CLAIMS_STEPS.claimTypeDetail.id:\n sendEvent(EV4({\n claimData: getClaimDataForMixPanel({\n date: fileClaims.date,\n policyNumber: fileClaims.policyNumber,\n selectedPet,\n }),\n dateOfLoss: getDateBasicFormat(new Date(Number(fileClaims.date))),\n lastBotText: t('evie.step3', { ns: 'fileClaims' }),\n lastInputFromUser: fileClaims.claimTypeText,\n policyBrand: policyBrandName,\n policyNumber: fileClaims.policyNumber,\n }));\n break;\n\n case FILE_CLAIMS_STEPS.claimsDetails.id:\n sendEvent(EV4({\n claimData: getClaimDataForMixPanel({\n date: fileClaims.date,\n policyNumber: fileClaims.policyNumber,\n selectedPet,\n }),\n ...(fileClaims.claimsDetails && {\n claimDescription: fileClaims.claimsDetails,\n }),\n dateOfLoss: getDateBasicFormat(new Date(Number(fileClaims.date))),\n lastBotText: t('evie.step4', { ns: 'fileClaims' }),\n lastInputFromUser: fileClaims.claimsDetails\n ? fileClaims.claimsDetails : fileClaims.claimTypeText,\n policyBrand: policyBrandName,\n policyNumber: fileClaims.policyNumber,\n }));\n break;\n\n case FILE_CLAIMS_STEPS.fileUpload.id:\n sendEvent(EV4({\n claimData: getClaimDataForMixPanel({\n date: fileClaims.date,\n policyNumber: fileClaims.policyNumber,\n selectedPet,\n }),\n claimDescription: fileClaims.claimsDetails,\n dateOfLoss: getDateBasicFormat(new Date(Number(fileClaims.date))),\n lastBotText: t('evie.step5', { ns: 'fileClaims' }),\n lastInputFromUser: fileClaims.attachments.length\n ? fileClaims.attachments[0].filename : fileClaims.claimsDetails,\n policyBrand: policyBrandName,\n policyNumber: fileClaims.policyNumber,\n }));\n break;\n\n case FILE_CLAIMS_STEPS.reimbursementMethod.id:\n sendEvent(EV4({\n claimData: getClaimDataForMixPanel({\n date: fileClaims.date,\n policyNumber: fileClaims.policyNumber,\n selectedPet,\n }),\n claimDescription: fileClaims.claimsDetails,\n dateOfLoss: getDateBasicFormat(new Date(Number(fileClaims.date))),\n lastBotText: t('evie.step6', { ns: 'fileClaims' }),\n lastInputFromUser: fileClaims.attachments[0].filename,\n policyBrand: policyBrandName,\n policyNumber: fileClaims.policyNumber,\n }));\n break;\n\n case FILE_CLAIMS_STEPS.termsAndConditions.id:\n sendEvent(EV4({\n claimData: getClaimDataForMixPanel({\n date: fileClaims.date,\n policyNumber: fileClaims.policyNumber,\n selectedPet,\n }),\n claimDescription: fileClaims.claimsDetails,\n dateOfLoss: getDateBasicFormat(new Date(Number(fileClaims.date))),\n lastBotText: t('evie.step7', { ns: 'fileClaims' }),\n lastInputFromUser: fileClaims.attachments[0].filename,\n policyBrand: policyBrandName,\n policyNumber: fileClaims.policyNumber,\n }));\n break;\n\n case FILE_CLAIMS_STEPS.review.id:\n sendEvent(EV4({\n claimData: getClaimDataForMixPanel({\n date: fileClaims.date,\n policyNumber: fileClaims.policyNumber,\n selectedPet,\n }),\n claimDescription: fileClaims.claimsDetails,\n dateOfLoss: getDateBasicFormat(new Date(Number(fileClaims.date))),\n lastBotText: t('evie.step8', { ns: 'fileClaims' }),\n lastInputFromUser: fileClaims.attachments[0].filename,\n policyBrand: policyBrandName,\n policyNumber: fileClaims.policyNumber,\n }));\n break;\n\n default:\n break;\n }\n }\n\n return (\n <div className=\"Modal-overlay-backdrop\">\n <Card className={`Modal-container ${modalClassName}`}>\n {icon && (\n <div className=\"Modal-image-container\">\n <Image className=\"Modal-image\" src={icon} />\n </div>\n )}\n\n <div className={containerClassName}>\n <p className=\"Modal-title\">\n {title || t('unsavedChangesModalTitle')}\n </p>\n\n {message !== ' ' && (\n <div className=\"Modal-body-container\">\n <p className=\"Modal-body\">\n {message || t('unsavedChangesModalBody')}\n </p>\n </div>\n )}\n\n <div className=\"Modal-buttons-container\">\n <Button\n className=\"Modal-button Modal-button-leave\"\n id=\"unsavedChangesButtonLeave\"\n onClick={handleOnConfirm}\n >\n {textCancel || t('unsavedChangesModalLeave')}\n </Button>\n\n <Button\n className=\"Modal-button Modal-button-stay\"\n id=\"unsavedChangesButtonStay\"\n onClick={handleOnCancel}\n >\n {textConfirm || t('unsavedChangesModalStay')}\n </Button>\n </div>\n </div>\n </Card>\n </div>\n );\n};\n\nexport default UnsavedChangesPrompt;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport NavigationPrompt from 'react-router-navigation-prompt';\nimport moment from 'moment';\nimport { useResponsive } from '../../../../hooks/useResponsive';\nimport {\n useDisableSubmit,\n} from '../../../changeCoverage/changeCoverageOptions/useDisableSubmit';\nimport { possesiveAdaptationI18n } from '../../../../services/utils';\n\nimport { useCoverageOptions } from '../hooks/useCoverageOptions';\n\nimport { useCoverageModal } from '../hooks/useCoverageModal';\n\nimport {\n DeductibleReimbursement,\n} from '../../../changeCoverage/sliders/DeductibleReimbursement';\nimport {\n PetCopayCoverageSection,\n} from '../../../changeCoverage/changeCoverageOptions/PetCopayCoverageSection';\nimport {\n CardPowerupSection,\n} from '../../../changeCoverage/powerups/CardPowerupSection';\nimport {\n ReviewChangesModal,\n} from '../../../changeCoverage/reviewChangesModal/ReviewChangesModal';\nimport {\n RateErrorModal,\n} from '../../../changeCoverage/changeCoverageOptions/RateErrorModal';\nimport {\n SubmitChanges,\n} from '../../../changeCoverage/changeCoverageOptions/SubmitChanges';\nimport {\n ChangeCoveragePreviewSubmit,\n} from '../changeCoverageSubmit/ChangeCoveragePreviewSubmit';\nimport { ChangeCoverageScreenFooter } from './ChangeCoverageScreenFooter';\nimport { ModifierModalInfo } from '../../modifiers/ModifierModalInfo';\nimport FigoLoadingOverlay from '../../../common/FigoLoadingOverlay';\nimport UnsavedChangesPrompt from '../../../common/UnsavedChangesPrompt';\n\nimport '../css/ChangeCoverageScreenOptions.css';\n\nconst ChangeCoverageScreenOptions = ({\n onRateCreationError = () => { },\n policyNumber = '',\n validatePromptWarning = () => true,\n}) => {\n const { t } = useTranslation('changeCoverage');\n const { isMobile } = useResponsive();\n const disableSubmit = useDisableSubmit();\n const {\n cleanUpRate,\n deductibleLegend,\n effectiveDate,\n handleAddPowerup,\n handleCloseMultiModal,\n handleCloseSubmit,\n handleErrorModalClose,\n handleGoBack,\n handlePetProtectCopayInfoClick,\n handleReviewChangesClick,\n handleVetFeesClick,\n handleWellnessClick,\n insuranceProduct,\n loading,\n loadingSubmit,\n multiModalCategoryId,\n multimodalDataSelected,\n multiModalVisible,\n onReviewChangesClosed,\n petInfo,\n petProtectCopayModifier,\n powerUpLoadings,\n quoteSelectedValues,\n rateErrorModalVisible,\n reviewChangesVisible,\n shouldPromptWarning,\n success,\n } = useCoverageOptions({\n onRateCreationError,\n policyNumber,\n validatePromptWarning,\n });\n\n const { wellnessBenefits } = useCoverageModal();\n\n function formatDate(date) {\n return !date ? '-' : moment(date.split('T')[0]).format('MM/DD/YYYY');\n }\n\n function renderNavigationPrompt(props) {\n const { onConfirm, onCancel } = props;\n\n return (\n <UnsavedChangesPrompt\n message={t('options.promptMessage')}\n onCancel={onCancel}\n onConfirm={onConfirm}\n />\n );\n }\n\n if (reviewChangesVisible) {\n return (\n <>\n <ChangeCoveragePreviewSubmit\n disableSubmit={disableSubmit}\n petInfo={petInfo}\n policyNumber={policyNumber}\n />\n\n <FigoLoadingOverlay visible={loadingSubmit} />\n\n <NavigationPrompt\n afterConfirm={cleanUpRate}\n disableNative={false}\n when={shouldPromptWarning}\n >\n {renderNavigationPrompt}\n </NavigationPrompt>\n </>\n );\n }\n\n return (\n <>\n <div className=\"Change-coverage-screen-options-container\">\n <h3>\n {t('options.optionsTitle')}\n </h3>\n\n <p className=\"Change-coverage-screen-options-description\">\n {t('options.instruction', {\n count: possesiveAdaptationI18n(petInfo.name),\n effDate: formatDate(effectiveDate),\n interpolation: {\n escapeValue: false,\n },\n name: petInfo.petName,\n })}\n </p>\n\n {!loading && (\n <DeductibleReimbursement\n deductibleLegend={deductibleLegend}\n plans={petInfo.Plans}\n quoteSelected={quoteSelectedValues}\n />\n )}\n\n {!loading && petProtectCopayModifier && (\n <PetCopayCoverageSection\n active={petProtectCopayModifier.IsSelected}\n howItWorksClick={handlePetProtectCopayInfoClick}\n modifierData={petProtectCopayModifier}\n onAddPowerup={handleAddPowerup}\n petQuote={petInfo}\n />\n )}\n\n {!loading && (\n <CardPowerupSection\n handleWellnessClick={handleWellnessClick}\n insuranceProduct={insuranceProduct}\n multiModalData={multimodalDataSelected}\n onAddPowerup={handleAddPowerup}\n onVetFeesClick={handleVetFeesClick}\n petName={petInfo.petName}\n petQuote={petInfo}\n powerUpLoadings={powerUpLoadings}\n quoteSelected={quoteSelectedValues}\n />\n )}\n\n <FigoLoadingOverlay visible={loading || !!powerUpLoadings.length} />\n\n <ReviewChangesModal\n disableSubmit={disableSubmit}\n onClose={onReviewChangesClosed}\n petInfo={petInfo}\n policyNumber={policyNumber}\n showModal={reviewChangesVisible}\n />\n\n {multimodalDataSelected && (\n <ModifierModalInfo\n initialMenuSelected={multiModalCategoryId}\n isVisible={multiModalVisible}\n isWhatsCovered\n multiModalData={multimodalDataSelected}\n onClose={handleCloseMultiModal}\n wellnessBenefits={wellnessBenefits}\n />\n )}\n\n {!loading && (\n <RateErrorModal\n onClose={handleErrorModalClose}\n tErrorText={t}\n visible={rateErrorModalVisible}\n />\n )}\n\n <NavigationPrompt\n afterConfirm={cleanUpRate}\n disableNative={false}\n when={shouldPromptWarning}\n >\n {renderNavigationPrompt}\n </NavigationPrompt>\n\n <SubmitChanges\n isVisible={success && !isMobile}\n onClose={handleCloseSubmit}\n />\n </div>\n\n <ChangeCoverageScreenFooter\n handleGoBack={handleGoBack}\n onReviewChangesClick={handleReviewChangesClick}\n />\n </>\n );\n};\n\nexport { ChangeCoverageScreenOptions };\n","import { useMemo } from 'react';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { getBrandNameByChannelId } from '../services/utils';\n\nconst usePolicyBrand = ({ policyNumber = '' }) => {\n const store = useSelector(({ policies }) => ({\n ...policies.changeCoverage,\n allPolicies: policies.allPolicies,\n }), shallowEqual);\n const {\n allPolicies,\n } = store;\n\n const policyBrandName = useMemo(() => {\n const foundPolicy = allPolicies\n ?.find((policyItem) => policyItem.Policy.Number === policyNumber);\n const productFamilyId = foundPolicy?.Policy.ProductFamilyId ?? '';\n return getBrandNameByChannelId(productFamilyId);\n }, [allPolicies, policyNumber]);\n\n return { policyBrandName };\n};\n\nexport { usePolicyBrand };\n","import React, { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport {\n Route,\n Switch,\n useHistory,\n useParams,\n useRouteMatch,\n} from 'react-router-dom';\n\nimport {\n useAlphabeticalSortedPetsWithPolicy,\n useBackButton,\n useMixpanel,\n usePMS,\n} from '../../../hooks';\n\nimport { usePetPolicies } from '../../../hooks/usePetPolicies';\n\nimport figoLogo from '../../../assets/figo-logo-white.svg';\n\nimport {\n billingPaymentReseted,\n clearPolicyNotifications,\n getChangeCoveragePreview,\n isFirstTimeOnClaims,\n petSelected,\n policySelected,\n policySelectedOnClaims,\n restartRate,\n reviewChangesVisibleChanged,\n setSelectedPetId,\n setSelectedPetIndex,\n validateChangeCoverage,\n validateChangeCoverageCleared,\n} from '../../../actions';\n\nimport {\n CHANGE_COVERAGE_WEB,\n INSURANCE,\n} from '../../navigation/routes.constants';\n\nimport { EV1 } from '../../../services/mixpanel';\n\nimport { PetCloudBreadcrumbs } from '../../myPets/common/PetCloudBreadcrumbs';\nimport FigoLoadingOverlay from '../../common/FigoLoadingOverlay';\nimport Shimmer from '../../common/Shimmer';\n\nimport { ChangeCoverageScreenPreview } from './ChangeCoverageScreenPreview';\nimport { ChangeCoverageScreenOptions }\nfrom './changeCoverageOptions/ChangeCoverageScreenOptions';\nimport { usePolicyBrand } from '../../../hooks/usePolicyBrand';\n\nimport './css/ChangeCoverageInsuranceScreen.css';\n\nconst ChangeCoverageInsuranceScreen = () => {\n const dispatch = useDispatch();\n const history = useHistory();\n const match = useRouteMatch();\n const { sendEvent } = useMixpanel();\n const { t } = useTranslation('changeCoverage');\n const store = useSelector(({ policies }) => ({ policies }));\n const { policyNumber } = useParams();\n const { policyBrandName } = usePolicyBrand({ policyNumber });\n const { hasPets } = usePetPolicies();\n const { pms } = usePMS();\n const sortedPetsWithPolicy =\n useAlphabeticalSortedPetsWithPolicy();\n const {\n policies: {\n allPets,\n allPolicies,\n changeCoverage: { success, reviewChangesVisible },\n changeCoverageValidation,\n loading: policiesLoading,\n },\n } = store;\n\n const isPolicyOwner = useMemo(() => {\n let isOwner = false;\n\n if (allPolicies && policyNumber) {\n isOwner = !!allPolicies\n .find((policy) => policy.Policy.Number === policyNumber);\n }\n\n return isOwner;\n }, [allPolicies, policyNumber]);\n\n useBackButton(() => {\n dispatch(restartRate());\n }, []);\n\n useEffect(() => () => { dispatch(restartRate()); }, [dispatch]);\n\n useEffect(() => {\n if (store.policies.loading) {\n return;\n }\n\n if (isPolicyOwner) {\n dispatch(validateChangeCoverage({ policyNumber }));\n } else {\n const source = window.location.pathname;\n sendEvent(EV1({ pms, policyBrand: policyBrandName, source }));\n history.push(INSURANCE);\n }\n }, [dispatch, isPolicyOwner, policyNumber, store.policies.loading]);\n\n function handlePolicySelect(index) {\n const { policies } = store;\n\n dispatch(clearPolicyNotifications());\n\n if (!policies.allPolicies.length) {\n return;\n }\n\n dispatch(policySelected(index));\n dispatch(policySelectedOnClaims(index + 1));\n dispatch(isFirstTimeOnClaims(false));\n }\n\n function handlePetSelect(index) {\n const petId = allPets[index].PetId;\n const indexBillingPayment = sortedPetsWithPolicy\n .findIndex((pet) => pet.PetId === petId);\n const indexNotFound = -1;\n const firstIndex = 0;\n dispatch(petSelected(indexBillingPayment === indexNotFound\n ? firstIndex\n : indexBillingPayment));\n dispatch(setSelectedPetId(petId));\n dispatch(clearPolicyNotifications());\n dispatch(setSelectedPetIndex(index));\n dispatch(billingPaymentReseted());\n }\n\n useEffect(() => {\n if (policiesLoading || !changeCoverageValidation.isSuccess) {\n return;\n }\n\n if (hasPets) {\n const petIndexToSelect = sortedPetsWithPolicy\n .findIndex((pet) => pet.policies\n .find((policy, index) => {\n const policyFound = policy.Number === policyNumber;\n if (policyFound) {\n handlePolicySelect(index);\n }\n return policyFound;\n }));\n\n if (petIndexToSelect < 0\n || (changeCoverageValidation.isSuccess\n && !changeCoverageValidation.isValid)) {\n const source = window.location.pathname;\n sendEvent(EV1({ pms, policyBrand: policyBrandName, source }));\n history.replace(INSURANCE);\n } else {\n handlePetSelect(petIndexToSelect);\n dispatch(validateChangeCoverageCleared());\n dispatch(getChangeCoveragePreview({ policyNumber }));\n }\n }\n }, [\n dispatch,\n changeCoverageValidation.isSuccess,\n changeCoverageValidation.isValid,\n policyNumber,\n sortedPetsWithPolicy,\n hasPets]);\n\n function shouldPromptWarning(_crntLocation, nextLocation) {\n const { isSuccess, isValid } = changeCoverageValidation;\n\n if (nextLocation.pathname === INSURANCE && success) {\n return false;\n }\n\n return ((!isSuccess || isValid)\n && nextLocation.pathname !== `${CHANGE_COVERAGE_WEB}/${policyNumber}`);\n }\n\n function handleBackButton() {\n if (reviewChangesVisible) {\n dispatch(reviewChangesVisibleChanged(false));\n return;\n }\n\n history.goBack();\n }\n\n function handleChangeCoverageButton() {\n history.push(`${CHANGE_COVERAGE_WEB}/${policyNumber}/options`);\n }\n\n function handleKeepCoverageButton() {\n const findPetId =\n allPolicies.find((policy) => policy.Policy.Number === policyNumber);\n const source = window.location.pathname;\n sendEvent(EV1({ pms, policyBrand: policyBrandName, source }));\n const url = findPetId\n ? `${INSURANCE}/${findPetId?.PetInformation?.PetId}` : INSURANCE;\n history.push(url);\n }\n\n function renderChangeCoverageContainer() {\n if (policiesLoading || changeCoverageValidation.isLoading) {\n return (\n <Shimmer\n className=\"Change-coverage-insurance-card-container-shimmer\"\n />\n );\n }\n\n return (\n <div className={'Change-coverage-insurance-card-container '\n + `${reviewChangesVisible\n ? 'Change-coverage-insurance-container-mobile' : ''}`}\n >\n <Switch>\n <Route path={`${CHANGE_COVERAGE_WEB}/:policyNumber/options`}>\n <ChangeCoverageScreenOptions\n onRateCreationError={handleBackButton}\n policyNumber={policyNumber}\n validatePromptWarning={shouldPromptWarning}\n />\n </Route>\n\n <Route exact path={match.path}>\n <ChangeCoverageScreenPreview\n onChangeCoverageClick={handleChangeCoverageButton}\n onKeepClick={handleKeepCoverageButton}\n />\n </Route>\n </Switch>\n </div>\n );\n }\n\n return (\n <div className=\"Change-coverage-insurance-screen-container\">\n <PetCloudBreadcrumbs\n activeRoute={t('preview.changeCoverage')}\n rootRoute={t('insuranceTitle')}\n />\n\n <h1>{t('preview.changeCoverage')}</h1>\n\n <div className=\"Change-coverage-insurance-header-container\">\n <img\n alt=\"\"\n className=\"Change-coverage-insurance-header-logo\"\n src={figoLogo}\n />\n </div>\n\n {renderChangeCoverageContainer()}\n\n <FigoLoadingOverlay\n visible={policiesLoading || changeCoverageValidation.isLoading}\n />\n </div>\n );\n};\n\nexport { ChangeCoverageInsuranceScreen };\n","import { useEffect, useCallback, useRef } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nconst useBackButton = (callback = () => { }, dependencies) => {\n const history = useHistory();\n const initialLocationKey = useRef();\n const handlePopState = useCallback(() => {\n if (history.location.key === initialLocationKey.current) {\n callback();\n }\n }, [...dependencies, callback]);\n\n useEffect(() => {\n window.addEventListener('popstate', handlePopState);\n initialLocationKey.current = history.location.key;\n\n return () => {\n window.removeEventListener('popstate', handlePopState);\n };\n }, [...dependencies]);\n};\n\nexport { useBackButton };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\n\nimport { getThemeLogoById } from '../../theme/theme.utils';\nimport {\n CoveragePolicyStatus,\n} from '../insurance/coverageOverview/CoveragePolicyStatus';\nimport { POLICY_STATUS } from '../../constants';\n\nimport { MARKETING_CHANNEL_ID } from '../../theme/theme.constants';\n\nimport './PolicyListItem.css';\n\nfunction formatDate(date) {\n return !date ? '-' : moment(date.split('T')[0]).format('MM/DD/YYYY');\n}\n\nconst PolicyListItem = ({\n endsOn,\n marketingChannel,\n onClick = () => { },\n policyNumber,\n startsOn,\n status,\n selected = false,\n}) => {\n const { t } = useTranslation('insuranceScreen');\n const { dark } = getThemeLogoById(marketingChannel);\n const formattedStartDate = formatDate(startsOn);\n const formattedEndDate = formatDate(endsOn);\n\n return (\n <li className=\"Policy-list-item-container\">\n <button data-selected={selected} onClick={onClick} type=\"button\">\n <div className=\"Policy-list-item-data\">\n <img\n alt=\"\"\n className=\"Policy-list-item-logo\"\n data-marketingchannel={marketingChannel}\n src={dark}\n />\n\n <div className=\"Policy-list-item-content\">\n <div>\n <h3>{t('otherPolicies.policyNumber')}</h3>\n\n <p>{policyNumber}</p>\n </div>\n\n <div>\n <h3>\n {marketingChannel !== MARKETING_CHANNEL_ID.figo\n ? t('coveragePeriod') : t('otherPolicies.policyTerm')}\n </h3>\n\n <p>{`${formattedStartDate} - ${formattedEndDate}`}</p>\n </div>\n </div>\n </div>\n\n <CoveragePolicyStatus\n label={status}\n status={POLICY_STATUS[status?.toLowerCase()]}\n />\n </button>\n </li>\n );\n};\n\nexport { PolicyListItem };\n","import React, { useCallback, useEffect, useMemo } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { useParams, useHistory } from 'react-router-dom';\n\nimport { INSURANCE } from '../navigation/routes.constants';\nimport { getMultibrandPolicies } from '../../actions';\nimport { MULTIBRAND_POLICY_STATUS } from '../../constants';\nimport { MARKETING_CHANNEL_ID } from '../../theme/theme.constants';\nimport { useAlphabeticalSortedPets } from '../../hooks';\n\nimport { PetCloudBreadcrumbs } from '../myPets/common/PetCloudBreadcrumbs';\nimport { CurrentPetPolicy } from './CurrentPetPolicy';\nimport { PolicyListItem } from '../common/PolicyListItem';\nimport FigoLottie from '../common/FigoLottie';\n\nimport './OtherPolicies.css';\n\nconst OtherPolicies = () => {\n const { t } = useTranslation('insuranceScreen');\n const { petId } = useParams();\n const history = useHistory();\n const dispatch = useDispatch();\n const store = useSelector(({ policies }) => ({ policies }), shallowEqual);\n const {\n policies: {\n loading,\n multibrandPolicies,\n },\n } = store;\n\n const getAlphabeticalSortedPets = useAlphabeticalSortedPets();\n\n const currentPet = useMemo(() => {\n if (!multibrandPolicies || !multibrandPolicies.length) {\n return {};\n }\n\n const petFound = multibrandPolicies\n .find((pet) => pet.PetId === Number(petId));\n\n // Map Figo policies\n const petData = getAlphabeticalSortedPets\n ?.find((item) => item.PetId === +petId);\n const petPoliciesData = petData?.policies.map((policy) => {\n const petFoundPoliciesIds = petFound.Policies\n .map((item) => item.PolicyNumber);\n\n if (petFoundPoliciesIds.includes(policy.Number)) {\n return {};\n }\n\n return ({\n EffectiveOn: policy.CoverageStartDate,\n ExpiresOn: policy.ExpirationDate,\n PolicyMarketingChannelId: MARKETING_CHANNEL_ID.figo,\n PolicyNumber: policy.Number,\n PolicyStatusDisplay: Object\n .values(MULTIBRAND_POLICY_STATUS)[policy.Status],\n });\n }).filter((petPolicy) => petPolicy.PolicyNumber) || [];\n\n const allPolicies = petFound ? [\n ...petFound.Policies,\n ...petPoliciesData,\n ] : [...petPoliciesData];\n\n return {\n ...petFound,\n BreedName: petFound?.Breed || '',\n ImageUrl: petFound?.ProfileUrl || '',\n Name: petFound?.PetName || '',\n policies: allPolicies,\n };\n }, [petId, multibrandPolicies]);\n\n useEffect(() => {\n if (!multibrandPolicies.length) {\n dispatch(getMultibrandPolicies());\n }\n }, [dispatch]);\n\n useEffect(() => {\n if (!currentPet.Name && !loading) {\n history.replace(INSURANCE);\n }\n }, [currentPet]);\n\n const goToPolicy = useCallback((policyId) => () => {\n history.push(`${INSURANCE}/${petId}/${policyId}`);\n }, []);\n\n if (!currentPet.policies) {\n return (\n <div className=\"Margin-top-20-percent\">\n <FigoLottie\n height={60}\n width={60}\n />\n </div>\n );\n }\n\n return (\n <div className=\"Policy-summary-main-container\">\n <PetCloudBreadcrumbs\n activeRoute={currentPet?.Name}\n rootRoute={t('title')}\n rootRouteLink={INSURANCE}\n />\n\n <div className=\"Policy-summary-title-page-container\">\n <h1>{t('title')}</h1>\n </div>\n\n <div className=\"Other-policies-container\">\n <h2>{t('myPet')}</h2>\n\n <CurrentPetPolicy currentPet={currentPet} />\n\n <h2>{t('insurancePolicies')}</h2>\n\n <p>{t('selectPolicy')}</p>\n\n <ul className=\"Other-policies-list\">\n {currentPet.policies.map((policy) => (\n <PolicyListItem\n key={policy.PolicyNumber}\n endsOn={policy.ExpiresOn}\n marketingChannel={policy.PolicyMarketingChannelId}\n onClick={goToPolicy(policy.PolicyMarketingChannelId\n !== MARKETING_CHANNEL_ID.figo\n ? policy.PolicyId : policy.PolicyNumber)}\n policyNumber={policy.PolicyNumber}\n startsOn={policy.EffectiveOn}\n status={policy.PolicyStatusDisplay}\n />\n ))}\n </ul>\n </div>\n </div>\n );\n};\n\nexport { OtherPolicies };\n","import React, { useEffect } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport { INSURANCE } from '../navigation/routes.constants';\n\nimport './OrcaGetQuoteFrame.css';\nimport { Iframe } from '../common/iframe/Iframe';\nimport { POST_MESSAGE_TYPES } from '../../constants';\n\nconst HTTPS_KEY = 'https://';\n\nexport const OrcaGetQuoteFrame = () => {\n const history = useHistory();\n const location = useLocation();\n const { state: { quoteUrl } } = location;\n const { t } = useTranslation('multibrand');\n\n const onMessage = React.useCallback(({ data, origin }) => {\n if (!quoteUrl) {\n return;\n }\n\n const [webViewOrigin] = quoteUrl.replace(HTTPS_KEY, '').split('/');\n const domain = `${HTTPS_KEY}${webViewOrigin}`;\n const validPostMessage = data === POST_MESSAGE_TYPES.CLOSE_PAGE\n || data === POST_MESSAGE_TYPES.QUOTE_CREATED;\n\n if (origin === domain && validPostMessage) {\n history.replace(INSURANCE);\n }\n }, [quoteUrl]);\n\n React.useLayoutEffect(() => {\n window.removeEventListener('message', onMessage);\n window.addEventListener('message', onMessage);\n\n return () => {\n window.removeEventListener('message', onMessage);\n };\n }, [onMessage]);\n\n useEffect(() => {\n if (!quoteUrl) {\n history.replace(INSURANCE);\n }\n }, [quoteUrl]);\n\n return (\n <div className=\"Orca-get-quote-frame\">\n <Iframe\n allowFullScreen\n src={quoteUrl}\n title={t('orcaInsurance.addNewPet.addANewPet')}\n />\n </div>\n );\n};\n","export default __webpack_public_path__ + \"static/media/add-circle-blue.f325f4fa.svg\";","import React, { useCallback, useEffect, useMemo } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport { ADD_ORCA_PET_IFRAME } from '../navigation/routes.constants';\nimport { PetCard } from './multiplePets/PetCard';\n\nimport plusIcon from '../../assets/add-circle-blue.svg';\nimport { getMultibrandPolicies } from '../../actions';\n\nimport './AddPetScreen.css';\nimport FigoLottie from '../common/FigoLottie';\n\nconst AddPetScreen = () => {\n const { t } = useTranslation('insuranceScreen');\n const history = useHistory();\n const location = useLocation();\n const dispatch = useDispatch();\n const store = useSelector(({ policies }) => (policies), shallowEqual);\n const { loading, multibrandPolicies } = store;\n\n useEffect(() => {\n if (!multibrandPolicies.length) {\n dispatch(getMultibrandPolicies());\n }\n }, []);\n\n const selectedPolicy = useMemo(() => {\n if (!location.state) {\n return null;\n }\n\n return location.state.selectedPolicy;\n }, [location.state]);\n\n const pets = useMemo(() => multibrandPolicies\n .filter((pet) => !pet.Policies.length), [multibrandPolicies]);\n\n const onAddANewPetPress = useCallback(() => {\n history.push(ADD_ORCA_PET_IFRAME, {\n selectedPolicy,\n });\n }, [history, selectedPolicy]);\n\n const handlePetSelection = useCallback((pet) => () => {\n history.push(ADD_ORCA_PET_IFRAME, {\n selectedPet: pet,\n selectedPolicy,\n });\n }, [history, selectedPolicy]);\n\n if (loading) {\n return (\n <div className=\"Add-pet-screen-loading-container\">\n <FigoLottie height={80} width={80} />\n </div>\n );\n }\n\n return (\n <div className=\"Add-pet-screen-main-container\">\n <div className=\"Add-pet-screen-title-page-container\">\n <h1>{t('addOrcaPet.title')}</h1>\n\n <p>{t('addOrcaPet.description')}</p>\n </div>\n\n <div className=\"Add-pet-screen-pets-container\">\n {pets.map((pet) => (\n <PetCard\n key={`${pet.PetId}`}\n age={pet.PetAge}\n breed={pet.Breed}\n gender={pet.PetGender}\n name={pet.PetName}\n onClick={handlePetSelection(pet)}\n picture={pet.ProfileUrl}\n type={pet.Type}\n weight={pet.Weight}\n />\n ))}\n\n <button\n className=\"Add-pet-screen-add-pet-card\"\n onClick={onAddANewPetPress}\n type=\"button\"\n >\n <img alt=\"\" src={plusIcon} />\n {t('addOrcaPet.addPet')}\n </button>\n </div>\n </div>\n );\n};\n\nexport { AddPetScreen };\n","import React, { useCallback, useEffect, useLayoutEffect, useMemo } from 'react';\nimport { useLocation, useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport FigoLottie from '../common/FigoLottie';\n\nimport { useWebviewMultibrand } from '../../hooks';\nimport { POST_MESSAGE_TYPES, WEB_VIEW_TYPES } from '../../constants';\n\nimport './AddPetScreenIFrame.css';\nimport { Iframe } from '../common/iframe/Iframe';\n\nconst HTTPS_KEY = 'https://';\n\nconst AddPetScreenIFrame = () => {\n const { t } = useTranslation('insuranceScreen');\n const location = useLocation();\n const history = useHistory();\n\n const { getWebView, isLoading, url } = useWebviewMultibrand();\n\n const selectedPolicy = useMemo(() => {\n if (!location.state) {\n return {};\n }\n\n return location.state.selectedPolicy;\n }, [location.state]);\n\n const selectedPet = useMemo(() => {\n if (!location.state) {\n return {};\n }\n\n return location.state.selectedPet;\n }, [location.state]);\n\n useEffect(() => {\n if (!selectedPolicy) {\n return;\n }\n\n const request = {\n companyId: selectedPolicy.MarketChannelId,\n policyId: selectedPolicy.Id,\n policyNumber: selectedPolicy.PolicyDisplayNumber,\n webViewType: WEB_VIEW_TYPES.addingNewPetToPolicy,\n };\n\n if (selectedPet) {\n request.petId = selectedPet.PetId;\n }\n\n getWebView(request);\n }, [selectedPolicy, selectedPet]);\n\n const onMessage = useCallback(({ data, origin }) => {\n if (!url) {\n return;\n }\n\n const [webViewOrigin] = url.replace(HTTPS_KEY, '').split('/');\n const domain = `${HTTPS_KEY}${webViewOrigin}`;\n const validPostMessage = data === POST_MESSAGE_TYPES.CLOSE_PAGE;\n\n if (origin === domain && validPostMessage) {\n history.go(-2);\n }\n }, [url]);\n\n useLayoutEffect(() => {\n window.addEventListener('message', onMessage);\n\n return () => {\n window.removeEventListener('message', onMessage);\n };\n }, [onMessage]);\n\n if (isLoading || !url) {\n return <FigoLottie />;\n }\n\n return (\n <div className=\"Add-pet-iframe-container\">\n <div className=\"Add-pet-iframe-title-page-container\">\n <h1>{t('addOrcaPetIFrame.title')}</h1>\n\n <p>{t('addOrcaPetIFrame.description')}</p>\n </div>\n\n <Iframe\n allowFullScreen\n src={url}\n title={t('addOrcaPetIFrame.title')}\n />\n </div>\n );\n};\n\nexport { AddPetScreenIFrame };\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport {\n Switch,\n Route,\n useRouteMatch,\n Redirect,\n useHistory,\n} from 'react-router-dom';\nimport ClaimsDetails from '../claims/claimsDetails/ClaimsDetails';\nimport PageNotFound from '../pageNotFound/PageNotFound';\nimport * as routes from '../navigation/routes.constants';\nimport { useMixpanel } from '../../hooks';\nimport { EV53 } from '../../services/mixpanel';\nimport { getBrandNameByChannelId } from '../../services/utils';\nimport { loadMultiModalData, youngPetModalOpen } from '../../actions';\nimport {\n MINIMUM_DAYS_REQUIRED_FOR_QUOTE,\n} from '../../constants';\nimport { InsuranceScreen } from './InsuranceScreen';\nimport { PolicySummary } from './PolicySummary';\nimport ClaimsScreenComponent from '../claims/ClaimsScreenComponent';\nimport {\n ChangeCoverageInsuranceScreen,\n} from './changeCoverage/ChangeCoverageInsuranceScreen';\nimport { OtherPolicies } from './OtherPolicies';\nimport { MARKETING_CHANNEL_ID } from '../../theme/theme.constants';\nimport { OrcaGetQuoteFrame } from './OrcaGetQuoteFrame';\nimport { AddPetScreen } from './AddPetScreen';\nimport { AddPetScreenIFrame } from './AddPetScreenIFrame';\n\nconst InsuranceNavigation = () => {\n const match = useRouteMatch();\n const { sendEvent } = useMixpanel();\n const { personalInformation, policies } = useSelector(\n (state) => ({\n personalInformation: state.personalInformation,\n policies: state.policies,\n session: state.session,\n }), shallowEqual,\n );\n const dispatch = useDispatch();\n const history = useHistory();\n const [showAddCoverageModal, setShowAddCoverageModal] = useState(false);\n const { userInfo: { Companies, ...userInfo } } = personalInformation;\n const { allPets, multiModalData } = policies;\n\n useEffect(() => {\n if (Object.entries(multiModalData).length === 1) {\n dispatch(loadMultiModalData({ CustomerId: userInfo.CustomerId }));\n }\n }, [dispatch, userInfo.CustomerId]);\n\n const getFigoQuote = useCallback(({ petId = 0, quoteUrl = '' }) => {\n const foundPet = allPets.find((pet) => pet.PetId === petId);\n\n if (MINIMUM_DAYS_REQUIRED_FOR_QUOTE > foundPet?.AgeInDays) {\n dispatch(youngPetModalOpen());\n } else {\n window.open(quoteUrl, '_blank');\n }\n }, [dispatch, allPets]);\n\n const getOrcaQuote = useCallback((quoteUrl) => {\n history.push(`${routes.INSURANCE}/getQuote`, { quoteUrl });\n }, []);\n\n const handleGetQuoteByBrand = useCallback(({\n marketingChannelId,\n petId,\n quoteUrl = '',\n }) => {\n sendEvent(EV53({\n customerId: personalInformation.userInfo.CustomerId,\n petId,\n policyBrand: getBrandNameByChannelId(marketingChannelId),\n source: 'pet cloud web',\n }));\n\n switch (marketingChannelId) {\n case MARKETING_CHANNEL_ID.akc:\n case MARKETING_CHANNEL_ID.ppi:\n case MARKETING_CHANNEL_ID.spot:\n getOrcaQuote(quoteUrl);\n break;\n\n case MARKETING_CHANNEL_ID.ppiOnePack:\n setShowAddCoverageModal(true);\n break;\n\n case MARKETING_CHANNEL_ID.figo:\n getFigoQuote({ petId, quoteUrl });\n break;\n\n default:\n break;\n }\n }, [getFigoQuote, getOrcaQuote]);\n\n const closeAddCoverageModal = useCallback(() => {\n setShowAddCoverageModal(false);\n }, []);\n\n return (\n <div>\n <div className=\"Content-scrollable\">\n <Switch>\n <Route\n path={`${routes.CHANGE_COVERAGE_WEB}/:policyNumber`}\n >\n <ChangeCoverageInsuranceScreen />\n </Route>\n\n <Route\n exact\n path={routes.INSURANCE}\n >\n <InsuranceScreen />\n </Route>\n\n <Route path={`${routes.INSURANCE}/:petId/morePolicies`}>\n <OtherPolicies />\n </Route>\n\n <Route exact path={`${routes.INSURANCE}/getQuote`}>\n <OrcaGetQuoteFrame />\n </Route>\n\n <Route exact path={routes.ADD_ORCA_PET}>\n <AddPetScreen />\n </Route>\n\n <Route exact path={routes.ADD_ORCA_PET_IFRAME}>\n <AddPetScreenIFrame />\n </Route>\n\n <Route\n path={[\n `${routes.INSURANCE}/:petId/:policyId`,\n `${routes.INSURANCE}/:petId`,\n ]}\n >\n <PolicySummary\n onClosePPIGroupModal={closeAddCoverageModal}\n onGetQuoteByBrand={handleGetQuoteByBrand}\n showPPIGroupModal={showAddCoverageModal}\n />\n </Route>\n\n <Route path={routes.CHANGE_COVERAGE}>\n <Redirect\n to={`${routes.CHANGE_COVERAGE_WEB}/${match.params\n .policyNumber}`}\n />\n </Route>\n\n <Route\n exact\n path={routes.CLAIMS}\n >\n <ClaimsScreenComponent />\n </Route>\n\n <Route\n exact\n path={`${match.path}/details`}\n >\n <ClaimsDetails />\n </Route>\n\n <Route path=\"*\">\n <PageNotFound />\n </Route>\n </Switch>\n </div>\n </div>\n );\n};\n\nexport default InsuranceNavigation;\n","import React, { useMemo } from 'react';\nimport './StepperMultibrand.css';\n\nconst StepperMultibrand = ({\n currentStepNumber = 1,\n numberOfSteps = 10,\n}) => {\n const progress = useMemo(() => {\n const incrementPerStep = 100 / numberOfSteps;\n return incrementPerStep * currentStepNumber;\n }, [currentStepNumber, numberOfSteps]);\n\n return (\n <div className=\"Stepper-multibrand-progress-bar\">\n <div\n className=\"Stepper-multibrand-progress-bar-completed\"\n style={{ width: `${progress}%` }}\n />\n </div>\n );\n};\n\nexport { StepperMultibrand };\n","import React from 'react';\nimport { StepperMultibrand } from './StepperMultibrand';\nimport LoadingButton from '../../../common/LoadingButton';\n\nimport './ClaimbotStepper.css';\n\nconst ClaimbotStepper = ({\n backButtonLabel = '',\n currentStepNumber = 1,\n goBackDisabled = false,\n goForwardisabled = false,\n submitted = false,\n loading = false,\n nextButtonLabel = '',\n onNextStepClick = () => { },\n onPreviousStepClick = () => { },\n currentStepName = '',\n numberOfSteps = 0,\n}) => (\n <div className=\"Claimbot-stepper\">\n <div className=\"Claimbot-stepper-row\">\n <h2>{currentStepName}</h2>\n\n <div className=\"Claimbot-stepper-buttons\">\n <button\n className={goBackDisabled\n ? 'Claimbot-stepper-back-button-disabled'\n : 'Claimbot-stepper-back-button'}\n disabled={goBackDisabled}\n onClick={onPreviousStepClick}\n type=\"button\"\n >\n {backButtonLabel}\n </button>\n\n <LoadingButton\n aria-disabled={goForwardisabled || loading}\n className={`${goForwardisabled\n ? 'Claimbot-stepper-next-button-container-disabled'\n : 'Claimbot-stepper-next-button-container'} ${\n loading ? 'Claimbot-stepper-next-button-loading' : ''}`}\n disabled={goForwardisabled || loading}\n loading={loading}\n onClick={onNextStepClick}\n success={submitted}\n text={nextButtonLabel}\n textStyle=\"Claimbot-stepper-next-button\"\n />\n </div>\n </div>\n\n <StepperMultibrand\n currentStepNumber={currentStepNumber}\n numberOfSteps={numberOfSteps}\n />\n </div>\n);\n\nexport { ClaimbotStepper };\n","import React from 'react';\n\nimport './FileClaimbotEvie.css';\n\nconst FileClaimbotEvie = ({\n agentImage = '',\n agentText = '',\n}) => {\n // weird as hell\n const messageWithFormat = (text) => {\n const anchorRegex = /<a\\s+href=\"([^\"]*)\"\\s*>((?:.(?!<\\/a>))*.)<\\/a>/g;\n const parts = text.split(anchorRegex);\n const result = [];\n\n for (let i = 0; i < parts.length; i += 3) {\n result.push(parts[i]);\n\n if (parts[i + 1]) {\n result.push((\n <a\n key={String(i + 1)}\n href={parts[i + 1]}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {parts[i + 2]}\n </a>\n ));\n }\n }\n\n return result;\n };\n\n return (\n <div className=\"File-claimbot-evie\">\n <img alt=\"\" src={agentImage} />\n\n <div className=\"File-claimbot-evie-bubble-message\">\n <span>{messageWithFormat(agentText)}</span>\n </div>\n </div>\n );\n};\nexport { FileClaimbotEvie };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './FinishButton.css';\n\nconst FinishButton = () => {\n const { t } = useTranslation('claims');\n\n return (\n <a\n className=\"Finish-button-a\"\n href=\"/claims\"\n >\n {t('newClaim.noEligiblePetsButton')}\n </a>\n );\n};\n\nexport { FinishButton };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { PetCard } from '../../../insurance/multiplePets/PetCard';\n\nimport { PET_GENDER } from '../../../../constants';\n\nimport './PetSelector.css';\n\nconst PetSelector = ({\n onPetItemPress = () => { },\n pets = [],\n selectedPet = null,\n}) => {\n const { t } = useTranslation('fileClaimbot');\n\n return (\n <div className=\"Pet-selector-container\">\n {pets.map((pet) => (\n <PetCard\n key={`${pet.Id}-${pet.Name}`}\n age={pet.Age}\n breed={pet.Breed}\n classContainer={pet === selectedPet\n ? 'Pet-selector-pet-selected'\n : 'Pet-selector-pet-non-selected'}\n gender={pet.Gender === PET_GENDER.MALE\n ? t('petGenders.male') : t('petGenders.female')}\n name={pet.Name}\n onClick={onPetItemPress(pet)}\n picture={pet.PictureUrl}\n weight={pet.Weight}\n />\n ))}\n </div>\n );\n};\n\nexport { PetSelector };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport './DateInput.css';\n\nconst DateInput = ({\n maxDate = '',\n minDate = '',\n onSelectedValidDate = () => { },\n selectedDate = '',\n}) => {\n const { t } = useTranslation('fileClaimbot');\n\n const onDatePickerChange = ({ target: { value } }) => {\n const inRange = value >= minDate && value <= maxDate;\n onSelectedValidDate({ date: value, inRange });\n };\n\n return (\n <div className=\"File-claim-date-input-container\">\n <span>{t('dateOfClaim')}</span>\n\n <input\n max={maxDate}\n min={minDate}\n onChange={onDatePickerChange}\n type=\"date\"\n value={selectedDate}\n />\n </div>\n );\n};\n\nexport { DateInput };\n","import React from 'react';\nimport checkedIcon from '../../../../assets/radio-checked.png';\nimport uncheckedIcon from '../../../../assets/radio-unchecked.png';\n\nimport './ClaimSelector.css';\n\nconst ClaimSelectorItem = ({\n checked = false,\n label = '',\n id = 0,\n onItemPress = () => { },\n}) => (\n <div className=\"File-claimbot-claim-selector-item-container\">\n <label\n className=\"File-claimbot-claim-selector-item-label\"\n htmlFor={`rb-claim-type-item-${id}`}\n >\n <input\n checked={checked}\n id={`rb-claim-type-item-${id}`}\n onChange={onItemPress}\n type=\"radio\"\n />\n\n <img\n alt=\"\"\n src={checked ? checkedIcon : uncheckedIcon}\n />\n\n {label}\n </label>\n </div>\n);\n\nconst ClaimSelector = ({\n claimTypes = [],\n claimTypeSelected = null,\n onSelectClaimType = () => { },\n}) => {\n const title = 'Select a Claim Type';\n\n const onItemPress = (claim) => () => {\n onSelectClaimType(claim);\n };\n\n return (\n <div className=\"File-claimbot-claim-selector-container\">\n <h3>{title}</h3>\n\n <div className=\"File-claimbot-claim-selector-options-container\">\n {claimTypes.map((claim) => (\n <ClaimSelectorItem\n key={String(`${claim.id} ${claim.label}`)}\n checked={claim.id === claimTypeSelected?.id}\n id={claim.id}\n label={claim.label}\n onItemPress={onItemPress(claim)}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport { ClaimSelector };\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJySURBVHgB3VU9bhpREJ55WLGsuEDKkhoXUdg4UjYnyLqJA43xCWKfIOYEwAlsn8D4BOAixrgB34CGQNKEdJEhEoUVGtjJzP7Ag2UBuYs/abWPx3vzffO7AP87cNmfyWQ5/vB86wgc/IBAFvGWf6lJgF1UzlWvlS49iuCleZ11MHYBRHFYbqALiopRRGrRpmHWTh1QZd94g5/ciGin3/6E8qBS75HoWIyLV+TghfGmlo8QMGc8xQeRCoA4YIIiGzyDJTBeX59ALJYXMajwrNfaz0USJHarR6JGjCPiXq/1sQlrILF7axFRXUgUOIf37UxlMYF589NPZE5Xbryt2jBG9gytIGyo6FKPu+uJUqdscrA9/LvT7R4OZF/NqGfjEtcZ4xKyMdZ5aWsJt+fj3v+ekTsNAIo/bHHl+ZgQ8IUDb0FFndTNRxSICq53U1wFAkIEHKyk+47FmhrpZ1gFCZ2PDaKKZwrehQkILHnNJdaGlUArWP3upLueKV8sRPTB9C4OYCWWN+KEwO1IRjxVTU7v0jpl2ggWiVdfLU8XNkME7Ja7uYGY1QiKsALc0ZeTH8+U5V2jXyECxp3/Pgg2+p10YykJ8gzqaDPI8RKOfrJnCEabmyU/5rZh3pxoJAWZOxCEwjsjxHv9b+lCcC5h3n4J+kgnnenkF2Yty2O5LN3Ic+VRo0LE6AQzVfSnvV9hFedSGeRQXfck0rgo942HQgYR3wMjVZVpmvcPuPOeO7AZeCSVthHjYnDcfNneOee8186EBEV+cBIpGROY15tmITgnajQ+vv8xnaBrEehEpBQrpWTQ7e6HRmqd6G57OCwFk/Np4h/RsiVmdoKJVAAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHrSURBVHgB3VVLTgJBEH01YIw7NB6gFRESF+oJxBOAO5d4AvUEyAnUE8AN1BOoO5dsTPBD0h7AwM6YTKatrp4xDIMwTOJCXzKhP1X1qot+1cBfB03bVEoVkF9qwAR7PN2xS7JhTBdEmt1vdL/XyUSgipt13m7zsIDp0GzX+onImxh8vXzOTlcSnOgO5J1igdZ0/4nsBy+/y/tHLrg9lWmr9c0m0sAaqmLZ8DdQG+WTmfZsI7bWRxKLI1YiVaw0bDY8HHKW+/rlsYsUUKWtHQT+LaSc5kD3n6+jvbESmWZI20ob3EJs2SfMuS2XY5zAZS+3ROvXpwvMidDnDvYU+cVGggBkauGghawg70Z+DapJguiOe7nUpUnAN1Htt5MERoSEeWo/Dq17OhyqJMEvYYTASp+pKxWFjFClklSBq9FNEpBxi76pIyuCnCMgvCUJ4N2H7DVkRqgj0ASh+R8dWAUDVZb8zBYxDvY5RqSjkcb3TaC15uDmyCWApsg/bXBrSzhzs7iOcqOT4eC9V1hZXeZhld+Aw8Ly6ievPWBm5kEHrvPath3rAhPfA7VROeNHJWq/WrJiAUYakZvmU52TqEkyDpfcyhOlnfLgSGe1JArTIaUd7aCpCGJERJxpoCK1i2aI7Gnu7eVw/99/xRd0oq8MK4ul2gAAAABJRU5ErkJggg==\"","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport './TextInput.css';\n\nconst TextInput = ({\n onTextInputChanged = () => { },\n textInputValue = '',\n}) => {\n const { t } = useTranslation('fileClaimbot');\n\n const onChange = ({ target }) => {\n const CLAIM_DETAIL_REGEX = /[:-@[-`]+/;\n const formattedText = target.value.replace(CLAIM_DETAIL_REGEX, '');\n onTextInputChanged(formattedText);\n };\n\n return (\n <div className=\"File-claimbot-text-input-container\">\n <h3>{t('textInput.subTitle')}</h3>\n\n <textarea\n onChange={onChange}\n placeholder={t('textInput.placeholder')}\n value={textInputValue}\n />\n </div>\n );\n};\n\nexport { TextInput };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport './TextInputSingleLine.css';\n\nconst TextInputSingleLine = ({\n onTextInputChanged = () => { },\n textInputValue = '',\n}) => {\n const { t } = useTranslation('fileClaimbot');\n\n const onChange = ({ target }) => {\n const CLAIM_DETAIL_REGEX = /[:-@[-`]+/;\n const formattedText = target.value.replace(CLAIM_DETAIL_REGEX, '');\n onTextInputChanged(formattedText);\n };\n\n return (\n <div className=\"File-claimbot-text-input-single-line-container\">\n <h3>{t('textInputSingleLine.subTitle')}</h3>\n\n <input\n onChange={onChange}\n placeholder={t('textInputSingleLine.placeholder')}\n value={textInputValue}\n />\n </div>\n );\n};\n\nexport { TextInputSingleLine };\n","export default __webpack_public_path__ + \"static/media/check-circle.1c8d0b5a.svg\";","export default __webpack_public_path__ + \"static/media/delete-cross.5d333662.svg\";","import React, { useMemo } from 'react';\n\nimport { fileSizeToMB } from '../../../../services/utils';\n\nimport radioCheckIcon from '../../../../assets/claimbot/check-circle.svg';\nimport crossIcon from '../../../../assets/fileClaim/cross-hydrant.svg';\nimport deleteCross from '../../../../assets/claimbot/delete-cross.svg';\n\nimport './AttachmentItem.css';\n\nconst AttachmentItem = ({\n disabled = false,\n attachment,\n onRemoveAttachment = () => { },\n t,\n}) => {\n const renderFileName = ({ Filename, Extension }) => {\n const parts = Filename.split('.');\n const name = parts.slice(0, parts.length - 1).join('.');\n return (\n <div className=\"File-claimbot-row-name-container\">\n <span className=\"File-claimbot-row-name\">\n {name}\n </span>\n\n <span className=\"File-claimbot-row-name File-claimbot-row-extension\">\n {Extension}\n </span>\n </div>\n );\n };\n\n function getFileStatus() {\n switch (attachment.percentage) {\n case 100:\n if (!attachment.valid) {\n return <img alt={t('uploaded')} src={crossIcon} />;\n }\n\n return (\n <img alt={t('uploaded')} src={radioCheckIcon} />\n );\n\n case 0:\n return <> • {t('queued')}</>;\n\n default:\n return <> • {`${attachment.percentage}%`}</>;\n }\n }\n\n function renderColorBarProgres() {\n if (attachment.percentage > 50) {\n return 'var(--pc-color-leaf-400)';\n }\n\n return 'var(--pc-color-blue-300)';\n }\n\n const onDeletePress = () => {\n onRemoveAttachment(attachment);\n };\n\n const errorMessage = useMemo(() => {\n if (!attachment.errorMsg && !attachment.valid) {\n return t('failedUpload');\n }\n\n return attachment.errorMsg;\n }, [attachment.errorMsg, attachment.valid]);\n\n return (\n <div key={attachment.key} className=\"File-claimbot-row\">\n <div className=\"File-claimbot-row-data\">\n <div className=\"File-claimbot-row-left\">\n {renderFileName(attachment)}\n\n <div className=\"File-claimbot-row-status\">\n <span>{getFileStatus(attachment)}</span>\n </div>\n </div>\n\n <div className=\"File-claimbot-row-right\">\n <span className=\"File-claimbot-row-size\">\n {fileSizeToMB({ fileSize: attachment.size })} MB\n </span>\n\n <div className=\"File-claimbot-row-delete\">\n <button\n className={attachment.hideDelete ? 'Gone' : ''}\n disabled={disabled}\n id={attachment.key}\n onClick={onDeletePress}\n type=\"button\"\n >\n <img alt=\"\" src={deleteCross} />\n </button>\n </div>\n </div>\n </div>\n\n <div className=\"File-claimbot-row-progress-bar\">\n <div\n className=\"File-claimbot-file-progress\"\n style={{\n backgroundColor: renderColorBarProgres(attachment),\n width: `${attachment.percentage}%`,\n }}\n />\n </div>\n\n <span\n className={`File-claimbot-row-error${\n errorMessage ? ' Margin-top-8' : ''}`}\n >\n {errorMessage}\n </span>\n </div>\n );\n};\n\nexport { AttachmentItem };\n","export default __webpack_public_path__ + \"static/media/cloud-add.75dff76d.svg\";","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport cloudAdd from '../../../../assets/fileClaim/cloud-add.svg';\n\nimport './DragZone.css';\n\nconst DragZone = ({ attachments = [], onAddFiles = () => { } }) => {\n const { t } = useTranslation('fileClaimbot');\n const [isDragging, setIsDragging] = useState(false);\n const dropzoneCoverRef = useRef();\n const dropzoneRef = useRef();\n\n const handleDragover = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDragenter = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n const draggingFiles = event.dataTransfer.types.indexOf('Files') >= 0;\n\n if (draggingFiles) {\n setIsDragging(true);\n }\n }, []);\n\n const handleDragleave = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n const { fromElement, toElement } = event;\n const { current: dropzoneElement } = dropzoneRef;\n const { current: dropzoneCoverElement } = dropzoneCoverRef;\n if ((fromElement !== dropzoneElement\n || toElement !== dropzoneCoverElement)\n && (fromElement !== dropzoneCoverElement\n || toElement !== dropzoneElement)) {\n setIsDragging(false);\n }\n }, []);\n\n const handleDrop = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n if (event.dataTransfer.files) {\n setIsDragging(false);\n onAddFiles(event.dataTransfer.files);\n event.dataTransfer.clearData();\n }\n }, [attachments]);\n\n const handleDropOnCover = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n setIsDragging(false);\n }, []);\n\n useEffect(() => {\n const currentCover = dropzoneCoverRef.current;\n if (currentCover) {\n currentCover.addEventListener('dragleave', handleDragleave);\n currentCover.addEventListener('drop', handleDropOnCover);\n }\n\n const currentDropzone = dropzoneRef.current;\n if (currentDropzone) {\n currentDropzone.addEventListener('drop', handleDrop);\n }\n\n return () => {\n if (currentCover) {\n currentCover.removeEventListener('dragleave', handleDragleave);\n currentCover.removeEventListener('drop', handleDropOnCover);\n }\n\n if (currentDropzone) {\n currentDropzone.removeEventListener('drop', handleDrop);\n }\n };\n }, [handleDrop, handleDragleave, dropzoneCoverRef, dropzoneRef, isDragging]);\n\n useEffect(() => {\n window.addEventListener('dragover', handleDragover);\n window.addEventListener('dragenter', handleDragenter);\n\n return () => {\n window.removeEventListener('dragover', handleDragover);\n window.removeEventListener('dragenter', handleDragenter);\n };\n }, [handleDragenter, handleDragover]);\n\n if (!isDragging) {\n return null;\n }\n\n return (\n <div ref={dropzoneCoverRef} className=\"Dragzone-overlayer\">\n <div ref={dropzoneRef} className=\"Dragzone-container\">\n <div className=\"No-clicked\">\n <div className=\"Dragzone-icons-container\">\n <img alt=\"doc\" src={cloudAdd} />\n </div>\n\n <span className=\"Dragzone-title\">\n {t('dropHere')}\n </span>\n\n <span className=\"Dragzone-subtitle\">\n {t('dropHereSupportedFormats')}\n </span>\n </div>\n </div>\n </div>\n );\n};\n\nexport { DragZone };\n","export default __webpack_public_path__ + \"static/media/upload-circle.84bb6df6.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { AttachmentItem } from './AttachmentItem';\nimport { DragZone } from './DragZone';\n\nimport arrowIcon from '../../../../assets/claimbot/upload-circle.svg';\n\nimport {\n ACCEPTED_FILES,\n} from '../../../../constants';\n\nimport './AttachmentSelector.css';\n\nconst AttachmentSelector = ({\n attachments = [],\n onAddAttachment = () => { },\n onRemoveAttachment = () => { },\n}) => {\n const { t } = useTranslation('fileClaimbot');\n\n function addFiles(files) {\n const fileList = Array.from(files);\n onAddAttachment(fileList);\n }\n\n function handleFileChange(event) {\n addFiles(event.target.files);\n }\n\n return (\n <div className=\"File-claimbot-attachment-selector-container\">\n <div className=\"File-claimbot-attachment-drag-zone-card\">\n <DragZone attachments={attachments} onAddFiles={addFiles} />\n\n <img alt=\"\" src={arrowIcon} />\n\n <span>\n {t('attachments.dragAndDropOr')}\n\n <label htmlFor=\"choseFileAttachments\">\n <input\n accept={ACCEPTED_FILES}\n id=\"choseFileAttachments\"\n multiple\n onChange={handleFileChange}\n style={{ display: 'none' }}\n type=\"file\"\n value=\"\"\n />\n\n {t('attachments.chooseFile')}\n </label>\n\n {t('attachments.toUpload')}\n </span>\n\n <span>{t('attachments.fileLimit')}</span>\n </div>\n\n {attachments.length > 0\n ? (\n <h3\n className=\"File-claimbot-attachment-selector-uploaded-files-title\"\n >\n {t('attachments.uploadedFiles')}\n </h3>\n )\n : null}\n\n {attachments.map((att) => (\n <AttachmentItem\n key={String(att.key)}\n attachment={att}\n onRemoveAttachment={onRemoveAttachment}\n t={t}\n />\n ))}\n </div>\n );\n};\n\nexport { AttachmentSelector };\n","import React, { useEffect, useState } from 'react';\nimport { currencyFormat } from '../../../../services/utils';\n\nimport './AmountInput.css';\n\nconst AmountInput = ({\n number = '',\n onChange = () => { },\n placeholder = '',\n title = '',\n type = 'number',\n useCurrencyFormat = false,\n}) => {\n const [displayValue, setDisplayValue] = useState('');\n\n useEffect(() => {\n if (number && useCurrencyFormat) {\n setDisplayValue(currencyFormat({ value: number }));\n }\n }, []);\n\n const onBlur = () => {\n if (useCurrencyFormat) {\n setDisplayValue(currencyFormat({ value: number }));\n }\n };\n\n const onFocus = () => {\n setDisplayValue('');\n };\n\n return (\n <div className=\"File-claimbot-amount-input-container\">\n <h3>{title}</h3>\n\n <input\n inputMode=\"numeric\"\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n placeholder={placeholder}\n type={type}\n value={displayValue || number}\n />\n </div>\n );\n};\n\nexport { AmountInput };\n","export default __webpack_public_path__ + \"static/media/arrow-check-white.2816c004.svg\";","import React from 'react';\n\nimport arrowCheckWhite from '../../../../assets/claimbot/arrow-check-white.svg';\n\nimport './TwoOptionsSelector.css';\n\nconst TwoOptionsSelector = ({\n onOneOptionSelected = () => { },\n optionSelected = null,\n twoOptions = {},\n}) => {\n const { leftOption, rightOption } = twoOptions;\n\n const onPress = ({ option, validStep = false }) => () => {\n onOneOptionSelected({ option, validStep });\n };\n\n const ArrowImage = () => <img alt=\"\" src={arrowCheckWhite} />;\n\n const leftSelected = leftOption.id === optionSelected?.id\n && leftOption.label === optionSelected?.label;\n const rightSelected = rightOption.id === optionSelected?.id\n && rightOption.label === optionSelected?.label;\n\n return (\n <div className=\"File-claimbot-two-options-selector-container\">\n <button\n className={`File-claimbot-two-options-left ${leftSelected\n ? 'File-claimbot-two-options-option-selected' : ''}`}\n onClick={onPress({ option: leftOption, validStep: false })}\n type=\"button\"\n >\n {leftSelected ? <ArrowImage /> : null}\n\n {leftOption.label}\n </button>\n\n <button\n className={`File-claimbot-two-options-right ${rightSelected\n ? 'File-claimbot-two-options-option-selected' : ''\n }`}\n onClick={onPress({ option: rightOption, validStep: true })}\n type=\"button\"\n >\n {rightSelected ? <ArrowImage /> : null}\n\n {rightOption.label}\n </button>\n </div>\n );\n};\n\nexport { TwoOptionsSelector };\n","import React from 'react';\n\nimport './MultipleOptionsSelector.css';\n\n// WIP\nconst MultipleOptionsSelector = () => {\n const test = 'WIP krnl ;P';\n\n return (\n <div>\n {test}\n </div>\n );\n};\n\nexport { MultipleOptionsSelector };\n","import React from 'react';\n\nimport './ClaimSummary.css';\n\nconst ClaimSummaryRow = ({\n leftText = '',\n rightText = '',\n}) => (\n <div className=\"File-claimbot-claim-summary-row\">\n <span className=\"File-claimbot-claim-summary-row-left-text\">\n {leftText}\n </span>\n\n <span className=\"File-claimbot-claim-summary-row-right-text\">\n {rightText}\n </span>\n </div>\n);\n\nconst ClaimSummary = ({\n claimSummaryInfo = [],\n selectedPet = { },\n}) => (\n <div className=\"File-claimbot-claim-summary-container\">\n <div className=\"File-claimbot-claim-summary-pet-card\">\n <img alt=\"\" src={selectedPet.PictureUrl} />\n\n <div className=\"File-claimbot-claim-summary-column\">\n <span className=\"File-claimbot-claim-summary-pet-name\">\n {selectedPet.Name}\n </span>\n\n <span className=\"File-claimbot-claim-summary-pet-breed\">\n {selectedPet.Breed}\n </span>\n </div>\n </div>\n\n <div className=\"File-claimbot-claim-summary-rows-container\">\n {claimSummaryInfo.map((row) => (\n <ClaimSummaryRow\n key={`${row.displayName}-${row.displayValue}`}\n leftText={row.displayName}\n rightText={row.displayValue}\n />\n ))}\n </div>\n </div>\n);\n\nexport { ClaimSummary };\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDrawPencil(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.39935 2.12671C3.32185 4.58504 0.88435 8.15171 1.78685 9.26671C3.55018 11.4442 8.63268 5.41421 10.2535 7.64338C11.8752 9.87254 5.78352 12.2109 8.92185 15.4017\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.5137 8.96679L14.522 15.8793C14.4444 16.0139 14.3307 16.1242 14.1937 16.1976L11.5195 17.6293V14.6435C11.5195 14.4972 11.5581 14.3535 11.6312 14.2268L15.6295 7.30179C15.8556 6.93015 16.218 6.66172 16.6394 6.55391C17.0608 6.4461 17.5077 6.50748 17.8844 6.72491C18.2611 6.94234 18.5378 7.29857 18.6553 7.71738C18.7727 8.13619 18.7216 8.58434 18.5129 8.96595L18.5137 8.96679Z\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDrawPencil);\nexport default __webpack_public_path__ + \"static/media/draw-pencil.5c797166.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgKeyboard(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5812_10496)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.125 9.375H16.875C16.875 9.375 19.375 9.375 19.375 11.875V16.875C19.375 16.875 19.375 19.375 16.875 19.375H3.125C3.125 19.375 0.625 19.375 0.625 16.875V11.875C0.625 11.875 0.625 9.375 3.125 9.375Z\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.625 11.875H6.875\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.125 11.875H14.375\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.375 11.875H10.625\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.75 14.375H5\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 14.375H8.75\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.25 14.375H12.5\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 14.375H16.25\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.625 16.875H14.375\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.625 9.375V8.125C5.625 7.13044 6.02009 6.17661 6.72335 5.47335C7.42661 4.77009 8.38044 4.375 9.375 4.375H12.5C13.4946 4.375 14.4484 3.97991 15.1516 3.27665C15.8549 2.57339 16.25 1.61956 16.25 0.625\",\n stroke: \"current\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5812_10496\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 20,\n fill: \"white\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgKeyboard);\nexport default __webpack_public_path__ + \"static/media/keyboard.6ef6d86a.svg\";\nexport { ForwardRef as ReactComponent };","const STEP_KEY_NAME = {\n claim_filing_error: 'claim_filing_error',\n claim_filing_success: 'claim_filing_success',\n confirm_reimb_preference: 'confirm_reimb_preference',\n confirm_select_check: 'confirm_select_check',\n error_nopolicy: 'error_nopolicy',\n get_ach_account: 'get_ach_account',\n get_ach_account_type: 'get_ach_account_type',\n get_ach_routing: 'get_ach_routing',\n get_attachments: 'get_attachments',\n get_claim_amount: 'get_claim_amount',\n get_confirm_terms: 'get_confirm_terms',\n get_illness_date: 'get_illness_date',\n get_illness_desc: 'get_illness_desc',\n get_onset_date: 'get_onset_date',\n get_other_insurance: 'get_other_insurance',\n get_other_insurance_name: 'get_other_insurance_name',\n get_reimb_preference: 'get_reimb_preference',\n get_select_pet: 'get_select_pet',\n get_signature: 'get_signature',\n get_treatment_date: 'get_treatment_date',\n get_vetfee_attachments: 'get_vetfee_attachments',\n get_vetfee_attachments_ar_s2: 'get_vetfee_attachments_ar_s2',\n get_vetfee_attachments_bf: 'get_vetfee_attachments_bf',\n get_vetfee_attachments_rw: 'get_vetfee_attachments_rw',\n get_vetfee_attachments_s1: 'get_vetfee_attachments_s1',\n get_vetfee_attachments_s2: 'get_vetfee_attachments_s2',\n get_vetfee_attachments_s3: 'get_vetfee_attachments_s3',\n get_vetfee_attachments_st_s2: 'get_vetfee_attachments_st_s2',\n get_vetfee_attachments_vc: 'get_vetfee_attachments_vc',\n get_wellness_treatment_date: 'get_wellness_treatment_date',\n ok_other_insurance: 'ok_other_insurance',\n ok_select_injury: 'ok_select_injury',\n ok_select_pet: 'ok_select_pet',\n ok_select_vetfee: 'ok_select_vetfee',\n ok_select_wellness: 'ok_select_wellness',\n select_claim_type: 'select_claim_type',\n show_summary: 'show_summary',\n submit_claim: 'submit_claim',\n synthetic_policy_error: 'synthetic_policy_error',\n terms_declined: 'terms_declined',\n user_has_more_than_one_pet: 'user_has_more_than_one_pet',\n user_has_pets_with_policy: 'user_has_pets_with_policy',\n\n // syntetic step are no comming from backend\n // eslint-disable-next-line sort-keys\n syntetic_get_select_policy: 'syntetic_get_select_policy',\n};\n\nconst ALL_ATTACHMENT_STEPS = [\n STEP_KEY_NAME.get_attachments,\n STEP_KEY_NAME.get_vetfee_attachments_s1,\n STEP_KEY_NAME.get_vetfee_attachments_s2,\n STEP_KEY_NAME.get_vetfee_attachments_s3,\n STEP_KEY_NAME.get_vetfee_attachments,\n];\n\nconst INPUT_TYPES = {\n VALIDATION: 15,\n};\nconst STEP_TYPES_TO_SKIP_FROM_HISTORY = [\n INPUT_TYPES.VALIDATION,\n];\n\nconst STEPS_TO_SKIP_FROM_HISTORY = [\n STEP_KEY_NAME.ok_select_injury,\n];\n\n/**\n * Property name to send policy id on submiting claim.\n */\nconst ORCA_POLICY_ID_PROP_NAME = 'OrcaPolicyId';\n\nconst POLICY_NUMBER_PROP_NAME = 'PolicyNumber';\n\nconst ROUTING_NUMBER_PROP_NAME = 'ACHRoutingNumber';\n\nconst ACCOUNT_NUMBER_PROP_NAME = 'ACHAccountNumber';\n\nconst ACCOUNT_TYPE_PROP_NAME = 'ACHAccountType';\n\nconst REIMBURSEMENT_METHOD_TYPE_KEY_NAME = 'PaymentType';\n\n/**\n * Defines the type of reimbursement method chosen by the user.\n * This is the general type: direct deposit or check.\n */\nconst REIMBURSEMENT_METHOD_TYPE = {\n ACH: 2,\n CHECK: 1,\n NONE: 0,\n};\n\n/**\n * Defines the sub-type of direct deposit (ACH)\n * account type: checking or savings.\n */\nconst REIMBURSEMENT_METHOD_ACCOUNT_TYPE = {\n Checking: 1,\n Savings: 2,\n};\n\nconst SIGNATURE_TYPE = {\n DRAWING: 0,\n TYPING: 1,\n};\n\nconst SIGNATURE_MAX_LENGTH = 40;\n\nexport {\n ACCOUNT_NUMBER_PROP_NAME,\n ALL_ATTACHMENT_STEPS,\n ACCOUNT_TYPE_PROP_NAME,\n ORCA_POLICY_ID_PROP_NAME,\n POLICY_NUMBER_PROP_NAME,\n REIMBURSEMENT_METHOD_ACCOUNT_TYPE,\n REIMBURSEMENT_METHOD_TYPE_KEY_NAME,\n REIMBURSEMENT_METHOD_TYPE,\n ROUTING_NUMBER_PROP_NAME,\n SIGNATURE_MAX_LENGTH,\n SIGNATURE_TYPE,\n STEP_KEY_NAME,\n STEP_TYPES_TO_SKIP_FROM_HISTORY,\n STEPS_TO_SKIP_FROM_HISTORY,\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as DrawPencil }\nfrom '../../../../assets/claimbot/draw-pencil.svg';\nimport { ReactComponent as Keyboard }\nfrom '../../../../assets/claimbot/keyboard.svg';\n\nimport { SIGNATURE_MAX_LENGTH, SIGNATURE_TYPE } from '../claimbot.constants';\n\nimport './SignAndSubmit.css';\n\nconst SignAndSubmit = ({\n onSignatureTextChanged = () => { },\n onSignatureTypeSelection = () => { },\n signature = null,\n signatureText = '',\n signatureTypeSelected,\n}) => {\n const { t } = useTranslation('fileClaimbot');\n // TODO: typing feature will be displayed and worked\n // in another US.\n const onlyTypeSignagure = true;\n\n const renderContent = () => {\n if (signatureTypeSelected === SIGNATURE_TYPE.DRAWING) {\n return (\n <div className=\"File-claimbot-signature-content-container-drawing\">\n <span>TODO: Drawing feature :P</span>\n </div>\n );\n }\n\n return (\n <div className=\"File-claimbot-signature-content-container-typing\">\n <input\n maxLength={SIGNATURE_MAX_LENGTH}\n onChange={onSignatureTextChanged}\n value={signatureText}\n />\n\n {signatureText.length === SIGNATURE_MAX_LENGTH\n ? (\n <span className=\"File-claimbot-signature-error\">\n {t('signature.maxSignatureLength', {\n maxSignatureLength: SIGNATURE_MAX_LENGTH,\n })}\n </span>\n )\n : null}\n\n <div className=\"File-claimbot-signature-row\">\n <span>{t('signature.preview')}</span>\n\n {/* TBD: Change style feature */}\n <button className=\"Hidden\" type=\"button\">\n {t('signature.changeStyle')}\n </button>\n </div>\n\n <div className=\"File-claimbot-signature-text-preview-container\">\n <img alt=\"\" src={signature} />\n </div>\n\n <p>{t('signature.disclaimer')}</p>\n </div>\n );\n };\n\n return (\n <div className=\"File-claimbot-signature-container\">\n <div className=\"File-claimbot-signature-selector\">\n {onlyTypeSignagure ? null : (\n <button\n className={`File-claimbot-signature-type-option ${\n signatureTypeSelected === SIGNATURE_TYPE.DRAWING\n ? 'File-claimbot-signature-type-selected' : ''}`}\n onClick={onSignatureTypeSelection(SIGNATURE_TYPE.DRAWING)}\n type=\"button\"\n >\n <DrawPencil\n className={`File-claimbot-signature-type-option-img${\n signatureTypeSelected === SIGNATURE_TYPE.DRAWING\n ? '-selected' : ''\n }`}\n />\n\n {t('signature.draw')}\n </button>\n )}\n\n <button\n className={`File-claimbot-signature-type-option ${\n signatureTypeSelected === SIGNATURE_TYPE.TYPING\n ? 'File-claimbot-signature-type-selected' : ''}`}\n onClick={onSignatureTypeSelection(SIGNATURE_TYPE.TYPING)}\n type=\"button\"\n >\n <Keyboard\n className={`File-claimbot-signature-type-option-img${\n signatureTypeSelected === SIGNATURE_TYPE.TYPING ? '-selected' : ''\n }`}\n />\n\n {t('signature.type')}\n </button>\n </div>\n {renderContent()}\n </div>\n );\n};\n\nexport { SignAndSubmit };\n","export default __webpack_public_path__ + \"static/media/submit-error.586d03ab.svg\";","export default __webpack_public_path__ + \"static/media/submit-success.4e384b53.svg\";","import React, { useMemo, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector, shallowEqual, useDispatch } from 'react-redux';\nimport { CONTACT_US_URL } from '../../../../constants';\nimport { CLAIMS } from '../../../navigation/routes.constants';\nimport { useMixpanel } from '../../../../hooks';\nimport { EV5 } from '../../../../services/mixpanel';\nimport {\n getMinutesFromInitialTime,\n getDateBasicFormat,\n} from '../../../../services/utils';\nimport { getAllBrandsData } from '../../../../actions';\nimport FigoLottie from '../../../common/FigoLottie';\nimport errorIcon from '../../../../assets/claimbot/submit-error.svg';\nimport successIcon from '../../../../assets/claimbot/submit-success.svg';\nimport loadingSpinner\nfrom '../../../../assets/lottieFiles/loading-spinner.json';\nimport './ClaimSubmitted.css';\n\nconst ClaimSubmitted = ({ success, policyBrandName, selectedPolicy }) => {\n const { t } = useTranslation('fileClaimbot');\n const dispatch = useDispatch();\n const { sendEvent } = useMixpanel();\n const icon = success ? successIcon : errorIcon;\n const title = success ? t('claimSubmitted.success.title')\n : t('claimSubmitted.error.title');\n\n const store = useSelector(\n ({ billingPayments, fileClaims }) => ({ billingPayments, fileClaims }),\n shallowEqual,\n );\n\n const {\n amount,\n claimsDetails,\n date,\n initialTime,\n policyNumber,\n billingPayments: { allBrandsData, loadingAllBrandsData },\n } = store;\n\n useEffect(() => {\n dispatch(getAllBrandsData());\n }, []);\n\n const lostDateFormated = getDateBasicFormat(+date, 'YYYY-MM-DD hh:mm:ss');\n const timeSpentBeforeSubmit = getMinutesFromInitialTime(initialTime);\n\n const pms = useMemo(() => allBrandsData.find((policy) => policy.PolicyNumber\n === selectedPolicy.PolicyNumber)?.PolicyManagementSystem, [allBrandsData]);\n\n useEffect(() => {\n if (allBrandsData && pms) {\n sendEvent(EV5({\n claimAmount: amount,\n claimData: store,\n claimDescription: claimsDetails,\n claimResult: success ? 'submitted' : 'error',\n dateOfLoss: lostDateFormated,\n pms,\n policyBrand: policyBrandName,\n policyNumber,\n timeSpentBeforeSubmit,\n }));\n }\n }, [\n amount,\n claimsDetails,\n pms,\n policyBrandName,\n policyNumber,\n success,\n timeSpentBeforeSubmit,\n ]);\n\n const description = useMemo(() => {\n if (success) {\n return (\n <span>\n {t('claimSubmitted.success.toSeeTheStatus')}\n\n <a href={CLAIMS}>\n {t('claimSubmitted.success.claims')}\n </a>\n\n {t('claimSubmitted.success.home')}\n </span>\n );\n }\n\n return (\n <span>\n {t('claimSubmitted.error.pleaseRetry')}\n\n <a href={CONTACT_US_URL} rel=\"noopener noreferrer\" target=\"_blank\">\n {t('claimSubmitted.error.contactUs')}\n </a>\n\n {t('claimSubmitted.error.forMoreInformation')}\n </span>\n );\n }, [success, t]);\n\n if (loadingAllBrandsData) {\n return (\n <FigoLottie\n animationData={loadingSpinner}\n height={30}\n width={30}\n />\n );\n }\n\n return (\n <div className=\"File-claimbot-claim-submitted-container\">\n <img alt=\"\" src={icon} />\n\n <h2>{title}</h2>\n\n {description}\n </div>\n );\n};\n\nexport { ClaimSubmitted };\n","import React from 'react';\n\nimport { PolicyListItem } from '../../../common/PolicyListItem';\nimport './PolicySelector.css';\n\nconst PolicySelector = ({\n onPolicyItemPress = () => { },\n policies = [],\n selectedPolicy = null,\n}) => (\n <ul className=\"Policy-selector-container\">\n {policies.map((policy) => (\n <PolicyListItem\n key={policy.PolicyNumber}\n endsOn={policy.ExpirationDate}\n marketingChannel={policy.PolicyMarketingChannelId}\n onClick={onPolicyItemPress(policy)}\n policyNumber={policy.PolicyNumber}\n selected={selectedPolicy?.PolicyNumber === policy.PolicyNumber}\n startsOn={policy.EffectiveDate}\n status={policy.PolicyStatus}\n />\n ))}\n </ul>\n);\n\nexport { PolicySelector };\n","import moment from 'moment';\n\nfunction formatDateSubmitClaim(date) {\n if (date) {\n return moment(date).format('YYYY-MM-DDT00:00:00-00:00');\n }\n\n return '';\n}\n\nconst formatDateClaimSummary = (date) => {\n if (date) {\n return moment(date).format('MM-DD-YYYY');\n }\n\n return '';\n};\n\nfunction reminderFormatDate({ date, baseDateFormat, months }) {\n return baseDateFormat\n .replace('{month}', months[date.getMonth()])\n .replace('{day}', date.getDate())\n .replace('{year}', date.getFullYear());\n}\n\nconst getDateOrToday = (date) => {\n const [today] = new Date().toISOString().split('T');\n if (date > today) {\n return today;\n }\n\n return date;\n};\n\nexport {\n formatDateClaimSummary,\n formatDateSubmitClaim,\n getDateOrToday,\n reminderFormatDate,\n};\n","import { useEffect, useState, useMemo, useCallback, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport {\n claimAdditionalStepsHandled,\n claimbotSelectedPet,\n claimbotSelectedValue,\n claimGetPolicyByDate,\n claimStepsViewed,\n clearClaimSteps,\n fileClaimsRestart,\n loadAdditionalClaimbotSteps,\n loadClaimSteps,\n submitClaim,\n} from '../../../../actions';\n\nimport {\n ACCOUNT_NUMBER_PROP_NAME,\n ACCOUNT_TYPE_PROP_NAME,\n ALL_ATTACHMENT_STEPS,\n ORCA_POLICY_ID_PROP_NAME,\n POLICY_NUMBER_PROP_NAME,\n REIMBURSEMENT_METHOD_ACCOUNT_TYPE,\n REIMBURSEMENT_METHOD_TYPE_KEY_NAME,\n REIMBURSEMENT_METHOD_TYPE,\n ROUTING_NUMBER_PROP_NAME,\n SIGNATURE_TYPE,\n STEP_KEY_NAME,\n STEP_TYPES_TO_SKIP_FROM_HISTORY,\n STEPS_TO_SKIP_FROM_HISTORY,\n} from '../claimbot.constants';\nimport {\n formatDateClaimSummary,\n formatDateSubmitClaim,\n getDateOrToday,\n} from '../claimbot.utils';\nimport {\n currencyFormat,\n delay,\n isRoutingNumberValid,\n testNumberWithDecimal,\n toBase64,\n validateNumbersOnly,\n getBrandNameByChannelId,\n} from '../../../../services/utils';\nimport { CLAIMS } from '../../../navigation/routes.constants';\nimport { ALLOWED_EXT, MAX_SIZE_MB } from '../../../../constants';\nimport { MARKETING_CHANNEL_ID } from '../../../../theme/theme.constants';\n\nlet currentTogglerVisibleFn = () => { };\n\nconst useFileClaimbotScreen = () => {\n const store = useSelector(({\n claimsGeneric,\n personalInformation,\n }) => ({ claimsGeneric, personalInformation }), shallowEqual);\n const { claimsGeneric } = store;\n const { t } = useTranslation('fileClaimbot');\n const dispatch = useDispatch();\n const history = useHistory();\n\n const [currentStep, setCurrentStep] = useState(null);\n const [currentStepValid, setCurrentStepValid] = useState(false);\n const [stepsHistory, setStepsHistory] = useState([]);\n const [agentText, setAgentText] = useState('');\n const [goBackDisabled, setGoBackDisabled] = useState(true);\n const [goForwardisabled, setGoForwardDisabled] = useState(true);\n const [finished, setFinished] = useState(false);\n\n const [userSelection, setUserSelection] = useState(null);\n const [selectedPet, setSelectedPet] = useState(null);\n const [selectedDate, setSelectedDate] = useState('');\n const [claimTypeSelected, setClaimTypeSelected] = useState(null);\n const [textInputValue, setTextInputValue] = useState('');\n const [attachments, setAttachments] = useState([]);\n const [amountInput, setAmountInput] = useState('');\n const [optionSelected, setOptionSelected] = useState(null);\n const [signature, setSignature] = useState(null);\n // TODO: variable required for mix-panel events\n // eslint-disable-next-line no-unused-vars\n const [datesCaptured, setDatesCaptured] = useState([]);\n const [twoOptions, setTwoOptions] = useState({});\n const [multipleOptions, setMultipleOptions] = useState({});\n const [signatureTypeSelected, setSignatureTypeSelected] =\n useState(SIGNATURE_TYPE.TYPING);\n const [signatureText, setSignatureText] = useState('');\n const [routingNumber, setRoutingNumber] = useState('');\n const [accountNumber, setAccountNumber] = useState('');\n\n const [unknowStepVisible, setUnknowStepVisible] = useState(false);\n const [finishButtonVisible, setFinishButtonVisible] = useState(false);\n const [petSelectorVisible, setPetSelectorVisible] = useState(false);\n const [dateInputVisible, setDateInputVisible] = useState(false);\n const [claimSelectorVisible, setClaimSelectorVisible] = useState(false);\n const [textInputVisible, setTextInputVisible] = useState(false);\n const [textInputSingleLineVisible,\n setTextInputSingleLineVisible] = useState(false);\n const [attSelectorVisible, setAttSelectorVisible] = useState(false);\n const [amountInputVisible, setAmountInputVisible] = useState(false);\n const [twoOptSelectVisible, setTwoOptSelectVisible] = useState(false);\n const [multiOptSelectVisible, setMultiOptSelectVisible] = useState(false);\n const [claimSummaryVisible, setClaimSummaryVisible] = useState(false);\n const [signAndSubmitVisible, setSignAndSubmitVisible] = useState(false);\n const [claimSubmittedVisible, setClaimSubmittedVisible] = useState(false);\n const [routingNumberVisible, setRoutingNumberVisible] = useState(false);\n const [accountNumberVisible, setAccountNumberVisible] = useState(false);\n const [policySelectorVisible, setPolicySelectorVisible] = useState(false);\n const [policySelected, setPolicySelected] = useState(null);\n const marketChannelIdSelected = useRef();\n\n const agentImage = claimsGeneric.agentInformation?.PictureUrl;\n const numberOfSteps = 10;\n const currentStepNumber = useMemo(() => {\n let stepNum = 1;\n\n if (!currentStep || !stepsHistory || !stepsHistory.length) {\n return stepNum;\n }\n\n if (stepsHistory.find((stp) => stp.KeyName\n === STEP_KEY_NAME.submit_claim)\n || currentStep.KeyName === STEP_KEY_NAME.submit_claim) {\n stepNum = 10;\n } else if (stepsHistory.find((stp) => stp.KeyName\n === STEP_KEY_NAME.show_summary)\n || currentStep.KeyName === STEP_KEY_NAME.show_summary) {\n stepNum = 9;\n } else if (stepsHistory.find((stp) => ALL_ATTACHMENT_STEPS\n .includes(stp.KeyName))\n || ALL_ATTACHMENT_STEPS.includes(currentStep.KeyName)) {\n stepNum = 6;\n }\n\n return stepNum;\n }, [currentStep, stepsHistory]);\n\n const backButtonLabel = t('back');\n const nextButtonLabel = useMemo(() => {\n if (finished) {\n return t('finish');\n }\n\n // TODO: claim summary step -> submit label\n\n // TODO: error case -> retry label\n\n return t('next');\n }, [finished, t]);\n\n const pets = useMemo(() => {\n const { claimsGeneric: { petsInfo } } = store;\n\n if (!petsInfo) {\n return [];\n }\n\n return petsInfo;\n }, [store.claimsGeneric.petsInfo]);\n\n const claimTypes = useMemo(() => {\n const { claimsGeneric: { petsInfo } } = store;\n\n if (!selectedPet || !petsInfo) {\n return [{ id: 1, label: 'opt1' }, { id: 2, label: 'opt2' }];\n }\n\n const petInformation = petsInfo\n .find((item) => item.Id === selectedPet.Id);\n\n // show claim types using the selected policy or default\n const petInfoByPolicy = policySelected ?? petInformation.PetValidDates[0];\n\n const claimTypesByPet = petInfoByPolicy.ClaimTypes\n .map((item) => ({\n id: item.ClaimTypeId,\n label: item.ClaimTypeDescription,\n }));\n\n return claimTypesByPet;\n }, [\n store.claimsGeneric.selectedPet,\n store.claimsGeneric.petsInfo,\n policySelected,\n ]);\n\n const policyBrandName = useMemo(() => {\n const { claimsGeneric: { petsInfo } } = store;\n\n const petInformation = petsInfo\n ?.find((item) => item?.Id === selectedPet?.Id);\n\n const petInfoByPolicy = policySelected ?? petInformation?.PetValidDates[0];\n return getBrandNameByChannelId(\n petInfoByPolicy?.PolicyMarketingChannelId,\n );\n }, [\n store.claimsGeneric.selectedPet,\n store.claimsGeneric.petsInfo,\n policySelected]);\n\n const selectedPetPolicies = useMemo(() => {\n const { claimsGeneric: { petsInfo } } = store;\n\n if (!petsInfo || !selectedPet) {\n return null;\n }\n\n return selectedPet?.PetValidDates || [];\n }, [store.claimsGeneric.petsInfo, store.claimsGeneric.selectedPet]);\n\n const reimbursementMethodUser = useMemo(() => {\n if (!policySelected || !policySelected.EftInfo) {\n return '';\n }\n\n let reimbursementMethod = '';\n const eftInfo = policySelected.EftInfo;\n const prefReimbMethod = eftInfo.PreferredReimbursementMethod;\n const baseTransEntry = 'reimbursementInformation'\n + '.reimbursementMethodsAgentMessage';\n\n if (prefReimbMethod === REIMBURSEMENT_METHOD_TYPE.ACH\n && eftInfo.AccountNumber) {\n reimbursementMethod = t(`${baseTransEntry}.ach`)\n .replace('{account}', eftInfo.AccountNumber.slice(-4));\n } else if (prefReimbMethod === REIMBURSEMENT_METHOD_TYPE.CHECK) {\n reimbursementMethod = t(`${baseTransEntry}.check`);\n } else {\n reimbursementMethod = t(`${baseTransEntry}.none`);\n }\n\n return reimbursementMethod;\n }, [policySelected, t]);\n\n const claimSummaryInfo = useMemo(() => {\n if (!claimsGeneric.userResponses) {\n return [];\n }\n\n return Object\n .values(claimsGeneric.userResponses)\n .filter((item) => !!item.displayName);\n }, [claimsGeneric]);\n\n const synteticSelectPolicyStep = useMemo(() => ({\n ClaimType: null,\n KeyName: STEP_KEY_NAME.syntetic_get_select_policy,\n MessageText: t('synteticPolicySelectorDialog'),\n NextTrueKeyName: STEP_KEY_NAME.ok_select_pet,\n }), [t]);\n\n const getDateWithFormat = (date) => {\n if (!date) {\n return '';\n }\n\n return date.split('T')[0];\n };\n\n const validateOnlyFigoPolicies = useCallback((petValidDates) => {\n if (!petValidDates) {\n return false;\n }\n\n return petValidDates.every((pol) => pol.PolicyMarketingChannelId\n === MARKETING_CHANNEL_ID.figo);\n }, []);\n\n const onlyFigoPolicies = useMemo(() => {\n if (selectedPet && selectedPet.PetValidDates) {\n return validateOnlyFigoPolicies(selectedPet.PetValidDates);\n }\n\n return false;\n }, [selectedPet, validateOnlyFigoPolicies]);\n\n const coverageDateRange = useMemo(() => {\n if (!selectedPet) {\n return {\n maxCoverageDate: null,\n minCoverageDate: null,\n };\n }\n\n const petValidDates = selectedPet.PetValidDates;\n\n if (petValidDates.length === 1) {\n const policy = petValidDates[0];\n return {\n maxCoverageDate: getDateOrToday(\n getDateWithFormat(policy.ExpirationDate),\n ),\n minCoverageDate: getDateWithFormat(policy.EffectiveDate),\n };\n }\n\n const [minCoverageDate] = selectedPet.PetValidDates\n .map((pol) => getDateWithFormat(pol.EffectiveDate))\n .sort((a, b) => {\n const date1 = new Date(b);\n const date2 = new Date(a);\n\n return date1 < date2 ? 1 : -1;\n });\n\n const [maxCoverageDate] = selectedPet.PetValidDates\n .map((pol) => getDateWithFormat(pol.ExpirationDate))\n .sort((a, b) => {\n const date1 = new Date(b);\n const date2 = new Date(a);\n\n return date1 > date2 ? 1 : -1;\n });\n\n return {\n maxCoverageDate: getDateOrToday(maxCoverageDate),\n minCoverageDate,\n };\n }, [onlyFigoPolicies, selectedPet]);\n\n const injectPolicySelectorStep = (logStep = false) => {\n if (logStep) {\n const stepWithSelection = {\n ...currentStep,\n userSelection,\n };\n\n setStepsHistory((prev) => [...prev, stepWithSelection]);\n }\n\n synteticSelectPolicyStep.NextTrueKeyName =\n currentStep.NextTrueKeyName;\n synteticSelectPolicyStep.NextFalseKeyName =\n currentStep.NextFalseKeyName;\n synteticSelectPolicyStep.ParentStepKeyName = currentStep.KeyName;\n\n setCurrentStep(synteticSelectPolicyStep);\n };\n\n useEffect(() => () => {\n dispatch(clearClaimSteps());\n dispatch(fileClaimsRestart());\n }, []);\n\n useEffect(() => {\n // load Claims types after refresh page\n if (claimsGeneric.claimSteps) {\n const firsStep = claimsGeneric.claimSteps[0];\n setCurrentStep(firsStep);\n dispatch(claimStepsViewed());\n return;\n }\n\n dispatch(loadClaimSteps());\n }, [claimsGeneric.claimSteps]);\n\n const onPreviousStepClick = () => {\n const previousStep = stepsHistory.pop();\n setCurrentStep(previousStep);\n currentTogglerVisibleFn(false);\n };\n\n /**\n * Stores the value captured by the user, in the backend dynamic\n * property name.\n * @param {*} customKeyName custom keyname to store and use on claim submiting\n * @param {*} displayValue value to display to the user\n * @param {*} value value captured from the user\n */\n const storeSelectedValue = ({\n customDisplayName = '',\n customKeyName = '',\n displayValue = '',\n hideDisplayName = false,\n value,\n }) => {\n const keyName = currentStep?.Input?.StoredField;\n const displayName = currentStep?.Input?.SummaryField;\n\n if (keyName || customKeyName || displayName) {\n dispatch(claimbotSelectedValue({\n displayName: hideDisplayName ? '' : (customDisplayName || displayName),\n displayValue,\n keyName: customKeyName || keyName,\n value,\n }));\n }\n };\n\n const selectPolicy = useCallback((policy) => {\n setPolicySelected(policy);\n marketChannelIdSelected.current = policy.PolicyMarketingChannelId;\n\n const orcaPolicyId = policy.PolicyId;\n const petPolicyNumber = policy.PolicyNumber;\n\n storeSelectedValue({\n customKeyName: ORCA_POLICY_ID_PROP_NAME,\n displayValue: orcaPolicyId,\n hideDisplayName: true,\n value: orcaPolicyId,\n });\n\n storeSelectedValue({\n customKeyName: POLICY_NUMBER_PROP_NAME,\n displayValue: petPolicyNumber,\n hideDisplayName: true,\n value: petPolicyNumber,\n });\n }, []);\n\n /**\n * Goes to the nex step fo the claim type specified (first as default).\n * @param {Object} params\n * @param {number} params.claimTypeId claim type steps to follow\n * @param {number} params.marketChannelId marketing channel claimbot\n */\n const goToNextStepByClaimType = (claimTypeId) => {\n const nextStep = claimsGeneric.claimSteps\n .find((stp) => stp.ClaimTypeId === claimTypeId);\n\n setCurrentStep(nextStep);\n };\n\n useEffect(() => {\n const { additionalStepsHandled } = store.claimsGeneric;\n\n if (!additionalStepsHandled && claimTypeSelected) {\n dispatch(claimAdditionalStepsHandled());\n\n goToNextStepByClaimType(claimTypeSelected.id);\n }\n }, [store.claimsGeneric.additionalStepsHandled, claimTypeSelected]);\n\n const getNextStep = (validStep = false) => {\n let newCurrentStep = currentStep;\n\n // updates the current step if there is market channel id selected\n if (marketChannelIdSelected.current) {\n const newStepNonDuplicated = claimsGeneric.claimSteps\n .find((stp) => (\n stp.KeyName === currentStep.KeyName\n || stp.KeyName === currentStep.ParentStepKeyName\n ) && stp.MarketChannelId === marketChannelIdSelected.current);\n\n if (newStepNonDuplicated) {\n newCurrentStep = newStepNonDuplicated;\n }\n }\n\n const nextStepName = validStep\n ? newCurrentStep.NextTrueKeyName : newCurrentStep.NextFalseKeyName;\n\n let nextStep = claimsGeneric.claimSteps\n .find((stp) => stp.KeyName === nextStepName);\n\n // gets the next step by market channel id if selected\n if (marketChannelIdSelected.current) {\n const newStepByMarketChannel = claimsGeneric.claimSteps\n .find((stp) => stp.KeyName === nextStepName\n && stp.MarketChannelId === marketChannelIdSelected.current);\n\n if (newStepByMarketChannel) {\n nextStep = newStepByMarketChannel;\n }\n }\n\n return nextStep;\n };\n\n const storeStepInHistory = ({ step, stepWithSelection }) => {\n if (step) {\n setCurrentStep(step);\n }\n\n const skipByInputType = currentStep.Input && STEP_TYPES_TO_SKIP_FROM_HISTORY\n .includes(currentStep.Input.TypeId);\n\n const skipByStep = STEPS_TO_SKIP_FROM_HISTORY\n .includes(currentStep.KeyName);\n\n if (!skipByInputType && !skipByStep) {\n setStepsHistory((prev) => [...prev, stepWithSelection]);\n }\n };\n\n /**\n * Goes to the next step (valid or invalid)\n * @param validStep determinates if the next step is successfull or failure\n */\n const goToNextStep = (validStep = false) => {\n const stepWithSelection = {\n ...currentStep,\n userSelection,\n };\n\n // special case, go to next step by claim type.\n if (currentStep.KeyName === STEP_KEY_NAME.select_claim_type) {\n setStepsHistory((prev) => [...prev, stepWithSelection]);\n dispatch(loadAdditionalClaimbotSteps({\n claimTypeId: claimTypeSelected.id,\n keyName: currentStep.KeyName,\n petId: selectedPet.Id,\n policyNumber: policySelected.PolicyNumber,\n }));\n return;\n }\n\n // only Figo scenario\n if (currentStep.KeyName === STEP_KEY_NAME.get_illness_date\n && onlyFigoPolicies) {\n // get policy by selected date from backend (next step will be\n // triggered with backend response)\n dispatch(claimGetPolicyByDate({\n date: selectedDate,\n petId: selectedPet.Id,\n }));\n return;\n }\n\n // only non Figo scenario\n if (!onlyFigoPolicies\n && currentStep.KeyName === STEP_KEY_NAME.get_select_pet\n && selectedPet && selectedPet.PetValidDates.length > 1) {\n // gets the policy by user selection\n injectPolicySelectorStep(true);\n return;\n }\n\n const nextStep = getNextStep(validStep);\n storeStepInHistory({\n step: nextStep,\n stepWithSelection,\n });\n };\n\n const onNextStepClick = () => {\n if (finished) {\n history.push(CLAIMS);\n }\n\n if (!goForwardisabled) {\n currentTogglerVisibleFn(false);\n goToNextStep(currentStepValid);\n }\n };\n\n const userHasPetsWithPolicyValidation = () => {\n const { petsInfo } = claimsGeneric;\n\n return petsInfo && petsInfo.length > 0;\n };\n\n const userHasMoreThanOnePet = () => {\n const { petsInfo } = claimsGeneric;\n\n return petsInfo && petsInfo.length > 1;\n };\n\n const showFinishButton = () => {\n setGoBackDisabled(true);\n setFinished(true);\n setFinishButtonVisible(true);\n currentTogglerVisibleFn = setFinishButtonVisible;\n };\n\n const showClaimSelector = () => {\n setClaimSelectorVisible((prev) => !prev);\n currentTogglerVisibleFn = setClaimSelectorVisible;\n };\n\n const showPetSelector = () => {\n setPetSelectorVisible(true);\n currentTogglerVisibleFn = setPetSelectorVisible;\n };\n\n const showPolicySelector = useCallback(() => {\n setPolicySelectorVisible(true);\n currentTogglerVisibleFn = setPolicySelectorVisible;\n }, []);\n\n const showClaimAmountInput = () => {\n setAmountInputVisible((prev) => !prev);\n currentTogglerVisibleFn = setAmountInputVisible;\n };\n\n const showSignAndSubmit = () => {\n setSignAndSubmitVisible((prev) => !prev);\n currentTogglerVisibleFn = setSignAndSubmitVisible;\n };\n\n /**\n * Stores already existing reimbursment information from the user.\n */\n const storeAccountInformationFixed = () => {\n const eftInfo = policySelected.EftInfo;\n\n const routNumb = eftInfo.RoutingNumber;\n storeSelectedValue({\n customKeyName: ROUTING_NUMBER_PROP_NAME,\n displayValue: routNumb,\n hideDisplayName: true,\n value: routNumb,\n });\n\n const accNum = eftInfo.AccountNumber;\n storeSelectedValue({\n customKeyName: ACCOUNT_NUMBER_PROP_NAME,\n displayValue: accNum,\n hideDisplayName: true,\n value: accNum,\n });\n\n const isCheck = eftInfo.Type\n === REIMBURSEMENT_METHOD_TYPE.CHECK;\n const paymentType = isCheck ? 'CHECK' : 'ACH';\n const paymentTypeDisplayValue = isCheck\n ? t('reimbursementInformation.reimbursementMethods.check')\n : t('reimbursementInformation.reimbursementMethods.bankAccount');\n storeSelectedValue({\n customDisplayName: t('reimbursementInformation.paymentMethod'),\n customKeyName: REIMBURSEMENT_METHOD_TYPE_KEY_NAME,\n displayValue: paymentTypeDisplayValue,\n hideDisplayName: false,\n value: paymentType,\n });\n\n const accountType = eftInfo\n .AccountType === REIMBURSEMENT_METHOD_ACCOUNT_TYPE.Checking\n ? 'Checking' : 'Savings';\n storeSelectedValue({\n customKeyName: ACCOUNT_TYPE_PROP_NAME,\n displayValue: accountType,\n hideDisplayName: true,\n value: accountType,\n });\n };\n\n const selectPet = (pet) => {\n storeSelectedValue({\n displayValue: pet.Name,\n value: pet.Id,\n });\n\n setSelectedPet(pet);\n\n // automatic policy selection\n if (pet.PetValidDates.length === 1) {\n selectPolicy(pet.PetValidDates[0]);\n }\n\n dispatch(claimbotSelectedPet(pet));\n };\n\n const onPetItemPress = (pet) => () => {\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(pet);\n selectPet(pet);\n\n // automatic policy selection\n if (pet.PetValidDates.length === 1) {\n selectPolicy(pet.PetValidDates[0]);\n }\n };\n\n const onPolicyItemPress = (policy) => () => {\n let validStep = true;\n // special case: single pet (no pet selector shown) and multiple policies\n if (currentStep.KeyName === STEP_KEY_NAME.syntetic_get_select_policy\n && store.claimsGeneric.petsInfo.length === 1\n && selectedPet.PetValidDates.length > 1) {\n validStep = false;\n }\n\n setCurrentStepValid(validStep);\n setGoForwardDisabled(false);\n setUserSelection(policy);\n selectPolicy(policy);\n };\n\n const showDateInput = () => {\n setDateInputVisible(true);\n currentTogglerVisibleFn = setDateInputVisible;\n };\n\n const showTextInput = () => {\n setTextInputVisible((prev) => !prev);\n currentTogglerVisibleFn = setTextInputVisible;\n };\n\n const showTextInputSingleLine = () => {\n setTextInputSingleLineVisible((prev) => !prev);\n currentTogglerVisibleFn = setTextInputSingleLineVisible;\n };\n\n const showAttSelector = () => {\n setAttSelectorVisible((prev) => !prev);\n currentTogglerVisibleFn = setAttSelectorVisible;\n };\n\n const showMultiOptSelect = (options) => {\n const optionsWithFormat = options.map((opt) => ({\n id: opt.Id,\n label: opt.Title,\n }));\n\n if (optionsWithFormat && optionsWithFormat.length === 2) {\n setTwoOptSelectVisible((prev) => !prev);\n currentTogglerVisibleFn = setTwoOptSelectVisible;\n setTwoOptions({\n leftOption: optionsWithFormat[1],\n rightOption: optionsWithFormat[0],\n });\n } else {\n setMultiOptSelectVisible((prev) => !prev);\n currentTogglerVisibleFn = setMultiOptSelectVisible;\n setMultipleOptions(optionsWithFormat);\n }\n };\n\n const showClaimSummary = () => {\n setClaimSummaryVisible((prev) => !prev);\n currentTogglerVisibleFn = setClaimSummaryVisible;\n };\n\n const showRoutingNumber = () => {\n setRoutingNumberVisible((prev) => !prev);\n currentTogglerVisibleFn = setRoutingNumberVisible;\n };\n\n const showAccountNumber = () => {\n setAccountNumberVisible((prev) => !prev);\n currentTogglerVisibleFn = setAccountNumberVisible;\n };\n\n const onSelectedValidDate = ({ date, inRange }) => {\n setCurrentStepValid(inRange);\n setGoForwardDisabled(!inRange);\n\n setUserSelection(date);\n setSelectedDate(date);\n\n const dateValue = formatDateSubmitClaim(date);\n\n setDatesCaptured((prev) => [...prev, {\n key: currentStep.Input.SummaryField,\n value: date,\n }]);\n\n storeSelectedValue({\n displayValue: formatDateClaimSummary(date),\n value: dateValue,\n });\n };\n\n const onSelectClaimType = (claimType) => {\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(claimType);\n\n storeSelectedValue({\n displayValue: claimType.label,\n value: claimType.id,\n });\n\n setClaimTypeSelected(claimType);\n };\n\n const onTextInputChanged = (text) => {\n setCurrentStepValid(!!text);\n setGoForwardDisabled(!text);\n setUserSelection(text);\n\n storeSelectedValue({\n displayValue: text,\n value: text,\n });\n\n setTextInputValue(text);\n };\n\n function validateFile(file, maxSize) {\n let errorMsg = '';\n let isValid = true;\n if (file.size > (maxSize * 1024 * 1024)) {\n isValid = false;\n errorMsg = t('largeFile');\n }\n\n return {\n errorMsg,\n isValid,\n };\n }\n\n const onAddAttachment = (attList) => {\n const attListToAdd = [];\n attList.forEach((file) => {\n const validation = validateFile(file, MAX_SIZE_MB);\n const extMatch = file.name.match(ALLOWED_EXT);\n const uniqueKey = `${file.name}-${Date.now()}`;\n const Extension = extMatch.slice(1)[0];\n\n if (extMatch) {\n // adds the new attachment with zero percent\n attListToAdd.push({\n DownloadBinary: '',\n errorMsg: validation.errorMsg,\n Extension,\n file,\n Filename: file.name,\n key: uniqueKey,\n percentage: 0,\n size: file.size,\n valid: validation.isValid,\n });\n }\n });\n\n setCurrentStepValid(attachments.length > 0 || attListToAdd.length > 0);\n setGoForwardDisabled(attachments.length === 0 && attListToAdd.length === 0);\n\n const newAttachmentList = [...attachments, ...attListToAdd];\n\n storeSelectedValue({\n displayValue: newAttachmentList.length,\n value: newAttachmentList,\n });\n\n setAttachments(newAttachmentList);\n setUserSelection(newAttachmentList);\n };\n\n const onRemoveAttachment = (attachment) => {\n const newAttachmentList = attachments.filter((att) => att !== attachment);\n setAttachments(newAttachmentList);\n\n storeSelectedValue({\n displayValue: newAttachmentList.length,\n value: newAttachmentList,\n });\n\n setCurrentStepValid(newAttachmentList.length > 0);\n setGoForwardDisabled(newAttachmentList.length === 0);\n setUserSelection(newAttachmentList);\n };\n\n const onAmountInputChanged = ({ target }) => {\n const amount = target.value;\n\n if (testNumberWithDecimal(amount)) {\n setAmountInput(amount);\n setCurrentStepValid(!!amount && amount > 0);\n setGoForwardDisabled(!amount && amount === 0);\n setUserSelection(amount);\n\n storeSelectedValue({\n displayValue: currencyFormat({ value: amount }),\n value: amount,\n });\n }\n };\n\n const onOneOptionSelected = ({ option, validStep = false }) => {\n setOptionSelected(option);\n setCurrentStepValid(validStep);\n setGoForwardDisabled(false);\n setUserSelection({ ...option, validStep });\n\n const { id, label } = option;\n\n // special case: users confirms that has the same previous\n // reimbursement information\n if (currentStep.KeyName === STEP_KEY_NAME.confirm_reimb_preference) {\n storeAccountInformationFixed();\n } else {\n storeSelectedValue({\n displayValue: label,\n value: id,\n });\n }\n };\n\n const onSignatureChanged = (newSignature) => {\n if (!currentStep) {\n return;\n }\n\n setSignature(newSignature);\n setCurrentStepValid(!!newSignature);\n setGoForwardDisabled(!newSignature);\n setUserSelection(newSignature);\n\n storeSelectedValue({\n hideDisplayName: true,\n value: newSignature,\n });\n };\n\n const onSignatureTypeSelection = (option) => () => {\n if (option === SIGNATURE_TYPE.DRAWING) {\n // TODO: Drawing feature\n setCurrentStepValid(false);\n setGoForwardDisabled(true);\n } else {\n setCurrentStepValid(!!signature);\n setGoForwardDisabled(!signature);\n }\n\n setSignatureTypeSelected(option);\n };\n\n const onSignatureTextChanged = ({ target: { value } }) => {\n const CLAIM_DETAIL_REGEX = /[:-@[-`]+/;\n const formattedText = value.replace(CLAIM_DETAIL_REGEX, '');\n setSignatureText(formattedText);\n };\n\n const onRoutingNumberChanged = ({ target }) => {\n const number = target.value;\n\n setRoutingNumber(number);\n setUserSelection(number);\n setCurrentStepValid(true);\n const numberValidation = validateNumbersOnly(number);\n const routingNumValidation = isRoutingNumberValid(number);\n\n if (!routingNumValidation) {\n storeSelectedValue({\n displayValue: number,\n value: number,\n });\n }\n\n setGoForwardDisabled(!numberValidation || !!routingNumValidation);\n };\n\n const onAccountNumberChanged = ({ target }) => {\n const number = target.value;\n\n setAccountNumber(number);\n setUserSelection(number);\n setCurrentStepValid(true);\n const numberValidation = validateNumbersOnly(number);\n\n if (numberValidation) {\n storeSelectedValue({\n displayValue: number,\n value: number,\n });\n }\n\n setGoForwardDisabled(!numberValidation);\n };\n\n useEffect(() => {\n const canvas = document.createElement('canvas');\n canvas.height = 80;\n canvas.width = 454;\n const ctx = canvas.getContext('2d');\n ctx.font = '15px Gotham-regular';\n ctx.textAlign = 'center';\n ctx.fillText(signatureText, 220, 45);\n const dataUrl = canvas.toDataURL();\n\n onSignatureChanged(signatureText ? dataUrl : null);\n }, [signatureText]);\n\n const onSubmitClaim = () => {\n const { claimsGeneric: { userResponses } } = store;\n dispatch(submitClaim({ userResponses }));\n };\n\n const onClaimSubmitted = () => {\n setClaimSubmittedVisible(true);\n };\n\n useEffect(() => {\n const { answered, success } = store.claimsGeneric.submitClaim;\n\n if (answered) {\n setFinished(true);\n goToNextStep(success);\n }\n }, [store.claimsGeneric.submitClaim]);\n\n const doToBase64 = async (file) => {\n const binaryDoc = await toBase64(file);\n return binaryDoc;\n };\n\n async function updateBinaryAttachments() {\n const newAtts = await Promise.all(attachments.map(async (att) => {\n if (att.valid && !att.percentage) {\n const binary = await doToBase64(att.file);\n return {\n ...att,\n DownloadBinary: binary,\n percentage: 100,\n };\n }\n\n return att;\n }));\n\n setAttachments(newAtts);\n storeSelectedValue({\n displayValue: newAtts.length,\n value: newAtts,\n });\n }\n\n useEffect(() => {\n if (!attachments.length) {\n return;\n }\n\n if (attachments.some((att) => att.valid && !att.percentage)) {\n delay(400)\n .then(() => updateBinaryAttachments());\n }\n }, [attachments]);\n\n const addAgentMessageWithFormat = (message = '') => {\n const petName = claimsGeneric.selectedPet?.Name;\n const formated = message\n .replace('<Petname>', petName)\n .replace('<pet name>', petName)\n .replace('<payment method>', reimbursementMethodUser)\n .replace(/<new line>/g, '\\n');\n\n setAgentText(formated);\n };\n\n const resetPreviousValuesSelected = () => {\n setCurrentStepValid(false);\n setGoForwardDisabled(true);\n setUserSelection(null);\n setGoBackDisabled(false);\n\n setSelectedDate('');\n setClaimTypeSelected(null);\n setTextInputValue('');\n setAttachments([]);\n setAmountInput('');\n setOptionSelected(null);\n };\n\n const handleChatbotStep = async (step) => {\n resetPreviousValuesSelected();\n let validStep = false;\n let holdResponse = false;\n\n if (step.MessageText) {\n addAgentMessageWithFormat(step.MessageText);\n }\n\n if (unknowStepVisible) {\n setUnknowStepVisible(false);\n }\n\n switch (step.KeyName) {\n case STEP_KEY_NAME.user_has_pets_with_policy:\n validStep = userHasPetsWithPolicyValidation();\n break;\n\n case STEP_KEY_NAME.error_nopolicy:\n case STEP_KEY_NAME.synthetic_policy_error:\n validStep = false;\n showFinishButton();\n break;\n\n case STEP_KEY_NAME.user_has_more_than_one_pet:\n validStep = userHasMoreThanOnePet();\n\n // has only one pet\n if (!validStep) {\n const pet = store.claimsGeneric.petsInfo[0];\n selectPet(pet);\n\n // but multiple policies\n if (pet.PetValidDates && pet.PetValidDates.length > 1) {\n injectPolicySelectorStep();\n holdResponse = true;\n }\n }\n break;\n\n case STEP_KEY_NAME.ok_select_pet:\n case STEP_KEY_NAME.ok_select_injury:\n case STEP_KEY_NAME.get_vetfee_attachments:\n case STEP_KEY_NAME.get_vetfee_attachments_s1:\n case STEP_KEY_NAME.ok_other_insurance:\n case STEP_KEY_NAME.ok_select_wellness:\n case STEP_KEY_NAME.confirm_select_check:\n case STEP_KEY_NAME.terms_declined:\n case STEP_KEY_NAME.ok_select_vetfee:\n validStep = true;\n holdResponse = true;\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n break;\n\n case STEP_KEY_NAME.get_attachments:\n case STEP_KEY_NAME.get_vetfee_attachments_s2:\n case STEP_KEY_NAME.get_vetfee_attachments_s3:\n case STEP_KEY_NAME.get_vetfee_attachments_vc:\n case STEP_KEY_NAME.get_vetfee_attachments_rw:\n case STEP_KEY_NAME.get_vetfee_attachments_st_s2:\n case STEP_KEY_NAME.get_vetfee_attachments_ar_s2:\n case STEP_KEY_NAME.get_vetfee_attachments_bf:\n if (step.userSelection) {\n setAttachments(step.userSelection);\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n\n showAttSelector();\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.confirm_reimb_preference:\n case STEP_KEY_NAME.get_other_insurance:\n case STEP_KEY_NAME.get_confirm_terms:\n case STEP_KEY_NAME.get_reimb_preference:\n case STEP_KEY_NAME.get_ach_account_type:\n if (step.userSelection) {\n setOptionSelected(step.userSelection);\n setCurrentStepValid(step.userSelection?.validStep);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n\n showMultiOptSelect(currentStep.Input.Options);\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.get_select_pet:\n if (step.userSelection) {\n setSelectedPet(step.userSelection);\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n showPetSelector();\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.syntetic_get_select_policy:\n if (step.userSelection) {\n setPolicySelected(step.userSelection);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n\n // special case: single pet (no pet selector shown)\n // and multiple policies (going back from history)\n validStep = !(store.claimsGeneric.petsInfo.length === 1\n && selectedPet.PetValidDates.length > 1);\n setCurrentStepValid(validStep);\n holdResponse = true;\n showPolicySelector();\n break;\n\n case STEP_KEY_NAME.select_claim_type:\n if (step.userSelection) {\n setClaimTypeSelected(step.userSelection);\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n\n showClaimSelector();\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.get_illness_date:\n case STEP_KEY_NAME.get_onset_date:\n case STEP_KEY_NAME.get_treatment_date:\n case STEP_KEY_NAME.get_wellness_treatment_date:\n if (step.userSelection) {\n setSelectedDate(step.userSelection);\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n\n showDateInput();\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.get_illness_desc:\n if (step.userSelection) {\n setTextInputValue(step.userSelection);\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n\n showTextInput();\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.get_other_insurance_name:\n if (step.userSelection) {\n setTextInputValue(step.userSelection);\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n\n showTextInputSingleLine();\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.get_claim_amount:\n if (step.userSelection) {\n setAmountInput(step.userSelection);\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n\n showClaimAmountInput();\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.get_ach_routing:\n if (step.userSelection) {\n setRoutingNumber(step.userSelection);\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n\n showRoutingNumber();\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.get_ach_account:\n if (step.userSelection) {\n setAccountNumber(step.userSelection);\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n\n showAccountNumber();\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.show_summary:\n holdResponse = true;\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n showClaimSummary();\n break;\n\n case STEP_KEY_NAME.get_signature:\n if (step.userSelection) {\n setSignature(step.userSelection);\n setCurrentStepValid(true);\n setGoForwardDisabled(false);\n setUserSelection(step.userSelection);\n }\n\n showSignAndSubmit();\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.submit_claim:\n setGoBackDisabled(true);\n onSubmitClaim();\n holdResponse = true;\n break;\n\n case STEP_KEY_NAME.claim_filing_success:\n case STEP_KEY_NAME.claim_filing_error:\n holdResponse = true;\n onClaimSubmitted();\n setGoForwardDisabled(false);\n setGoBackDisabled(true);\n break;\n\n default:\n validStep = false;\n holdResponse = true;\n setUnknowStepVisible(true);\n break;\n }\n\n if (holdResponse) {\n // step will be completed by the required component\n return;\n }\n\n goToNextStep(validStep);\n };\n\n useEffect(() => {\n if (!currentStep) {\n return;\n }\n\n handleChatbotStep(currentStep);\n }, [currentStep]);\n\n useEffect(() => {\n if (store.claimsGeneric.policyByDate) {\n const { policyByDate } = store.claimsGeneric;\n selectPolicy(policyByDate);\n const nextStep = getNextStep(true);\n storeStepInHistory({\n step: nextStep,\n stepWithSelection: {\n ...currentStep,\n userSelection,\n },\n });\n }\n }, [store.claimsGeneric.policyByDate]);\n\n useEffect(() => {\n if (store.claimsGeneric.policyError) {\n setCurrentStep({\n KeyName: STEP_KEY_NAME.synthetic_policy_error,\n MessageText: store.claimsGeneric.policyError,\n });\n }\n }, [store.claimsGeneric.policyError]);\n\n return {\n ...coverageDateRange,\n accountNumber,\n accountNumberVisible,\n agentImage,\n agentText,\n amountInput,\n amountInputVisible,\n attachments,\n attSelectorVisible,\n backButtonLabel,\n claimSelectorVisible,\n claimsGeneric,\n claimSubmittedVisible,\n claimSummaryInfo,\n claimSummaryVisible,\n claimTypes,\n claimTypeSelected,\n currentStep,\n currentStepNumber,\n dateInputVisible,\n finishButtonVisible,\n finished,\n goBackDisabled: goBackDisabled || stepsHistory.length === 0,\n goForwardisabled,\n loadingAdditionalSteps: claimsGeneric.loadingAdditionalSteps,\n loadingPolicyByDate: claimsGeneric.loadingPolicyByDate,\n multiOptSelectVisible,\n multipleOptions,\n nextButtonLabel,\n numberOfSteps,\n onAccountNumberChanged,\n onAddAttachment,\n onAmountInputChanged,\n onNextStepClick,\n onOneOptionSelected,\n onPetItemPress,\n onPolicyItemPress,\n onPreviousStepClick,\n onRemoveAttachment,\n onRoutingNumberChanged,\n onSelectClaimType,\n onSelectedValidDate,\n onSignatureTextChanged,\n onSignatureTypeSelection,\n onTextInputChanged,\n optionSelected,\n pets,\n petSelectorVisible,\n policyBrandName,\n policySelected,\n policySelectorVisible,\n routingNumber,\n routingNumberVisible,\n selectedDate,\n selectedPet,\n selectedPetPolicies,\n signAndSubmitVisible,\n signature,\n signatureText,\n signatureTypeSelected,\n submitClaim: store.claimsGeneric.submitClaim,\n t,\n textInputSingleLineVisible,\n textInputValue,\n textInputVisible,\n twoOptions,\n twoOptSelectVisible,\n unknowStepVisible,\n };\n};\n\nexport { useFileClaimbotScreen };\n","import React from 'react';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport NavigationPrompt from 'react-router-navigation-prompt';\n\nimport FigoLoadingOverlay from '../../common/FigoLoadingOverlay';\nimport {\n AmountInput,\n AttachmentSelector,\n ClaimbotStepper,\n ClaimSelector,\n ClaimSubmitted,\n ClaimSummary,\n DateInput,\n FileClaimbotEvie,\n FinishButton,\n MultipleOptionsSelector,\n PetSelector,\n SignAndSubmit,\n TextInput,\n TextInputSingleLine,\n TwoOptionsSelector,\n} from './components';\nimport FigoLottie from '../../common/FigoLottie';\nimport UnsavedChangesPrompt from '../../common/UnsavedChangesPrompt';\nimport { PolicySelector } from './components/PolicySelector';\n\nimport { useFileClaimbotScreen } from './hooks/useFileClaimbotScreen';\n\nimport './FileClaimbotScreen.css';\n\nconst FileClaimbotScreen = () => {\n const store = useSelector(\n ({ billingPayments }) => ({ billingPayments }),\n shallowEqual,\n );\n\n const {\n billingPayments: { loadingAllBrandsData },\n } = store;\n\n const {\n accountNumber,\n accountNumberVisible,\n agentImage,\n agentText,\n amountInput,\n amountInputVisible,\n attachments,\n attSelectorVisible,\n backButtonLabel,\n claimSelectorVisible,\n claimsGeneric,\n claimSubmittedVisible,\n claimSummaryInfo,\n claimSummaryVisible,\n claimTypes,\n claimTypeSelected,\n currentStep,\n currentStepNumber,\n dateInputVisible,\n finishButtonVisible,\n finished,\n goBackDisabled,\n goForwardisabled,\n loadingAdditionalSteps,\n loadingPolicyByDate,\n maxCoverageDate,\n minCoverageDate,\n multiOptSelectVisible,\n multipleOptions,\n nextButtonLabel,\n numberOfSteps,\n onAccountNumberChanged,\n onAddAttachment,\n onAmountInputChanged,\n onNextStepClick,\n onOneOptionSelected,\n onPetItemPress,\n onPreviousStepClick,\n onRemoveAttachment,\n onRoutingNumberChanged,\n onSelectClaimType,\n onSelectedValidDate,\n onSignatureTextChanged,\n onSignatureTypeSelection,\n onTextInputChanged,\n optionSelected,\n pets,\n petSelectorVisible,\n policyBrandName,\n routingNumber,\n routingNumberVisible,\n selectedDate,\n selectedPet,\n selectedPetPolicies,\n signAndSubmitVisible,\n signature,\n signatureText,\n signatureTypeSelected,\n submitClaim,\n t,\n textInputSingleLineVisible,\n textInputValue,\n textInputVisible,\n twoOptions,\n twoOptSelectVisible,\n unknowStepVisible,\n policySelectorVisible,\n onPolicyItemPress,\n policySelected,\n } = useFileClaimbotScreen();\n\n return (\n <div className=\"File-claimbot-main-container\">\n {!finished && (\n <NavigationPrompt when={claimsGeneric.selectedPet}>\n {({ onConfirm, onCancel }) => (\n <UnsavedChangesPrompt\n containerClassName=\"File-claim-type-container\"\n currentStep={currentStep}\n currentStepNumber={currentStepNumber}\n icon={null}\n message={t('unsaveClaimModal.content')}\n modalClassName=\"File-claim-unsave-modal\"\n onCancel={onConfirm}\n onConfirm={onCancel}\n policyBrandName={policyBrandName}\n textCancel={t('unsaveClaimModal.cancelTextButton')}\n textConfirm={t('unsaveClaimModal.confirmTextButton')}\n title={t('unsaveClaimModal.title')}\n />\n )}\n </NavigationPrompt>\n )}\n\n <FigoLoadingOverlay visible={claimsGeneric.loadingSteps} />\n\n <div className=\"Screen-header-claimbot\">\n <h1>{t('title')}</h1>\n </div>\n\n <div className=\"File-claimbot-content\">\n <ClaimbotStepper\n backButtonLabel={backButtonLabel}\n currentStepName={t('stepTitle')}\n currentStepNumber={currentStepNumber}\n goBackDisabled={goBackDisabled}\n goForwardisabled={goForwardisabled}\n loading={submitClaim.loading || loadingAllBrandsData\n || loadingAdditionalSteps || loadingPolicyByDate}\n nextButtonLabel={nextButtonLabel}\n numberOfSteps={numberOfSteps}\n onNextStepClick={onNextStepClick}\n onPreviousStepClick={onPreviousStepClick}\n submitted={submitClaim.submitted}\n />\n\n <div className=\"card File-card-container\">\n <div className=\"File-claim-card-body\">\n <FileClaimbotEvie\n agentImage={agentImage}\n agentText={agentText}\n />\n\n <div className=\"File-claimbot-card-content\">\n {finishButtonVisible ? <FinishButton /> : null}\n\n {petSelectorVisible ? (\n <PetSelector\n onPetItemPress={onPetItemPress}\n pets={pets}\n selectedPet={selectedPet}\n />\n ) : null}\n\n {policySelectorVisible ? (\n <PolicySelector\n onPolicyItemPress={onPolicyItemPress}\n policies={selectedPetPolicies}\n selectedPolicy={policySelected}\n />\n ) : null}\n\n {dateInputVisible ? (\n <DateInput\n maxDate={maxCoverageDate}\n minDate={minCoverageDate}\n onSelectedValidDate={onSelectedValidDate}\n selectedDate={selectedDate}\n />\n ) : null}\n\n {claimSelectorVisible ? (\n <ClaimSelector\n claimTypes={claimTypes}\n claimTypeSelected={claimTypeSelected}\n onSelectClaimType={onSelectClaimType}\n />\n ) : null}\n\n {textInputVisible ? (\n <TextInput\n onTextInputChanged={onTextInputChanged}\n textInputValue={textInputValue}\n />\n ) : null}\n\n {textInputSingleLineVisible ? (\n <TextInputSingleLine\n onTextInputChanged={onTextInputChanged}\n textInputValue={textInputValue}\n />\n ) : null}\n\n {attSelectorVisible ? (\n <AttachmentSelector\n attachments={attachments}\n onAddAttachment={onAddAttachment}\n onRemoveAttachment={onRemoveAttachment}\n />\n ) : null}\n\n {amountInputVisible ? (\n <AmountInput\n number={amountInput}\n onChange={onAmountInputChanged}\n placeholder={t('amountInput.placeholder')}\n title={t('amountInput.title')}\n type=\"text\"\n useCurrencyFormat\n />\n ) : null}\n\n {routingNumberVisible ? (\n <AmountInput\n number={routingNumber}\n onChange={onRoutingNumberChanged}\n placeholder={t('routingNumberInput.placeholder')}\n title={t('routingNumberInput.title')}\n />\n ) : null}\n\n {accountNumberVisible ? (\n <AmountInput\n number={accountNumber}\n onChange={onAccountNumberChanged}\n placeholder={t('accountNumberInput.placeholder')}\n title={t('accountNumberInput.title')}\n />\n ) : null}\n\n {twoOptSelectVisible ? (\n <TwoOptionsSelector\n onOneOptionSelected={onOneOptionSelected}\n optionSelected={optionSelected}\n twoOptions={twoOptions}\n />\n ) : null}\n\n {multiOptSelectVisible ? (\n <MultipleOptionsSelector\n multipleOptions={multipleOptions}\n onOneOptionSelected={onOneOptionSelected}\n optionSelected={optionSelected}\n />\n ) : null}\n\n {claimSummaryVisible ? (\n <ClaimSummary\n claimSummaryInfo={claimSummaryInfo}\n selectedPet={selectedPet}\n />\n ) : null}\n\n {signAndSubmitVisible ? (\n <SignAndSubmit\n onSignatureTextChanged={onSignatureTextChanged}\n onSignatureTypeSelection={onSignatureTypeSelection}\n signature={signature}\n signatureText={signatureText}\n signatureTypeSelected={signatureTypeSelected}\n />\n ) : null}\n\n {submitClaim.loading || loadingAdditionalSteps\n || loadingPolicyByDate ? <FigoLottie /> : null}\n\n {claimSubmittedVisible ? (\n <ClaimSubmitted\n policyBrandName={policyBrandName}\n selectedPolicy={policySelected}\n success={submitClaim.success}\n />\n ) : null}\n </div>\n\n {unknowStepVisible\n ? (<span>UNKNOWN STEP {currentStep.KeyName}</span>) : null}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport { FileClaimbotScreen };\n","import { useEffect } from 'react';\nimport { useRouteMatch, useHistory, useLocation } from 'react-router-dom';\nimport { useQuery } from './useQuery';\nimport {\n getRouteParams,\n base64ToObject,\n objectToBase64,\n toPascalCase,\n} from '../services/utils';\n\nconst useBreadcrumbNavigation = ({\n navigationParam,\n homeData = { id: 0 },\n routeFormat,\n navTree = null,\n}) => {\n const query = useQuery();\n const match = useRouteMatch();\n const history = useHistory();\n const location = useLocation();\n const navData = base64ToObject(query.get(navigationParam), []);\n const urlParams = getRouteParams(routeFormat);\n\n function onBreadcrumbItemClick(newItem) {\n const newIndex = navData.findIndex((item) => item.id === newItem.id);\n const newDataObj = navData.slice(0, newIndex + 1);\n let search = '';\n if (newDataObj.length > 1) {\n const newData = objectToBase64(newDataObj);\n search = `?${navigationParam}=${newData}`;\n }\n if (homeData.id === newItem.id) {\n history.push(`${match.path}`);\n } else {\n const newRoute = `${match.path}/${urlParams\n .map((param) => newItem[param]).join('/')}`;\n history.push(`${newRoute}${search}`);\n }\n }\n\n function onAddBreadcrumbItem(newItem, replace = false) {\n let itemsToAdd = [];\n if (!navData.length) {\n const item = {};\n urlParams.forEach((param) => {\n item[param] = homeData[param];\n });\n itemsToAdd = itemsToAdd.concat(item);\n }\n\n if (newItem) {\n itemsToAdd = itemsToAdd.concat(newItem);\n }\n\n const newDataObj = navData.concat(...itemsToAdd);\n const newData = objectToBase64(newDataObj);\n const search = `?${navigationParam}=${newData}`;\n\n if (replace) {\n history.replace(`${location.pathname}${search}`);\n } else {\n const newRoute = `${match.path}/${urlParams\n .map((param) => newItem[param]).join('/')}`;\n history.push(`${newRoute}${search}`);\n }\n }\n\n function findItem({ allParents = false, array, searchId }) {\n let newTree = [];\n array.forEach((item) => {\n if (String(item.Id) === String(searchId)) {\n newTree = newTree.concat(item);\n // TODO: Remove 'Childrens' validation when v2 is complete\n } else if ((item?.Childrens && item?.Childrens.length)\n || (item?.Folders && item?.Folders.length)) {\n const foundItems = findItem({\n allParents,\n array: item?.Childrens || item?.Folders,\n searchId,\n });\n newTree = [\n ...newTree,\n ...foundItems,\n ];\n if (foundItems.length && allParents) {\n newTree = [...newTree, item];\n }\n }\n });\n return newTree;\n }\n\n function createRoute(source, searchId) {\n return findItem({ allParents: true, array: source, searchId }).reverse();\n }\n\n function onDirectNavigation(newDestinyItem) {\n const newNavDataItems = createRoute(navTree, newDestinyItem.id);\n let newNavData = [];\n const homeItem = {};\n urlParams.forEach((param) => {\n homeItem[param] = homeData[param];\n });\n const newItems = newNavDataItems.map((item) => {\n const newItem = {};\n urlParams.forEach((param) => {\n newItem[param] = item[toPascalCase(param)];\n });\n return newItem;\n });\n newNavData = [homeItem, ...newItems];\n\n const newData = objectToBase64(newNavData);\n const search = `?${navigationParam}=${newData}`;\n\n const lastItem = newNavData[newNavData.length - 1];\n const newRoute = `${match.path}/${urlParams\n .map((param) => lastItem[param]).join('/')}`;\n history.push(`${newRoute}${search}`);\n }\n\n useEffect(() => {\n if (!navData.length) {\n onAddBreadcrumbItem(null, true);\n if (!match.isExact) {\n const newItem = {};\n const replacement = location.pathname.replace(`${match.path}/`, '');\n const currentValues = replacement.split('/');\n urlParams.forEach((param, index) => {\n newItem[param] = currentValues[index];\n });\n onAddBreadcrumbItem(newItem, true);\n }\n }\n }, []);\n\n return {\n navData,\n onAddBreadcrumbItem,\n onBreadcrumbItemClick,\n onDirectNavigation,\n };\n};\n\nexport { useBreadcrumbNavigation };\n","export default __webpack_public_path__ + \"static/media/add.3e49a9c5.svg\";","export default __webpack_public_path__ + \"static/media/black-folder.803d8cbe.svg\";","export default __webpack_public_path__ + \"static/media/download-circle-black.36d075e7.svg\";","export default __webpack_public_path__ + \"static/media/edit-black.50e8dcbd.svg\";","export default __webpack_public_path__ + \"static/media/move-arrow-black.2db71fce.svg\";","export default __webpack_public_path__ + \"static/media/tag-black.0a810cbf.svg\";","export default __webpack_public_path__ + \"static/media/thrash-black.4149194b.svg\";","import React from 'react';\nimport TouchableDiv from './TouchableDiv';\nimport './OverlayContainer.css';\n\nconst OverlayContainer = ({\n isVisible = true,\n onClick,\n id,\n children,\n className = '',\n}) => (\n <>\n {isVisible && (\n <TouchableDiv\n className={`My-account-menu-overlay ${className}`}\n id={id}\n onClick={onClick}\n />\n )}\n {children}\n </>\n);\n\nexport { OverlayContainer };\n","export default __webpack_public_path__ + \"static/media/triple-dots.dd4c99b8.svg\";","import React from 'react';\nimport { doNothing } from '../../services/utils';\nimport './TripleDotMenu.css';\n\nconst TripleDotMenuOption = ({\n handleOnClickOption = () => { },\n itemId,\n option,\n}) => {\n function handleClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n handleOnClickOption(option);\n }\n\n const { isDisabled } = option;\n\n return (\n <li\n aria-selected=\"false\"\n className={isDisabled\n ? 'Dot-menu-item-container-disabled Flex'\n : 'Dot-menu-item-container Flex'}\n id={`dotMenuItem-${itemId}-${option.id}`}\n onClick={isDisabled ? doNothing : handleClick}\n onKeyPress={isDisabled ? doNothing : handleClick}\n role=\"option\"\n tabIndex={-1}\n >\n <img alt=\"\" src={option.icon} />\n\n <span>{option.text}</span>\n </li>\n );\n};\n\nexport { TripleDotMenuOption };\n","import React, { useState } from 'react';\nimport TouchableDiv from './TouchableDiv';\nimport { OverlayContainer } from './OverlayContainer';\nimport tripleDots from '../../assets/inboxDocs/triple-dots.svg';\nimport { TripleDotMenuOption } from './TripleDotMenuOption';\n\nimport './TripleDotMenu.css';\n\nconst TripleDotMenu = ({\n displayingFolderContent = false,\n itemId = 0,\n options = [],\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [displayUp, setDisplayUp] = useState(false);\n\n function handleOnClickOption(option) {\n setIsVisible(false);\n option.onClick(option);\n }\n\n function handleOnClick(event) {\n setIsVisible(!isVisible);\n event.stopPropagation();\n }\n\n return (\n <>\n <TouchableDiv\n className={`Dot-menu-button ${isVisible\n ? ' Dot-menu-button-active' : ''}`}\n id={`tripleDots${itemId}`}\n onClick={handleOnClick}\n >\n <img alt=\"\" className=\"Dot-menu-dots-image\" src={tripleDots} />\n </TouchableDiv>\n\n <div\n ref={(menuRef) => {\n if (isVisible && menuRef) {\n const bottomPosition = menuRef.getBoundingClientRect().bottom;\n\n if (window.innerHeight - bottomPosition < 0) {\n setDisplayUp(true);\n }\n }\n }}\n className={`Dot-menu-container \n ${isVisible ? '' : 'Dot-menu-container-hidden'}\n ${displayUp ? 'Dot-menu-display-upwards' : ''}\n Dot-menu-container-redesign \n ${displayingFolderContent\n && 'Dot-menu-folder-content'}`}\n >\n <OverlayContainer\n className=\"Dot-menu-overlay-container\"\n id={`dotMenuOverlay${itemId}`}\n onClick={handleOnClick}\n >\n <ul>\n {options.map((option) => (\n <TripleDotMenuOption\n key={`${option.id}-${itemId}`}\n handleOnClickOption={handleOnClickOption}\n itemId={itemId}\n option={option}\n />\n ))}\n </ul>\n </OverlayContainer>\n </div>\n </>\n );\n};\n\nexport { TripleDotMenu };\n","export default __webpack_public_path__ + \"static/media/chevron-fill.a81165a3.svg\";","export default __webpack_public_path__ + \"static/media/check-onyx.d3dac6c4.svg\";","import React from 'react';\n\nimport checkIcon from '../../../assets/check-onyx.svg';\n\nimport './ListItem.css';\n\nconst ListItem = ({\n item,\n liRef,\n onClick = () => { },\n onKeyDown = () => { },\n selected,\n}) => (\n <li\n ref={liRef}\n aria-selected=\"false\"\n className={'List-item-container'\n + `${selected ? ' List-item-selected' : ''}`}\n onClick={onClick}\n onKeyDown={onKeyDown}\n role=\"option\"\n tabIndex={-1}\n >\n <span className={`List-item List-item-${item.level}`} tabIndex={-1}>\n {item.label}\n </span>\n\n {selected && (\n <img alt=\"\" src={checkIcon} />\n )}\n </li>\n);\n\nexport { ListItem };\n","import React, { useState, useRef, useEffect } from 'react';\n\nimport arrowDownFilled from '../../../assets/chevron-fill.svg';\n\nimport ScrollableDiv from '../ScrollableDiv';\nimport Shimmer from '../Shimmer';\nimport TouchableDiv from '../TouchableDiv';\nimport { ListItem } from './ListItem';\nimport './Dropdown.css';\n\nconst DOWN_KEY = 40;\nconst ENTER_KEY = 13;\nconst ESC_KEY = 27;\nconst LEFT_KEY = 37;\nconst RIGHT_KEY = 39;\nconst SPACE_KEY = 32;\nconst UP_KEY = 38;\n\nfunction handleKeyDown(event) {\n const ignoredKeys = [DOWN_KEY, LEFT_KEY, RIGHT_KEY,\n UP_KEY, SPACE_KEY];\n if (ignoredKeys.indexOf(event.keyCode) > -1) {\n event.preventDefault();\n }\n}\n\nconst Dropdown = ({\n ariaProps = {},\n disabled = false,\n error = '',\n id = 'dropdown',\n label = '',\n labelClass = '',\n onSelectionChanged = () => { },\n options = [],\n placeholder = '',\n showShimmer = false,\n title = '',\n value,\n}) => {\n const [open, setOpen] = useState(false);\n const [itemSelectedId, setItemSelectedId] = useState(0);\n const selectedItemRef = useRef(null);\n const dropdownHeaderRef = useRef(null);\n const containerItemRef = useRef(null);\n\n useEffect(() => {\n if (value) {\n setItemSelectedId(value.id);\n }\n }, [value]);\n\n function setActiveDescendant(currentRef) {\n if (currentRef && selectedItemRef.current) {\n const selectedItemId = selectedItemRef.current.getAttribute('id');\n currentRef.setAttribute('aria-activedescendant', selectedItemId);\n }\n }\n\n function scrollItemListToView() {\n if (selectedItemRef.current) {\n containerItemRef.current.scrollTo(\n 0, selectedItemRef.current.offsetTop - 5,\n );\n }\n }\n\n useEffect(() => {\n if (open) {\n if (dropdownHeaderRef.current) {\n setActiveDescendant(dropdownHeaderRef.current);\n }\n\n if (selectedItemRef.current) {\n scrollItemListToView();\n }\n\n window.addEventListener('keydown', handleKeyDown, true);\n } else if (dropdownHeaderRef.current) {\n dropdownHeaderRef.current.focus();\n }\n\n return () => {\n if (open) {\n window.removeEventListener('keydown', handleKeyDown, true);\n }\n };\n }, [open]);\n\n useEffect(() => {\n scrollItemListToView();\n setActiveDescendant(dropdownHeaderRef.current);\n }, [itemSelectedId]);\n\n function toggle() {\n if (!disabled) {\n setOpen((prevOpen) => !prevOpen);\n }\n }\n\n const handleItemClick = (item) => (event) => {\n if (event.type === 'click') {\n toggle();\n }\n\n onSelectionChanged(item);\n setItemSelectedId(item.id);\n };\n\n function handleKeyPress(event) {\n if (disabled) {\n return;\n }\n const { keyCode } = event;\n switch (keyCode) {\n case UP_KEY:\n case DOWN_KEY: {\n const factor = keyCode === UP_KEY ? -1 : 1;\n const temp = options\n .findIndex((element) => element.id === itemSelectedId);\n if (options[temp + factor]) {\n const newId = options[temp + factor].id;\n setItemSelectedId(newId);\n }\n break;\n }\n\n case ESC_KEY: {\n setOpen(false);\n if (dropdownHeaderRef.current) {\n dropdownHeaderRef.current.focus();\n }\n break;\n }\n\n case ENTER_KEY: {\n const item = options.find((option) => option.id === itemSelectedId);\n\n if (item && open) {\n handleItemClick(item)(event);\n }\n break;\n }\n\n default:\n break;\n }\n }\n\n function handleOutsideClick() {\n setOpen(false);\n }\n\n return (\n <div\n className={'Dropdown-container'\n + `${error ? ' Dropdown-container-error' : ''}`}\n >\n <label className={`Dropdown-label ${labelClass}`} htmlFor={id}>\n {label}\n </label>\n\n <Shimmer\n ariaProps={{\n ...ariaProps,\n 'aria-activedescendant': `${id}-options`,\n 'aria-controls': `${id}-options`,\n 'aria-expanded': open,\n 'aria-label': `${title} selector`,\n title: `${value ? value.label : 'None'} selected`,\n }}\n className={'Dropdown-header'\n + `${disabled ? ' Dropdown-header-disabled' : ''}`}\n compRef={dropdownHeaderRef}\n element=\"touchableDiv\"\n id={id}\n onClick={toggle}\n onKeyDown={handleKeyPress}\n tabIndex={0}\n visible={showShimmer}\n >\n <div className=\"Dropdown-selected-item No-clicked\">\n <p\n className={!value?.label && placeholder\n ? 'Dropdown-placeholder' : ''}\n >\n {value?.label || placeholder}\n </p>\n </div>\n\n <div className=\"No-clicked\" tabIndex={-1}>\n <img\n alt=\"\"\n aria-hidden=\"true\"\n src={arrowDownFilled}\n />\n </div>\n </Shimmer>\n\n <span aria-live=\"polite\" className=\"Dropdown-error\">{error}</span>\n\n {open && (\n <ScrollableDiv\n className=\"Dropdown-list\"\n divRef={containerItemRef}\n >\n <TouchableDiv\n ariaProps={{ 'aria-hidden': true }}\n className=\"Dropdown-list-overlay-container\"\n id={`${id}-overlay`}\n onClick={handleOutsideClick}\n tabIndex={0}\n />\n\n <ul aria-labelledby={id} id={`${id}-options`}>\n {options.map((item) => (\n <ListItem\n key={item.id}\n item={item}\n liRef={item.id === itemSelectedId ? selectedItemRef : null}\n onClick={handleItemClick(item)}\n onKeyDown={handleKeyPress}\n selected={item.id === itemSelectedId}\n />\n ))}\n </ul>\n </ScrollableDiv>\n )}\n </div>\n );\n};\n\nexport { Dropdown };\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { Dropdown } from '../../common/dropdown/Dropdown';\nimport {\n moveFiles,\n moveFilesRestarted,\n moveFolder,\n moveFolderRestarted,\n showAlert,\n} from '../../../actions';\nimport './MoveModal.css';\nimport { INBOX_DOCS } from '../../../constants';\nimport { generateFileTreeOptions } from '../../../services/utils';\nimport { GenericModal } from '../../common/petCloud';\n\nconst MoveModal = ({\n goToNewFolder = () => { },\n onClose = () => { },\n isTrashScreen = false,\n selectedFoldersIds = [],\n selectedItemsIds = [],\n show,\n title = '',\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n const [optionSelected, setOptionSelected] = useState(null);\n const [showError, setShowError] = useState(false);\n\n const store = useSelector(({ inboxAndDocs }) => inboxAndDocs, shallowEqual);\n const {\n movingFiles,\n moveFolder: {\n loading: movingFolder,\n success: folderMoved,\n },\n filesMovedSuccesfully,\n folderStructure,\n errorOnAction,\n } = store;\n const dispatch = useDispatch();\n\n function handleClose() {\n dispatch(moveFilesRestarted());\n dispatch(moveFolderRestarted());\n onClose();\n }\n\n useEffect(() => {\n if (!movingFiles && errorOnAction) {\n dispatch(showAlert({ type: 'error' }));\n handleClose();\n }\n }, [errorOnAction]);\n\n const optionsGenerated = useMemo(\n () => {\n const fullTree = generateFileTreeOptions({\n folders: folderStructure,\n hiddenFolderId: INBOX_DOCS.trash,\n level: 0,\n });\n return isTrashScreen && selectedFoldersIds.length\n ? fullTree.filter((node) => node.level === 0)\n : fullTree;\n },\n [folderStructure, isTrashScreen, selectedFoldersIds.length],\n );\n\n useEffect(() => () => {\n if (show) {\n setOptionSelected(null);\n setShowError(false);\n }\n }, [show]);\n\n function handleFilesMoved() {\n handleClose();\n dispatch(moveFilesRestarted());\n if (optionSelected) {\n goToNewFolder({\n id: optionSelected.id,\n name: optionSelected.label,\n });\n }\n }\n\n function handleOptionChanged(newOption) {\n if (showError) {\n setShowError(false);\n }\n setOptionSelected(newOption);\n }\n\n function moveItems() {\n if (!optionSelected) {\n setShowError(true);\n return;\n }\n\n if (selectedItemsIds.length) {\n dispatch(moveFiles({\n destinationFolderId: optionSelected.id,\n filesIds: selectedItemsIds,\n }));\n }\n\n if (selectedFoldersIds.length) {\n selectedFoldersIds.forEach((id) => {\n dispatch(moveFolder({\n destinationFolderId: optionSelected.id,\n folderIdToMove: id,\n }));\n });\n }\n }\n\n function handleCancel() {\n if (!movingFiles) {\n handleClose();\n }\n }\n\n return (\n <GenericModal\n handleOutClick={handleClose}\n loadingPrimary={movingFiles || movingFolder}\n onPrimaryClick={moveItems}\n onPrimarySuccess={handleFilesMoved}\n onSecondaryClick={handleCancel}\n primaryButtonDisabled={!optionSelected}\n primaryButtonText={t('moveModal.move')}\n secondaryButtonText={t('moveModal.cancel')}\n show={show}\n successPrimary={filesMovedSuccesfully || folderMoved}\n title={title || t('moveModal.title')}\n >\n <div className=\"Width100\">\n <span className=\"Move-to-text\">{t('moveModal.moveTo')}</span>\n\n <div className=\"Move-action-dropdown\">\n <Dropdown\n error={showError ? t('moveModal.required') : ''}\n onSelectionChanged={handleOptionChanged}\n options={optionsGenerated}\n placeholder={t('moveModal.placeholderDropdown')}\n value={optionSelected}\n />\n </div>\n </div>\n </GenericModal>\n );\n};\n\nexport { MoveModal };\n","import React from 'react';\nimport Form from 'react-bootstrap/Form';\nimport InputGroup from 'react-bootstrap/InputGroup';\nimport TouchableDiv from './TouchableDiv';\nimport './FigoInput.css';\n\nconst FigoInput = ({\n ariaProps,\n asElement = 'input',\n className,\n controlId,\n counterClassName = '',\n description,\n disabled = false,\n error = '',\n hit,\n inputName,\n inputRef,\n maxLength,\n onBlur,\n onChange,\n onFocus,\n onKeyPress,\n placeholder,\n renderError,\n title,\n type = 'text',\n unit,\n unitClassName,\n value,\n withCounter = false,\n}) => (\n <Form.Group controlId={controlId}>\n <TouchableDiv>\n {title && <Form.Label>{title}</Form.Label>}\n </TouchableDiv>\n\n <InputGroup>\n <Form.Control\n ref={inputRef}\n as={asElement}\n className={`FigoInput-input ${className || ''} `\n + `${error && 'Input-error'} ${disabled && 'Input-disabled'}`}\n disabled={disabled}\n maxLength={maxLength}\n name={inputName}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n onKeyPress={onKeyPress}\n placeholder={placeholder}\n type={type}\n value={value}\n {...ariaProps}\n />\n\n {unit && (\n <InputGroup.Append>\n <InputGroup.Text\n className={`${unitClassName || ''} ${error && 'Input-error'}`}\n tabIndex={-1}\n >\n {unit}\n </InputGroup.Text>\n </InputGroup.Append>\n )}\n </InputGroup>\n\n {description && !error\n && <span className=\"FigoInput-description\">{description}</span>}\n\n {withCounter\n && (\n <span className={`FigoInput-counter ${counterClassName}`}>\n {value.length}/{maxLength}\n </span>\n )}\n\n {error && renderError && (\n <p className=\"Error-label\">\n {renderError(error)}\n </p>\n )}\n\n {!error && hit && (<span className=\"FigoInput-hit\">{hit}</span>)}\n </Form.Group>\n);\n\nexport default FigoInput;\n","import React, { useState, useEffect } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport {\n changeName,\n changeNameRestarted,\n} from '../../../actions';\nimport FigoInput from '../../common/FigoInput';\nimport { NAME_MAX_LENGTH } from '../../../constants';\nimport { removeEmojis } from '../../../services/utils';\nimport { GenericModal } from '../../common/petCloud';\n\nconst RenameModal = ({\n isFolder,\n itemId,\n itemName,\n onClose = () => { },\n onSuccess = () => { },\n show = false,\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n const dispatch = useDispatch();\n const [fieldError, setFieldError] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [name, setName] = useState(itemName);\n const [isEmpty, setIsEmpty] = useState(false);\n const store = useSelector(({ inboxAndDocs }) => inboxAndDocs, shallowEqual);\n const {\n loading,\n nameChangedSuccessfully,\n nameChangeError,\n nameChangeLoading,\n } = store;\n\n const type = isFolder ? t('renameModal.folder') : t('renameModal.file');\n const maxLength = isFolder ? NAME_MAX_LENGTH.folder : NAME_MAX_LENGTH.file;\n const noChangedDetected = name === itemName;\n\n useEffect(() => {\n setFieldError(nameChangeError);\n setIsLoading(loading);\n }, [nameChangeError, loading]);\n\n function handleOnBlur() {\n if (isEmpty) {\n setFieldError(t('renameModal.requiredError'));\n }\n }\n\n function handleOnChange({ target: { value } }) {\n const error = value ? null : t('renameModal.requiredError');\n const cleanValue = removeEmojis(value);\n\n setName(cleanValue);\n setIsEmpty(!cleanValue.trim());\n setFieldError(error);\n }\n\n function renderInputError(error) {\n return <span>{error}</span>;\n }\n\n function handleOnClose() {\n if (!isLoading) {\n setName(itemName);\n setFieldError(null);\n dispatch(changeNameRestarted());\n onClose();\n }\n }\n\n function handleOnSave() {\n setIsLoading(true);\n dispatch(changeName({ isFolder, itemId, newName: name, type }));\n }\n\n function handleOnSucces() {\n dispatch(changeNameRestarted());\n onSuccess();\n onClose();\n }\n\n return (\n <GenericModal\n handleOutClick={handleOnClose}\n loadingPrimary={nameChangeLoading}\n onPrimaryClick={handleOnSave}\n onPrimarySuccess={handleOnSucces}\n onSecondaryClick={handleOnClose}\n primaryButtonDisabled={isEmpty || isLoading || noChangedDetected}\n primaryButtonText={t('renameModal.save')}\n secondaryButtonText={t('renameModal.cancel')}\n show={show}\n successPrimary={nameChangedSuccessfully}\n title={t('renameModal.title', { type })}\n >\n <div className=\"Width100\">\n <FigoInput\n disabled={isLoading}\n error={fieldError}\n maxLength={maxLength}\n onBlur={handleOnBlur}\n onChange={handleOnChange}\n placeholder={t('renameModal.suggestions')}\n renderError={renderInputError}\n title={t('renameModal.label', { type })}\n value={name}\n />\n </div>\n </GenericModal>\n );\n};\n\nexport { RenameModal };\n","import React, { useMemo } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n deleteFiles,\n deleteFolder,\n deleteRestarted,\n moveFolderRestarted,\n} from '../../../actions';\nimport { GenericModal } from '../../common/petCloud/GenericModal';\n\nconst DeleteModal = ({\n isFolder = false,\n isTrashScreen = false,\n itemExtension = '',\n itemName = '',\n onClose = () => { },\n onSuccess = () => { },\n selectedFolderIds = [],\n selectedItemsIds = [],\n show = false,\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n const dispatch = useDispatch();\n const store = useSelector(({ inboxAndDocs }) => inboxAndDocs, shallowEqual);\n const {\n folderDeleteLoading,\n itemDeletedSuccesfully,\n itemDeleteLoading,\n loading,\n moveFolder: movingFolder,\n } = store;\n\n const isLoading = itemDeleteLoading\n || folderDeleteLoading\n || loading\n || movingFolder.loading;\n\n const isSuccess = itemDeletedSuccesfully || movingFolder.success;\n\n function handleOnSuccess() {\n dispatch(deleteRestarted());\n dispatch(moveFolderRestarted());\n onSuccess();\n onClose();\n }\n\n async function handleOnConfirm() {\n if (selectedFolderIds.length > 0) {\n dispatch(deleteFolder({ folderId: selectedFolderIds[0] }));\n }\n\n if (selectedItemsIds.length > 0) {\n dispatch(deleteFiles({ fileIds: selectedItemsIds }));\n }\n }\n\n const deleteTitle = useMemo(() => {\n const count = selectedItemsIds.length;\n\n if (isFolder) {\n const titleFolder = isTrashScreen\n ? 'titleDeleteFolderPermanently' : 'titleDeleteFolder';\n\n return t(`deleteInboxModal.${titleFolder}`);\n }\n\n const title = isTrashScreen ? 'titleDeletePermanently' : 'titleDeleteFile';\n\n return t(`deleteInboxModal.${title}`, { count });\n }, [isFolder, selectedItemsIds, isTrashScreen]);\n\n const deleteMessage = useMemo(() => {\n const count = selectedItemsIds.length;\n\n if (isTrashScreen) {\n return t('deleteInboxModal.messageFilePermanently', { count });\n }\n\n if (isFolder) {\n return t('deleteInboxModal.messageFolder', { name: itemName });\n }\n\n return t('deleteInboxModal.messageFile', {\n count,\n name: itemName,\n });\n }, [isFolder, isTrashScreen, itemExtension, itemName, selectedItemsIds]);\n\n return (\n <GenericModal\n description={deleteMessage}\n handleOutClick={onClose}\n isDeleteAction\n loadingPrimary={isLoading}\n onPrimaryClick={handleOnConfirm}\n onPrimarySuccess={handleOnSuccess}\n onSecondaryClick={onClose}\n primaryButtonText={t('deleteInboxModal.delete')}\n secondaryButtonText={t('deleteInboxModal.cancel')}\n show={show}\n successPrimary={isSuccess}\n title={deleteTitle}\n />\n );\n};\n\nexport { DeleteModal };\n","import React, { useMemo, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport { useCustomerInboxDocsApiV2 } from '../../hooks';\n\nimport folderIcon from '../../assets/inboxDocs/black-folder.svg';\n\nimport downloadIcon\nfrom '../../assets/inboxDocsMultibrand/download-circle-black.svg';\nimport editIcon\nfrom '../../assets/inboxDocsMultibrand/edit-black.svg';\nimport moveIcon from '../../assets/inboxDocsMultibrand/move-arrow-black.svg';\nimport tagIcon from '../../assets/inboxDocsMultibrand/tag-black.svg';\nimport trashIcon from '../../assets/inboxDocsMultibrand/thrash-black.svg';\n\nimport { TripleDotMenu } from '../common/TripleDotMenu';\nimport { MoveModal } from './modals/MoveModal';\nimport { RenameModal } from './modals/RenameModal';\nimport { DeleteModal } from './modals/DeleteModal';\nimport {\n DEFAULT_FILE_PERMISSION,\n EDIT_FILE_PERMISSIONS,\n INBOX_DOCS,\n PERMISSIONS_INBOX_DOCS,\n} from '../../constants';\nimport {\n downloadFiles,\n loadFolderStructure,\n refreshFolderContent,\n} from '../../actions';\n\nconst InboxAndDocsMenu = ({\n displayingFolderContent = false,\n filePermissions = [],\n folderPermissions = [],\n goToFolder = () => { },\n isFolder,\n itemId,\n itemInfo,\n onEditTagPetClick = () => { },\n parentFolderId = 0,\n}) => {\n const dispatch = useDispatch();\n const store = useSelector(({ inboxAndDocs }) => ({\n inboxAndDocs,\n }), shallowEqual);\n\n const { folderStructure } = store.inboxAndDocs;\n\n const [moveModalVisible, setMoveModalVisible] = useState(false);\n const [renameModalVisible, setRenameModalVisible] = useState(false);\n const [deleteModalVisible, setDeleteModalVisible] = useState(false);\n const { t } = useTranslation('inboxAndDocs');\n\n const location = useLocation();\n const folder = location.pathname.split('/').pop();\n const parentId = folder === 'inboxAndDocs' ? INBOX_DOCS.landing : folder;\n\n const itemsToDelete = isFolder ? [] : [itemId];\n const foldersToDelete = isFolder ? [itemId] : [];\n\n const isCustomerInboxDocsApiV2 = useCustomerInboxDocsApiV2();\n\n // File permission use folder permissions\n // (or default if folder second level refresh)\n const filePermissionsByFolder = useMemo(() => {\n const currentFolder = folderStructure\n .find(({ Id }) => String(Id) === String(parentFolderId));\n\n if (isCustomerInboxDocsApiV2) {\n let permissions = [];\n\n if (currentFolder?.CanAddFile) {\n permissions = [...permissions, PERMISSIONS_INBOX_DOCS.addFiles];\n }\n\n if (currentFolder?.CanAddFolder) {\n permissions = [...permissions, PERMISSIONS_INBOX_DOCS.addFolder];\n }\n\n if (currentFolder?.CanEdit) {\n permissions = [...permissions, ...EDIT_FILE_PERMISSIONS];\n }\n\n return [...DEFAULT_FILE_PERMISSION, ...permissions];\n }\n\n return currentFolder?.FilePermissions || DEFAULT_FILE_PERMISSION;\n }, [isCustomerInboxDocsApiV2, folderStructure, parentFolderId]);\n\n const menuOptions = useMemo(() => {\n const permissionsConfig =\n isFolder\n ? folderPermissions\n : filePermissions ?? filePermissionsByFolder;\n\n if (!permissionsConfig) {\n return [];\n }\n\n const permissions = [];\n\n permissionsConfig.forEach((permission) => {\n switch (permission) {\n case PERMISSIONS_INBOX_DOCS.delete:\n permissions.push({\n icon: trashIcon,\n id: 5,\n isReadOnlyVisible: false,\n onClick: () => {\n setDeleteModalVisible(true);\n },\n text: t('menuOptions.delete'),\n });\n break;\n\n case PERMISSIONS_INBOX_DOCS.download:\n permissions.push({\n icon: downloadIcon,\n id: 0,\n isReadOnlyVisible: true,\n onClick: () => {\n if (!isFolder) {\n dispatch(downloadFiles({\n singleFile: true,\n singleFileInfo: itemInfo,\n }));\n } else {\n dispatch(downloadFiles({\n folderIds: [itemId],\n }));\n }\n },\n text: t('menuOptions.download'),\n });\n break;\n\n case PERMISSIONS_INBOX_DOCS.edittag:\n permissions.push({\n icon: tagIcon,\n id: 4,\n isDisabled: !!isFolder,\n isReadOnlyVisible: false,\n onClick: () => { onEditTagPetClick(); },\n text: t('menuOptions.editTag'),\n });\n break;\n\n case PERMISSIONS_INBOX_DOCS.move:\n permissions.push({\n icon: moveIcon,\n id: 2,\n isReadOnlyVisible: false,\n onClick: () => {\n if (!isFolder) {\n setMoveModalVisible(true);\n }\n },\n text: t('menuOptions.move'),\n });\n break;\n\n case PERMISSIONS_INBOX_DOCS.rename:\n permissions.push({\n icon: editIcon,\n id: 3,\n isReadOnlyVisible: false,\n onClick: () => {\n setRenameModalVisible(!renameModalVisible);\n },\n text: t('menuOptions.rename'),\n });\n break;\n\n case PERMISSIONS_INBOX_DOCS.viewinfolder:\n permissions.push({\n icon: folderIcon,\n id: 1,\n isReadOnlyVisible: true,\n onClick: () => {\n goToFolder();\n },\n text: t('menuOptions.viewInFolder'),\n });\n break;\n\n default:\n break;\n }\n });\n\n return permissions;\n }, [filePermissions, folderPermissions, isFolder]);\n\n function reloadParent() {\n dispatch(refreshFolderContent(parentId));\n dispatch(loadFolderStructure());\n }\n\n function handleCloseMoveModal() {\n setMoveModalVisible(false);\n }\n\n function handleCloseRenameModal() {\n setRenameModalVisible(false);\n }\n\n function handleCloseDeleteModal() {\n setDeleteModalVisible(false);\n }\n\n return (\n <>\n <TripleDotMenu\n displayingFolderContent={displayingFolderContent}\n isFolder={isFolder}\n itemId={itemId}\n options={menuOptions}\n />\n\n {!isFolder && (\n <MoveModal\n goToNewFolder={goToFolder}\n onClose={handleCloseMoveModal}\n selectedItemsIds={[itemId]}\n show={moveModalVisible}\n />\n )}\n\n <RenameModal\n isFolder={isFolder}\n itemExtension={itemInfo.Metadata.Extension}\n itemId={itemId}\n itemName={itemInfo.Name}\n onClose={handleCloseRenameModal}\n onSuccess={reloadParent}\n show={renameModalVisible}\n />\n\n <DeleteModal\n isFolder={isFolder}\n itemExtension={itemInfo.Metadata.Extension}\n itemId={itemId}\n itemName={itemInfo.Name}\n onClose={handleCloseDeleteModal}\n onSuccess={reloadParent}\n selectedFolderIds={foldersToDelete}\n selectedItemsIds={itemsToDelete}\n show={deleteModalVisible}\n />\n </>\n );\n};\n\nexport { InboxAndDocsMenu };\n","export default __webpack_public_path__ + \"static/media/custom-icon.623be3b6.svg\";","export default __webpack_public_path__ + \"static/media/policy.90ec6186.svg\";","export default __webpack_public_path__ + \"static/media/vet-bills.861e325a.svg\";","export default __webpack_public_path__ + \"static/media/pictures-icon.9116d8fa.svg\";","export default __webpack_public_path__ + \"static/media/medical-records-icon.94e3b06a.svg\";","export default __webpack_public_path__ + \"static/media/shots-certificates-icon.dfe64708.svg\";","export default __webpack_public_path__ + \"static/media/claims-icon.30f65cba.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { InboxAndDocsMenu } from './InboxAndDocsMenu';\n\nimport customIcon\nfrom '../../assets/inboxDocsMultibrand/iconsFolder/custom-icon.svg';\nimport policyIcon\nfrom '../../assets/inboxDocsMultibrand/iconsFolder/policy.svg';\nimport vetBillsIcon\nfrom '../../assets/inboxDocsMultibrand/iconsFolder/vet-bills.svg';\nimport picturesIcon\nfrom '../../assets/inboxDocsMultibrand/iconsFolder/pictures-icon.svg';\nimport medicalRecordsIcon\nfrom '../../assets/inboxDocsMultibrand/iconsFolder/medical-records-icon.svg';\nimport shotsAndCertificatesIcon from\n'../../assets/inboxDocsMultibrand/iconsFolder/shots-certificates-icon.svg';\nimport claimsIcon from\n'../../assets/inboxDocsMultibrand/iconsFolder/claims-icon.svg';\n\nimport {\n DEFAULT_FOLDERS_INBOX_AND_DOCS,\n INBOX_DOCS,\n} from '../../constants';\nimport { getNullSafeDate } from '../../services/utils';\nimport { isDefaultFolder } from './inboxAndDocs.utils';\n\nimport './Folder.css';\n\nconst UnreadFiles = ({ amount, dateAdded }) => {\n const { t } = useTranslation('inboxAndDocs');\n\n return (\n <div className=\"Folder-unread-files\">\n {!!amount && (\n <span className=\"Folder-unread-files-amount\">\n {t('unreadFile', { count: amount })}\n </span>\n )}\n\n {dateAdded && !!amount && (\n <span className=\"Folder-unread-files-date\">\n {t('dateAdded', {\n date: getNullSafeDate(dateAdded),\n interpolation: { escapeValue: false },\n })}\n </span>\n )}\n </div>\n );\n};\n\nconst Folder = ({ folder, onClick = () => { } }) => {\n function renderFolderIcon(id) {\n let render;\n switch (id) {\n case INBOX_DOCS.policyDocuments:\n render = policyIcon;\n break;\n case INBOX_DOCS.vetBills:\n render = vetBillsIcon;\n break;\n case INBOX_DOCS.pictures:\n render = picturesIcon;\n break;\n case INBOX_DOCS.medicalRecords:\n render = medicalRecordsIcon;\n break;\n case INBOX_DOCS.shotsCertificates:\n render = shotsAndCertificatesIcon;\n break;\n case INBOX_DOCS.claimDocuments:\n render = claimsIcon;\n break;\n default:\n render = customIcon;\n break;\n }\n return (\n <img\n alt=\"\"\n className=\"Folder-icon-card\"\n src={render}\n />\n );\n }\n\n const defaultFolder = isDefaultFolder(folder.Id);\n\n function handleOnClick(event) {\n if (!event.target.id) {\n return;\n }\n\n onClick();\n }\n\n return (\n <div\n className=\"Flex Folder-container-card\"\n id={`Folder-${folder.Id}`}\n onClick={handleOnClick}\n onKeyDown={null}\n onKeyPress={null}\n role=\"button\"\n tabIndex={-1}\n >\n <div className=\"Flex Flex-column No-clicked Folder-card\">\n {renderFolderIcon(folder.Id)}\n\n <span className={`${!defaultFolder\n ? 'Folder-title-width' : ''} Folder-title`}\n >\n {folder.Name}\n </span>\n\n {defaultFolder && (\n <UnreadFiles\n amount={folder.Metadata.UnReadDocs}\n dateAdded={folder.Metadata.LastAddedDate}\n />\n )}\n </div>\n\n {DEFAULT_FOLDERS_INBOX_AND_DOCS[folder.Id] ? null : (\n <div className=\"Folder-dots-container\">\n <InboxAndDocsMenu\n folderPermissions={folder.FolderPermissions}\n isFolder\n itemId={folder.Id}\n itemInfo={folder}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport { Folder };\n","import { DEFAULT_FOLDERS_INBOX_AND_DOCS } from '../../constants';\n\nexport const isDefaultFolder = (folderId) => {\n const defFolder = DEFAULT_FOLDERS_INBOX_AND_DOCS[folderId];\n\n return !!defFolder;\n};\n","export function goToSelectedFolder({\n folderId = 0,\n folderContent = [],\n breadcrumbs = null,\n}) {\n let selectedFolder = folderContent\n .find((folder) => String(folder.Id) === String(folderId));\n\n if (!selectedFolder) {\n // TODO: Remove 'Childrens' validation when v2 is complete\n const foldersChildrenMtx = folderContent\n .map((folders) => folders?.Childrens || folders?.Folders)\n .filter((child) => child?.length);\n const flatFoldersChildren = foldersChildrenMtx\n .reduce((inputArray, flatArray = []) => inputArray.concat(flatArray));\n\n selectedFolder = flatFoldersChildren\n .find((item) => String(item.Id) === String(folderId));\n }\n\n breadcrumbs.onDirectNavigation({\n id: selectedFolder.Id,\n name: selectedFolder.Name,\n });\n}\n","export default __webpack_public_path__ + \"static/media/trash.46539a0e.svg\";","export default __webpack_public_path__ + \"static/media/upload.f7ce33f5.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport uploaderIcon\nfrom '../../assets/inboxDocsMultibrand/iconsFolder/upload.svg';\nimport './UploadFilesButton.css';\n\nconst UploadFilesButton = ({ onClick = () => { } }) => {\n const { t } = useTranslation('inboxAndDocs');\n\n return (\n <button\n className={'Inbox-and-docs-upload Upload-files-button '\n + 'Round-button'}\n onClick={onClick}\n type=\"button\"\n >\n <img\n alt=\"\"\n className=\"No-clicked\"\n src={uploaderIcon}\n />\n\n <span className=\"No-clicked\">{t('upload')}</span>\n </button>\n );\n};\n\nexport { UploadFilesButton };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\n\nimport { Folder } from './Folder';\n\nimport { goToSelectedFolder } from '../../services/inboxAndDocs';\nimport { INBOX_DOCS } from '../../constants';\nimport { filePermissionsLoaded } from '../../actions';\n\nimport './FoldersSection.css';\n\nimport addFolderIcon from\n'../../assets/inboxDocsMultibrand/iconsFolder/add.svg';\nimport deleteIcon from\n'../../assets/inboxDocsMultibrand/iconsFolder/trash.svg';\n\nimport { UploadFilesButton } from './UploadFilesButton';\n\nconst FoldersSection = ({\n breadcrumbs = {},\n folders = [],\n onAddFolder = () => { },\n onOpenUpload = () => { },\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n const dispatch = useDispatch();\n\n const goToFolder = (folder) => () => {\n const folderId = folder.Id;\n const filePermissions = folder.FilePermissions;\n dispatch(filePermissionsLoaded(filePermissions));\n goToSelectedFolder({ breadcrumbs, folderContent: folders, folderId });\n };\n\n const emptyFilePermissionsForThrashThreeDotsFolder = [];\n\n return (\n <div className=\"Folders-section-container Flex Flex-column\">\n <div className=\"Folder-title-section\">\n <span className=\"Folder-title-text\">{t('foldersTitle')}</span>\n\n <div className=\"Buttons-container\">\n <button\n className=\"Round-button\"\n onClick={onAddFolder}\n type=\"button\"\n >\n <img alt=\"\" src={addFolderIcon} />\n\n <span>{t('addFolder')}</span>\n </button>\n\n <UploadFilesButton onClick={onOpenUpload} />\n </div>\n </div>\n\n <div className=\"Folders-items Flex Flex-wrap\">\n {folders.map((folder) => (folder.Id !== INBOX_DOCS.inbox\n && folder.Id !== INBOX_DOCS.trash\n && (\n <Folder\n key={folder.Id}\n folder={folder}\n onClick={goToFolder(folder)}\n />\n )))}\n </div>\n\n <div\n className=\"Folders-section-deleted-files-redesign Flex\"\n id=\"btnViewDeletedFiles\"\n onClick={goToFolder({\n FilePermissions: emptyFilePermissionsForThrashThreeDotsFolder,\n Id: INBOX_DOCS.trash,\n })}\n onKeyDown={null}\n onKeyPress={null}\n role=\"button\"\n tabIndex={-1}\n >\n <div className=\"No-clicked Flex\">\n <img alt=\"\" src={deleteIcon} />\n\n <span>{t('deletedFiles')}</span>\n </div>\n </div>\n </div>\n );\n};\n\nexport { FoldersSection };\n","export default __webpack_public_path__ + \"static/media/inbox.f0ce8a1b.svg\";","export default __webpack_public_path__ + \"static/media/arrow.c01c75b1.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\n\nimport TouchableDiv from '../common/TouchableDiv';\n\nimport inboxIcon from '../../assets/inboxDocsMultibrand/inbox.svg';\nimport arrowIcon from '../../assets/inboxDocs/arrow.svg';\n\nimport { getNullSafeDate } from '../../services/utils';\nimport { INBOX_DOCS } from '../../constants';\n\nimport { filePermissionsLoaded } from '../../actions';\n\nimport './InboxSection.css';\n\nconst InboxSection = ({\n inbox = { Metadata: { LastAddedDate: '', UnReadDocs: 0 } },\n email,\n onClick = () => { },\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n const dispatch = useDispatch();\n const amountFiles = inbox.Metadata.UnReadDocs;\n\n function handleInboxClick() {\n const filePermissions = inbox.FilePermissions;\n dispatch(filePermissionsLoaded(filePermissions));\n\n onClick({ id: INBOX_DOCS.inbox, name: t('inboxTitle') });\n }\n\n return (\n <div>\n <div className=\"Inbox-title\">{t('inboxTitle')}</div>\n\n <TouchableDiv\n className=\"Inbox-card-container Flex\"\n id=\"Inbox\"\n onClick={handleInboxClick}\n >\n <div className=\"Flex No-clicked \">\n <div className=\"Blue-background\">\n <img\n alt=\"\"\n src={inboxIcon}\n />\n </div>\n\n <div className=\"Inbox-card-email-container Flex Flex-column\">\n <span className=\"Inbox-card-email\">{email?.toLowerCase()}</span>\n\n <span className=\"Inbox-card-text\">{t('inboxText')}</span>\n </div>\n </div>\n\n <div className=\"flex No-clicked\">\n {amountFiles > 0 && (\n <div className=\"Inbox-card-unread-files flex flex-column\">\n <span className=\"Inbox-unread-files-amount\">\n {t('unreadFile', { count: amountFiles })}\n </span>\n\n <span className=\"Inbox-unread-files-date\">\n {t('dateAdded', {\n date: getNullSafeDate(inbox.Metadata.LastAddedDate),\n interpolation: { escapeValue: false },\n })}\n </span>\n </div>\n )}\n\n <img\n alt=\"\"\n className=\"Inbox-card-arrow-icon No-clicked\"\n src={arrowIcon}\n />\n </div>\n </TouchableDiv>\n </div>\n );\n};\n\nexport { InboxSection };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\n\nimport { RecentFileIcon } from './RecentFileIcon';\nimport { InboxAndDocsMenu } from '../InboxAndDocsMenu';\n\nimport { getNullSafeDate } from '../../../services/utils';\nimport { useResponsive } from '../../../hooks/useResponsive';\n\nimport { filePermissionsLoaded } from '../../../actions';\n\nimport { PERMISSIONS_INBOX_DOCS } from '../../../constants';\n\nimport './RecentFile.css';\n\nconst RecentFile = ({\n dateAdded = '',\n dateFormat = 'MMM DD, YYYY',\n fileExtension = '',\n fileName = '',\n fileInfo = { IsReadOnly: true, Metadata: { Url: '' }, Name: '' },\n goToFolder = () => { },\n id,\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslation('inboxAndDocs');\n const dateFormated = getNullSafeDate(dateAdded, dateFormat);\n const { isTablet } = useResponsive();\n\n // used on going to file (view file list, as opening from a folder)\n const filePermissionsSiblingFiles = fileInfo.FilePermissions;\n\n // used on this component\n const filePermissionsFixed = [\n PERMISSIONS_INBOX_DOCS.download,\n PERMISSIONS_INBOX_DOCS.viewinfolder,\n ];\n\n function handleViewInFolderClick() {\n dispatch(filePermissionsLoaded(filePermissionsSiblingFiles));\n goToFolder();\n }\n\n return (\n <div className=\"Recent-file-container\">\n <RecentFileIcon\n alt=\"file extension icon\"\n className=\"Recent-file-extension-icon\"\n fileExtension={fileExtension}\n />\n\n <div className=\"Recent-file-name-container\">\n <span className=\"Recent-file-name\">{fileName}</span>\n\n {isTablet ? (\n <div className=\"Recent-file-date-container\">\n <span className=\"Recent-file-added-on\">\n {t('recentActivity.addedOn').replace('{dateFormated}', '')}\n </span>\n\n <span className=\"Recent-file-date-formated\">\n {dateFormated.toUpperCase()}\n </span>\n </div>\n ) : (\n <span className=\"Recent-file-date\">\n {t('recentActivity.addedOn').replace(\n '{dateFormated}',\n dateFormated.toUpperCase(),\n )}\n </span>\n )}\n </div>\n\n <div className=\"Recent-file-dots-container\">\n <InboxAndDocsMenu\n filePermissions={filePermissionsFixed}\n goToFolder={handleViewInFolderClick}\n isFolder={false}\n itemId={id}\n itemInfo={fileInfo}\n />\n </div>\n </div>\n );\n};\n\nexport { RecentFile };\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { getRecentFiles } from '../../../actions';\n\nimport { RecentFile } from './RecentFile';\nimport Shimmer from '../../common/Shimmer';\nimport FigoLoadingOverlay from '../../common/FigoLoadingOverlay';\nimport { goToSelectedFolder } from '../../../services/inboxAndDocs';\n\nimport './RecentActivity.css';\n\nconst RecentActivity = ({\n breadcrumbs = {},\n folders = [],\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(getRecentFiles());\n }, [dispatch]);\n\n const store = useSelector(({\n inboxAndDocs,\n }) => ({\n inboxAndDocs,\n }), shallowEqual);\n\n const {\n downloadingFiles,\n isRecentFilesLoading,\n recentFiles,\n } = store.inboxAndDocs;\n\n const handleGoToFolder = (folderId) => () => {\n goToSelectedFolder({ breadcrumbs, folderContent: folders, folderId });\n };\n\n if (isRecentFilesLoading) {\n return <Shimmer className=\"Recent-activity-shimmer\" />;\n }\n\n return (\n <div className=\"Recent-activity-container\">\n <span className=\"Recent-activity-title\">\n {t('recentActivity.title')}\n </span>\n\n {recentFiles.map((recentFile) => {\n const {\n DateAdded,\n DownloadUrl,\n Extension,\n FileName,\n FilePermissions,\n Id,\n IsReadOnly,\n ParentFolderId,\n } = recentFile;\n\n return (\n <RecentFile\n key={Id}\n dateAdded={DateAdded}\n fileExtension={Extension}\n fileInfo={{\n FilePermissions,\n Id,\n IsReadOnly,\n Metadata: { Extension, Url: DownloadUrl },\n Name: FileName,\n }}\n fileName={FileName}\n goToFolder={handleGoToFolder(ParentFolderId)}\n id={Id}\n />\n );\n })}\n\n <FigoLoadingOverlay\n message={downloadingFiles ? t('preparingFiles') : ''}\n visible={downloadingFiles}\n />\n </div>\n );\n};\n\nexport { RecentActivity };\n","import React from 'react';\nimport './BreadcrumbItem.css';\n\nconst BreadcrumbItem = ({\n children,\n current,\n itemActiveClassName = '',\n itemClassName = '',\n onNav = () => { },\n}) => {\n const styles = {\n breadCrumbActiveItem: itemActiveClassName || 'Breadcrumb-item-active',\n breadCrumbItem: itemClassName || 'Breadcrumb-item',\n };\n\n function handleNav() {\n if (!current) {\n onNav();\n }\n }\n\n return (\n <button\n className={`${styles.breadCrumbItem} ${current\n ? `${styles.breadCrumbActiveItem}` : ''}`}\n onClick={handleNav}\n type=\"button\"\n >\n {children}\n </button>\n );\n};\n\nexport { BreadcrumbItem };\n","import React from 'react';\nimport { BreadcrumbItem } from './BreadcrumbItem';\nimport navNextArrowBlue\nfrom '../../../assets/inboxDocs/nav-next-arrow-blue.png';\nimport './Breadcrumbs.css';\n\nconst Breadcrumbs = ({\n containerClassName = '',\n customNavArrow = null,\n itemActiveClassName = '',\n itemClassName = '',\n labelField,\n navData = [],\n onNavItemClick = () => { },\n}) => {\n const handleClickBreadcrumbItem = (newId) => () => {\n onNavItemClick(newId);\n };\n\n const items = navData.length > 1 && navData.map((item, index) => {\n const breadcrumb = (\n <BreadcrumbItem\n key={item.id}\n current={index === navData.length - 1}\n itemActiveClassName={itemActiveClassName}\n itemClassName={itemClassName}\n onNav={handleClickBreadcrumbItem(item)}\n >\n {item[labelField]}\n </BreadcrumbItem>\n );\n\n if (index < navData.length - 1) {\n return (\n <React.Fragment key={item.id}>\n {breadcrumb}\n\n <img\n alt=\"\"\n src={customNavArrow || navNextArrowBlue}\n />\n </React.Fragment>\n );\n }\n return breadcrumb;\n });\n\n return (\n <div className={`Breadcrumbs ${containerClassName}`}>\n {items}\n </div>\n );\n};\n\nexport { Breadcrumbs };\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADFSURBVHgBldMxDoJAEAXQPxB7EzSxpDLEW9hJ5xHwBh6BI3gD9QR2rh23UEtKE2Nvo+NuYQLisjM/oYDlv2Szs0Ajw8ykyfS4hCJR8yUmWlMcHZLZaQthWsCAeUNATYxCitDvh4ndxouoYiBlwu5xXqxUgBYh34IU8QJSpBeQIFEIuF3zOmaef09nlJlSBbg87fP2rAW34KbTDlhlf0wJvL9f8kIMhMq9gKTsBaTlv4Cm3AG0ZZf2bQRKTbkTN3XjzBSazgdKgml8Qu7iJwAAAABJRU5ErkJggg==\"","export default __webpack_public_path__ + \"static/media/download-circle-blue.58b7450c.svg\";","export default __webpack_public_path__ + \"static/media/mark-as-read.b7da71e3.svg\";","export default __webpack_public_path__ + \"static/media/move-arrow-blue.73e53906.svg\";","export default __webpack_public_path__ + \"static/media/tag-blue.3ea8eba9.svg\";","export default __webpack_public_path__ + \"static/media/thrash-blue.beb00eef.svg\";","export default __webpack_public_path__ + \"static/media/checkbox-check-blue.a8e94572.svg\";","export default __webpack_public_path__ + \"static/media/checkbox-unchecked.877d11a3.svg\";","import React from 'react';\n\nimport checkBlue from '../../assets/checkbox-check-blue.svg';\nimport uncheckedIcon from '../../assets/checkbox-unchecked.svg';\n\nimport './Checkbox.css';\n\nconst Checkbox = ({\n checkboxLabelCustom = '',\n checked = false,\n className = '',\n id = '',\n label = '',\n onChange = () => { },\n}) => {\n function toggle() {\n onChange(!checked);\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label\n className={`Checkbox-common-container ${className}`}\n id={`checkbox${id}-label`}\n >\n <input\n checked={checked}\n id={id}\n name={label}\n onChange={toggle}\n type=\"checkbox\"\n />\n\n <img alt=\"\" src={checked ? checkBlue : uncheckedIcon} />\n\n <span className={checkboxLabelCustom}>{label}</span>\n </label>\n );\n};\n\nexport default Checkbox;\n","export default __webpack_public_path__ + \"static/media/arrow-down-black.6abcfc7a.svg\";","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport TouchableDiv from '../../../common/TouchableDiv';\nimport ScrollableDiv from '../../../common/ScrollableDiv';\nimport Checkbox from '../../../common/Checkbox';\n\nimport arrowDown\nfrom '../../../../assets/inboxDocsMultibrand/arrow-down-black.svg';\n\nimport './PetSelectorMultisSelection.css';\n\nconst PetSelectorMultisSelection = ({\n classContainer = '',\n itemList = [],\n itemListChecked = [],\n onItemClick = () => {},\n isModal = false,\n onResetFilterClick = () => { },\n title,\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n const [open, setOpen] = useState(false);\n\n function toggle() {\n setOpen(!open);\n }\n\n function handleDropDownContainer() {\n toggle();\n }\n\n const handleOnClickItem = (item) => () => {\n onItemClick(item);\n };\n\n function handleOutsideClick() {\n setOpen(false);\n }\n\n const renderHeaderDropdown = () => (\n <div className=\"Pet-selector-new-selected-item\">\n <p>{title}</p>\n </div>\n );\n\n const ItemListElement = ({ item }) => (\n <li\n aria-selected=\"false\"\n className=\"Pet-selector-multi-list-item-container\"\n id={`dropdownItem${item.Id}`}\n onClick={handleOnClickItem(item)}\n onKeyPress={handleOnClickItem(item)}\n role=\"option\"\n tabIndex={-1}\n >\n <Checkbox\n checked={itemListChecked.includes(item)}\n className=\"Pet-selector-multi-list-item\"\n isRounded={false}\n label={item.Name}\n onClick={handleOnClickItem(item)}\n />\n </li>\n );\n\n function renderItems() {\n return (\n <ScrollableDiv\n className={`Pet-selector-multi-list ${\n open ? '' : 'Pet-selector-multi-list-hidden'}`}\n >\n <TouchableDiv\n ariaProps={{ 'aria-hidden': true }}\n className=\"Pet-selector-multi-list-overlayed-container\"\n id=\"dropdownAddPet\"\n onClick={handleOutsideClick}\n tabIndex={0}\n />\n <ul aria-labelledby=\"addPetDropdownContainer\">\n {itemList.map((item) => (\n <ItemListElement key={String(item.PetId)} item={item} />\n ))}\n </ul>\n </ScrollableDiv>\n );\n }\n\n const petSelector = () => (\n <div className={`Pet-selector-new-container ${classContainer}`}>\n <div\n className=\"Pet-selector-new-header\"\n id=\"addPetDropdownContainer\"\n onClick={handleDropDownContainer}\n onKeyPress={handleDropDownContainer}\n role=\"button\"\n tabIndex={0}\n >\n {renderHeaderDropdown()}\n\n <div\n className=\"Pet-selector-multi-arrow-container No-clicked\"\n id=\"arrowContainer\"\n tabIndex={-1}\n >\n <img\n alt=\"arrow\"\n aria-hidden=\"true\"\n className={'Pet-selector-new-arrow-closed '\n + `${open ? 'Pet-selector-new-arrow-open' : ''}`}\n src={arrowDown}\n />\n </div>\n </div>\n\n {renderItems()}\n </div>\n );\n\n return (\n <>\n <div\n className={`Pet-selector-new-main-container ${\n isModal ? 'Full-width' : ''}`}\n >\n {petSelector()}\n\n {!isModal && (\n <div className=\"Pet-selector-new-row\">\n <div className=\"Pet-selector-new-separator\" />\n\n <button\n className=\"Pet-selector-new-reset-label\"\n onClick={onResetFilterClick}\n type=\"button\"\n >\n {t('reset')}\n </button>\n </div>\n )}\n </div>\n </>\n );\n};\n\nexport { PetSelectorMultisSelection };\n","import React from 'react';\n\nimport './InboxAndDocsTableHeader.css';\n\nconst HeaderButtonFileAction = ({\n classNameContainer = '',\n disabled = false,\n handleButtonClick = () => { },\n icon,\n id = '',\n title = '',\n}) => (\n <button\n className={'Docs-header-button-container'\n + ` ${disabled\n ? 'Docs-header-button-disabled' : ''} ${classNameContainer}`}\n id={id}\n onClick={handleButtonClick}\n type=\"button\"\n >\n <img alt=\"\" src={icon} />\n\n <span>{title}</span>\n </button>\n);\n\nexport { HeaderButtonFileAction };\n","export default __webpack_public_path__ + \"static/media/trash-white.4a4f85bd.svg\";","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport TouchableDiv from '../../../common/TouchableDiv';\nimport { doNothing } from '../../../../services/utils';\n\nimport trashIcon from '../../../../assets/inboxDocsMultibrand/trash-white.svg';\n\nimport './PermanentlyDeleteButton.css';\n\nconst PermanentlyDeleteButton = ({\n isDisabled = true,\n onPermanentlyDeleteClick = () => { },\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n const buttonStyling = useMemo(() => {\n const enabled = 'Permanently-delete-button-container';\n const disabled = 'Permanently-delete-button-container-disabled';\n\n return isDisabled ? disabled : enabled;\n }, [isDisabled]);\n\n return (\n <TouchableDiv\n className={buttonStyling}\n id=\"permanentlyDeleteButton\"\n onClick={isDisabled ? doNothing : onPermanentlyDeleteClick}\n >\n <img\n alt=\"\"\n className=\"Permanently-delete-button-icon\"\n src={trashIcon}\n />\n\n <span\n className=\"Permanently-delete-button-text\"\n >\n {t('permanentlyDeleteButton.buttonText')}\n </span>\n </TouchableDiv>\n );\n};\n\nexport { PermanentlyDeleteButton };\n","export default __webpack_public_path__ + \"static/media/restore.77a98a08.svg\";","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport TouchableDiv from '../../../common/TouchableDiv';\nimport { doNothing } from '../../../../services/utils';\n\nimport restoreIcon from '../../../../assets/inboxDocsMultibrand/restore.svg';\n\nimport './RestoreButton.css';\n\nconst RestoreButton = ({\n isDisabled = true,\n onRestoreFilesClick = () => { },\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n const buttonStyling = useMemo(() => {\n const enabled = 'Restore-button-container';\n const disabled = 'Restore-button-container-disabled';\n\n return isDisabled ? disabled : enabled;\n }, [isDisabled]);\n\n return (\n <TouchableDiv\n className={buttonStyling}\n id=\"restoreButton\"\n onClick={isDisabled ? doNothing : onRestoreFilesClick}\n >\n <img\n alt=\"\"\n className=\"Restore-button-icon\"\n src={restoreIcon}\n />\n\n <span className=\"Restore-button-text\">\n {t('restoreButton.buttonText')}\n </span>\n </TouchableDiv>\n );\n};\n\nexport { RestoreButton };\n","import React from 'react';\nimport './TrashHeaderContainer.css';\nimport { PermanentlyDeleteButton } from './PermanentlyDeleteButton';\nimport { RestoreButton } from './RestoreButton';\n\nconst TrashHeaderContainer = ({\n onPermanentlyDeleteClick = {},\n onRestoreFilesClick = () => { },\n isDisabled = false,\n}) => (\n <div className=\"Trash-buttons-container\">\n <PermanentlyDeleteButton\n isDisabled={isDisabled}\n onPermanentlyDeleteClick={onPermanentlyDeleteClick}\n />\n\n <RestoreButton\n isDisabled={isDisabled}\n onRestoreFilesClick={onRestoreFilesClick}\n />\n </div>\n);\n\nexport { TrashHeaderContainer };\n","import React, { useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { createPortal } from 'react-dom';\n\nimport downloadIcon\nfrom '../../../../assets/inboxDocsMultibrand/download-circle-blue.svg';\nimport markAsReadIcon from\n'../../../../assets/inboxDocsMultibrand/mark-as-read.svg';\nimport moveFileIcon\nfrom '../../../../assets/inboxDocsMultibrand/move-arrow-blue.svg';\n\nimport tagFileIcon\nfrom '../../../../assets/inboxDocsMultibrand/tag-blue.svg';\nimport deleteFileIcon\nfrom '../../../../assets/inboxDocsMultibrand/thrash-blue.svg';\n\nimport { PetSelectorMultisSelection } from './PetSelectorMultisSelection';\nimport { HeaderButtonFileAction } from './HeaderButtonFileAction';\nimport { MoveModal } from '../../modals/MoveModal';\nimport { DeleteModal } from '../../modals/DeleteModal';\nimport {\n ACTION_BUTTONS_CONTAINER_ID,\n INBOX_DOCS_PRIVATE_FOLDERS,\n INBOX_DOCS,\n READ_FILE_SOURCE,\n} from '../../../../constants';\nimport {\n downloadFiles,\n loadFolderContent,\n loadFolderStructure,\n markFilesAsRead,\n} from '../../../../actions';\nimport { TrashHeaderContainer } from './TrashHeaderContainer';\nimport { useResponsive } from '../../../../hooks/useResponsive';\n\nconst InboxAndDocsTableHeader = ({\n cleanSelection = () => { },\n currentFolderId = -1,\n fileList = {\n allFiles: [],\n allFolders: [],\n files: [],\n folders: [],\n },\n isEmptyFolder = false,\n onPermanentlyDeleteClick = () => { },\n onPetSelected = () => { },\n onResetFilterClick = () => { },\n onRestoreFilesClick = () => { },\n onTagPetClick = () => { },\n petList = [],\n petListChecked = [],\n petSelectedTitle = '',\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n const dispatch = useDispatch();\n const { isTablet } = useResponsive();\n const [showMoveModal, setShowMoveModal] = useState(false);\n const [showModalDelete, setShowDeleteModal] = useState(false);\n\n const isTrashFolder = String(currentFolderId) === String(INBOX_DOCS.trash);\n const isPrivateFolder = INBOX_DOCS_PRIVATE_FOLDERS\n .includes(String(currentFolderId));\n\n const haveFiles = fileList.files.length > 0;\n const haveFolders = fileList.folders.length > 0;\n const haveAnyMark = fileList.files.length > 0 || fileList.folders.length > 0;\n const markedFiles = fileList.files.length;\n\n const tagPetDisabled = markedFiles !== 1 || haveFolders;\n const markAsReadDisabled = !haveFiles;\n const downloadDisabled = !fileList.allFiles.length\n && !fileList.allFolders.length;\n const trashHeaderDisabled = !haveFiles && !haveFolders;\n const moveHeaderDisabled = !haveFiles || haveFolders;\n const deleteHeaderDisabled = !haveAnyMark || (haveFiles && haveFolders)\n || fileList.folders.length > 1;\n\n function handleDownloadFileClick() {\n let downloadInfo = {};\n const singleFile = fileList.allFiles.length === 1\n && fileList.allFolders.length === 0 ? fileList.allFiles[0] : {};\n\n if (singleFile) {\n downloadInfo = {\n singleFile: true,\n singleFileInfo: singleFile,\n };\n }\n\n if (fileList.allFiles.length > 1 || fileList.allFolders.length) {\n downloadInfo = {\n fileIds: fileList.allFiles.map((item) => item.Id),\n folderIds: fileList.allFolders.map((item) => item.Id),\n };\n }\n\n dispatch(downloadFiles(downloadInfo));\n }\n\n function handleMarkAsReadFileClick() {\n if (fileList.files.length) {\n dispatch(markFilesAsRead({\n filesIds: fileList.files.map((file) => file.Id),\n source: READ_FILE_SOURCE.toolbar,\n }));\n cleanSelection();\n }\n }\n\n function handleMoveFileClick() {\n setShowMoveModal(true);\n }\n\n function handleTagFileClick() {\n const currentFile = fileList.files[0];\n\n onTagPetClick({\n fileId: currentFile.Id,\n previousPetIdTagged: currentFile.PetsId,\n });\n }\n\n function handleDeleteFileClick() {\n setShowDeleteModal(true);\n }\n\n function handleItemClick(item) {\n onPetSelected(item);\n }\n\n function renderOnlyHeader() {\n return (\n <PetSelectorMultisSelection\n classContainer={petList.length !== petListChecked.length\n ? 'Pet-selector-pets-selected' : ''}\n itemList={petList}\n itemListChecked={petListChecked}\n onItemClick={handleItemClick}\n onResetFilterClick={onResetFilterClick}\n title={petSelectedTitle}\n />\n );\n }\n\n function handleCloseMoveModal() {\n setShowMoveModal(false);\n }\n\n function goToFolder() {\n dispatch(loadFolderStructure());\n dispatch(loadFolderContent(currentFolderId));\n }\n\n function getFilesToMoveIds() {\n if (haveFolders) {\n return fileList.folders.map((item) => item.Id);\n }\n\n return fileList.files.map((item) => item.Id);\n }\n\n function handleCloseDeleteModal() {\n setShowDeleteModal(false);\n }\n\n function getFileNameSelected() {\n if (fileList?.files?.length > 0) {\n return fileList.files[0].Name;\n }\n\n return '';\n }\n\n function renderCompleteHeader() {\n return (\n <>\n <MoveModal\n goToNewFolder={goToFolder}\n isFolder={haveFolders}\n onClose={handleCloseMoveModal}\n selectedItemsIds={getFilesToMoveIds()}\n show={showMoveModal}\n />\n\n <DeleteModal\n isFolder={haveFolders}\n itemName={getFileNameSelected()}\n onClose={handleCloseDeleteModal}\n onSuccess={goToFolder}\n selectedFolderIds={fileList.folders.map((item) => item.Id)}\n selectedItemsIds={fileList.files.map((item) => item.Id)}\n show={showModalDelete}\n />\n\n {renderOnlyHeader()}\n\n <HeaderButtonFileAction\n disabled={downloadDisabled}\n handleButtonClick={handleDownloadFileClick}\n icon={downloadIcon}\n id=\"downloadFileHeaderButton\"\n title={t('tableHeaderButtons.download')}\n />\n\n <HeaderButtonFileAction\n disabled={markAsReadDisabled}\n handleButtonClick={handleMarkAsReadFileClick}\n icon={markAsReadIcon}\n id=\"markAsReadFileHeaderButton\"\n title={t('tableHeaderButtons.markAsRead')}\n />\n\n <HeaderButtonFileAction\n disabled={isPrivateFolder || moveHeaderDisabled}\n handleButtonClick={handleMoveFileClick}\n icon={moveFileIcon}\n id=\"moveFileHeaderButton\"\n title={t('tableHeaderButtons.move')}\n />\n\n <HeaderButtonFileAction\n disabled={tagPetDisabled || isPrivateFolder}\n handleButtonClick={handleTagFileClick}\n icon={tagFileIcon}\n id=\"tagFileHeaderButton\"\n title={t('tableHeaderButtons.tag')}\n />\n\n <HeaderButtonFileAction\n disabled={isPrivateFolder || deleteHeaderDisabled}\n handleButtonClick={handleDeleteFileClick}\n icon={deleteFileIcon}\n id=\"deleteFileHeaderButton\"\n title={t('tableHeaderButtons.delete')}\n />\n </>\n );\n }\n\n function conditionalHeaderRender() {\n if (isTrashFolder) {\n const actionButtonsContainer = document\n .getElementById(ACTION_BUTTONS_CONTAINER_ID);\n\n if (!actionButtonsContainer) {\n return null;\n }\n\n return createPortal(\n (<TrashHeaderContainer\n isDisabled={trashHeaderDisabled}\n onPermanentlyDeleteClick={onPermanentlyDeleteClick}\n onRestoreFilesClick={onRestoreFilesClick}\n />), actionButtonsContainer,\n );\n }\n\n if (isEmptyFolder) {\n return renderOnlyHeader();\n }\n\n return renderCompleteHeader();\n }\n\n const docsHeaderContainerCSS = isTrashFolder && isTablet\n ? 'Docs-header-container-trash' : 'Docs-header-container';\n\n return (\n <div\n className={`${docsHeaderContainerCSS} Docs-header-justify-content-start`}\n >\n {conditionalHeaderRender()}\n </div>\n );\n};\n\nexport { InboxAndDocsTableHeader };\n","export default __webpack_public_path__ + \"static/media/arrows-black.3571e4a1.svg\";","import React from 'react';\nimport TouchableDiv from '../../common/TouchableDiv';\nimport arrows from '../../../assets/inboxDocsMultibrand/arrows-black.svg';\nimport './HeaderFieldContent.css';\n\nconst HeaderFieldContent = ({\n className = '',\n hasFilter = true,\n id = '',\n isAscendingFilter = true,\n isFilterActive = false,\n onClick = () => { },\n title = '',\n}) => (\n <th className={className}>\n <TouchableDiv id={id} onClick={onClick}>\n <span className=\"No-cursor-events\">{title}</span>\n\n {hasFilter && (\n <img\n alt=\"\"\n className={`Docs-arrow-icon ${\n !isAscendingFilter && isFilterActive ? 'Rotate-filter' : ''}`}\n src={arrows}\n />\n )}\n </TouchableDiv>\n </th>\n);\n\nexport { HeaderFieldContent };\n","export default __webpack_public_path__ + \"static/media/check-unchecked.34d1393f.svg\";","export default __webpack_public_path__ + \"static/media/check-checked.336b0798.svg\";","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { HeaderFieldContent } from '../HeaderFieldContent';\nimport TouchableDiv from '../../../common/TouchableDiv';\n\nimport chboxUnselected from\n'../../../../assets/inboxDocsMultibrand/check-unchecked.svg';\nimport chboxSelected\nfrom '../../../../assets/inboxDocsMultibrand/check-checked.svg';\n\nimport { INBOX_DOCS, INBOX_DOCS_PRIVATE_FOLDERS } from '../../../../constants';\nimport { useResponsive } from '../../../../hooks/useResponsive';\n\nimport './InboxAndDocsTable.css';\n\nconst PRIVATE_FOLDERS = [...INBOX_DOCS_PRIVATE_FOLDERS, INBOX_DOCS.trash];\n\nconst InboxAndDocsTable = ({\n allRowsSelected = false,\n children = false,\n currentFolderId = 0,\n dateAddedFilter = false,\n fileSizeFilter = false,\n isAscendingFilter = true,\n isEmptyTrash = false,\n nameFilter = false,\n onAllRowSelection = () => { },\n onFileDateAddedFilterClick = () => { },\n onFileNameFilterClick = () => { },\n onFileSizeFilterClick = () => { },\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n const isTrashFolder = currentFolderId === INBOX_DOCS.trash;\n const isPrivateFolder = PRIVATE_FOLDERS.includes(currentFolderId);\n const { isTablet } = useResponsive();\n\n const checkboxes = useMemo(() => ({\n selected: chboxSelected,\n unselected: chboxUnselected,\n }), []);\n\n const nameColumnText = isTrashFolder || isEmptyTrash\n ? t('columnHeader.fileName') : t('columnHeader.name');\n\n function handleNameFilterClick() {\n onFileNameFilterClick();\n }\n\n function handleDateAddedFilter() {\n onFileDateAddedFilterClick();\n }\n\n function handleFileSizeFilter() {\n onFileSizeFilterClick();\n }\n\n function handleAllRowsSelection() {\n onAllRowSelection();\n }\n\n const styling = useMemo(() => {\n let container = 'Docs-table-container';\n let header = 'Docs-file-size-header';\n\n if ((isTrashFolder || isEmptyTrash)) {\n container += ' Docs-table-container-trash';\n header += ' Docs-file-size-header-trash';\n }\n\n return {\n container,\n header,\n };\n }, [isEmptyTrash, isTablet, isTrashFolder]);\n\n return (\n <div\n className={`Docs-table-main-container ${isTrashFolder\n && 'Margin-top-0'}`}\n >\n <table className={styling.container}>\n <thead>\n <tr className=\"Docs-table-header-row\">\n <th className=\"Docs-select-icon-header-container\">\n <TouchableDiv\n className=\"Docs-select-icon-header\"\n id=\"headerChecboxSelectAllItems\"\n onClick={handleAllRowsSelection}\n >\n <img\n alt=\"\"\n src={allRowsSelected ? checkboxes.selected\n : checkboxes.unselected}\n />\n </TouchableDiv>\n </th>\n\n <HeaderFieldContent\n className=\"Docs-name-header\"\n id=\"docsNameHeader\"\n isAscendingFilter={isAscendingFilter}\n isFilterActive={nameFilter}\n onClick={handleNameFilterClick}\n title={nameColumnText}\n />\n\n <HeaderFieldContent\n className=\"Docs-date-added-header\"\n id=\"dateAddedHeader\"\n isAscendingFilter={isAscendingFilter}\n isFilterActive={dateAddedFilter}\n onClick={handleDateAddedFilter}\n title={t('columnHeader.dateAdded')}\n />\n\n <HeaderFieldContent\n className={styling.header}\n id=\"fileSizeHeader\"\n isAscendingFilter={isAscendingFilter}\n isFilterActive={fileSizeFilter}\n onClick={handleFileSizeFilter}\n title={t('columnHeader.fileSize')}\n />\n\n {!(isPrivateFolder || isEmptyTrash) && (\n <HeaderFieldContent\n className=\"Docs-assigned-header\"\n hasFilter={false}\n id=\"assinedHeader\"\n title={t('columnHeader.assigned')}\n />\n )}\n\n {!(isTrashFolder || isEmptyTrash) && (\n <th className=\"Docs-dots-menu-header\">\n {t('columnHeader.threeDots')}\n </th>\n )}\n </tr>\n </thead>\n\n <tbody>\n {children}\n </tbody>\n </table>\n </div>\n );\n};\n\nexport { InboxAndDocsTable };\n","export default __webpack_public_path__ + \"static/media/plus.f7f330ce.svg\";","export default __webpack_public_path__ + \"static/media/dog-placeholder-oval.d317c09a.png\";","export default __webpack_public_path__ + \"static/media/cat-placeholder-oval.b31dca91.png\";","export default __webpack_public_path__ + \"static/media/camera.ee4b1b7b.svg\";","import React from 'react';\nimport CameraIcon from '../../assets/myPets/camera.svg';\nimport './UploadPhotoButton.css';\n\nconst UploadPhotoButton = ({\n className = '',\n iconOnly = true,\n isProfilePicture = false,\n onClick,\n text = '',\n placeholder = false,\n}) => {\n let buttonClass = '';\n\n if (iconOnly) {\n buttonClass = 'Upload-icon-button';\n } else {\n buttonClass = 'Upload-text-button';\n }\n\n if (isProfilePicture) {\n buttonClass += ' Upload-button-profile-picture';\n } else if (placeholder) {\n buttonClass += ' Upload-button-family-picture-placeholder';\n } else {\n buttonClass += ' Upload-button-family-picture-';\n }\n\n buttonClass += ` ${className}`;\n\n return (\n <button\n className={buttonClass}\n onClick={onClick}\n type=\"button\"\n >\n {!iconOnly && (\n <>\n <img\n alt=\"Upload\"\n className=\"Pet-profile-family-picture-icon-button\"\n src={CameraIcon}\n />\n\n <span>{text}</span>\n </>\n )}\n </button>\n );\n};\nexport { UploadPhotoButton };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { PET_TYPE_ID } from '../../constants';\nimport dogPlaceHolder from '../../assets/myPets/dog-placeholder-oval.png';\nimport catPlaceHolder from '../../assets/myPets/cat-placeholder-oval.png';\nimport { UploadPhotoButton } from '../common/UploadPhotoButton';\nimport { getNameInitials } from '../../services/utils';\nimport './PetItemCard.css';\n\nconst PetItemCardImage = ({\n containerClassName,\n hideAddPhoto,\n image,\n imageClassName = 'Pet-item-card-image-pet-list',\n initialsClassName = '',\n isProfile,\n onAddPhotoClick = () => { },\n onClick = () => { },\n petName,\n petType,\n touchable = false,\n}) => {\n const { t } = useTranslation('myPets');\n const petTypePlaceholder = petType === PET_TYPE_ID.CAT\n ? catPlaceHolder\n : dogPlaceHolder;\n\n const petInitials = getNameInitials(petName);\n\n return (\n <>\n <div className={containerClassName\n || 'Pet-item-card-image-container'}\n >\n {touchable ? (\n <button\n className=\"Like-span Pet-item-card-image-action\"\n onClick={onClick}\n type=\"button\"\n >\n <img\n alt=\"Pet item\"\n className={`Pet-item-card-image ${imageClassName}`}\n src={image || petTypePlaceholder}\n />\n </button>\n ) : (\n <img\n alt=\"Pet item\"\n className={`Pet-item-card-image ${imageClassName}`}\n src={image || petTypePlaceholder}\n />\n )}\n\n {!image && (\n <>\n <h1 className={`${initialsClassName} No-clicked`}>\n {petInitials}\n </h1>\n\n <button\n className={`Pet-item-card-image-button${hideAddPhoto\n ? ' Gone' : ''}`}\n onClick={onAddPhotoClick}\n type=\"button\"\n >\n {t('PetCard.AddPhoto')}\n </button>\n </>\n )}\n\n {isProfile && (\n <UploadPhotoButton\n iconOnly\n isProfilePicture\n onClick={onAddPhotoClick}\n />\n )}\n </div>\n </>\n );\n};\n\nexport { PetItemCardImage };\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport {\n INBOX_DOCS_FILE_CATEGORY,\n INBOX_DOCS_PRIVATE_FOLDERS,\n INBOX_DOCS,\n} from '../../../../constants';\nimport { formatBytes } from '../../../../services/utils';\n\nimport chboxUnselected\nfrom '../../../../assets/inboxDocsMultibrand/check-unchecked.svg';\nimport chboxSelected\nfrom '../../../../assets/inboxDocsMultibrand/check-checked.svg';\n\nimport blackFolderIcon from '../../../../assets/inboxDocs/black-folder.svg';\nimport plusIcon from '../../../../assets/plus.svg';\n\nimport TouchableDiv from '../../../common/TouchableDiv';\nimport { PetItemCardImage } from '../../../myPets/PetItemCardImage';\nimport { InboxAndDocsMenu } from '../../InboxAndDocsMenu';\nimport {\n RecentFileIcon,\n} from '../../recentActivity/RecentFileIcon';\n\nimport { useResponsive } from '../../../../hooks/useResponsive';\nimport { useMixpanel } from '../../../../hooks';\nimport { EV40 } from '../../../../services/mixpanel';\nimport { filePermissionsLoaded } from '../../../../actions';\n\nimport './InboxAndDocsItemRow.css';\n\nconst PRIVATE_FOLDERS = [...INBOX_DOCS_PRIVATE_FOLDERS, INBOX_DOCS.trash];\nconst rowId = 'inboxAndDocsItemRowId';\n\nconst InboxAndDocsItemRow = ({\n changeLocation = () => { },\n currentFolderId = 0,\n goToFolder = () => { },\n isSelected = false,\n itemRow = {},\n onAssignTagPetClick = () => { },\n onEditTagPetClick = () => { },\n onFileRowClick = () => { },\n onRowSelection = () => { },\n}) => {\n const store = useSelector(({\n inboxAndDocs,\n policies,\n }) => ({ inboxAndDocs, policies }), shallowEqual);\n\n const { t } = useTranslation('inboxAndDocs');\n\n const isFolder = itemRow.Type === INBOX_DOCS_FILE_CATEGORY.folder;\n const isTrashFolder = String(currentFolderId) === INBOX_DOCS.trash;\n const isPrivateFolder = PRIVATE_FOLDERS.includes(currentFolderId);\n const { isTablet } = useResponsive();\n const { sendEvent } = useMixpanel();\n const dispatch = useDispatch();\n\n const docStyling = useMemo(() => {\n const docsFileSizeCSS = isTrashFolder && isTablet\n ? 'Docs-file-size-trash' : 'Docs-file-size';\n\n return docsFileSizeCSS;\n }, [isTrashFolder, isTablet]);\n\n const handleFileClick = (file) => () => {\n if (String(currentFolderId) !== INBOX_DOCS.trash) {\n sendEvent(EV40({ fileName: `${file.Name}${file.Metadata.Extension}` }));\n onFileRowClick(file);\n }\n };\n\n function handleRowSelection() {\n onRowSelection(itemRow);\n }\n\n function formatDate(date) {\n if (!date) {\n return '';\n }\n\n const cleanDate = date.replace('T', ' ').split('.')[0];\n const gtmDate = new Date(`${cleanDate}.000Z`);\n\n return moment(gtmDate).format('MMM DD, YYYY');\n }\n\n function formatFileSize(size) {\n if (!size) {\n return '-';\n }\n\n return (formatBytes(size));\n }\n\n function handleFolderClick() {\n if (!isTrashFolder) {\n const filePermissions = itemRow.FilePermissions;\n dispatch(filePermissionsLoaded(filePermissions));\n\n goToFolder({\n id: itemRow.Id,\n name: itemRow.Name,\n });\n }\n }\n\n function handleAssignPetTagClick() {\n onAssignTagPetClick({ fileId: itemRow.Id });\n }\n\n function handleEditPetTagClick() {\n onEditTagPetClick({\n fileId: itemRow.Id,\n previousPetIdTagged: itemRow.PetsId || [],\n });\n }\n\n const renderIconAndName = () => {\n if (isFolder) {\n return (\n <div className=\"Docs-folder-icon-row-container\">\n <img\n alt=\"\"\n className=\"Docs-folder-icon-row\"\n src={blackFolderIcon}\n />\n\n <TouchableDiv\n className=\"Docs-folder-icon-label-row\"\n id={`itemRow${itemRow.Id}`}\n onClick={handleFolderClick}\n >\n <span>{itemRow.Name}</span>\n </TouchableDiv>\n </div>\n );\n }\n\n const { Metadata, Name } = itemRow;\n const fileExtension = Metadata.Extension?.toLowerCase();\n const boldStyle = ' Bold';\n\n return (\n <div className=\"Docs-file-row-flex\">\n <RecentFileIcon\n alt=\"file extension icon\"\n className=\"Docs-file-icon-row\"\n fileExtension={fileExtension}\n />\n\n <div className=\"Docs-file-description-col Docs-file-just-cont-cent\">\n <TouchableDiv\n className=\"Docs-file-description-touchable-name\"\n id={`fileRowElement${itemRow.Id}`}\n onClick={handleFileClick(itemRow)}\n >\n <span className={`No-clicked${!Metadata.IsRead ? boldStyle : ''}`}>\n {Name}\n </span>\n </TouchableDiv>\n </div>\n </div>\n );\n };\n\n const AssignPetsButton = () => (\n <TouchableDiv\n className=\"Assign-pet-button-container\"\n id={`assignPetId${itemRow.Id}`}\n onClick={handleAssignPetTagClick}\n >\n <span>{t('assign')}</span>\n </TouchableDiv>\n );\n\n const PetImage = ({\n className,\n petImage,\n petName,\n petType,\n }) => {\n const styleContainer = 'Pet-item-card-image-container';\n\n if (petImage) {\n return (\n <img\n alt=\"\"\n className={`${styleContainer} Docs-pet-assigned-image ${className\n || ''}`}\n src={petImage}\n />\n );\n }\n\n return (\n <PetItemCardImage\n containerClassName={styleContainer}\n hideAddPhoto\n imageClassName=\"Docs-pet-assigned-image\"\n initialsClassName=\"Docs-pet-assigned-name-initials\"\n petImage={petImage}\n petName={petName}\n petType={petType}\n />\n );\n };\n\n const renderAssignedPets = (pets) => {\n if (isFolder) {\n return null;\n }\n\n if (!pets || !pets.length) {\n return <AssignPetsButton />;\n }\n\n const MAX_PET_ASSIGNED_VIEW_COUNT = 5;\n const maxPetAssignedReached = pets.length > MAX_PET_ASSIGNED_VIEW_COUNT;\n\n let petImages = pets\n .map((petId) => store.policies.allPets\n .find((pet) => pet.PetId === petId))\n .filter((pet) => !!pet);\n\n if (maxPetAssignedReached) {\n petImages = petImages.slice(0, MAX_PET_ASSIGNED_VIEW_COUNT);\n\n petImages.push({\n ClassName: 'Docs-pet-assigned-plus',\n ImageUrl: plusIcon,\n PetId: 0,\n });\n }\n\n return petImages.map((pet) => (\n <PetImage\n key={String(pet.PetId)}\n className={pet.ClassName}\n petImage={pet.ImageUrl}\n petName={pet.Name}\n petType={pet.PetType}\n />\n ));\n };\n\n const docsAssignedStyle = useMemo(() => {\n const docsAssignedCSS = isPrivateFolder\n ? 'Docs-assigned-hidden' : 'Docs-assigned';\n\n return docsAssignedCSS;\n }, []);\n\n const rowStyle = useMemo(() => {\n const docsTableItemRowCSS = isSelected\n ? 'Docs-table-item-row-selected' : 'Docs-table-item-row';\n\n return docsTableItemRowCSS;\n }, [isSelected]);\n\n const checkboxes = useMemo(() => ({\n selected: chboxSelected,\n unselected: chboxUnselected,\n }), []);\n\n return (\n <tr className={rowStyle} id={rowId}>\n <td className=\"Docs-select-icon\">\n <TouchableDiv\n className=\"Docs-select-icon-checkbox-container\"\n id=\"checkboxIconRowSelection\"\n onClick={handleRowSelection}\n >\n <img\n alt=\"\"\n src={isSelected ? checkboxes.selected : checkboxes.unselected}\n />\n </TouchableDiv>\n </td>\n\n <td className=\"Docs-name\">\n {renderIconAndName()}\n </td>\n\n <td className=\"Docs-date-added\">\n {formatDate(itemRow.Metadata.LastAddedDate || itemRow.LastUpdate)}\n </td>\n\n <td className={docStyling}>\n {formatFileSize(itemRow.Metadata.Size)}\n </td>\n\n <td className={docsAssignedStyle}>\n {renderAssignedPets(itemRow.PetsId)}\n </td>\n\n {!isTrashFolder ? (\n <td className=\"Docs-dots-menu\">\n <InboxAndDocsMenu\n displayingFolderContent\n filePermissions={store.inboxAndDocs.filePermissions}\n folderPermissions={itemRow.FolderPermissions}\n goToFolder={changeLocation}\n isFolder={isFolder}\n itemId={itemRow.Id}\n itemInfo={itemRow}\n onEditTagPetClick={handleEditPetTagClick}\n parentFolderId={itemRow.ParentFolderId}\n />\n </td>\n ) : null}\n </tr>\n );\n};\n\nexport { InboxAndDocsItemRow };\n","import React from 'react';\nimport './InputFilesButton.css';\n\nconst InputFilesButton = ({\n acceptFiles,\n children,\n className = '',\n isDisabled = false,\n multiple = false,\n onAddFiles = () => { },\n}) => {\n function handleAddFiles(event) {\n if (multiple) {\n onAddFiles(event.target.files);\n } else {\n onAddFiles(event.target.files[0]);\n }\n }\n\n return (\n <button\n className={`Input-files-button-container ${className}`}\n type=\"button\"\n >\n {children}\n\n <input\n accept={acceptFiles}\n className=\"Input-files-button\"\n disabled={isDisabled}\n multiple={multiple}\n onChange={handleAddFiles}\n type=\"file\"\n value=\"\"\n />\n </button>\n );\n};\n\nexport { InputFilesButton };\n","import React from 'react';\nimport ModalContainer from './ModalContainer';\nimport closeIcon from '../../assets/close.svg';\nimport './ActionModal.css';\nimport LoadingButton from './LoadingButton';\nimport { InputFilesButton } from './inputFiles/InputFilesButton';\n\nconst ActionModal = ({\n acceptedFiles,\n cancelButtonText,\n children,\n className = '',\n confirmButtonText,\n customTitle = null,\n loading,\n onAddFiles = () => { },\n onCancel = () => { },\n onClose = () => { },\n onConfirm = () => { },\n onSuccess = () => { },\n saveButtonClass = '',\n saveButtonDisabled = false,\n show,\n showCloseButton = true,\n success,\n title,\n useInputFileButton = false,\n}) => (\n <ModalContainer\n show={show}\n >\n <div className={`Action-modal-container Flex Flex-column ${className}`}>\n {showCloseButton && (\n <button\n className=\"Action-modal-close-modal\"\n onClick={onClose}\n type=\"button\"\n >\n <img alt=\"\" src={closeIcon} />\n </button>\n )}\n\n {customTitle || <h2 className=\"Action-modal-title\">{title}</h2>}\n\n {children}\n\n <div\n className={`Action-modal-buttons${cancelButtonText ? '' : '-one'} Flex`}\n >\n {cancelButtonText && (\n <button\n className={`Action-modal-secondary-button Action-modal-button btn \n ${loading ? 'Action-modal-button-disabled' : ''}`}\n onClick={onCancel}\n type=\"button\"\n >\n {cancelButtonText}\n </button>\n )}\n\n {useInputFileButton ? (\n <InputFilesButton\n acceptFiles={acceptedFiles}\n className={'Action-modal-confirm-button Action-modal-button '\n + `${saveButtonClass}`}\n isDisabled={saveButtonDisabled}\n multiple\n onAddFiles={onAddFiles}\n >\n <span className=\"No-clicked\">{confirmButtonText}</span>\n </InputFilesButton>\n )\n : (\n <LoadingButton\n className={'Action-modal-confirm-button Action-modal-button '\n + `${saveButtonClass} Action-modal-button-blue`}\n disabled={saveButtonDisabled}\n loading={loading}\n onClick={onConfirm}\n onSuccessAnimationEnd={onSuccess}\n success={success}\n text={confirmButtonText}\n type=\"button\"\n />\n )}\n </div>\n </div>\n </ModalContainer>\n);\n\nexport { ActionModal };\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { tagPetFile, tagPetFileRestarted } from '../../../actions';\nimport { addOrRemoveItemFromList } from '../../../services/utils';\nimport { ActionModal } from '../../common/ActionModal';\nimport { useCustomerInboxDocsApiV2 } from '../../../hooks';\nimport { PetSelectorMultisSelection }\nfrom '../foldersContent/fileListTable/PetSelectorMultisSelection';\nimport './TagPetModal.css';\n\nconst TagPetModal = ({\n currentFolderId = 0,\n fileToTagPet = 0,\n onCloseTagPetModal = () => { },\n onSuccessTagPetModal = () => { },\n petList = [],\n previousPetTagged = [],\n show,\n}) => {\n const store = useSelector(({ inboxAndDocs }) => ({ inboxAndDocs }));\n const { inboxAndDocs: { fileTaggedSuccesfully, tagPetLoading } } = store;\n const dispatch = useDispatch();\n const { t } = useTranslation('inboxAndDocs');\n const [petListChecked, setPetListChecked] = useState([]);\n const petSelectedQuantity = petListChecked.length;\n const isCustomerApiV2 = useCustomerInboxDocsApiV2();\n\n useEffect(() => {\n setPetListChecked(previousPetTagged);\n }, [previousPetTagged]);\n\n const selectorTitle = petSelectedQuantity\n ? t('tagPetModal.selectorTitlePetSelected',\n { count: petSelectedQuantity })\n : t('tagPetModal.selectorTitleEmptySelection');\n\n function handlePetSelected(petSelected) {\n const newList = addOrRemoveItemFromList({\n itemList: petListChecked,\n newItem: petSelected,\n });\n\n setPetListChecked(newList);\n }\n\n function handleAssignTagPet() {\n if (petSelectedQuantity) {\n let petsIds = [];\n\n if (isCustomerApiV2) {\n const prevIds = previousPetTagged.map((prevPet) => prevPet.PetId);\n const checkedPetsIds = petListChecked.map((pet) => pet.PetId);\n\n petsIds = prevIds.filter((petId) => !checkedPetsIds.includes(petId))\n .concat(checkedPetsIds.filter((petId) => !prevIds.includes(petId)));\n } else {\n petsIds = petListChecked.map((pet) => pet.PetId);\n }\n\n dispatch(tagPetFile({\n currentFolderId,\n fileId: fileToTagPet,\n petIdList: petsIds,\n }));\n }\n }\n\n function handleAssignTagPetSuccess() {\n dispatch(tagPetFileRestarted());\n setPetListChecked([]);\n onCloseTagPetModal();\n onSuccessTagPetModal();\n }\n\n function handleAssignTagPetClose() {\n dispatch(tagPetFileRestarted());\n onCloseTagPetModal();\n setPetListChecked([]);\n }\n\n return (\n <ActionModal\n cancelButtonText={t('tagPetModal.cancelButton')}\n confirmButtonText={t('tagPetModal.confirmButton')}\n loading={tagPetLoading}\n onCancel={handleAssignTagPetClose}\n onClose={handleAssignTagPetClose}\n onConfirm={handleAssignTagPet}\n onSuccess={handleAssignTagPetSuccess}\n saveButtonDisabled={!petSelectedQuantity}\n show={show}\n success={fileTaggedSuccesfully}\n title={t('tagPetModal.title')}\n >\n <PetSelectorMultisSelection\n classContainer=\"Tag-pet-modal-selector-container\"\n isModal\n itemList={petList}\n itemListChecked={petListChecked}\n onItemClick={handlePetSelected}\n title={selectorTitle}\n />\n\n <span className=\"Tag-pet-modal-error\">\n {store.inboxAndDocs.error}\n </span>\n </ActionModal>\n );\n};\n\nexport { TagPetModal };\n","export default __webpack_public_path__ + \"static/media/clouds-icon.aecc3e7e.svg\";","import React, { useState, Suspense } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Document, Page } from 'react-pdf/dist/esm/entry.webpack';\nimport FigoLoadingOverlay from '../../../common/FigoLoadingOverlay';\nimport cloudsImage from '../../../../assets/clouds-icon.svg';\nimport { FILES_TYPES_ACCEPTED } from '../../../../constants';\nimport './FileViewer.css';\n\nconst FileViewer = ({\n customErrorComponent = null,\n filePath = '',\n fileType = 'pdf',\n fileViewerKey = 'Inbox&DocsFileViewer',\n}) => {\n const isPDF = fileType === FILES_TYPES_ACCEPTED.pdf.split('.')[1];\n const [pages, setPages] = useState(null);\n const { t } = useTranslation('inboxAndDocs');\n\n function onDocumentLoadSuccess({ numPages }) {\n setPages(numPages);\n }\n\n const ErrorComponent = () => (\n <div className=\"File-viewer-error-container\">\n <img alt=\"\" src={cloudsImage} />\n\n <p>{t('fileViewer.errorMessage')}</p>\n </div>\n );\n\n function renderPDF() {\n return (\n <Document\n key={fileViewerKey}\n error={customErrorComponent || <ErrorComponent />}\n file={filePath}\n loading={<FigoLoadingOverlay visible />}\n onLoadSuccess={onDocumentLoadSuccess}\n options={{ workerSrc: '/pdf.worker.js' }}\n >\n {Array.from(new Array(pages), (el, index) => (\n <Page key={`page_${index + 1}`} pageNumber={index + 1} />\n ))}\n </Document>\n );\n }\n\n function renderImages() {\n const imageStyle = filePath ? 'File-viewer-image'\n : 'File-viewer-error-container';\n\n return (\n <img\n alt=\"file-viewer\"\n className={imageStyle}\n src={filePath}\n />\n );\n }\n\n return (\n <div className=\"File-viewer-container-multibrand\">\n <Suspense fallback={<FigoLoadingOverlay visible />}>\n {isPDF ? renderPDF() : renderImages()}\n </Suspense>\n </div>\n );\n};\n\nexport { FileViewer };\n","export default __webpack_public_path__ + \"static/media/close.2e5dd8bb.svg\";","export default __webpack_public_path__ + \"static/media/download-arrow.716bd9d5.svg\";","import React from 'react';\nimport { FILES_TYPES_ACCEPTED } from '../../../../constants';\nimport ScrollableDiv from '../../../common/ScrollableDiv';\nimport './FileViewerIFrame.css';\n\nconst FileViewerIFrame = ({\n filePath = '',\n fileType = '',\n fileViewerId = 'IFrameFileViewer',\n iFrameProps,\n styleProps,\n}) => {\n const isTxtFile = fileType === FILES_TYPES_ACCEPTED.txt;\n\n return (\n <ScrollableDiv className=\"iframe-container\">\n <iframe\n className={`iframe-content ${isTxtFile ? 'iframe-padding' : ''}`}\n id={fileViewerId}\n src={filePath}\n style={{ backgroundColor: '#fff', overflow: 'hidden', ...styleProps }}\n title=\"file\"\n {...iFrameProps}\n />\n </ScrollableDiv>\n );\n};\n\nexport { FileViewerIFrame };\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { useOnEscEvent } from '../../../../hooks';\nimport { FileViewer } from './FileViewer';\nimport { RecentFileIcon } from '../../recentActivity/RecentFileIcon';\nimport closeIcon from '../../../../assets/inboxDocsMultibrand/close.svg';\nimport downloadIcon\nfrom '../../../../assets/inboxDocsMultibrand/download-arrow.svg';\nimport { FileViewerIFrame } from './FileViewerIFrame';\nimport { FILES_TYPES_ACCEPTED } from '../../../../constants';\nimport { downloadFiles } from '../../../../actions';\nimport './ViewFileContent.css';\n\nconst ViewFileContent = ({ file, isLoading, onClose, show }) => {\n const dispatch = useDispatch();\n const { t } = useTranslation('inboxAndDocs');\n let fileExtension = file && file.Metadata.Extension.split('.')[1];\n fileExtension = fileExtension && fileExtension.toLowerCase();\n const fileName = `${file?.Name}.${fileExtension}`;\n const [hideStyle, setHideStyle] = useState('');\n const [renderIFrame, setRenderIFrame] = useState(false);\n const viewFileRef = useRef(null);\n\n useEffect(() => {\n if (isLoading) {\n setHideStyle('View-file-wrapper-hide');\n } else {\n setHideStyle('');\n }\n }, [isLoading]);\n\n useEffect(() => {\n if (file) {\n const { html, txt } = FILES_TYPES_ACCEPTED;\n const showIFrame = file.Metadata.Extension === html\n || file.Metadata.Extension === txt;\n\n setRenderIFrame(showIFrame);\n }\n }, [file]);\n\n useOnEscEvent(() => {\n if (show && !isLoading) {\n onClose();\n }\n }, [isLoading, onClose, show]);\n\n function onDownloadClick() {\n dispatch(downloadFiles({\n singleFile: true,\n singleFileInfo: file,\n }));\n }\n\n function renderHeader() {\n return (\n <div className=\"View-file-content-header\">\n <div className=\"View-file-content-name-container\">\n <RecentFileIcon\n alt=\"File Icon\"\n fileExtension={file.Metadata.Extension?.toLowerCase()}\n />\n\n <span className=\"View-file-content-name\">{fileName}</span>\n </div>\n\n <div className=\"View-file-content-button-container\">\n <button\n className=\"View-file-content-download-button\"\n onClick={onDownloadClick}\n type=\"button\"\n >\n <div className=\"View-file-content-download-button-content\">\n <img alt=\"Download\" src={downloadIcon} />\n\n <span>{t('download')}</span>\n </div>\n\n <div className=\"View-file-content-download-bottom-line\" />\n </button>\n\n <button\n className=\"View-file-content-close-button\"\n id=\"viewFileCloseIcon\"\n onClick={onClose}\n type=\"button\"\n >\n <img alt=\"close\" src={closeIcon} />\n </button>\n </div>\n </div>\n );\n }\n\n function renderFileViewer() {\n if (renderIFrame) {\n return (\n <FileViewerIFrame\n filePath={file.Metadata.Url}\n fileType={file.Metadata.Extension}\n />\n );\n }\n\n return (\n <FileViewer\n filePath={file.Metadata.Url}\n fileType={fileExtension}\n onError={onClose}\n />\n );\n }\n\n function renderViewFileContent() {\n return (\n <div\n ref={viewFileRef}\n className={`View-file-content-overlay ${hideStyle}`}\n >\n <div className=\"View-file-content-wrapper\">\n {renderHeader()}\n\n {renderFileViewer()}\n </div>\n </div>\n );\n }\n\n return show ? renderViewFileContent() : null;\n};\n\nexport { ViewFileContent };\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n InboxAndDocsTableHeader,\n} from './fileListTable/InboxAndDocsTableHeader';\nimport { InboxAndDocsTable } from './fileListTable/InboxAndDocsTable';\nimport { InboxAndDocsItemRow } from './fileListTable/InboxAndDocsItemRow';\nimport {\n useAlphabeticalSortedPets,\n} from '../../../hooks/useAlphabeticalSortedPets';\nimport FigoLottie from '../../common/FigoLottie';\nimport FigoLoadingOverlay from '../../common/FigoLoadingOverlay';\nimport loadingSpinner\nfrom '../../../assets/lottieFiles/loading-blue.json';\nimport {\n errorViewFile,\n loadFolderContent,\n markFilesAsRead,\n refreshFolderContent,\n showViewFile,\n} from '../../../actions';\nimport './InboxAndDocsFileList.css';\nimport {\n addOrRemoveItemFromList,\n downloadFileInPage,\n sortInboxAndDocsFileList,\n} from '../../../services/utils';\nimport {\n INBOX_DOCS_FILE_CATEGORY,\n READ_FILE_SOURCE,\n FILTER_TYPES,\n} from '../../../constants';\nimport { TagPetModal } from '../modals/TagPetModal';\nimport { MoveModal } from '../modals/MoveModal';\nimport { DeleteModal } from '../modals/DeleteModal';\nimport { ViewFileContent } from './fileViewer/ViewFileContent';\n\nconst InboxAndDocsFileList = ({\n changeLocation = () => { },\n currentFolderId = 0,\n goToFolder = () => { },\n goToFolderDirect = () => { },\n}) => {\n const store = useSelector(({\n inboxAndDocs,\n }) => ({\n inboxAndDocs,\n }), shallowEqual);\n const [selectedFilter, setSelectedFilter] =\n useState({ ascendent: true, filter: null });\n const [itemRowListSelected, setItemRowListSelected] = useState([]);\n const [tagPetModalVisible, setTagPetModalVisible] = useState(false);\n const [moveModalVisible, setMoveModalVisible] = useState(false);\n const [fileToTagPet, setFileToTagPet] = useState(null);\n const [previousPetTagged, setPreviousPetTagged] = useState([]);\n const petList = useAlphabeticalSortedPets();\n const [petListChecked, setPetListChecked] = useState(petList);\n const [deleteModalVisible, setDeleteModalVisible] = useState(false);\n const { t } = useTranslation('inboxAndDocs');\n const dispatch = useDispatch();\n const { inboxAndDocs } = store;\n const FILE_VIEWER_ACCEPTED_FILES = ['.pdf',\n '.html', '.txt', '.jpg', '.jpeg', '.png'];\n const isLoading = inboxAndDocs.viewFileLoading;\n\n useEffect(() => {\n if (petListChecked.length === 0 && petList.length > 0) {\n setPetListChecked(petList);\n }\n }, [petList, petListChecked]);\n\n const fileList = useMemo(() => {\n if (!inboxAndDocs || !inboxAndDocs.folderContent.length) {\n return [];\n }\n\n let fileListPerPet = inboxAndDocs.folderContent;\n\n if (petListChecked.length === petList.length) {\n return sortInboxAndDocsFileList({\n ascendent: selectedFilter.ascendent,\n rawList: fileListPerPet,\n sortType: selectedFilter.filter,\n });\n }\n\n fileListPerPet = inboxAndDocs.folderContent\n .filter((file) => file.Type === INBOX_DOCS_FILE_CATEGORY.folder\n || petListChecked.find(\n (pet) => (file.PetsId && file.PetsId.includes(pet.PetId)),\n ));\n\n return sortInboxAndDocsFileList({\n ascendent: selectedFilter.ascendent,\n rawList: fileListPerPet,\n sortType: selectedFilter.filter,\n });\n }, [\n inboxAndDocs.folderContent,\n petList,\n petListChecked,\n selectedFilter,\n ]);\n\n const filesAndDocsSelected = useMemo(() => {\n const allFiles = itemRowListSelected\n .filter((item) => item.Type === INBOX_DOCS_FILE_CATEGORY.file);\n\n const allFolders = itemRowListSelected\n .filter((item) => item.Type === INBOX_DOCS_FILE_CATEGORY.folder);\n\n const onlyFiles = itemRowListSelected\n .filter((item) => item.Type === INBOX_DOCS_FILE_CATEGORY.file\n && !item.IsReadOnly);\n\n const onlyFolders = itemRowListSelected\n .filter((item) => item.Type === INBOX_DOCS_FILE_CATEGORY.folder\n && !item.IsReadOnly);\n\n return {\n allFiles,\n allFolders,\n files: onlyFiles,\n folders: onlyFolders,\n };\n }, [itemRowListSelected]);\n\n const allRowsSelected =\n itemRowListSelected.length === fileList.length && fileList.length > 0;\n\n const handleFileViewerVisible = (data) => () => {\n if (data) {\n const validExtension = FILE_VIEWER_ACCEPTED_FILES\n .find((fileItem) => fileItem === data.Metadata.Extension.toLowerCase());\n\n if (validExtension) {\n dispatch(showViewFile(data));\n } else {\n downloadFileInPage({ fileName: data.Name, fileUrl: data.Metadata.Url });\n }\n } else {\n dispatch(errorViewFile());\n }\n\n if (data && !data.Metadata.IsRead) {\n dispatch(markFilesAsRead({\n filesIds: [data.Id],\n source: READ_FILE_SOURCE.inboxDocs,\n }));\n }\n };\n\n const handleRowSelection = ({ item }) => () => {\n if (itemRowListSelected.includes(item)) {\n setItemRowListSelected((prev) => [\n ...prev.filter((element) => element !== item),\n ]);\n\n return;\n }\n\n setItemRowListSelected((prev) => [...prev, item]);\n };\n\n function handleAllRowSelection() {\n const quantitySelected = itemRowListSelected.length;\n const totalQuantity = fileList.length;\n\n const newListSelected = quantitySelected === 0\n || quantitySelected < totalQuantity ? fileList : [];\n\n setItemRowListSelected(newListSelected);\n }\n\n function handleAssignTagPetClick({ fileId, previousPetIdTagged = [] }) {\n setFileToTagPet(fileId);\n const previousPets = petList\n .filter((pet) => previousPetIdTagged.includes(pet.PetId));\n\n setPreviousPetTagged(previousPets);\n setTagPetModalVisible(true);\n }\n\n function handleCloseTagPetModal() {\n setTagPetModalVisible(false);\n }\n\n function handleSuccessTagPetModal() {\n dispatch(loadFolderContent(currentFolderId));\n }\n\n function restartRowSelection() {\n setItemRowListSelected([]);\n }\n\n function reloadParent() {\n dispatch(refreshFolderContent(currentFolderId));\n }\n\n const fileListByDate = useMemo(() => fileList.sort((a, b) => {\n if (b.Metadata.LastAddedDate > a.Metadata.LastAddedDate\n || b.LastUpdate > a.LastUpdate) {\n return 1;\n }\n if (b.Metadata.LastAddedDate < a.Metadata.LastAddedDate\n || b.LastUpdate < a.LastUpdate) {\n return -1;\n }\n return 0;\n }), [fileList]);\n\n const renderContent = () => {\n if (inboxAndDocs.loading) {\n return (\n <tr>\n <td className=\"Docs-loading-container\">\n <FigoLottie\n animationData={loadingSpinner}\n height={74}\n width={74}\n />\n </td>\n </tr>\n );\n }\n\n return fileListByDate.map((item) => (\n <InboxAndDocsItemRow\n key={item.Id}\n changeLocation={changeLocation}\n currentFolderId={currentFolderId}\n goToFolder={goToFolder}\n isSelected={itemRowListSelected.includes(item)}\n itemRow={item}\n onAssignTagPetClick={handleAssignTagPetClick}\n onEditTagPetClick={handleAssignTagPetClick}\n onFileRowClick={handleFileViewerVisible(item)}\n onRowSelection={handleRowSelection({ item })}\n />\n ));\n };\n\n function handleFileDateAddedFilter() {\n setSelectedFilter(\n (filter) => ({ ascendent: !filter.ascendent, filter: FILTER_TYPES.date }),\n );\n }\n\n function handleFileNameFilter() {\n setSelectedFilter(\n (filter) => ({ ascendent: !filter.ascendent, filter: FILTER_TYPES.name }),\n );\n }\n\n function handleFileSizeFilter() {\n setSelectedFilter(\n (filter) => ({ ascendent: !filter.ascendent, filter: FILTER_TYPES.size }),\n );\n }\n\n function handlePetSelected(petSelected) {\n if (petListChecked.length > 1) {\n const newPetList = addOrRemoveItemFromList({\n itemList: petListChecked,\n newItem: petSelected,\n });\n\n setPetListChecked(newPetList);\n } else if (petListChecked.length === 1) {\n const singleItem = petListChecked[0];\n\n if (singleItem.PetId !== petSelected.PetId) {\n const newPetList = addOrRemoveItemFromList({\n itemList: petListChecked,\n newItem: petSelected,\n });\n\n setPetListChecked(newPetList);\n }\n }\n }\n\n function getPetSelectorTitle() {\n const quantity = petListChecked.length;\n if (quantity !== petList.length) {\n return t('petsSelected', { quantity });\n }\n\n return t('allPets');\n }\n\n function handleOpenMoveModal() {\n setMoveModalVisible(true);\n }\n\n function handleCloseMoveModal() {\n setMoveModalVisible(false);\n }\n\n function handleOpenDeleteModal() {\n setDeleteModalVisible(true);\n }\n\n function handleCloseDeleteModal() {\n setDeleteModalVisible(false);\n }\n\n function getFileNameSelected() {\n if (filesAndDocsSelected?.files?.length > 0) {\n return filesAndDocsSelected.files[0].Name;\n }\n\n return '';\n }\n\n const onResetFilterClick = () => {\n setPetListChecked(petList);\n };\n\n return (\n <div className=\"Docs-table-container-full-width\">\n <InboxAndDocsTableHeader\n cleanSelection={restartRowSelection}\n currentFolderId={currentFolderId}\n fileList={filesAndDocsSelected}\n onPermanentlyDeleteClick={handleOpenDeleteModal}\n onPetSelected={handlePetSelected}\n onResetFilterClick={onResetFilterClick}\n onRestoreFilesClick={handleOpenMoveModal}\n onTagPetClick={handleAssignTagPetClick}\n petList={petList}\n petListChecked={petListChecked}\n petSelectedTitle={getPetSelectorTitle()}\n />\n\n <InboxAndDocsTable\n allRowsSelected={allRowsSelected}\n currentFolderId={currentFolderId}\n dateAddedFilter={selectedFilter.filter === FILTER_TYPES.date}\n fileSizeFilter={selectedFilter.filter === FILTER_TYPES.size}\n isAscendingFilter={selectedFilter.ascendent}\n nameFilter={selectedFilter.filter === FILTER_TYPES.name}\n onAllRowSelection={handleAllRowSelection}\n onFileDateAddedFilterClick={handleFileDateAddedFilter}\n onFileNameFilterClick={handleFileNameFilter}\n onFileSizeFilterClick={handleFileSizeFilter}\n >\n {renderContent()}\n </InboxAndDocsTable>\n\n <ViewFileContent\n file={inboxAndDocs.viewFileData}\n isLoading={isLoading}\n onClose={handleFileViewerVisible()}\n show={inboxAndDocs.viewFileVisible\n && inboxAndDocs.viewFileData}\n />\n\n <FigoLoadingOverlay\n message={inboxAndDocs.downloadingFiles ? t('preparingFiles') : ''}\n visible={inboxAndDocs.markingFilesAsRead\n || (isLoading && inboxAndDocs.viewFileVisible)\n || inboxAndDocs.downloadingFiles}\n />\n\n <TagPetModal\n currentFolderId={currentFolderId}\n fileToTagPet={fileToTagPet}\n onCloseTagPetModal={handleCloseTagPetModal}\n onSuccessTagPetModal={handleSuccessTagPetModal}\n petList={petList}\n previousPetTagged={previousPetTagged}\n show={tagPetModalVisible}\n />\n\n <MoveModal\n goToNewFolder={goToFolderDirect}\n isTrashScreen\n onClose={handleCloseMoveModal}\n selectedFoldersIds={filesAndDocsSelected.folders.map((item) => item.Id)}\n selectedItemsIds={filesAndDocsSelected.files.map((item) => item.Id)}\n show={moveModalVisible}\n title={t('restoreModal.titleModal')}\n />\n\n <DeleteModal\n isFolder={false}\n isTrashScreen\n itemName={getFileNameSelected()}\n onClose={handleCloseDeleteModal}\n onSuccess={reloadParent}\n selectedFolderIds={filesAndDocsSelected.folders.map((item) => item.Id)}\n selectedItemsIds={filesAndDocsSelected.files.map((item) => item.Id)}\n show={deleteModalVisible}\n />\n </div>\n );\n};\n\nexport { InboxAndDocsFileList };\n","export default __webpack_public_path__ + \"static/media/empty-folder.11eddc69.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport emptyFolder from '../../assets/inboxDocs/empty-folder.svg';\nimport { InboxAndDocsTableHeader } from\n'./foldersContent/fileListTable/InboxAndDocsTableHeader';\nimport { TrashHeaderContainer } from\n'./foldersContent/fileListTable/TrashHeaderContainer';\nimport './InboxAndDocsEmptyScreen.css';\nimport { InboxAndDocsTable } from\n'./foldersContent/fileListTable/InboxAndDocsTable';\n\nimport { INBOX_DOCS, INBOX_DOCS_PRIVATE_FOLDERS } from '../../constants';\n\nconst PRIVATE_FOLDER = [...INBOX_DOCS_PRIVATE_FOLDERS, INBOX_DOCS.trash];\n\nconst InboxAndDocsEmptyScreen = ({\n folderId = -1,\n handleAddFiles = () => { },\n isTrashFolder = false,\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n\n const isThrashCSS = isTrashFolder && 'Align-items-flex-end';\n const headerEmptyFolderCSS =\n `Inbox-and-docs-empty-top-container Flex Flex-column ${isThrashCSS}`;\n const isPrivateFolder = PRIVATE_FOLDER.includes(String(folderId));\n\n function renderHeadersEmptyFolder() {\n return (\n <div className={headerEmptyFolderCSS}>\n {!isTrashFolder\n ? (\n <InboxAndDocsTableHeader\n isEmptyFolder\n petSelectedTitle={t('allPets')}\n />\n )\n : <TrashHeaderContainer isDisabled />}\n\n <InboxAndDocsTable\n currentFolderId={folderId}\n isEmptyTrash={isTrashFolder}\n />\n </div>\n );\n }\n\n return (\n <>\n {renderHeadersEmptyFolder()}\n\n <div className=\"Inbox-and-docs-no-content Flex Flex-column\">\n <img alt=\"\" height={70} src={emptyFolder} width={70} />\n\n <span className=\"Inbox-and-docs-empty-title\">{t('emptyFolder')}</span>\n\n {!isPrivateFolder\n && (\n <div className=\"Inbox-and-docs-empty-subtitle Flex-row\">\n {t('dropFiles')}\n\n <button\n className=\"Browse-text\"\n id=\"browseEmptyBtn\"\n onClick={handleAddFiles}\n type=\"button\"\n >\n <span\n className=\"Inbox-and-docs-browse No-clicked\"\n id=\"browseEmptyBtn\"\n >\n {t('browse')}\n </span>\n </button>\n\n {t('toUpload')}\n </div>\n )}\n </div>\n </>\n );\n};\n\nexport { InboxAndDocsEmptyScreen };\n","import React, { useRef, useState, useCallback, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport cloudAdd from '../../../assets/fileClaim/cloud-add.svg';\nimport './Dropzone.css';\n\nconst Dropzone = ({\n coverClassName = '',\n dropzoneClassName = '',\n onAddFiles = () => { },\n text = '',\n}) => {\n const [isDragging, setIsDragging] = useState(false);\n const { t } = useTranslation('common');\n const dropzoneCoverRef = useRef();\n const dropzoneRef = useRef();\n const [documentHeight, setDocumentHeight] = useState(false);\n\n const updateDocumentHeight = () => {\n if (window.scrollY <= 0) {\n setDocumentHeight(false);\n } else {\n setDocumentHeight(true);\n }\n };\n\n useEffect(() => {\n window.addEventListener('resize', updateDocumentHeight);\n window.addEventListener('scroll', updateDocumentHeight);\n }, [updateDocumentHeight]);\n\n const handleDragover = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDragenter = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n const draggingFiles = event.dataTransfer.types.indexOf('Files') >= 0;\n if (draggingFiles) {\n setIsDragging(true);\n }\n }, []);\n\n const handleDragleave = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n const { fromElement, toElement } = event;\n const { current: dropzoneElement } = dropzoneRef;\n const { current: dropzoneCoverElement } = dropzoneCoverRef;\n if ((fromElement !== dropzoneElement\n || toElement !== dropzoneCoverElement)\n && (fromElement !== dropzoneCoverElement\n || toElement !== dropzoneElement)) {\n setIsDragging(false);\n }\n }, []);\n\n const handleDrop = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n setIsDragging(false);\n if (event.dataTransfer.files) {\n onAddFiles(event.dataTransfer.files);\n event.dataTransfer.clearData();\n }\n }, []);\n\n useEffect(() => {\n if (isDragging) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = 'auto';\n }\n return () => {\n document.body.style.overflow = 'auto';\n };\n }, [isDragging]);\n\n useEffect(() => {\n const currentCover = dropzoneCoverRef.current;\n if (currentCover) {\n currentCover.addEventListener('dragleave', handleDragleave);\n }\n\n const currentDropzone = dropzoneRef.current;\n if (currentDropzone) {\n currentDropzone.addEventListener('drop', handleDrop);\n }\n\n return () => {\n if (currentCover) {\n currentCover.removeEventListener('dragleave', handleDragleave);\n }\n\n if (currentDropzone) {\n currentDropzone.removeEventListener('drop', handleDrop);\n }\n };\n }, [handleDrop, handleDragleave, dropzoneCoverRef, dropzoneRef, isDragging]);\n\n useEffect(() => {\n window.addEventListener('dragover', handleDragover);\n window.addEventListener('dragenter', handleDragenter);\n\n return () => {\n window.removeEventListener('dragover', handleDragover);\n window.removeEventListener('dragenter', handleDragenter);\n };\n }, [handleDragenter, handleDragover]);\n\n return (isDragging ? (\n <div\n ref={dropzoneCoverRef}\n className={`Dropzone-cover ${coverClassName}\n ${documentHeight && 'Dropzone-cover-resize'}`}\n >\n <div\n ref={dropzoneRef}\n className={`Dropzone-container\n ${dropzoneClassName}\n ${documentHeight && 'Dropzone-container-resize'}\n `}\n >\n <div className=\"Dropzone-file-container No-clicked\">\n <div className=\"Dropzone-file-icon\">\n <img\n alt=\"doc\"\n src={cloudAdd}\n />\n </div>\n\n <span className=\"Dropzone-paragraph\">\n {text || t('dropzoneText')}\n </span>\n\n <span className=\"Dropzone-formats\">\n {t('dropzoneFormats')}\n </span>\n </div>\n </div>\n </div>\n )\n : null\n );\n};\n\nexport { Dropzone };\n","import React, { useMemo, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { generateFileTreeOptions } from '../../../../services/utils';\nimport { INBOX_DOCS } from '../../../../constants';\n\nimport { Dropdown } from '../../../common/dropdown/Dropdown';\nimport './FolderSelector.css';\n\nconst FolderSelector = ({\n disabled = false,\n onFolderSelected = () => { },\n selectedFolder = {},\n}) => {\n const { folderStructure } =\n useSelector(({ inboxAndDocs }) => inboxAndDocs, shallowEqual);\n const { t } = useTranslation('inboxAndDocs');\n\n const optionsGenerated = useMemo(\n () => generateFileTreeOptions({\n folders: folderStructure,\n hiddenFolderId: INBOX_DOCS.trash,\n level: 0,\n }),\n [folderStructure],\n );\n\n const handleFolderSelected = useCallback((item) => {\n onFolderSelected(item);\n }, []);\n\n return (\n <div className=\"Folder-selector-container\">\n <h3\n className=\"Upload-files-title\"\n id=\"folder-selector-label\"\n >\n {t('uploadModal.uploadTo')}\n </h3>\n\n <Dropdown\n ariaProps={{\n 'aria-labelledby': 'folder-selector-label',\n }}\n disabled={disabled}\n onSelectionChanged={handleFolderSelected}\n options={optionsGenerated}\n placeholder={t('uploadModal.selectFolder')}\n value={selectedFolder}\n />\n </div>\n );\n};\n\nexport { FolderSelector };\n","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ScrollableDiv from '../../../common/ScrollableDiv';\nimport Checkbox from '../../../common/Checkbox';\nimport './RelatedPetsSelector.css';\n\nconst RelatedPetsSelector = ({\n petList = [],\n petsIdsSelected = [],\n onPetSelectedChange = () => { },\n}) => {\n const { t } = useTranslation('inboxAndDocs');\n\n const handlePetSelectedChanged = useCallback((petId) => () => {\n onPetSelectedChange(petId);\n }, [onPetSelectedChange]);\n\n return (\n <div\n className=\"Related-pets-selector-container\"\n >\n <h3 className=\"Upload-files-title\">\n {t('uploadModal.assignToPets')}\n </h3>\n\n <ScrollableDiv className=\"Related-pets-selector-scrollable\">\n <ul className=\"Related-pets-selector-list\">\n {petList.map((pet) => (\n <li\n key={String(pet.Id)}\n className={petList.length < 2\n ? 'Related-pets-selector-list-full' : ''}\n >\n <Checkbox\n checked={petsIdsSelected.includes(pet.Id)}\n className=\"Related-pets-selector-list-item\"\n isRounded={false}\n label={pet.Name}\n onChange={handlePetSelectedChanged(pet.Id)}\n />\n </li>\n ))}\n </ul>\n </ScrollableDiv>\n </div>\n );\n};\n\nexport { RelatedPetsSelector };\n","import React, {\n useState,\n useMemo,\n useEffect,\n useCallback,\n useRef,\n forwardRef,\n} from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport { useMixpanel } from '../../../../hooks';\nimport { EV39 } from '../../../../services/mixpanel';\nimport { showAlert, uploadFiles } from '../../../../actions';\n\nimport InputFile from '../../../claims/steps/InputFile';\nimport { FolderSelector } from './FolderSelector';\nimport { RelatedPetsSelector } from './RelatedPetsSelector';\nimport { GenericModal } from '../../../common/petCloud/GenericModal';\nimport './UploadFilesModal.css';\n\nconst FULL_PERCENTAGE = 100;\n\nconst Step1 = forwardRef(({\n acceptedFiles = '',\n disabled = false,\n goNextStep = () => { },\n onAddFiles = () => { },\n onFolderSelected = () => { },\n onPetSelectedChange = () => { },\n petList = [],\n petsIdsSelected = [],\n selectedFolder = {},\n}, inputFileRef) => {\n const handleAddFiles = useCallback((event) => {\n onAddFiles(event.target.files);\n goNextStep();\n }, [onAddFiles]);\n\n return (\n <>\n <FolderSelector\n disabled={disabled}\n onFolderSelected={onFolderSelected}\n selectedFolder={selectedFolder}\n />\n\n <RelatedPetsSelector\n onPetSelectedChange={onPetSelectedChange}\n petList={petList}\n petsIdsSelected={petsIdsSelected}\n />\n\n <input\n ref={inputFileRef}\n accept={acceptedFiles}\n hidden\n multiple\n onChange={handleAddFiles}\n type=\"file\"\n />\n </>\n );\n});\n\nconst Step2 = ({\n acceptedFiles,\n filesAttached,\n filesToDisplay,\n onAddFiles = () => { },\n onDeleteFile = () => { },\n t = () => { },\n uploading,\n}) => (\n <div>\n <InputFile\n acceptFiles={acceptedFiles}\n className=\"Upload-files-modal-file Upload-files-modal-empty\"\n disabled={uploading}\n files={[]}\n isModal\n onFileAdd={onAddFiles}\n onFileDelete={onDeleteFile}\n showCounter={false}\n />\n\n <h3 className=\"Upload-files-title\">\n {t('uploadModal.uploadedFiles')}\n </h3>\n\n {filesAttached.length && (\n <InputFile\n acceptFiles={acceptedFiles}\n className=\"Upload-files-modal-file\"\n disabled\n files={filesToDisplay}\n isModal\n onFileAdd={onAddFiles}\n onFileDelete={onDeleteFile}\n showCounter={false}\n />\n )}\n </div>\n);\n\nconst UploadFilesModal = ({\n acceptedFiles = '',\n currentFolder = null,\n filesAttached = [],\n folderId = -1,\n isHome = false,\n onAddFiles = () => { },\n onClose = () => { },\n onDeleteFile = () => { },\n onFolderSelected = () => { },\n selectedFolder = {},\n show = false,\n}) => {\n const [petsIdsSelected, setPetIdsSelected] = useState([]);\n const [isSelectingFolder, setIsSelectingFolder] = useState(true);\n const [error, setError] = useState('');\n const { t } = useTranslation('inboxAndDocs');\n const dispatch = useDispatch();\n const { sendEvent } = useMixpanel();\n const inputFileRef = useRef();\n const store = useSelector(\n ({ personalInformation, inboxAndDocs }) => ({\n petList: personalInformation.pets,\n uploadFiles: inboxAndDocs.uploadFiles,\n }),\n shallowEqual,\n );\n const {\n petList,\n uploadFiles: {\n uploading,\n uploadedSuccessfully,\n },\n } = store;\n\n const showConfirmation = useMemo(\n () => uploadedSuccessfully\n && filesAttached.some((file) => !file.valid)\n && filesAttached.some((file) => file.valid),\n [uploadedSuccessfully, filesAttached],\n );\n\n const filesToDisplay = useMemo(() => (uploadedSuccessfully\n ? filesAttached.filter((file) => file.percentage === FULL_PERCENTAGE)\n : filesAttached), [uploadedSuccessfully, filesAttached]);\n\n const handlePetSelectedChanged = useCallback((petIdChanged) => {\n if (petsIdsSelected.includes(petIdChanged)) {\n setPetIdsSelected((prevPets) => prevPets\n .filter((pet) => pet !== petIdChanged));\n } else {\n setError('');\n setPetIdsSelected((prevPets) => [...prevPets, petIdChanged]);\n }\n }, [petsIdsSelected]);\n\n useEffect(() => {\n if (petList.length === 1) {\n setPetIdsSelected([petList[0].Id]);\n }\n }, [petList]);\n\n const goToUpload = useCallback(() => {\n setIsSelectingFolder(false);\n }, []);\n\n const goToSelectFolder = useCallback(() => {\n setIsSelectingFolder(true);\n }, []);\n\n function handleClose() {\n if (!uploading) {\n setPetIdsSelected(petList.length === 1 ? [petList[0].Id] : []);\n setError('');\n goToSelectFolder();\n onClose();\n }\n }\n\n useEffect(() => {\n if (uploadedSuccessfully && filesAttached.every((file) => !file.valid)) {\n dispatch(showAlert({ type: 'error' }));\n handleClose();\n }\n }, [dispatch, uploadedSuccessfully, filesAttached]);\n\n function handleUploadFiles() {\n if (uploading) {\n return;\n }\n\n if (!petsIdsSelected.length || !filesToDisplay.length) {\n setError(t('uploadModal.assignError'));\n return;\n }\n\n if (showConfirmation) {\n handleClose();\n return;\n }\n\n dispatch(uploadFiles({\n batchSize: 4,\n currentBatch: 0,\n files: filesAttached\n .filter((file) => file.valid && file.binary && file.percentage === 0),\n folderId,\n orderIds: petList\n .filter((pet) => petsIdsSelected.includes(pet.Id))\n .map((pet) => pet.Id),\n }));\n\n sendEvent(EV39({ source: 'Inbox and docs', uploadSource: 'browse file' }));\n }\n\n const folderAndAssignValid = useMemo(\n () => {\n let folderSelectionValid = false;\n if (isHome) {\n folderSelectionValid = !!selectedFolder\n && selectedFolder.id;\n } else {\n folderSelectionValid = !!currentFolder;\n }\n\n return folderSelectionValid && petsIdsSelected.length > 0;\n },\n [selectedFolder, petsIdsSelected],\n );\n const primaryButtonDisabled = useMemo(\n () => !folderAndAssignValid, [folderAndAssignValid],\n );\n\n const handlePrimaryActionClick = useCallback(() => {\n if (primaryButtonDisabled || uploading) {\n return;\n }\n\n if (isSelectingFolder) {\n if (filesToDisplay.length) {\n goToUpload();\n } else if (inputFileRef.current) {\n inputFileRef.current.click();\n }\n return;\n }\n\n handleUploadFiles();\n }, [primaryButtonDisabled, isSelectingFolder, handleUploadFiles]);\n\n const handleCancelClick = useCallback(() => {\n if (isSelectingFolder) {\n setPetIdsSelected([]);\n setError('');\n onClose();\n return;\n }\n goToSelectFolder();\n }, [onClose, isSelectingFolder]);\n\n const handleSuccess = useCallback(() => {\n setPetIdsSelected((prevPets) => prevPets);\n setError('');\n onClose();\n }, [onClose]);\n\n const primaryButtonText = useMemo(() => {\n if (!isSelectingFolder) {\n return t('uploadModal.uploadNow');\n }\n if (isSelectingFolder && filesToDisplay.length) {\n return t('uploadModal.next');\n }\n return t('uploadModal.selectFiles');\n }, [isSelectingFolder, filesToDisplay.length]);\n\n return (\n <GenericModal\n containerClassName=\"Upload-files-modal-wrapper\"\n handleOutClick={handleClose}\n loadingPrimary={uploading}\n onPrimaryClick={handlePrimaryActionClick}\n onPrimarySuccess={handleSuccess}\n onSecondaryClick={handleCancelClick}\n primaryButtonDisabled={primaryButtonDisabled}\n primaryButtonText={primaryButtonText}\n secondaryButtonText={isSelectingFolder\n ? t('uploadModal.cancel') : t('uploadModal.back')}\n show={show}\n successPrimary={uploadedSuccessfully\n && filesAttached\n .every((file) => file.percentage === FULL_PERCENTAGE)}\n title={t('uploadModal.upload')}\n >\n <div className=\"Upload-files-modal-container\">\n {isSelectingFolder ? (\n <Step1\n ref={inputFileRef}\n acceptedFiles={acceptedFiles}\n disabled={!isHome}\n goNextStep={goToUpload}\n onAddFiles={onAddFiles}\n onFolderSelected={onFolderSelected}\n onPetSelectedChange={handlePetSelectedChanged}\n petList={petList}\n petsIdsSelected={petsIdsSelected}\n selectedFolder={isHome ? selectedFolder : currentFolder}\n />\n ) : (\n <Step2\n acceptedFiles={acceptedFiles}\n filesAttached={filesAttached}\n filesToDisplay={filesToDisplay}\n onAddFiles={onAddFiles}\n onDeleteFile={onDeleteFile}\n t={t}\n uploading={uploading}\n />\n )}\n\n <span className=\"Upload-modal-error\">\n {error}\n </span>\n </div>\n </GenericModal>\n );\n};\n\nexport { UploadFilesModal };\n","import React, { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\n\nimport {\n GenericModal,\n PetCloudInputAnimated,\n} from '../../common/petCloud';\nimport { removeEmojis } from '../../../services/utils';\nimport { createFolder } from '../../../actions';\n\nexport const AddFolderModal = ({\n onClose = () => { },\n onRefresh = () => { },\n parentId,\n show = false,\n}) => {\n const [newFolderName, setNewFolderName] = useState('');\n const [internalError, setInternalError] = useState('');\n\n const { t } = useTranslation('inboxAndDocs');\n const { newFolder: store } =\n useSelector(({ inboxAndDocs }) => inboxAndDocs, shallowEqual);\n const dispatch = useDispatch();\n\n const onNewFolderNameChanged = useCallback(({ target }) => {\n const { value } = target;\n setNewFolderName(removeEmojis(value));\n setInternalError('');\n }, []);\n\n const onSubmitAddFolder = useCallback((event) => {\n event.preventDefault();\n\n if (store.loading) {\n return;\n }\n\n if (!newFolderName) {\n setInternalError(t('modalAddFolder.error'));\n return;\n }\n\n setInternalError('');\n dispatch(createFolder({ name: newFolderName, parentId }));\n }, [dispatch, newFolderName, parentId, store]);\n\n const handleClose = useCallback(() => {\n setNewFolderName('');\n onClose();\n }, [onClose]);\n\n const onNewFolderSuccess = useCallback(() => {\n if (store.loading) {\n return;\n }\n\n handleClose();\n onRefresh();\n }, [dispatch, store, handleClose, onRefresh]);\n\n return (\n <GenericModal\n handleOutClick={handleClose}\n loadingPrimary={store.loading}\n onPrimaryClick={onSubmitAddFolder}\n onPrimarySuccess={onNewFolderSuccess}\n onSecondaryClick={handleClose}\n primaryButtonDisabled={!newFolderName}\n primaryButtonText={t('modalAddFolder.add')}\n secondaryButtonText={t('modalAddFolder.cancel')}\n show={show}\n successPrimary={store.success}\n title={t('modalAddFolder.title')}\n >\n <PetCloudInputAnimated\n error={store.error || internalError}\n id=\"new-folder-name\"\n label={t('modalAddFolder.label')}\n labelClass=\"Add-folder-modal-label\"\n onChange={onNewFolderNameChanged}\n placeholder={t('modalAddFolder.placeholder')}\n value={newFolderName}\n />\n </GenericModal>\n );\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useDispatch, shallowEqual, useSelector } from 'react-redux';\nimport { Switch, Route, useRouteMatch } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport {\n createFolderReset,\n filesToUploadAdded,\n fileToUploadRemoved,\n fileToUploadUpdated,\n loadFolderContent,\n loadFolderStructure,\n uploadFilesRestarted,\n} from '../../actions';\nimport { toBase64 } from '../../services/utils';\nimport {\n ACTION_BUTTONS_CONTAINER_ID,\n INBOX_DOCS_PRIVATE_FOLDERS,\n INBOX_DOCS,\n PROTECTED_FOLDERS,\n} from '../../constants';\nimport { useBreadcrumbNavigation } from '../../hooks/useBreadcrumbNavigation';\nimport plusIcon from '../../assets/inboxDocsMultibrand/iconsFolder/add.svg';\nimport { FoldersSection } from './FoldersSection';\nimport { InboxSection } from './InboxSection';\nimport { RecentActivity } from './recentActivity/RecentActivity';\nimport FigoLottie from '../common/FigoLottie';\nimport loadingSpinnerBlue\nfrom '../../assets/lottieFiles/loading-blue.json';\nimport { Breadcrumbs } from '../common/breadcrumbs/Breadcrumbs';\nimport { InboxAndDocsFileList } from './foldersContent/InboxAndDocsFileList';\nimport './InboxAndDocsScreen.css';\nimport { InboxAndDocsEmptyScreen } from './InboxAndDocsEmptyScreen';\nimport { Dropzone } from '../common/inputFiles/Dropzone';\nimport { UploadFilesButton } from './UploadFilesButton';\nimport { UploadFilesModal } from './modals';\nimport { AddFolderModal } from './modals/AddFolderModal';\n\nconst MAX_SIZE_MB = 15;\nconst FACTOR_B_TO_MB = 1048576;\n// eslint-disable-next-line max-len\nconst ALLOWED_EXT = /(\\.pdf|\\.jpg|\\.jpeg|\\.png|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.txt|\\.html|\\.svg|\\.tiff)$/i;\n\nconst ALLOWED_EXT_STRING =\n '.pdf,.html,.txt,.jpg,.jpeg,.png,.xls,.xlsx,.doc,.docx';\n\nconst InboxAndDocsScreen = () => {\n const { t } = useTranslation('inboxAndDocs');\n const dispatch = useDispatch();\n const match = useRouteMatch();\n const [showAddFolder, setShowAddFolder] = useState(false);\n const [showUploadFilesModal, setShowUploadFilesModal] = useState(false);\n const [selectedUploadFolder, setSelectedUploadFolder] = useState(null);\n\n const store = useSelector(({\n inboxAndDocs,\n personalInformation,\n }) => ({\n inboxAndDocs,\n personalInformation,\n }), shallowEqual);\n\n const { PetCloudEmail } = store.personalInformation.userInfo;\n const {\n inboxAndDocs: {\n folderContent,\n loading: loadingFolders,\n uploadFiles,\n },\n } = store;\n const isEmptyFolder = !folderContent.length;\n const inbox = useMemo(\n () => folderContent.find((folder) => folder.Id === INBOX_DOCS.inbox),\n [folderContent],\n );\n const routeFormat = `${match.path}/:name/:id`;\n\n const breadcrumbs = useBreadcrumbNavigation({\n homeData: {\n id: INBOX_DOCS.landing,\n name: 'Home',\n },\n navigationParam: 'data',\n navTree: store.inboxAndDocs.folderStructure,\n routeFormat,\n });\n\n const { currentFolderId, currentFolderName } = useMemo(() => {\n if (!breadcrumbs.navData.length) {\n return INBOX_DOCS.landing;\n }\n\n const folderInfo = breadcrumbs.navData[breadcrumbs.navData.length - 1];\n\n return {\n currentFolderId: String(folderInfo?.id),\n currentFolderName: folderInfo?.name,\n };\n }, [breadcrumbs]);\n\n const breadcrumbsSectionId = breadcrumbs.navData[1]?.id ?? INBOX_DOCS.landing;\n const isPolicyDocumentsReadOnly = PROTECTED_FOLDERS\n .includes(String(breadcrumbsSectionId));\n const isTrashFolder = currentFolderId === INBOX_DOCS.trash;\n\n useEffect(() => {\n if (breadcrumbs.navData.length > 1 && selectedUploadFolder) {\n setSelectedUploadFolder(null);\n }\n }, [breadcrumbs]);\n\n useEffect(() => {\n dispatch(loadFolderStructure());\n }, [dispatch]);\n\n useEffect(() => {\n dispatch(loadFolderContent(currentFolderId || INBOX_DOCS.landing));\n }, [dispatch, currentFolderId]);\n\n async function convertToBinary({ file, fileKey }) {\n try {\n const binaryDoc = await toBase64(file);\n dispatch(fileToUploadUpdated({\n fileKey,\n newValues: {\n binary: binaryDoc,\n errorMsg: '',\n },\n }));\n } catch (_) {\n dispatch(fileToUploadUpdated({\n fileKey,\n newValues: {\n errorMsg: t('uploadModal.failedUpload'),\n percentage: 25,\n valid: false,\n },\n }));\n }\n }\n\n function validateFile({ file, maxSizeMB }) {\n return file.size > (maxSizeMB * FACTOR_B_TO_MB)\n ? t('uploadModal.largeFile') : '';\n }\n\n function handleAddFiles(fileList) {\n setShowUploadFilesModal(true);\n for (let i = 0; i < fileList.length; i += 1) {\n const file = fileList[i];\n const error = validateFile({ file, maxSizeMB: MAX_SIZE_MB });\n const extMatch = file.name.match(ALLOWED_EXT);\n const uniqueKey = `${file.name}-${Date.now()}`;\n if (extMatch) {\n dispatch(filesToUploadAdded({\n contentType: file.type,\n errorMsg: error,\n extension: extMatch.slice(1)[0],\n filename: file.name,\n hideDelete: false,\n key: uniqueKey,\n percentage: 0,\n size: file.size,\n valid: !error,\n }));\n }\n if (!error) {\n convertToBinary({ file, fileKey: uniqueKey });\n }\n }\n }\n\n function onAddFolder() {\n setShowAddFolder(true);\n }\n\n const openUploadFilesModal = useCallback(() => {\n setShowUploadFilesModal(true);\n }, []);\n\n function renderInboxAndDocsContent() {\n if (loadingFolders) {\n return (\n <div className=\"Inbox-and-docs-loading-container\">\n <FigoLottie\n animationData={loadingSpinnerBlue}\n height={50}\n width={50}\n />\n </div>\n );\n }\n\n const dropzone = (\n !INBOX_DOCS_PRIVATE_FOLDERS.includes(currentFolderId)\n && !isTrashFolder\n && !showUploadFilesModal\n && (\n <Dropzone onAddFiles={handleAddFiles} />\n )\n );\n\n if (isEmptyFolder) {\n return (\n <>\n <InboxAndDocsEmptyScreen\n folderId={currentFolderId}\n handleAddFiles={handleAddFiles}\n isTrashFolder={isTrashFolder}\n />\n\n {dropzone}\n </>\n );\n }\n\n return (\n <Switch>\n <Route exact path={match.path}>\n <div className=\"Flex Flex-column\">\n <InboxSection\n email={PetCloudEmail}\n inbox={inbox}\n onClick={breadcrumbs.onAddBreadcrumbItem}\n />\n\n <FoldersSection\n breadcrumbs={breadcrumbs}\n folders={folderContent}\n onAddFolder={onAddFolder}\n onOpenUpload={openUploadFilesModal}\n />\n </div>\n\n <RecentActivity\n breadcrumbs={breadcrumbs}\n folders={store.inboxAndDocs.folderStructure}\n />\n </Route>\n\n <Route path={routeFormat}>\n <InboxAndDocsFileList\n changeLocation={breadcrumbs.onDirectNavigation}\n currentFolderId={currentFolderId}\n goToFolder={breadcrumbs.onAddBreadcrumbItem}\n goToFolderDirect={breadcrumbs.onDirectNavigation}\n />\n\n {dropzone}\n </Route>\n </Switch>\n );\n }\n\n function onCloseFolder() {\n if (store.inboxAndDocs.newFolder.loading) {\n return;\n }\n\n dispatch(createFolderReset());\n setShowAddFolder(false);\n }\n\n const onNewFolderCreated = useCallback(() => {\n setShowAddFolder(false);\n dispatch(loadFolderStructure());\n dispatch(loadFolderContent(currentFolderId || INBOX_DOCS.landing));\n }, [dispatch, currentFolderId]);\n\n function closeUploadFiles() {\n setShowUploadFilesModal(false);\n dispatch(uploadFilesRestarted());\n const success = uploadFiles.filesAttached\n .some((file) => file.percentage === 100);\n if (success) {\n if (!selectedUploadFolder) {\n dispatch(loadFolderContent(currentFolderId || INBOX_DOCS.landing));\n } else {\n breadcrumbs.onDirectNavigation({\n id: selectedUploadFolder.id,\n name: selectedUploadFolder.label,\n });\n }\n }\n setSelectedUploadFolder(null);\n }\n\n function handleDeleteFile(fileKeyToRemove) {\n dispatch(fileToUploadRemoved(fileKeyToRemove));\n }\n\n function handleSelectedFolder(itemFolder) {\n setSelectedUploadFolder(\n (prev) => (itemFolder === prev ? null : itemFolder),\n );\n }\n\n function renderAddFolder() {\n const hideAddFolder = breadcrumbs.navData.length > 2;\n\n if (hideAddFolder) {\n return null;\n }\n\n return (\n <button\n className=\"Inbox-and-docs-add-folder\"\n onClick={onAddFolder}\n type=\"button\"\n >\n <img alt=\"\" src={plusIcon} />\n\n <span>{t('addFolder')}</span>\n </button>\n );\n }\n\n function renderActionButton() {\n if (PROTECTED_FOLDERS.includes(String(currentFolderId))) {\n return null;\n }\n\n return (\n <div className=\"Inbox-and-docs-actions-container\">\n {renderAddFolder()}\n\n {!isPolicyDocumentsReadOnly && (\n <UploadFilesButton\n isHome={breadcrumbs.navData.length < 2}\n onClick={openUploadFilesModal}\n />\n )}\n </div>\n );\n }\n\n const renderHeader = () => {\n const isHome = breadcrumbs?.navData.length <= 1;\n\n // no navigation executed\n if (isHome) {\n return null;\n }\n\n // navigation\n return (\n <div className=\"Screen-header-transparent\">\n <Breadcrumbs\n labelField=\"name\"\n navData={breadcrumbs.navData}\n onNavItemClick={breadcrumbs.onBreadcrumbItemClick}\n />\n\n <div\n className=\"Inbox-and-docs-header\"\n id={ACTION_BUTTONS_CONTAINER_ID}\n >\n <div className=\"Screen-title-black Inbox-and-docs-title\">\n <span>{currentFolderName}</span>\n </div>\n\n {renderActionButton()}\n </div>\n </div>\n );\n };\n\n return (\n <>\n <AddFolderModal\n onClose={onCloseFolder}\n onRefresh={onNewFolderCreated}\n parentId={currentFolderId}\n show={showAddFolder}\n />\n\n {showUploadFilesModal && (\n <UploadFilesModal\n acceptedFiles={ALLOWED_EXT_STRING}\n currentFolder={{ id: currentFolderId, label: currentFolderName }}\n filesAttached={uploadFiles.filesAttached}\n folderId={selectedUploadFolder?.id || currentFolderId}\n isHome={breadcrumbs.navData.length < 2}\n onAddFiles={handleAddFiles}\n onClose={closeUploadFiles}\n onDeleteFile={handleDeleteFile}\n onFolderSelected={handleSelectedFolder}\n selectedFolder={selectedUploadFolder}\n show={showUploadFilesModal}\n />\n )}\n\n {renderHeader()}\n\n <div\n className={'Inbox-and-docs-content Flex '\n + `${isEmptyFolder\n ? 'Inbox-and-docs-center Flex-column' : ''} ${isTrashFolder\n ? 'Padding-top-24' : ''}`}\n >\n {renderInboxAndDocsContent()}\n </div>\n </>\n );\n};\n\nexport default InboxAndDocsScreen;\n","import React, { useEffect, useMemo, useState } from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport { useWebviewMultibrand } from '../../../hooks';\n\nimport {\n MY_ACCOUNT, WEB_VIEW_TYPES,\n PAYMENT_PLANS_BY_NAME,\n} from '../../../constants';\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\nimport { getThemeLogoById } from '../../../theme/theme.utils';\n\nimport './css/PolicyCard.css';\n\nconst PolicyCard = ({\n billingPayments = {},\n breadCrumbs = null,\n marketingChannelId = 0,\n pets = [],\n policyId = '',\n policyNumber = '',\n policy,\n}) => {\n const { t } = useTranslation('myAccount');\n const history = useHistory();\n const location = useLocation();\n const [selectedPolicy, setSelectedPolicy] = useState(null);\n const logo = useMemo(() => {\n const theme = getThemeLogoById(marketingChannelId);\n return theme.dark;\n }, [marketingChannelId]);\n const isNotPPIOnePack = marketingChannelId\n !== MARKETING_CHANNEL_ID.ppiOnePack;\n const {\n getWebView,\n isLoading,\n title,\n url,\n } = useWebviewMultibrand();\n useEffect(() => {\n if (url && !isLoading && breadCrumbs && selectedPolicy) {\n breadCrumbs.onAddBreadcrumbItem({\n extraData: {\n marketingChannelId: selectedPolicy?.MarketingChannelId,\n policyNumber,\n title,\n url,\n },\n id: MY_ACCOUNT.billingAndPaymentDetails,\n name: t('breadCrumbs.breadCrumbPolicy', {\n policyNumber,\n }),\n });\n }\n }, [url, isLoading, breadCrumbs, selectedPolicy]);\n\n const onAddFigoBreadcrumbVariant = () => {\n breadCrumbs.onAddBreadcrumbItem({\n extraData: { marketingChannelId, policyNumber },\n id: MY_ACCOUNT.billingAndPaymentDetails,\n name: t('breadCrumbs.breadCrumbPolicy', {\n policyNumber,\n }),\n });\n };\n\n const onViewDetails = () => {\n history.push(`${location.pathname}/${policyNumber}${location.search}`);\n };\n\n function onClickViewDetails() {\n setSelectedPolicy(policy);\n if (marketingChannelId === MARKETING_CHANNEL_ID.figo) {\n onViewDetails();\n onAddFigoBreadcrumbVariant();\n } else {\n getWebView({\n companyId: marketingChannelId,\n policyId,\n policyNumber,\n webViewType: WEB_VIEW_TYPES.billingAndPayment,\n });\n }\n }\n\n return (\n <div className=\"Policy-card-container\">\n <div className=\"Policy-card-data-container\">\n <div className=\"Policy-card-price-container\">\n <img\n alt=\"Policy Logo\"\n className={`Policy-card-price-img \n Policy-card-price-img-${marketingChannelId}`}\n loading=\"lazy\"\n src={logo}\n />\n {isNotPPIOnePack\n ? (\n <p className=\"Policy-card-price-text\">\n ${billingPayments.Premium}\n <span>{billingPayments\n ?.BillingCycle === PAYMENT_PLANS_BY_NAME.monthly\n ? t('billingAndPayments.month') : t('billingAndPayments.yr')}\n </span>\n </p>\n )\n : (\n <p className=\"Policy-card-price-text\">\n <span>\n {t('billingAndPayments.managedBy')}\n {billingPayments?.GroupName}\n </span>\n </p>\n )}\n </div>\n\n <div className=\"Policy-card-details-container\">\n <div className=\"Policy-card-details-item\">\n <h6 className=\"Policy-card-details-item-title\">\n {isNotPPIOnePack ? t('billingAndPayments.policyNumber')\n : t('billingAndPayments.certificateNumber')}\n </h6>\n\n <p className=\"Policy-card-details-item-content\">\n {policyNumber}\n </p>\n </div>\n\n <div className=\"Policy-card-details-item\">\n {isNotPPIOnePack ? (\n <>\n <h6 className=\"Policy-card-details-item-title\">\n {t('billingAndPayments.paymentMethod')}\n </h6>\n\n <p className=\"Policy-card-details-item-content\">\n {billingPayments?.PaymentMethod}\n </p>\n </>\n )\n : (\n <>\n <h6 className=\"Policy-card-details-item-title\">\n {t('billingAndPayments.petsOnThisPolicy')}\n </h6>\n\n <p className=\"Policy-card-details-item-content\">\n {pets.map((pet) => pet.PetName).join(', ')}\n </p>\n </>\n )}\n </div>\n\n <div className=\"Policy-card-details-item\">\n {isNotPPIOnePack\n ? (\n <>\n <h6 className=\"Policy-card-details-item-title\">\n {t('billingAndPayments.petsOnThisPolicy')}\n </h6>\n <p className=\"Policy-card-details-item-content\">\n {pets.map((pet) => pet.PetName).join(', ')}\n </p>\n </>\n )\n : (\n <>\n <h6 className=\"Policy-card-details-item-title-onePack\">\n {t('billingAndPayments.petsOnThisPolicyOnePack')}\n </h6>\n <p className=\"Policy-card-details-item-content-onePack\">\n {t('billingAndPayments.contentOnePack')}\n </p>\n </>\n )}\n </div>\n </div>\n </div>\n\n <div className=\"Policy-card-button-container\">\n {isNotPPIOnePack && (\n <button\n className=\"Policy-card-button-details\"\n onClick={onClickViewDetails}\n type=\"button\"\n >\n {t('paymentHistorySection.viewDetails')}\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default PolicyCard;\n","import React from 'react';\n\nimport PolicyCard from './PolicyCard';\n\nimport './css/MultiPoliciesPayments.css';\n\nconst MultiPoliciesPayments = ({ allBrandsData, breadCrumbs }) => (\n <div className=\"Multi-policies-payments\">\n {allBrandsData.map((policy) => (\n <PolicyCard\n key={policy.PolicyId}\n billingPayments={policy.BillingPayments}\n breadCrumbs={breadCrumbs}\n marketingChannelId={policy.MarketingChannelId}\n pets={policy.Pets}\n policy={policy}\n policyNumber={policy.PolicyNumber}\n />\n ))}\n </div>\n);\n\nexport default MultiPoliciesPayments;\n","export default __webpack_public_path__ + \"static/media/figo-logo.a2ea4f42.svg\";","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport moment from 'moment';\n\nimport { CoveragePolicyStatus }\nfrom '../../insurance/coverageOverview/CoveragePolicyStatus';\nimport { POLICY_STATUS, PAYMENT_PLANS_BY_NAME } from '../../../constants';\n\nimport figoLogo from '../../../assets/figo-logo.svg';\n\nimport './css/BillingDetailsCard.css';\nimport { useWebViewReskin } from '../../../hooks';\n\nconst BillingDetailsCard = ({ policyInformation }) => {\n const { t } = useTranslation(['myAccount', 'insuranceScreen']);\n const useMobileReskin = useWebViewReskin();\n\n if (!policyInformation) {\n return null;\n }\n\n const { Pets = [], BillingPayments = {} } = policyInformation;\n\n const detailItemClassName = useMobileReskin\n ? 'Billing-details-policy-detail-item'\n : 'Billing-details-policy-details-item';\n\n return (\n <div className=\"Billing-details-card-container\">\n <div className=\"Billing-details-policy-status-container\">\n <CoveragePolicyStatus\n label={t(`policyStatus-${POLICY_STATUS[policyInformation?.PolicyStatus\n ?.toLowerCase()]}`, { ns: 'insuranceScreen' })}\n status={POLICY_STATUS[policyInformation?.PolicyStatus?.toLowerCase()]}\n />\n </div>\n\n <div\n className={useMobileReskin\n ? 'Billing-details-top-container'\n : 'Billing-details-upper-container'}\n >\n <img alt=\"\" className=\"Billing-details-upper-img\" src={figoLogo} />\n\n <p className=\"Billing-details-price-text\">\n ${BillingPayments?.Premium}\n <span>{BillingPayments\n ?.BillingCycle === PAYMENT_PLANS_BY_NAME.monthly\n ? t('billingAndPayments.month') : t('billingAndPayments.yr')}\n </span>\n </p>\n </div>\n\n <div className=\"Billing-details-policy-details\">\n <div className={detailItemClassName}>\n <h6 className=\"Billing-details-policy-details-key\">\n {t('billingAndPayments.policyNumber')}\n </h6>\n\n <p className=\"Billing-details-policy-details-value\">\n {policyInformation?.PolicyNumber}\n </p>\n </div>\n\n <div className={detailItemClassName}>\n <h6 className=\"Billing-details-policy-details-key\">\n {t('billingAndPayments.policyTerm')}\n </h6>\n\n <p className=\"Billing-details-policy-details-value\">\n {moment(policyInformation?.PolicyStartDate?.split('T')[0])\n .format('M/DD/YYYY')}-{moment(policyInformation?.PolicyEndDate\n ?.split('T')[0]).format('M/DD/YYYY')}\n </p>\n </div>\n\n <div className={detailItemClassName}>\n <h6 className=\"Billing-details-policy-details-key\">\n {t('billingAndPayments.billingCycle')}\n </h6>\n\n <p className=\"Billing-details-policy-details-value\">\n {BillingPayments?.BillingCycle}\n </p>\n </div>\n\n <div className={detailItemClassName}>\n <h6 className=\"Billing-details-policy-details-key\">\n {t('billingAndPayments.nextBillingDate')}\n </h6>\n <p className=\"Billing-details-policy-details-value\">\n {moment(BillingPayments?.NextBillingDate?.split('T')[0])\n .format('M/DD/YYYY')}\n </p>\n </div>\n\n <div className={detailItemClassName}>\n <h6 className=\"Billing-details-policy-details-key\">\n {t('billingAndPayments.petsOnThisPolicy')}\n </h6>\n\n <p className=\"Billing-details-policy-details-value\">\n {Pets?.map(({ PetName }) => PetName).join(', ')}\n </p>\n </div>\n </div>\n </div>\n );\n};\n\nexport default BillingDetailsCard;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport checkIcon from '../../../assets/policy/check-green.svg';\nimport { useWebViewReskin } from '../../../hooks';\n\nconst PaymentMethod = ({ icon, title, isCreditCard, billingDetails }) => {\n const { t } = useTranslation('myAccount');\n const useMobileReskin = useWebViewReskin();\n\n const className = useMobileReskin\n ? 'Payment-method-card-type' : 'Payment-method-card-credit-card';\n\n return (\n <div className=\"Payment-method-card-data-container\">\n <img\n alt=\"\"\n className=\"Payment-method-card-icon\"\n src={icon}\n />\n\n <div className=\"Payment-method-card-info-wrapper\">\n <p className={className}>\n {title} XX\n {isCreditCard\n ? billingDetails?.CCCardNumber?.slice(-4)\n : billingDetails?.ACHAccountNumber?.slice(-4)}\n </p>\n\n {isCreditCard && (\n <p\n className={`${className}`\n + ` ${useMobileReskin ? 'Payment-method-card-exp' : ''}`}\n >\n <span>{t('billingAndPayments.exp')}</span>\n {billingDetails?.CCExpMonth}/{billingDetails?.CCExpYear}\n </p>\n )}\n </div>\n\n {!useMobileReskin && (\n <>\n <img\n alt=\"\"\n className=\"Payment-method-card-icon-checked\"\n src={checkIcon}\n />\n\n <span className=\"Payment-method-card-default\">\n {t('billingAndPayments.default')}\n </span>\n </>\n )}\n </div>\n );\n};\n\nexport { PaymentMethod };\n","export default __webpack_public_path__ + \"static/media/bank-active.dc8f4aa8.svg\";","import React, { useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Button from 'react-bootstrap/Button';\nimport { useDispatch } from 'react-redux';\n\nimport { oneIncPaymentReset } from '../../actions';\n\nimport ModalContainer from './ModalContainer';\nimport FigoLottie from './FigoLottie';\nimport LoadingButton from './LoadingButton';\n\nimport bankAccountIcon from '../../assets/updatePayment/bank-active.svg';\nimport creditCardIcon from '../../assets/updatePayment/bank-card.png';\nimport spinner from '../../assets/spinner.json';\nimport { doNothing } from '../../services/utils';\n\nexport const ONE_INC_PAYMENT_CATEGORY = {\n bankAccount: 'ACH',\n creditCard: 'CreditCard',\n};\n\nexport const PAYMENT_TYPE = {\n bank: {\n name: 'Bank Account',\n value: 1,\n },\n creditCard: {\n name: 'Credit or Debit',\n value: 2,\n },\n};\n\nconst OneIncDefaultPaymentMethod = ({\n forceClose = 0,\n isCreditCardDefault,\n onCancel = () => { },\n oneIncReducer,\n onNewAddPaymentMethod,\n onSaveComplete,\n}) => {\n const { t } = useTranslation('paymentMethod');\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(false);\n const [show, setShow] = useState(false);\n const [lastShowModal, setLasShowModal] = useState(0);\n const defaultPaymentMethod = useMemo(() => (isCreditCardDefault\n ? ONE_INC_PAYMENT_CATEGORY.creditCard\n : ONE_INC_PAYMENT_CATEGORY.bankAccount), [isCreditCardDefault]);\n const [selectedPaymentMethod, setSelectedPaymentMethod] =\n useState(defaultPaymentMethod);\n\n useEffect(() => {\n setSelectedPaymentMethod(defaultPaymentMethod);\n }, [defaultPaymentMethod]);\n\n function reset() {\n dispatch(oneIncPaymentReset());\n setLasShowModal(0);\n setSelectedPaymentMethod(defaultPaymentMethod);\n setShow(false);\n }\n\n useEffect(() => {\n if (oneIncReducer.showModal > lastShowModal) {\n setShow(true);\n setLoading(false);\n setSelectedPaymentMethod(selectedPaymentMethod);\n setLasShowModal(oneIncReducer.showModal);\n }\n }, [oneIncReducer.showModal]);\n\n useEffect(() => {\n if (forceClose) {\n reset();\n }\n }, [forceClose]);\n\n const onDefaultPaymentMethodUpdated = (data) => () => {\n setSelectedPaymentMethod(data);\n };\n\n function handleOnCancelModal() {\n onCancel();\n reset();\n }\n\n function handleUseOtherPaymentMethod() {\n onNewAddPaymentMethod();\n setLoading(true);\n }\n\n function handleSave() {\n const isCreditCard =\n selectedPaymentMethod === ONE_INC_PAYMENT_CATEGORY.creditCard;\n const method = isCreditCard\n ? oneIncReducer.creditCard : oneIncReducer.bankAccount;\n const customerName = `${method.AddressFirstName} ${method.LastName}`\n .replace(/null/g, '').trim();\n const data = {\n customerName,\n lastFourDigits: isCreditCard\n ? method.MaskedCardNumber.substring(4)\n : method.MaskedAccountNumber.substring(4),\n paymentCategory: selectedPaymentMethod,\n tokenId: null,\n };\n\n reset();\n onSaveComplete(data);\n }\n\n function renderOneItemDetails({ icon, lastFourDigits, title = '' }) {\n return (\n <div className=\"One-modal-details\">\n <img alt=\"icon\" className=\"One-modal-details-image\" src={icon} />\n\n <div>\n <strong>{title.toUpperCase()}</strong>\n\n <span className=\"One-modal-last-digits\">\n {lastFourDigits}\n </span>\n </div>\n </div>\n );\n }\n\n function renderCreditCardDeatils() {\n const { creditCard } = oneIncReducer;\n\n const maskedNumber = creditCard.MaskedCardNumber.substring(4);\n const details = {\n className: 'One-modal-details-image',\n icon: creditCardIcon,\n lastFourDigits: t('cardEnding', { maskedNumber }),\n title: creditCard.cardType || t('creditCardTitle'),\n };\n\n return renderOneItemDetails(details);\n }\n\n function renderCheckBox({ checked, isCreditCard }) {\n return (\n <div className=\"One-inc-radio-button-container\">\n <label htmlFor={isCreditCard ? 'rb-credit-card' : 'rb-bank'}>\n <input\n aria-labelledby={isCreditCard ? 'rb-credit-card' : 'rb-bank'}\n checked={checked}\n id={isCreditCard ? 'rb-credit-card' : 'rb-bank'}\n onChange={doNothing}\n tabIndex={-1}\n type=\"radio\"\n value={isCreditCard\n ? PAYMENT_TYPE.creditCard.value\n : PAYMENT_TYPE.bank.value}\n />\n </label>\n </div>\n );\n }\n\n function renderBankAccountDetails() {\n const { bankAccount } = oneIncReducer;\n\n const maskedNumber = bankAccount.MaskedAccountNumber.substring(4);\n const details = {\n className: 'One-modal-details-image',\n icon: bankAccountIcon,\n lastFourDigits: t('bankEnding', { maskedNumber }),\n title: t('bankTitle'),\n };\n\n return renderOneItemDetails(details);\n }\n\n function renderUpdateButton() {\n if (loading) {\n return (\n <div className=\"One-modal-details-button\">\n <FigoLottie\n animationData={spinner}\n height={30}\n width={100}\n />\n </div>\n );\n }\n\n return (\n <button\n className=\"One-modal-details-button\"\n onClick={handleUseOtherPaymentMethod}\n type=\"button\"\n >\n {t('useOtherPaymentMethod')}\n </button>\n );\n }\n\n function renderTwoCardDetails() {\n const { bankAccount, creditCard } = ONE_INC_PAYMENT_CATEGORY;\n\n return (\n <>\n <div\n className={'d-flex flex-column'\n + `${isCreditCardDefault ? '-reverse' : ''}`}\n >\n <button\n className=\"One-modal-button-select\"\n onClick={onDefaultPaymentMethodUpdated(bankAccount)}\n type=\"button\"\n >\n <div className=\"d-flex\">\n {renderCheckBox({\n checked: selectedPaymentMethod === bankAccount,\n isCreditCard: false,\n })}\n\n {renderBankAccountDetails()}\n </div>\n </button>\n\n <button\n className=\"One-modal-button-select\"\n onClick={onDefaultPaymentMethodUpdated(creditCard)}\n type=\"button\"\n >\n <div className=\"d-flex\">\n {renderCheckBox({\n checked: selectedPaymentMethod === creditCard,\n isCreditCard: true,\n })}\n\n {renderCreditCardDeatils()}\n </div>\n </button>\n </div>\n\n {renderUpdateButton()}\n </>\n );\n }\n\n if (!oneIncReducer.isTwoDefaults) {\n return null;\n }\n\n return (\n <ModalContainer\n handleOutClick={handleOnCancelModal}\n show={show}\n >\n <div className=\"One-inc-payment-modal\">\n <div className=\"d-flex Flex-column\">\n <span className=\"One-inc-payment-title\">\n {t('paymentMethodDefaultTitle')}\n </span>\n\n <p className=\"One-inc-payment-message\">\n {t('paymentMethodDefaultLeyend')}\n </p>\n\n {renderTwoCardDetails()}\n\n <LoadingButton\n className=\"One-inc-payment-button-save\"\n disabled={defaultPaymentMethod === selectedPaymentMethod}\n id=\"saveOneIncDefault\"\n loading={false}\n onClick={handleSave}\n text={t('apply')}\n textStyle=\"One-inc-button-save-text\"\n />\n\n <Button\n className=\"One-inc-payment-button-cancel\"\n id=\"cancelMultiplePoliciesPayMethod\"\n onClick={handleOnCancelModal}\n size=\"lg\"\n variant=\"light\"\n >\n <span className=\"One-inc-payment-button-cancel-text\">\n {t('cancel')}\n </span>\n </Button>\n </div>\n </div>\n </ModalContainer>\n );\n};\n\nexport { OneIncDefaultPaymentMethod };\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAsCAYAAADIIYBkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJdSURBVHgB7ZnNddpAEMf/swKSozuIjnk5gNKBOBP84gqSVEBcgaGEdIArIHmCs1WCnBQQuYJwFmgns2DysJDs8ACjlfldtMzqsKOdYb4Igjcanelao0fgr/LzDOUl1Kyvf52fD/M2SRRx2anfgODCEhjU/9ntDLJyxfXGlU2KGMSC+l4Q+Fm5AvNHWIhm8rIyhXL7SCGkqJWVKVSISilTY80DWIgiHeHEiRM7QW8lnYGFvAam0cXFdF1We1Wr/4aFMNFQHl/WZaegWVZqT+yHt90PbexI80fQl1zqCgfmRd2M1wrGN9gVUy8xDs5TypjywMeuPIMiBuvNzPQvVmvrlUnQcFdr65VR0GfvJ5M3y3UFmKfpInxUQhm6b25UI84QueZRjZu579RU42aYXfMXbZSZwkI41XcPJY6vpM0RwkKUQrh4Okvn145yFSXJpaQbMSxCes3fom43XK7RWzzFb5SUnjGlszYzrlF+pkS4FEXM6AXNYNL71/Rn9ij7tlfinoD58Kt1czz+RIzh+j7BMt6NJl69LqbF/DmzNd0oAVrBZCR3Vs7JAItJEefXRkTfc+oZ3k8NcwioUB7TLBlsBE1ppN/CHkyMDGk2axt/2rgZJhXRc5WG22DCB1HE0HeKVQQHEZIkXm8EbijjyEuscUzkcBQ+dugicq1Qmhh/cPjxoDnc4muTMW3iCPN59D+HLqKooWEGOT72w8NDQ8dI02g9ZuyLXGXEZwYya/exLcauJdc79KGLKAyaMmfvi0L5XcgcZ4w6naOP5R7NABapjdPwNWvJSFW8jTMeg78FdujPB/JiMAAAAABJRU5ErkJggg==\"","import React, {\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport FigoLottie from './FigoLottie';\nimport loadingWheel from '../../assets/lottieFiles/loading-blue.json';\nimport FigoLoadingOverlay from './FigoLoadingOverlay';\nimport { OneIncDefaultPaymentMethod } from './OneIncDefaultPaymentMethod';\nimport {\n createOneIncSession,\n oneIncLoadDefaultPayments,\n oneIncSessionRemoved,\n} from '../../actions/oneInc';\nimport {\n BANK_ACCOUNT,\n CREDIT_CARD,\n PAYMENT_METHOD_NAMES,\n PAYMENT_METHOD_IDS,\n ONE_INC_PAYMENT_CATEGORY,\n} from '../../constants';\n\nimport './OneIncModal.css';\nimport {\n openMultiPoliciesModal,\n paymentMethodPastDueModalVisibleChanged,\n} from '../../actions';\n\nlet closeDefaultCount = 0;\nconst OneIncModal = ({\n buttonClass,\n children,\n hasPastPaymentDue,\n onUpdatePaymentMethod,\n selectedPolicy,\n}) => {\n const dispatch = useDispatch();\n const store = useSelector(({\n billingPayments,\n editPayment,\n oneInc,\n personalInformation,\n policies,\n }) => ({\n billingPayments,\n editPayment,\n oneInc,\n personalInformation,\n policies,\n }), shallowEqual);\n const div = useRef(null);\n const [loading, setLoading] = useState(false);\n const [showModal, setShowModal] = useState(false);\n const [closeDefaultModal, setCloseDefaultModal] = useState(0);\n const { billingPayments: { billingDetails } } = store;\n const {\n firstName,\n lastName,\n userInfo: { Address, DiamondClientId },\n } = store.personalInformation;\n let oneIncPaymentData = null;\n\n useEffect(() => {\n if (!store.editPayment.showLoading && showModal) {\n setShowModal(false);\n }\n }, [store.editPayment.showLoading]);\n\n const userInformation = {\n address1: store.personalInformation.address1,\n address2: store.personalInformation.address2,\n city: store.personalInformation.city,\n state: store.personalInformation.state,\n zipCode: store.personalInformation.zipCode,\n };\n\n function getRequestUpdatePaymentMethod() {\n return {\n paymentMethodData: oneIncPaymentData,\n policies: [],\n policyNumber: selectedPolicy,\n sameBillingAddress: true,\n userInformation,\n };\n }\n\n function getForceToUpdatePolicies() {\n if (!billingDetails) {\n return [];\n }\n\n return store.editPayment.policiesList\n .filter((policy) => (\n policy.Policy.PaymentMethod\n === PAYMENT_METHOD_NAMES[billingDetails.PayMethod]\n ));\n }\n\n function handleUpdatePaymentMethod() {\n const requestUpdatePaymentMethod = getRequestUpdatePaymentMethod();\n onUpdatePaymentMethod(requestUpdatePaymentMethod);\n }\n\n function showMultiplePolicyModal() {\n const policies = getForceToUpdatePolicies()\n .map((policy) => (policy.Policy.Number));\n\n dispatch(openMultiPoliciesModal({\n paymentMethodData: oneIncPaymentData,\n policies,\n sameBillingAddress: true,\n userInformation,\n }));\n }\n\n const handleSaveComplete = useCallback(({ data, saveByDefault = false }) => {\n const isCreditCard =\n data.paymentCategory === ONE_INC_PAYMENT_CATEGORY.creditCard;\n const paymentName = isCreditCard ? CREDIT_CARD : BANK_ACCOUNT;\n\n oneIncPaymentData = {\n ...data,\n paymentName,\n policyNumber: selectedPolicy,\n };\n const hasOnePolicy = saveByDefault\n || store.editPayment.policiesList.length === 1;\n\n if (hasOnePolicy) {\n if (hasPastPaymentDue) {\n const requestUpdatePaymentMethod = getRequestUpdatePaymentMethod();\n\n dispatch(paymentMethodPastDueModalVisibleChanged({\n requestUpdatePaymentMethod,\n visible: true,\n }));\n } else {\n setShowModal(true);\n handleUpdatePaymentMethod();\n }\n } else {\n showMultiplePolicyModal();\n }\n setLoading(false);\n }, [hasPastPaymentDue, selectedPolicy, store.editPayment]);\n\n const handleSaveByDefault = useCallback(({\n customerName,\n lastFourDigits,\n paymentCategory,\n tokenId,\n }) => {\n const data = {\n customerName,\n lastFourDigits,\n paymentCategory,\n sessionId: store.oneInc.portalOneSessionKey,\n tokenId,\n };\n\n handleSaveComplete({ data, saveByDefault: true });\n }, [handleSaveComplete]);\n\n const callback = useCallback(() => {\n closeDefaultCount += 1;\n setCloseDefaultModal(closeDefaultCount + 1);\n }, []);\n\n useEffect(() => {\n if (!div || !window.$) {\n return;\n }\n\n window.$('#portalOneContainer').on('portalOne.load', callback);\n\n window.$('#portalOneContainer').on('portalOne.unload', () => {\n setLoading(false);\n dispatch(oneIncSessionRemoved());\n });\n\n window.$('#portalOneContainer').on('portalOne.saveComplete', (_, data) => {\n handleSaveComplete({ data });\n });\n\n window.$('#portalOneContainer').on('portalOne.error', () => {\n setLoading(false);\n dispatch(oneIncSessionRemoved());\n });\n }, [dispatch, div]);\n\n useEffect(() => {\n if (!store.oneInc.portalOneSessionKey || !div) {\n return;\n }\n\n const billingAddressStreet = Address.City && Address.State\n ? `${Address.AddressLine1} ${Address.AddressLine2}`\n + ` ${Address.City}, ${Address.State}`\n : '';\n\n const params = {\n billingAddressStreet,\n billingZip: Address.ZipCode,\n clientReferenceData1: DiamondClientId,\n confirmationDisplay: 'false',\n paymentCategory: 'UserSelect',\n policyHolderName: `${firstName} ${lastName}`,\n sessionId: store.oneInc.portalOneSessionKey,\n };\n\n window.$('#portalOneContainer').portalOne();\n window.$('#portalOneContainer').data('portalOne').savePaymentMethod(params);\n }, [\n Address,\n DiamondClientId,\n firstName,\n store.oneInc.portalOneSessionKey,\n lastName,\n ]);\n\n function onAddPaymentMethod() {\n setLoading(true);\n dispatch(oneIncLoadDefaultPayments());\n }\n\n function onCreateSession() {\n dispatch(createOneIncSession());\n }\n\n function onCancelDefaultMondal() {\n setLoading(false);\n }\n\n function renderUpdateButton() {\n if (loading) {\n return (\n <div className={buttonClass}>\n <FigoLottie\n animationData={loadingWheel}\n height={30}\n width={30}\n />\n </div>\n );\n }\n\n return (\n <button\n className={buttonClass}\n onClick={onAddPaymentMethod}\n type=\"button\"\n >\n <div className=\"No-click\">\n {children}\n </div>\n </button>\n );\n }\n\n return (\n <>\n <FigoLoadingOverlay visible={showModal} />\n\n <OneIncDefaultPaymentMethod\n forceClose={closeDefaultModal}\n isCreditCardDefault={billingDetails && billingDetails.PayMethod\n === PAYMENT_METHOD_IDS.creditCard}\n onCancel={onCancelDefaultMondal}\n oneIncReducer={store.oneInc}\n onNewAddPaymentMethod={onCreateSession}\n onSaveComplete={handleSaveByDefault}\n />\n\n {renderUpdateButton()}\n\n {/* OneInc modal create here */}\n <div id=\"portalOneContainer\" />\n </>\n );\n};\n\nexport { OneIncModal };\n","export default __webpack_public_path__ + \"static/media/default-check.e81f5dc5.svg\";","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { useTranslation } from 'react-i18next';\n\nimport {\n updatePaymentMethod,\n billingPaymentReseted,\n} from '../../../actions';\nimport {\n PAYMENT_METHOD_IDS,\n MULTIBRAND_POLICY_STATUS,\n} from '../../../constants';\nimport { PaymentMethod } from './PaymentMethod';\nimport { OneIncModal } from '../../common/OneIncModal';\nimport FigoLoadingOverlay from '../../common/FigoLoadingOverlay';\n\nimport bankIcon from '../../../assets/billingPayments/saving-bank.svg';\nimport checkIcon from '../../../assets/billingPayments/default-check.svg';\nimport creditCardIcon from '../../../assets/billingPayments/credit-card.svg';\nimport addIconBlue from '../../../assets/myPets/add-icon-blue.svg';\n\nimport './css/PaymentMethodCard.css';\nimport { useWebViewReskin } from '../../../hooks';\n\nconst PaymentMethodCard = ({ policyInformation, policyNumber }) => {\n const { t } = useTranslation('myAccount');\n const dispatch = useDispatch();\n const useMobileReskin = useWebViewReskin();\n const store = useSelector(({\n billingPayments,\n editPayment,\n oneInc,\n personalInformation,\n policies,\n }) => ({\n billingPayments,\n editPayment,\n oneInc,\n personalInformation,\n policies,\n }));\n\n const {\n billingPayments: {\n billingDetails,\n loadingBillingInfo,\n updatingPaymentMethod,\n },\n } = store;\n\n const billingDetailsValidation =\n billingDetails?.ACHAccountNumber !== null\n || billingDetails?.CCCardNumber !== null;\n\n function onUpdatePaymentMethod({\n paymentMethodData,\n policies,\n sameBillingAddress,\n userInformation,\n }) {\n dispatch(updatePaymentMethod({\n paymentMethodData,\n policies,\n sameBillingAddress,\n userInformation,\n }));\n }\n\n const isCreditCard = billingDetails?.PayMethod\n === PAYMENT_METHOD_IDS.creditCard;\n const isBankAccount = billingDetails?.PayMethod === PAYMENT_METHOD_IDS.ach;\n const validPolicies = policyInformation?.PolicyStatus\n === MULTIBRAND_POLICY_STATUS.active || policyInformation?.PolicyStatus\n === MULTIBRAND_POLICY_STATUS.future;\n\n useEffect(() => {\n dispatch(billingPaymentReseted());\n }, []);\n\n if (updatingPaymentMethod || loadingBillingInfo) {\n return (\n <FigoLoadingOverlay visible={updatingPaymentMethod} />\n );\n }\n\n return (\n <>\n {billingDetailsValidation && billingDetails && (\n <div\n className=\"Payment-method-card-container\"\n data-default={useMobileReskin}\n >\n {useMobileReskin && (\n <div className=\"Payment-method-card-default-label\">\n <img alt=\"\" src={checkIcon} />\n\n {t('billingAndPayments.default')}\n </div>\n )}\n\n <PaymentMethod\n billingDetails={billingDetails}\n icon={isBankAccount ? bankIcon : creditCardIcon}\n isCreditCard={isCreditCard}\n title={isBankAccount ? t('billingAndPayments.bankAccountEnding')\n : t('billingAndPayments.creditCardEnding')}\n />\n\n <div>\n <OneIncModal\n buttonClass=\"Payment-method-card-tooltip-button\"\n onUpdatePaymentMethod={onUpdatePaymentMethod}\n selectedPolicy={policyInformation?.PolicyNumber\n || policyNumber}\n >\n <span className=\"Payment-method-card-button-details\">\n {t('billingAndPayments.edit')}\n </span>\n </OneIncModal>\n </div>\n </div>\n )}\n\n {!billingDetailsValidation && validPolicies && (\n <OneIncModal\n buttonClass=\"Billing-info-screen-button-add-method\"\n onUpdatePaymentMethod={onUpdatePaymentMethod}\n selectedPolicy={policyInformation?.PolicyNumber || ''}\n >\n <p>\n <img\n alt=\"\"\n className=\"Billing-info-screen-button-image\"\n src={addIconBlue}\n />\n {t('billingDetailsCard.addPaymentMethod')}\n </p>\n </OneIncModal>\n )}\n </>\n );\n};\n\nexport default PaymentMethodCard;\n","import React, { useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport LoadingButton from '../common/LoadingButton';\nimport {\n closeMultiPoliciesModal,\n paymentMethodPastDueModalVisibleChanged,\n} from '../../actions';\nimport ModalContainer from '../common/ModalContainer';\nimport FigoLoadingOverlay from '../common/FigoLoadingOverlay';\nimport closeIcon from '../../assets/close-button.svg';\nimport './EditPaymentMultiPolicyModal.css';\nimport './EndorsementModal.css';\n\nconst EditPaymentMultiPolicyModal = ({\n hasPastPaymentDue,\n onUpdatePaymentMethod,\n}) => {\n const { t } = useTranslation('settingsScreen');\n const dispatch = useDispatch();\n const store = useSelector(({ editPayment, billingPayments }) => ({\n billingPayments,\n editPayment,\n }));\n const {\n billingPayments: { updatingPaymentMethod, policyDetails },\n editPayment: { policiesList },\n } = store;\n\n const listSort = useMemo(() => {\n if (!policiesList.length) {\n return [];\n }\n\n return policiesList\n .sort((prev, next) => {\n if (prev.PetInformation.Name > next.PetInformation.Name) {\n return 1;\n }\n\n if (prev.PetInformation.Name < next.PetInformation.Name) {\n return -1;\n }\n\n return 0;\n });\n }, [policiesList]);\n\n const selectedPet = useMemo(() => {\n if (!policyDetails) {\n return 0;\n }\n\n return listSort.findIndex((item) => item.Policy && item.Policy.Number\n === policyDetails.PolicyNumber);\n }, [policiesList]);\n\n const petPoliciesSorted = useMemo(() => {\n if (!policiesList.length) {\n return [];\n }\n\n if (selectedPet === 0) {\n return listSort;\n }\n\n const pet = listSort[selectedPet];\n\n return [\n pet,\n ...listSort.filter((_, index) => index !== selectedPet),\n ];\n }, [selectedPet, policiesList]);\n\n const noAgencyBillPoliciesOneInc = useMemo(\n () => {\n const selectedPayment = store.editPayment.paymentMethodData\n ? store.editPayment.paymentMethodData.paymentName : '';\n\n return petPoliciesSorted.filter((policy) => policy\n && policy.Policy.PaymentMethod === selectedPayment);\n },\n [petPoliciesSorted, store.editPayment.paymentMethodData],\n );\n\n function onCancel() {\n if (!updatingPaymentMethod) {\n dispatch(closeMultiPoliciesModal());\n }\n }\n\n function onSave() {\n const {\n paymentMethodData,\n policiesToUpdate,\n sameBillingAddress,\n userInformation,\n } = store.editPayment;\n\n if (updatingPaymentMethod) {\n return;\n }\n\n const extraPolicies = policiesList.filter((policy) => (\n policy.isToUpdate\n )).map((item) => (item.Policy.Number));\n\n const requestUpdatePaymentMethod = {\n paymentMethodData,\n policies: [...policiesToUpdate, ...extraPolicies],\n sameBillingAddress,\n userInformation,\n };\n\n if (hasPastPaymentDue) {\n dispatch(closeMultiPoliciesModal());\n dispatch(paymentMethodPastDueModalVisibleChanged({\n requestUpdatePaymentMethod,\n visible: true,\n }));\n return;\n }\n\n onUpdatePaymentMethod(requestUpdatePaymentMethod);\n }\n\n if (!store.editPayment.isVisible) {\n return null;\n }\n\n if (noAgencyBillPoliciesOneInc.length === 0) {\n onSave();\n }\n\n if (updatingPaymentMethod) {\n return <FigoLoadingOverlay visible />;\n }\n\n function renderViewWithoutPetList() {\n return (\n <>\n <button\n className=\"Edit-payment-policy-withoulist-close-button\"\n onClick={onCancel}\n type=\"button\"\n >\n <img alt=\"close\" src={closeIcon} />\n </button>\n\n <div className=\"Edit-payment-policy-withoutlist-container\">\n <span className=\"Edit-payment-withoutlist-title-text\">\n {t('editPoliciesPaymentMethod.title')}\n </span>\n </div>\n\n <div className=\"Edit-payment-withoutlist-description-container\">\n <p className=\"Edit-payment-withoutlist-description-text\">\n {t('editPoliciesPaymentMethod.withoutListDescription')}\n </p>\n </div>\n\n <div className=\"Edit-payment-withoutlist-buttons-container\">\n <LoadingButton\n className=\"Edit-payment-button-update\"\n disabled={updatingPaymentMethod}\n id=\"saveMultiplePoliciesPayMethod\"\n loading={updatingPaymentMethod}\n onClick={onSave}\n text={t('editPoliciesPaymentMethod.update')}\n textStyle=\"Edit-payment-button-update-text\"\n />\n\n <button\n className=\"Edit-payment-button-cancel\"\n disabled={updatingPaymentMethod}\n id=\"cancelMultiplePoliciesPayMethod\"\n onClick={onCancel}\n type=\"button\"\n >\n <span className=\"Edit-payment-button-cancel-text\">\n {t('editPoliciesPaymentMethod.cancel')}\n </span>\n </button>\n </div>\n </>\n );\n }\n\n return (\n <ModalContainer\n contentStyle=\"Edit-payment-modal\"\n handleOutClick={onCancel}\n show\n >\n {renderViewWithoutPetList()}\n </ModalContainer>\n );\n};\n\nexport { EditPaymentMultiPolicyModal };\n","import React, { useEffect } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n getAllBrandsData,\n updatePaymentMethod,\n loadPolicyDetails,\n} from '../../../actions';\n\nimport { useResponsive } from '../../../hooks/useResponsive';\n\nimport BillingDetailsCard from './BillingDetailsCard';\nimport FigoLoadingOverlay from '../../common/FigoLoadingOverlay';\nimport PaymentMethodCard from './PaymentMethodCard';\nimport {\n EditPaymentMultiPolicyModal,\n} from '../../settings/EditPaymentMultiPolicyModal';\n\nimport './css/BillingInfoScreen.css';\nimport { useWebViewReskin } from '../../../hooks';\n\nconst BillingInfoScreen = ({ policyNumber }) => {\n const { t } = useTranslation('myAccount');\n const dispatch = useDispatch();\n const useMobileReskin = useWebViewReskin();\n const { isMobile } = useResponsive();\n const store = useSelector(({ billingPayments, policies }) => ({\n billingPayments,\n policies,\n }), shallowEqual);\n\n const {\n billingPayments: {\n loadingBillingInfo,\n updatingPaymentMethod,\n },\n } = store;\n const { allBrandsData, loadingAllBrandsData } = store.billingPayments;\n const isLoading = loadingBillingInfo\n || updatingPaymentMethod || loadingAllBrandsData;\n\n const getPolicyInformation = React.useMemo(() => {\n if (loadingAllBrandsData) {\n return {};\n }\n\n return allBrandsData.find((policy) => policy.PolicyNumber === policyNumber)\n || allBrandsData[0];\n }, [allBrandsData, loadingAllBrandsData]);\n\n useEffect(() => {\n if (policyNumber) {\n dispatch(getAllBrandsData());\n dispatch(loadPolicyDetails(policyNumber));\n }\n }, [policyNumber]);\n\n function onUpdatePaymentMethod({\n paymentMethodData,\n policies,\n sameBillingAddress,\n userInformation,\n }) {\n dispatch(updatePaymentMethod({\n paymentMethodData: {\n ...paymentMethodData,\n policyNumber,\n },\n policies,\n sameBillingAddress,\n userInformation,\n }));\n }\n\n return (\n <div className=\"Billing-info-screen-container\">\n {!useMobileReskin && isMobile ? (\n <h1 className=\"Billing-info-screen-title\">\n {t('billingDetailsCard.title')}\n </h1>\n ) : null}\n\n <EditPaymentMultiPolicyModal\n hasPastPaymentDue={false}\n onUpdatePaymentMethod={onUpdatePaymentMethod}\n policyNumber={policyNumber}\n />\n\n <FigoLoadingOverlay visible={isLoading} />\n\n <BillingDetailsCard policyInformation={getPolicyInformation} />\n\n <h1\n className={useMobileReskin\n ? 'Billing-info-screen-title-responsive'\n : 'Billing-info-screen-title'}\n >\n {t('billingDetailsCard.paymentMethod')}\n </h1>\n\n <PaymentMethodCard\n policyInformation={getPolicyInformation}\n policyNumber={policyNumber}\n />\n </div>\n );\n};\n\nexport default BillingInfoScreen;\n","import React, { useMemo } from 'react';\nimport { MY_ACCOUNT } from '../../../../constants';\nimport { MARKETING_CHANNEL_ID } from '../../../../theme/theme.constants';\n\nimport { PolicyHeader } from '../../../insurance/PolicyHeader';\nimport BillingInfoScreen from '../BillingInfoScreen';\n\nimport '../css/BillingDetailsScreen.css';\nimport { Iframe } from '../../../common/iframe/Iframe';\n\nconst BillingDetailsScreen = ({ breadCrumbs }) => {\n const breadCrumbsInfo = useMemo(() => {\n if (breadCrumbs) {\n const breadCrumbsData = breadCrumbs.navData.find((data) => data.id\n === MY_ACCOUNT.billingAndPaymentDetails).extraData;\n\n return {\n marketingChannelId: breadCrumbsData?.marketingChannelId || 0,\n policyNumber: breadCrumbsData?.policyNumber || '',\n webViewData: {\n title: breadCrumbsData?.title || '',\n url: breadCrumbsData?.url || '',\n },\n };\n }\n\n return { marketingChannelId: 0, webViewData: { title: '', url: '' } };\n }, [breadCrumbs]);\n\n if (breadCrumbsInfo.marketingChannelId === MARKETING_CHANNEL_ID.figo) {\n return (\n <BillingInfoScreen policyNumber={breadCrumbsInfo.policyNumber} />\n );\n }\n\n return (\n <div className={'Billing-details-webview-header'\n + ` Colors-${breadCrumbsInfo.marketingChannelId}`}\n >\n <PolicyHeader company={breadCrumbsInfo.marketingChannelId} />\n\n <div className=\"Billing-details-webview-container\">\n <Iframe\n className=\"Billing-details-webview\"\n src={breadCrumbsInfo.webViewData.url}\n title={breadCrumbsInfo.webViewData.title}\n />\n </div>\n </div>\n );\n};\n\nexport { BillingDetailsScreen };\n","import React from 'react';\n\nimport './EmptyScreen.css';\n\nconst EmptyScreen = ({ description = '', title = '' }) => (\n <div className=\"Empty-screen-common-container\">\n <h3>{title}</h3>\n\n <span>{description}</span>\n </div>\n);\n\nexport { EmptyScreen };\n","import React, { useEffect } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { getAllBrandsData } from '../../../actions';\nimport { MY_ACCOUNT } from '../../../constants';\n\nimport FigoLoadingOverlay from '../../common/FigoLoadingOverlay';\nimport MultiPoliciesPayments from './MultiPoliciesPayments';\nimport {\n BillingDetailsScreen,\n} from './BillingAndPaymentsDetails/BillingDetailsScreen';\nimport { EmptyScreen } from '../../common/petCloud/EmptyScreen';\n\nimport './css/BillingAndPaymentsScreen.css';\n\nconst BillingAndPaymentsScreen = ({ breadCrumbs, currentFolderId }) => {\n const { t } = useTranslation('myAccount');\n const dispatch = useDispatch();\n const store = useSelector(({ billingPayments }) => ({ billingPayments }),\n shallowEqual);\n\n const isBillingDetails = React.useMemo(() => (currentFolderId\n === MY_ACCOUNT.billingAndPaymentDetails), [currentFolderId]);\n\n useEffect(() => {\n if (!isBillingDetails) {\n dispatch(getAllBrandsData());\n }\n }, [isBillingDetails]);\n\n const { allBrandsData, loadingAllBrandsData } = store.billingPayments;\n\n function renderContent() {\n if (isBillingDetails) {\n return <BillingDetailsScreen breadCrumbs={breadCrumbs} />;\n }\n\n return (\n <>\n {allBrandsData.length > 0 && (\n <p className=\"Billing-and-payments-description\">\n {t('billingAndPayments.description')}\n </p>\n )}\n\n <FigoLoadingOverlay visible={loadingAllBrandsData} />\n\n {!loadingAllBrandsData && allBrandsData.length > 0 && (\n <MultiPoliciesPayments\n allBrandsData={allBrandsData}\n breadCrumbs={breadCrumbs}\n />\n )}\n\n {!loadingAllBrandsData && allBrandsData.length === 0 && (\n <EmptyScreen\n description={t('billingAndPayments'\n + '.noCurrentPolicyPaymentsDescription')}\n title={t('billingAndPayments.noCurrentPolicyPaymentsTitle')}\n />\n )}\n </>\n );\n }\n\n return (\n <div className=\"Billing-and-payments-container\">\n <h1 className=\"Billing-and-payments-title\">\n {t('billingDetailsCard.title')}\n </h1>\n\n {renderContent()}\n </div>\n );\n};\n\nexport { BillingAndPaymentsScreen };\n","import React from 'react';\n\nimport './css/MyAccountScreen.css';\n\nconst MyAccountCardItem = ({\n description = '',\n icon = null,\n onClick = () => { },\n title = '',\n}) => (\n <button\n className=\"My-account-card-item\"\n onClick={onClick}\n type=\"button\"\n >\n <div className=\"My-account-card-icon-background\">\n <img alt=\"\" className=\"Card-icon\" src={icon} />\n </div>\n\n <div className=\"My-account-card-info\">\n <h4>{title}</h4>\n\n <p>{description}</p>\n </div>\n </button>\n);\n\nexport { MyAccountCardItem };\n","export default __webpack_public_path__ + \"static/media/figo-card-logo.1a0578df.svg\";","export default __webpack_public_path__ + \"static/media/akc-card-logo.b93043b5.svg\";","export default __webpack_public_path__ + \"static/media/pet-partners-card-logo.3c69828f.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport figoIcon from '../../../assets/myAccount/figo-card-logo.svg';\nimport akcIcon from '../../../assets/myAccount/akc-card-logo.svg';\nimport petPartnersIcon\nfrom '../../../assets/myAccount/pet-partners-card-logo.svg';\n\nimport { MY_ACCOUNT } from '../../../constants';\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\n\nimport { MyAccountCardItem } from '../MyAccountCardItem';\n\nimport '../css/MyAccountScreen.css';\n\nconst InsuranceAccountCards = ({\n insuranceCompanies = [],\n onClick = () => { },\n}) => {\n const { t } = useTranslation('myAccount');\n const { akc, ppi, ppiOnePack } = MARKETING_CHANNEL_ID;\n\n if (!insuranceCompanies?.length) {\n return null;\n }\n\n return insuranceCompanies.map((company) => {\n let cardTitle = t('providers.figo');\n let cardKey = t('providers.figo');\n let cardIcon = figoIcon;\n\n switch (company.Id) {\n case akc:\n cardTitle = t('providers.akc');\n cardKey = t('providers.akc');\n cardIcon = akcIcon;\n break;\n\n case ppi:\n case ppiOnePack:\n cardTitle = t('providers.petPartners');\n cardKey = company?.CustomerSourceId || t('providers.petPartners');\n cardIcon = petPartnersIcon;\n break;\n\n default:\n cardTitle = t('providers.figo');\n cardKey = t('providers.figo');\n cardIcon = figoIcon;\n break;\n }\n\n return (\n <MyAccountCardItem\n key={String(cardKey)}\n description={t('providers.description')}\n icon={cardIcon}\n onClick={onClick({\n extraData: company.Id,\n id: MY_ACCOUNT.insuranceAccount,\n name: t(`breadCrumbs.${MY_ACCOUNT.insuranceAccount}`),\n })}\n title={cardTitle}\n />\n );\n });\n};\n\nexport { InsuranceAccountCards };\n","export default __webpack_public_path__ + \"static/media/pet-cloud-card-logo.d754bc73.svg\";","export default __webpack_public_path__ + \"static/media/credit-card.f7b49a9b.svg\";","export default __webpack_public_path__ + \"static/media/credit-card-sync.c139096c.svg\";","export default __webpack_public_path__ + \"static/media/reimbursement-logo.15413a10.svg\";","import React, { useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport { MyAccountCardItem } from './MyAccountCardItem';\nimport { InsuranceAccountCards }\nfrom './insuranceAccount/InsuranceAccountCards';\n\nimport petCloudIcon from '../../assets/myAccount/pet-cloud-card-logo.svg';\nimport creditCardIcon from '../../assets/myAccount/credit-card.svg';\nimport creditCardSyncIcon from '../../assets/myAccount/credit-card-sync.svg';\nimport reimbursementIcon\nfrom '../../assets/myAccount/reimbursement/reimbursement-logo.svg';\n\nimport { MY_ACCOUNT } from '../../constants';\nimport { MARKETING_CHANNEL_ID } from '../../theme/theme.constants';\nimport * as routes from '../navigation/routes.constants';\n\nimport './css/MyAccountScreen.css';\n\nconst MyAccountScreen = ({ breadCrumbs }) => {\n const { t } = useTranslation('myAccount');\n const store = useSelector(({\n personalInformation,\n }) => ({ personalInformation }), shallowEqual);\n\n const {\n personalInformation: { userInfo },\n } = store;\n\n const insuranceCompanies = userInfo.Companies;\n\n const isFigo = useMemo(\n () => insuranceCompanies\n .some((company) => company.Id === MARKETING_CHANNEL_ID.figo),\n [insuranceCompanies],\n );\n\n const isPPIG = useMemo(\n () => insuranceCompanies\n .every((company) => company.Id === MARKETING_CHANNEL_ID.ppiOnePack),\n [insuranceCompanies],\n );\n\n const onCardClick = useCallback(({\n extraData = '',\n id = '',\n name = '',\n }) => () => {\n if (breadCrumbs) {\n breadCrumbs.onAddBreadcrumbItem({ extraData, id, name });\n }\n }, [breadCrumbs]);\n\n const renderPaymentHistoryCard = () => {\n if (isFigo) {\n return (\n <MyAccountCardItem\n description={t('paymentHistoryCard.description')}\n icon={creditCardSyncIcon}\n onClick={onCardClick({\n id: MY_ACCOUNT.paymentHistory,\n name: t(`breadCrumbs.${MY_ACCOUNT.paymentHistory}`),\n })}\n title={t('paymentHistoryCard.title')}\n />\n );\n }\n\n return null;\n };\n\n const renderReimbursementCard = () => {\n if (isPPIG) {\n return null;\n }\n\n return (\n <MyAccountCardItem\n description={t('reimbursementCard.description')}\n icon={reimbursementIcon}\n onClick={onCardClick({\n id: MY_ACCOUNT.reimbursement,\n name: t(`breadCrumbs.${MY_ACCOUNT.reimbursement}`),\n })}\n title={t('reimbursementCard.title')}\n />\n );\n };\n\n return (\n <div className=\"My-account-container\">\n <div>\n <h1 className=\"My-account-title\">{t('title')}</h1>\n\n <div className=\"My-account-grid-container\">\n <MyAccountCardItem\n description={t('petCloudSection.petCloudCard.description')}\n icon={petCloudIcon}\n onClick={onCardClick({\n id: MY_ACCOUNT.petCloudAccount,\n name: t(`breadCrumbs.${MY_ACCOUNT.petCloudAccount}`),\n })}\n title={t('petCloudSection.petCloudCard.title')}\n />\n\n <InsuranceAccountCards\n insuranceCompanies={insuranceCompanies}\n onClick={onCardClick}\n />\n\n <MyAccountCardItem\n description={t('billingDetailsCard.description')}\n icon={creditCardIcon}\n onClick={onCardClick({\n id: MY_ACCOUNT.billingAndPayments,\n name: t(`breadCrumbs.${MY_ACCOUNT.billingAndPayments}`),\n })}\n title={t('billingDetailsCard.title')}\n />\n\n {renderPaymentHistoryCard()}\n\n {renderReimbursementCard()}\n </div>\n </div>\n\n <div className=\"My-account-container-links\">\n <a\n href={routes.PRIVACY_POLICY}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {t('privacyPolicy')}\n </a>\n\n <a\n href={routes.TERMS_OF_USE}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {t('termsOfService')}\n </a>\n </div>\n </div>\n );\n};\n\nexport { MyAccountScreen };\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n firstnameChanged,\n lastnameChanged,\n myAccountHasChanges,\n refreshPersonalInformation,\n updateNames,\n} from '../../../../actions';\n\nimport { PetCloudInputAnimated }\nfrom '../../../common/petCloud/PetCloudInputAnimated';\n\nimport { ActionButton } from '../../../common/petCloud/ActionButton';\n\nimport { removeEmojis } from '../../../../services/utils';\n\nimport '../css/PetCloudEdit.css';\n\nconst PetCloudNameEdit = ({\n initialValue = { firstName: '', lastName: '' },\n onClickCancel = () => { },\n}) => {\n const dispatch = useDispatch();\n const store = useSelector(({ accountLogin }) => ({\n accountLogin,\n }), shallowEqual);\n const { accountLogin: { namesUpdateError } } = store;\n const { t } = useTranslation('myAccount');\n const [firstNameValue, setFirstNameValue] = useState(initialValue.firstName);\n const [lastNameValue, setLastNameValue] = useState(initialValue.lastName);\n const [isLoading, setIsLoading] = useState(false);\n\n const enableButton = useMemo(() => {\n if (firstNameValue && lastNameValue) {\n return firstNameValue !== initialValue.firstName\n || lastNameValue !== initialValue.lastName;\n }\n\n return false;\n }, [\n firstNameValue,\n initialValue,\n initialValue,\n lastNameValue,\n ]);\n\n const handleFirstNameChanged = useCallback(({ target }) => {\n const { value } = target;\n const cleanValue = removeEmojis(value);\n\n setFirstNameValue(cleanValue);\n dispatch(firstnameChanged(cleanValue));\n\n if (cleanValue !== initialValue.firstName) {\n dispatch(myAccountHasChanges({ pageHasChanges: true }));\n }\n }, []);\n\n const handleLastNameChanged = useCallback(({ target }) => {\n const { value } = target;\n const cleanValue = removeEmojis(value);\n\n setLastNameValue(cleanValue);\n dispatch(lastnameChanged(cleanValue));\n\n if (cleanValue !== initialValue.lastName) {\n dispatch(myAccountHasChanges({\n pageHasChanges: true,\n }));\n }\n }, []);\n\n function handleNamesUpdated() {\n setIsLoading(false);\n onClickCancel();\n dispatch(refreshPersonalInformation());\n dispatch(myAccountHasChanges({ pageHasChanges: false }));\n }\n\n const handleSaveClick = useCallback(() => {\n setIsLoading(true);\n dispatch(updateNames({\n successCallback: handleNamesUpdated,\n }));\n }, []);\n\n const handleShowConfirmChangesModal = useCallback(() => {\n handleSaveClick();\n }, []);\n\n return (\n <div className=\"Pet-cloud-edit-container\">\n <span>{t('petCloudSection.nameEdit.description')}</span>\n\n <div className=\"Pet-cloud-edit-input-container\">\n <PetCloudInputAnimated\n inputClass=\"Pet-cloud-name-edit-input\"\n onChange={handleFirstNameChanged}\n placeholder={t('petCloudSection.nameEdit.firstName')}\n value={firstNameValue}\n />\n\n <PetCloudInputAnimated\n inputClass=\"Pet-cloud-name-edit-input\"\n onChange={handleLastNameChanged}\n placeholder={t('petCloudSection.nameEdit.lastName')}\n value={lastNameValue}\n />\n </div>\n\n <span className=\"Error-label\">{namesUpdateError}</span>\n\n <div className=\"Pet-cloud-edit-save-button\">\n <ActionButton\n disabled={!enableButton}\n loading={isLoading}\n onClick={handleShowConfirmChangesModal}\n title={t('petCloudSection.save')}\n />\n </div>\n </div>\n );\n};\n\nexport { PetCloudNameEdit };\n","import React, { useCallback, useState } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport { GenericModal } from '../../../common/petCloud/GenericModal';\nimport { ContactUsModal } from '../../../sideMenu/contactUs/ContactUsModal';\n\nimport { displayConfirmChangesModal } from '../../../../actions';\n\nimport { CONTACT_US_STEPS }\nfrom '../../../sideMenu/contactUs/contactUs.constants';\n\nimport shieldIcon from '../../../../assets/myAccount/shield-icon.png';\nimport alertTriangleIcon\nfrom '../../../../assets/myAccount/alert-triangle-icon.png';\n\nimport '../css/ConfirmChangesModal.css';\n\nconst ConfirmChangesModal = ({\n handleCancelClick = () => { },\n handleContinueClick = () => { },\n success = false,\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslation('myAccount');\n\n const store = useSelector(({ myAccount }) => ({ myAccount }), shallowEqual);\n const { myAccount: { showConfirmChangesModal } } = store;\n\n const [contactUsVisible, setContactUsVisible] = useState(false);\n\n const handleModalCancelAction = useCallback(() => {\n dispatch(displayConfirmChangesModal({ showConfirmChangesModal: false }));\n }, []);\n\n const onContactUsClick = () => {\n setContactUsVisible(true);\n dispatch(displayConfirmChangesModal({ showConfirmChangesModal: false }));\n };\n\n const onContactUsClose = () => {\n setContactUsVisible(false);\n };\n\n const isError = !success;\n const primaryButtonText = isError\n ? t('petCloudSection.modal.tryAgain') : t('petCloudSection.modal.continue');\n const secondaryButtonText = isError\n ? t('petCloudSection.modal.contactSupport') : null;\n const description = isError ? t('petCloudSection.modal.error')\n : t('petCloudSection.modal.confirmation');\n const onPrimaryClick = isError ? handleModalCancelAction\n : handleContinueClick;\n const onSecondaryClick = isError ? onContactUsClick : handleCancelClick;\n\n return (\n <>\n <ContactUsModal\n companyStep={CONTACT_US_STEPS.HOME}\n onClose={onContactUsClose}\n show={contactUsVisible}\n />\n\n <GenericModal\n containerClassName=\"Pet-Cloud-confirm-changes-modal\"\n handleOutClick={handleModalCancelAction}\n onPrimaryClick={onPrimaryClick}\n onSecondaryClick={onSecondaryClick}\n primaryButtonText={primaryButtonText}\n secondaryButtonText={secondaryButtonText}\n show={showConfirmChangesModal}\n >\n <div className=\"Pet-Cloud-confirm-changes-modal-text-container\">\n <img alt=\"\" src={isError ? alertTriangleIcon : shieldIcon} />\n\n <p className=\"Pet-Cloud-confirm-changes-modal-text\">{description}</p>\n </div>\n </GenericModal>\n </>\n );\n};\n\nexport { ConfirmChangesModal };\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABBCAYAAABhNaJ7AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQdSURBVHgB7ZtPSBRRHMd/b1ZNYUWTiBSKJalLBFlBRVl66VZ2aAXrYsduFkHQpeigF0MPgV2iDkFREB4iOpVioQcjLx0qBCkziXIlhZbandfMLG92xp23O2/mvd/spl9YfPvmzYzz/X7ee7PzB2BDG1rXikGE6quFxOE4wFQa0hCRCESgvkZIxLLknrH7jlwNHc3+pZeG0zAHyKqCCGQc/FD+4E2RM7FqaIQ07QRkoRNwJQ4dlGivvJZlqd45vApjgCgNkEUJuc5bFiuyTJVQDTDTd6O/VqSjz2qDJ1QD1qZ/MNkDrUeOutpgU4A2Bnj1/WuTM5Ca/wwjydOutphjARoBXuk3bd9hEHAsUgpQDPDq+ycvX/Us54Q3FqAYwEufKUoKlBtQKn1+HQ4Fyg0olT5TVBQoNcBv+vxl6ilQaoDf9JmioECZAaLp89uopUCZAX7Spz++A1366arDpkCJAX7Sp6srAObn13KuXKStSgqUGOCr7y8veZcBlwLpBvhOP5PJVxjlqCiQboBw+pw6LAqkGhAofaaIKJBqgEj6Xz99hKEL563PglF2LmPCoEDa9QDe732nAVbCxtRnqv9sF6QWF6xyXbwebr54mWu0ZSsQ4zvT7ORrpdcLpBEg2vfZwZv67UQfmQIpBoTq+2uFPBZIMSDwyM8TIgWhDZCaPhMiBaENkJ4+Zx1VFIQyQEn6TEgUhDJAWfqcdVVQENgApekzIVAQ2ADl6XO2IZuCQAagpM+kmIJABqClz9mWTAqEDUBNn0khBcIGoKfP2aYsCoQMiCR9JkUUCBkQWfqcbcugwLcBkabPpIAC3wZEnj5nH2Ep8GVAWaTPJJkCXwaUTfqcfYWhoKQBqtJv2bXbLm/e1gxCkkhBSQNUpd87MAg72/bDnvYTcPH2HRCWJAqKXhUWvdKLLglXkIsSoLLvTzx+BP3JLuu+wPTzZxBIEijgPi5v9X2i3XDW9d59AHUNDfZ3+w6voMwDfjo4AGlj3RXj9vj7iXFobTsATc0tQtsBXQeoqgZSs8muMgOafvLQ0YgkDtXQ8ak/3k+icwlQmf7su7cFdVFR4GmA6nm/tj5eUFfnUedLIWcETwNUz/vHu88ZU18ed3MabO/ugcAKQUHBLIA18qcWvxk3SD8Yt8VWYa8xFdY6RvNACjgjFLwxgnXWZ6YufAJUTOb/5DCAUTA7+cauy1FAx5yrubpAWZ3ziyrgWOAyoOzO+UUVYCywDajo9JkCUGAbQDXzTa68Ki59JkEKLAOs9CnZ52xUcekzCVJgzQI6iSUIUFeTkeQp9zq6sZzqUBEiRq5a8ad/NBpLGBNjzgCNZucocZ8Tpea/wP8somWXzb/WUWeqYIYCnYN1IvNYb63AqFm2OTHf59UyWi+sA+kZ/T57T/kf9aGeqaLbjuAAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/tooltip.afcdfcdf.svg\";","import React, { useCallback, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n displayForgotPasswordModal,\n recoverPassword,\n} from '../../../../actions';\n\nimport { GenericModal } from '../../../common/petCloud/GenericModal';\nimport { PetCloudInputAnimated }\nfrom '../../../common/petCloud/PetCloudInputAnimated';\n\nimport tooltipIcon from '../../../../assets/myAccount/tooltip.svg';\nimport errorIcon from '../../../../assets/myAccount/input-error-icon.svg';\n\nimport IconTooltip from '../../../common/IconTooltip';\nimport { isEmailValid, removeEmojis } from '../../../../services/utils';\n\nimport '../css/PetCloudEdit.css';\n\nconst ForgotPasswordModal = ({\n onClickCancel = () => { },\n showForgotPasswordModal,\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslation('myAccount');\n const [emailValue, setEmailValue] = useState('');\n const [emailError, setEmailError] = useState('');\n const [isForgotLoading, setIsForgotLoading] = useState(false);\n const [successReset, setSuccessReset] = useState(false);\n\n const handleEmailChange = useCallback(({ target }) => {\n const { value } = target;\n const cleanValue = removeEmojis(value);\n\n setEmailValue(cleanValue);\n const invalidEmail = !isEmailValid(cleanValue);\n setEmailError(invalidEmail ? t('petCloudSection.invalidEmail') : '');\n }, []);\n\n const handleCancelAction = useCallback(() => {\n dispatch(displayForgotPasswordModal({ showForgotPasswordModal: false }));\n setEmailValue('');\n setEmailError('');\n }, []);\n\n function handlePasswordResetError(resetError) {\n setEmailError(resetError);\n setIsForgotLoading(false);\n }\n\n function handleSuccessReset() {\n setSuccessReset(true);\n setIsForgotLoading(false);\n }\n\n const handleConfirmAction = useCallback(() => {\n if (emailError) {\n return;\n }\n\n if (isForgotLoading) {\n return;\n }\n\n setIsForgotLoading(true);\n setEmailError(null);\n dispatch(recoverPassword({\n backendErrorCallback: handlePasswordResetError,\n email: emailValue,\n errorCallback: handlePasswordResetError,\n successCallback: handleSuccessReset,\n }));\n }, [\n emailError,\n emailValue,\n isForgotLoading,\n ]);\n\n const handleCloseSuccessModal = useCallback(() => {\n dispatch(displayForgotPasswordModal({ showForgotPasswordModal: false }));\n onClickCancel();\n }, []);\n\n function renderError() {\n if (emailError) {\n return (\n <div className=\"Pet-cloud-forgot-modal-error\">\n <img alt=\"\" src={errorIcon} />\n\n <span>{emailError}</span>\n </div>\n );\n }\n\n return null;\n }\n\n function renderModal() {\n if (successReset) {\n const modalDescription =\n t('petCloudSection.forgotPasswordModal.successDescription');\n\n return (\n <GenericModal\n containerClassName=\"Pet-cloud-confirm-email-modal-container\"\n description={modalDescription}\n handleOutClick={handleCloseSuccessModal}\n onPrimaryClick={handleCloseSuccessModal}\n primaryButtonText={t('petCloudSection.close')}\n show={showForgotPasswordModal}\n title={t('petCloudSection.forgotPasswordModal.successTitle')}\n />\n );\n }\n\n return (\n <GenericModal\n containerClassName=\"Pet-cloud-confirm-email-modal-container\"\n description={t('petCloudSection.forgotPasswordModal.description')}\n handleOutClick={handleCancelAction}\n loadingPrimary={isForgotLoading}\n onPrimaryClick={handleConfirmAction}\n onSecondaryClick={handleCancelAction}\n primaryButtonDisabled={!emailValue.length}\n primaryButtonText={t('petCloudSection.forgotPasswordModal.send')}\n secondaryButtonText={t('petCloudSection.cancel')}\n show={showForgotPasswordModal}\n title={t('petCloudSection.forgotPasswordModal.title')}\n >\n <div className=\"Pet-cloud-confirm-email-container\">\n <PetCloudInputAnimated\n error={renderError()}\n extraItemClass={emailError\n ? 'Pet-cloud-forgot-tooltip-extra-space' : ''}\n label={t('petCloudSection.forgotPasswordModal.currentEmail')}\n onChange={handleEmailChange}\n value={emailValue}\n >\n <IconTooltip\n activeOnTouch\n arrowClass=\"Pet-cloud-forgot-tooltip-arrow\"\n containerClass=\"Pet-cloud-forgot-tooltip-container\"\n description={t('petCloudSection.forgotPasswordModal.tooltip')}\n direction=\"down-left\"\n height={50}\n icon={tooltipIcon}\n textClassName=\"Pet-cloud-forgot-tooltip\"\n width={200}\n />\n </PetCloudInputAnimated>\n </div>\n </GenericModal>\n );\n }\n\n return renderModal();\n};\n\nexport { ForgotPasswordModal };\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n displayConfirmChangesModal,\n myAccountHasChanges,\n refreshPersonalInformation,\n updateEmail,\n} from '../../../../actions';\n\nimport { PetCloudInputAnimated }\nfrom '../../../common/petCloud/PetCloudInputAnimated';\n\nimport { ActionButton } from '../../../common/petCloud/ActionButton';\n\nimport { isEmailValid, removeEmojis } from '../../../../services/utils';\n\nimport { ConfirmChangesModal } from './ConfirmChangesModal';\nimport { ForgotPasswordModal } from './ForgotPasswordModal';\n\nimport '../css/PetCloudEdit.css';\n\nconst PetCloudLoginEmailEdit = ({\n initialValue = '',\n onClickCancel = () => { },\n}) => {\n const { t } = useTranslation('myAccount');\n const dispatch = useDispatch();\n const store = useSelector(({\n accountLogin,\n myAccount,\n session,\n }) => ({\n accountLogin,\n myAccount,\n session,\n }), shallowEqual);\n const { accountLogin: {\n areEmailUpdated,\n isEmailBeingUpdated,\n }, myAccount: {\n showForgotPasswordModal,\n } } = store;\n const [emailValue, setEmailValue] = useState(initialValue);\n const [emailError, setEmailError] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n\n const disabledButton = useMemo(() => emailValue === initialValue\n || emailError, [emailError, emailValue, initialValue]);\n\n useEffect(() => {\n dispatch(myAccountHasChanges({\n pageHasChanges: emailValue !== initialValue,\n }));\n }, [emailValue, initialValue]);\n\n const handleEmailChange = useCallback(({ target }) => {\n const { value } = target;\n const cleanValue = removeEmojis(value);\n\n setEmailValue(cleanValue);\n const invalidEmail = !isEmailValid(cleanValue);\n setEmailError(invalidEmail ? t('petCloudSection.invalidEmail') : '');\n }, []);\n\n const handleOnEmailBlur = useCallback(() => {\n let error = t('petCloudSection.requiredField');\n\n if (emailValue) {\n const invalidEmail = !isEmailValid(emailValue);\n\n error = invalidEmail ? t('petCloudSection.invalidEmail') : '';\n }\n\n setEmailError(error);\n }, [emailValue]);\n\n function handleUpdateError() {\n setIsLoading(false);\n }\n\n function handleUpdateSuccess() {\n dispatch(refreshPersonalInformation());\n dispatch(myAccountHasChanges({ pageHasChanges: false }));\n setIsLoading(false);\n }\n\n const onClickSave = useCallback(() => {\n dispatch(updateEmail({\n email: emailValue,\n errorCallback: handleUpdateError,\n successCallback: handleUpdateSuccess,\n }));\n }, [emailValue]);\n\n function handleConfirmChangesAction() {\n dispatch(displayConfirmChangesModal({ showConfirmChangesModal: false }));\n onClickCancel();\n }\n\n return (\n <div className=\"Pet-cloud-edit-container\">\n <span>{t('petCloudSection.emailEdit.description')}</span>\n\n <PetCloudInputAnimated\n error={emailError}\n inputClass=\"Pet-cloud-full-width-input\"\n onBlur={handleOnEmailBlur}\n onChange={handleEmailChange}\n placeholder={t('petCloudSection.emailEdit.emailAddress')}\n value={emailValue}\n />\n\n <div className=\"Pet-cloud-edit-save-button\">\n <ActionButton\n disabled={disabledButton}\n loading={isLoading || isEmailBeingUpdated}\n onClick={onClickSave}\n title={t('petCloudSection.save')}\n />\n </div>\n\n <ConfirmChangesModal\n handleCancelClick={handleConfirmChangesAction}\n handleContinueClick={handleConfirmChangesAction}\n success={areEmailUpdated}\n />\n\n <ForgotPasswordModal\n onClickCancel={onClickCancel}\n showForgotPasswordModal={showForgotPasswordModal}\n />\n </div>\n );\n};\n\nexport { PetCloudLoginEmailEdit };\n","export default __webpack_public_path__ + \"static/media/password-visible.b135d2b6.svg\";","export default __webpack_public_path__ + \"static/media/password-hidden.bd747cac.svg\";","import React, { useCallback, useState } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n displayEmailChangeModal,\n myAccountHasChanges,\n refreshPersonalInformation,\n resetInfo,\n updateEmail,\n updatePetCloudEmail,\n} from '../../../../actions';\n\nimport { GenericModal } from '../../../common/petCloud/GenericModal';\nimport { PetCloudInputAnimated }\nfrom '../../../common/petCloud/PetCloudInputAnimated';\n\nimport visibleIcon from '../../../../assets/myAccount/password-visible.svg';\nimport hiddenIcon from '../../../../assets/myAccount/password-hidden.svg';\nimport errorIcon from '../../../../assets/myAccount/input-error-icon.svg';\n\nimport '../css/PetCloudEdit.css';\n\nconst ConfirmEmailChangesModal = ({\n emailValue,\n isPetCoudEmail = false,\n onClickCancel = () => { },\n showEmailChangeModal = false,\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslation('myAccount');\n const store = useSelector(({ accountLogin, session }) => ({\n accountLogin,\n session,\n }), shallowEqual);\n const { accountLogin: {\n areEmailUpdated,\n arePetCloudEmailUpdated,\n } } = store;\n const [passwordValue, setPasswordValue] = useState('');\n const [updateError, setUpdateError] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\n\n const handleVisiblePassword = useCallback(() => {\n setIsPasswordVisible(!isPasswordVisible);\n }, [isPasswordVisible]);\n\n const handleCancelAction = useCallback(() => {\n dispatch(displayEmailChangeModal({ showEmailChangeModal: false }));\n setPasswordValue('');\n setUpdateError('');\n }, []);\n\n function handleUpdateError(error) {\n setUpdateError(error);\n setIsLoading(false);\n }\n\n function handleUpdateSuccess() {\n dispatch(refreshPersonalInformation());\n dispatch(myAccountHasChanges({ pageHasChanges: false }));\n setIsLoading(false);\n }\n\n const handleConfirmAction = useCallback(() => {\n setIsLoading(true);\n\n if (isPetCoudEmail) {\n dispatch(updatePetCloudEmail({\n errorCallback: handleUpdateError,\n successCallback: handleUpdateSuccess,\n }));\n } else {\n dispatch(updateEmail({\n email: emailValue,\n errorCallback: handleUpdateError,\n password: passwordValue,\n successCallback: handleUpdateSuccess,\n }));\n }\n }, [emailValue, isPetCoudEmail, passwordValue]);\n\n const handleCloseSuccessModal = useCallback(() => {\n dispatch(displayEmailChangeModal({ showEmailChangeModal: false }));\n dispatch(resetInfo());\n onClickCancel();\n }, []);\n\n const handlePasswordOnChange = useCallback(({ target }) => {\n const { value } = target;\n\n setPasswordValue(value);\n }, []);\n\n function renderError() {\n if (updateError) {\n return (\n <div className=\"Pet-cloud-forgot-modal-error\">\n <img alt=\"\" src={errorIcon} />\n\n <span>{updateError}</span>\n </div>\n );\n }\n\n return null;\n }\n\n function renderModal() {\n if (areEmailUpdated || arePetCloudEmailUpdated) {\n return (\n <GenericModal\n containerClassName=\"Pet-cloud-confirm-email-modal-container\"\n description={t('petCloudSection.emailEdit.successDescription')}\n handleOutClick={handleCloseSuccessModal}\n onPrimaryClick={handleCloseSuccessModal}\n primaryButtonText={t('petCloudSection.close')}\n show={showEmailChangeModal}\n title={t('petCloudSection.emailEdit.successTitle')}\n />\n );\n }\n\n return (\n <GenericModal\n containerClassName=\"Pet-cloud-confirm-email-modal-container\"\n description={t('petCloudSection.emailEdit.modalDescription')}\n handleOutClick={handleCancelAction}\n loadingPrimary={isLoading}\n onPrimaryClick={handleConfirmAction}\n onSecondaryClick={handleCancelAction}\n primaryButtonDisabled={!passwordValue.length}\n primaryButtonText={t('petCloudSection.confirm')}\n secondaryButtonText={t('petCloudSection.cancel')}\n show={showEmailChangeModal}\n title={t('petCloudSection.emailEdit.modalTitle')}\n >\n <div className=\"Pet-cloud-confirm-email-container\">\n <PetCloudInputAnimated\n error={renderError()}\n extraItemClass={updateError\n ? 'Pet-cloud-forgot-tooltip-extra-space' : ''}\n inputClass=\"Pet-cloud-password-input\"\n label={t('petCloudSection.password')}\n labelClass=\"Pet-cloud-password-modal-label\"\n onChange={handlePasswordOnChange}\n placeholder={t('petCloudSection.password')}\n type={isPasswordVisible ? 'text' : 'password'}\n value={passwordValue}\n >\n <button\n className=\"Like-span\"\n onClick={handleVisiblePassword}\n type=\"button\"\n >\n <img\n alt=\"\"\n id=\"confirmPasswordHideButton\"\n src={isPasswordVisible ? visibleIcon : hiddenIcon}\n />\n </button>\n </PetCloudInputAnimated>\n </div>\n </GenericModal>\n );\n }\n\n return renderModal();\n};\n\nexport { ConfirmEmailChangesModal };\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n myAccountHasChanges,\n petCloudEmailChanged,\n updatePetCloudEmail,\n refreshPersonalInformation,\n updatePetCloudEmailError,\n} from '../../../../actions';\n\nimport { PetCloudInputAnimated }\nfrom '../../../common/petCloud/PetCloudInputAnimated';\n\nimport { ActionButton } from '../../../common/petCloud/ActionButton';\n\nimport { ConfirmEmailChangesModal } from './ConfirmEmailChangesModal';\nimport { ForgotPasswordModal } from './ForgotPasswordModal';\n\nimport { removeEmojis } from '../../../../services/utils';\n\nimport '../css/PetCloudEdit.css';\n\nconst PetCloudEmailEdit = ({\n initialValue = '',\n onClickCancel = () => { },\n}) => {\n const { t } = useTranslation('myAccount');\n const dispatch = useDispatch();\n const store = useSelector(({\n accountLogin,\n myAccount,\n }) => ({ accountLogin, myAccount }), shallowEqual);\n const { myAccount: {\n showEmailChangeModal,\n showForgotPasswordModal,\n } } = store;\n const [emailValue, setEmailValue] = useState(initialValue.split('@')[0]);\n const [emailError, setEmailError] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n\n const disabledButton = useMemo(() => emailValue === initialValue.split('@')[0]\n || emailError, [emailError, emailValue, initialValue]);\n\n useEffect(() => {\n dispatch(myAccountHasChanges({\n pageHasChanges: emailValue !== initialValue.split('@')[0],\n }));\n }, [emailValue, initialValue]);\n\n useEffect(() => {\n const errorMessage = store.accountLogin.petCloudEmailUpdateError;\n if (errorMessage) {\n setEmailError(errorMessage);\n }\n }, [store.accountLogin]);\n\n useEffect(() => () => dispatch(\n updatePetCloudEmailError(null),\n ), []);\n\n const handleEmailChange = useCallback(({ target }) => {\n const { value } = target;\n const cleanValue = removeEmojis(value);\n\n setEmailValue(cleanValue);\n dispatch(petCloudEmailChanged(cleanValue));\n setEmailError('');\n }, []);\n\n const handleOnEmailBlur = useCallback(() => {\n const error = emailValue ? '' : t('petCloudSection.requiredField');\n\n setEmailError(error);\n }, [emailValue]);\n\n const handleEmailUpdated = () => {\n setIsLoading(false);\n onClickCancel();\n dispatch(refreshPersonalInformation());\n dispatch(myAccountHasChanges({ pageHasChanges: false }));\n };\n\n const handleEmailUpdateFailed = () => {\n setIsLoading(false);\n };\n\n const onClickSave = useCallback(() => {\n setIsLoading(true);\n dispatch(updatePetCloudEmail({\n errorCallback: handleEmailUpdateFailed,\n successCallback: handleEmailUpdated,\n }));\n }, []);\n\n return (\n <div className=\"Pet-cloud-edit-container\">\n <span>{t('petCloudSection.petCloudEmailEdit.description')}</span>\n\n <div className=\"Pet-cloud-email-container\">\n <PetCloudInputAnimated\n error={emailError}\n inputClass=\"Pet-cloud-email-input\"\n onBlur={handleOnEmailBlur}\n onChange={handleEmailChange}\n placeholder={t('petCloudSection.petCloudEmailEdit.username')}\n value={emailValue}\n />\n\n <span>{t('petCloudSection.petCloudEmailEdit.myPetCloud')}</span>\n </div>\n\n <div className=\"Pet-cloud-edit-save-button\">\n <ActionButton\n disabled={disabledButton}\n loading={isLoading}\n onClick={onClickSave}\n title={t('petCloudSection.save')}\n />\n </div>\n\n <ConfirmEmailChangesModal\n emailValue={emailValue}\n isPetCoudEmail\n onClickCancel={onClickCancel}\n showEmailChangeModal={showEmailChangeModal}\n />\n\n <ForgotPasswordModal\n onClickCancel={onClickCancel}\n showForgotPasswordModal={showForgotPasswordModal}\n />\n </div>\n );\n};\n\nexport { PetCloudEmailEdit };\n","import { useCallback, useEffect, useMemo, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\n\nimport {\n changeProfilePicture,\n changeProfilePictureRestart,\n displayUnsavedModal,\n myAccountHasChanges,\n refreshPersonalInformation,\n removeAvatarPicture,\n} from '../../../actions';\n\nimport { MY_ACCOUNT_EDIT } from '../../../constants';\n\nconst useMyAccountInfo = () => {\n const dispatch = useDispatch();\n const store = useSelector(({\n myAccount,\n personalInformation,\n }) => ({ myAccount, personalInformation }), shallowEqual);\n const { myAccount: {\n pageHasChanges,\n showUnsavedModal,\n }, personalInformation: {\n userInfo,\n pictureEditing,\n } } = store;\n\n const [isEditingName, setIsEditingName] = useState(false);\n const [isEditingEmail, setIsEditingEmail] = useState(false);\n const [isEditingPhone, setIsEditingPhone] = useState(false);\n const [isEditingPCEmail, setIsEditingPCEmail] = useState(false);\n const [isEditingPassword, setIsEditingPassword] = useState(false);\n const [isCurrentHidden, setIsCurrentHidden] = useState(true);\n const [isNewHidden, setIsNewHidden] = useState(true);\n const [isConfirmHidden, setIsConfirmHidden] = useState(true);\n const [activeEdition, setActiveEdition] = useState('');\n const [showImageEditor, setShowImageEditor] = useState(false);\n\n const resetEditFields = useCallback(() => {\n setIsEditingName(false);\n setIsEditingEmail(false);\n setIsEditingPhone(false);\n setIsEditingPCEmail(false);\n setIsEditingPassword(false);\n }, []);\n\n const isEditingAny = useMemo(() => isEditingName || isEditingEmail\n || isEditingPhone || isEditingPCEmail || isEditingPassword,\n [\n isEditingEmail,\n isEditingName,\n isEditingPassword,\n isEditingPCEmail,\n isEditingPhone,\n ]);\n\n useEffect(() => {\n if (!isEditingAny) {\n dispatch(myAccountHasChanges({ pageHasChanges: false }));\n }\n }, [isEditingAny]);\n\n const userInformation = useMemo(() => {\n if (!userInfo) {\n return {\n firstName: '',\n fullName: '',\n lastName: '',\n loginEmail: '',\n nameInitials: '',\n password: '',\n petCloudEmail: '',\n phoneNumber: '',\n profileUrl: '',\n };\n }\n\n const firstNameInitial = userInfo.FirstName.charAt(0);\n const lastNameInitial = userInfo.LastName.charAt(0);\n\n return {\n firstName: userInfo.FirstName,\n fullName: `${userInfo.FirstName} ${userInfo.LastName}`,\n lastName: userInfo.LastName,\n loginEmail: userInfo.LoginEmail,\n nameInitials: `${firstNameInitial}${lastNameInitial}`,\n password: '•••••••••••••••••••••',\n petCloudEmail: userInfo.PetCloudEmail,\n phoneNumber: userInfo.PhoneNumber,\n profileUrl: userInfo.SocialInfo.PictureUrl,\n };\n }, [userInfo]);\n\n const handleNameEditing = useCallback(() => {\n setActiveEdition(MY_ACCOUNT_EDIT.name);\n\n if (isEditingAny && pageHasChanges) {\n dispatch(displayUnsavedModal({ showUnsavedModal: true }));\n }\n\n if (!showUnsavedModal && !pageHasChanges) {\n resetEditFields();\n setIsEditingName(true);\n }\n }, [isEditingAny, pageHasChanges, showUnsavedModal]);\n\n const handleEmailEditing = useCallback(() => {\n setActiveEdition(MY_ACCOUNT_EDIT.loginEmail);\n\n if (isEditingAny && pageHasChanges) {\n dispatch(displayUnsavedModal({ showUnsavedModal: true }));\n }\n\n if (!showUnsavedModal && !pageHasChanges) {\n resetEditFields();\n setIsEditingEmail(true);\n }\n }, [isEditingAny, pageHasChanges, showUnsavedModal]);\n\n const handleEditingPhone = useCallback(() => {\n setActiveEdition(MY_ACCOUNT_EDIT.phone);\n\n if (isEditingAny && pageHasChanges) {\n dispatch(displayUnsavedModal({ showUnsavedModal: true }));\n }\n\n if (!showUnsavedModal && !pageHasChanges) {\n resetEditFields();\n setIsEditingPhone(true);\n }\n }, [isEditingAny, pageHasChanges, showUnsavedModal]);\n\n const handleEditingPCEmail = useCallback(() => {\n setActiveEdition(MY_ACCOUNT_EDIT.email);\n\n if (isEditingAny && pageHasChanges) {\n dispatch(displayUnsavedModal({ showUnsavedModal: true }));\n }\n\n if (!showUnsavedModal && !pageHasChanges) {\n resetEditFields();\n setIsEditingPCEmail(true);\n }\n }, [isEditingAny, pageHasChanges, showUnsavedModal]);\n\n const handleEditingPassword = useCallback(() => {\n setActiveEdition(MY_ACCOUNT_EDIT.password);\n\n if (isEditingAny && pageHasChanges) {\n dispatch(displayUnsavedModal({ showUnsavedModal: true }));\n }\n\n if (!showUnsavedModal && !pageHasChanges) {\n resetEditFields();\n setIsEditingPassword(true);\n }\n }, [isEditingAny, pageHasChanges, showUnsavedModal]);\n\n const handleVisibleCurrentPassword = useCallback(() => {\n setIsCurrentHidden(!isCurrentHidden);\n }, [isCurrentHidden]);\n\n const handleVisibleNewPassword = useCallback(() => {\n setIsNewHidden(!isNewHidden);\n }, [isNewHidden]);\n\n const handleVisibleConfirmPassword = useCallback(() => {\n setIsConfirmHidden(!isConfirmHidden);\n }, [isConfirmHidden]);\n\n const handleCancelModal = useCallback(() => {\n dispatch(displayUnsavedModal({ showUnsavedModal: false }));\n dispatch(myAccountHasChanges({ pageHasChanges: true }));\n }, []);\n\n const handleDiscardModal = useCallback((onConfirm) => () => {\n dispatch(displayUnsavedModal({ showUnsavedModal: false }));\n dispatch(myAccountHasChanges({ pageHasChanges: false }));\n resetEditFields();\n\n if (onConfirm && typeof onConfirm === 'function') {\n onConfirm();\n } else {\n switch (activeEdition) {\n case MY_ACCOUNT_EDIT.name:\n setIsEditingName(true);\n break;\n\n case MY_ACCOUNT_EDIT.loginEmail:\n setIsEditingEmail(true);\n break;\n\n case MY_ACCOUNT_EDIT.phone:\n setIsEditingPhone(true);\n break;\n\n case MY_ACCOUNT_EDIT.email:\n setIsEditingPCEmail(true);\n break;\n\n case MY_ACCOUNT_EDIT.password:\n setIsEditingPassword(true);\n break;\n\n default:\n break;\n }\n }\n }, [activeEdition]);\n\n const handleShowImageEditor = useCallback(() => {\n setShowImageEditor(true);\n }, []);\n\n const handleCloseImageEditor = useCallback(() => {\n setShowImageEditor(false);\n dispatch(changeProfilePictureRestart());\n }, [dispatch]);\n\n const handleRemovePicture = useCallback(() => {\n dispatch(removeAvatarPicture());\n }, [dispatch]);\n\n const handleSavePicture = useCallback((newImage) => {\n const imageBase64 = newImage.replace(/^data:(.*,)?/, '');\n dispatch(changeProfilePicture({ imageBase64, isCover: false }));\n }, [dispatch]);\n\n const handleChangePictureSuccess = useCallback(() => {\n handleCloseImageEditor();\n dispatch(refreshPersonalInformation());\n }, [dispatch]);\n\n return {\n ...userInformation,\n handleCancelModal,\n handleChangePictureSuccess,\n handleCloseImageEditor,\n handleDiscardModal,\n handleEditingPassword,\n handleEditingPCEmail,\n handleEditingPhone,\n handleEmailEditing,\n handleNameEditing,\n handleRemovePicture,\n handleSavePicture,\n handleShowImageEditor,\n handleVisibleConfirmPassword,\n handleVisibleCurrentPassword,\n handleVisibleNewPassword,\n isConfirmHidden,\n isCurrentHidden,\n isEditingAny,\n isEditingEmail,\n isEditingName,\n isEditingPassword,\n isEditingPCEmail,\n isEditingPhone,\n isNewHidden,\n isPhotoError: pictureEditing.error,\n isPhotoSaved: pictureEditing.success,\n isSavingPhoto: pictureEditing.loading,\n pageHasChanges,\n resetEditFields,\n showImageEditor,\n showUnsavedModal,\n };\n};\n\nexport { useMyAccountInfo };\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n displayForgotPasswordModal,\n myAccountHasChanges,\n refreshPersonalInformation,\n updatePassword,\n} from '../../../../actions';\n\nimport { PetCloudInputAnimated }\nfrom '../../../common/petCloud/PetCloudInputAnimated';\n\nimport { ActionButton } from '../../../common/petCloud/ActionButton';\n\nimport { useMyAccountInfo } from '../../hooks/useMyAccountInfo';\n\nimport { ForgotPasswordModal } from './ForgotPasswordModal';\n\nimport { removeEmojis } from '../../../../services/utils';\n\nimport hiddenIcon from '../../../../assets/myAccount/password-hidden.svg';\nimport visibleIcon from '../../../../assets/myAccount/password-visible.svg';\n\nimport '../css/PetCloudEdit.css';\n\nconst PetCloudPasswordEdit = ({\n onClickCancel = () => { },\n}) => {\n const dispatch = useDispatch();\n const { t } = useTranslation('myAccount');\n const store = useSelector(({ myAccount }) => ({ myAccount }), shallowEqual);\n const { myAccount: { showForgotPasswordModal } } = store;\n const [isLoading, setIsLoading] = useState(false);\n const [updateError, setUpdateError] = useState('');\n const [currentPassword, setCurrentPassword] = useState(false);\n const [newPassword, setNewPassword] = useState(false);\n const [confirmPassword, setConfirmPassword] = useState(false);\n\n const {\n handleVisibleConfirmPassword,\n handleVisibleCurrentPassword,\n handleVisibleNewPassword,\n isConfirmHidden,\n isCurrentHidden,\n isNewHidden,\n loginEmail,\n } = useMyAccountInfo();\n\n useEffect(() => {\n dispatch(myAccountHasChanges({\n pageHasChanges: currentPassword || newPassword || confirmPassword,\n }));\n\n if (newPassword && confirmPassword) {\n const error = newPassword !== confirmPassword\n ? t('petCloudSection.passwordEdit.passwordErrorMatch') : '';\n\n setUpdateError(error);\n }\n }, [confirmPassword, currentPassword, newPassword]);\n\n const disableButton = useMemo(() => !currentPassword || !newPassword\n || !confirmPassword || updateError, [\n confirmPassword,\n currentPassword,\n newPassword,\n updateError,\n ]);\n\n const handleOnClickForgot = useCallback(() => {\n dispatch(displayForgotPasswordModal({ showForgotPasswordModal: true }));\n }, []);\n\n function handleUpdateError(error) {\n setUpdateError(error);\n setIsLoading(false);\n }\n\n function handleUpdateSuccess() {\n dispatch(refreshPersonalInformation());\n dispatch(myAccountHasChanges({ pageHasChanges: false }));\n setIsLoading(false);\n onClickCancel();\n }\n\n const onClickSave = useCallback(() => {\n setIsLoading(true);\n\n dispatch(updatePassword({\n email: loginEmail,\n errorCallback: handleUpdateError,\n newPassword,\n password: currentPassword,\n successCallback: handleUpdateSuccess,\n }));\n }, [loginEmail, newPassword]);\n\n function handleInputChanged(event) {\n const cleanValue = removeEmojis(event.target.value);\n setUpdateError(false);\n\n switch (event.target.id) {\n case 'accountCurrentPasswordInput':\n setCurrentPassword(cleanValue);\n break;\n\n case 'accountNewPasswordInput':\n setNewPassword(cleanValue);\n break;\n\n case 'accountConfirmPasswordInput':\n setConfirmPassword(cleanValue);\n break;\n\n default:\n break;\n }\n }\n\n return (\n <div className=\"Pet-cloud-edit-container\">\n <div className=\"Pet-cloud-current-password-container\">\n <PetCloudInputAnimated\n id=\"accountCurrentPasswordInput\"\n inputClass=\"Pet-cloud-password-input\"\n label={t('petCloudSection.passwordEdit.currentPassword')}\n labelClass=\"Pet-cloud-password-input-label\"\n onChange={handleInputChanged}\n placeholder={t('petCloudSection.passwordEdit.password')}\n type={isCurrentHidden ? 'password' : 'text'}\n >\n <button\n className=\"Like-span\"\n onClick={handleVisibleCurrentPassword}\n type=\"button\"\n >\n <img\n alt=\"\"\n id=\"currentPasswordHideButton\"\n src={isCurrentHidden ? hiddenIcon : visibleIcon}\n />\n </button>\n </PetCloudInputAnimated>\n\n <button\n className=\"Like-span\"\n onClick={handleOnClickForgot}\n type=\"button\"\n >\n <span className=\"Pet-cloud-current-password-forgot\">\n {t('petCloudSection.passwordEdit.forgotPassword')}\n </span>\n </button>\n </div>\n\n <PetCloudInputAnimated\n id=\"accountNewPasswordInput\"\n inputClass=\"Pet-cloud-password-input\"\n label={t('petCloudSection.passwordEdit.newPassword')}\n labelClass=\"Pet-cloud-password-input-label\"\n onChange={handleInputChanged}\n placeholder={t('petCloudSection.passwordEdit.newPassword')}\n type={isNewHidden ? 'password' : 'text'}\n >\n <button\n className=\"Like-span\"\n onClick={handleVisibleNewPassword}\n type=\"button\"\n >\n <img\n alt=\"\"\n id=\"newPasswordHideButton\"\n src={isNewHidden ? hiddenIcon : visibleIcon}\n />\n </button>\n </PetCloudInputAnimated>\n\n <div className=\"Pet-cloud-confirm-password-container\">\n <PetCloudInputAnimated\n id=\"accountConfirmPasswordInput\"\n inputClass=\"Pet-cloud-password-input\"\n label={t('petCloudSection.passwordEdit.confirmPassword')}\n labelClass=\"Pet-cloud-password-input-label\"\n onChange={handleInputChanged}\n placeholder={t('petCloudSection.passwordEdit.newPassword')}\n type={isConfirmHidden ? 'password' : 'text'}\n >\n <button\n className=\"Like-span\"\n onClick={handleVisibleConfirmPassword}\n type=\"button\"\n >\n <img\n alt=\"\"\n id=\"confirmPasswordHideButton\"\n src={isConfirmHidden ? hiddenIcon : visibleIcon}\n />\n </button>\n </PetCloudInputAnimated>\n\n <span className=\"Error-label\">{updateError}</span>\n </div>\n\n <div className=\"Pet-cloud-edit-save-button\">\n <ActionButton\n disabled={disableButton}\n loading={isLoading}\n onClick={onClickSave}\n title={t('petCloudSection.save')}\n />\n </div>\n\n <ForgotPasswordModal\n onClickCancel={onClickCancel}\n showForgotPasswordModal={showForgotPasswordModal}\n />\n </div>\n );\n};\n\nexport { PetCloudPasswordEdit };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { PetCloudNameEdit } from './petCloudAccountEdit/PetCloudNameEdit';\nimport { PetCloudLoginEmailEdit }\nfrom './petCloudAccountEdit/PetCloudLoginEmailEdit';\nimport { PetCloudEmailEdit } from './petCloudAccountEdit/PetCloudEmailEdit';\nimport { PetCloudPasswordEdit }\nfrom './petCloudAccountEdit/PetCloudPasswordEdit';\n\nimport './css/PetCloudAccountRow.css';\n\nconst PetCloudAccountRow = ({\n actionLabel = '',\n initialValue = '',\n isEditing = false,\n isEditingAny = false,\n isProfilePicture = false,\n label = '',\n onClickActionButton = () => { },\n onClickCancel = () => { },\n profilePicture = '',\n}) => {\n const { t } = useTranslation('myAccount');\n\n function renderPicture() {\n if (profilePicture) {\n return (\n <img\n alt=\"\"\n className=\"Pet-cloud-account-picture\"\n src={profilePicture}\n />\n );\n }\n\n return <span className=\"Pet-cloud-account-initials\">{initialValue}</span>;\n }\n\n function renderValueContainer() {\n if (isProfilePicture) {\n return (\n <button\n className=\"Pet-cloud-account-picture-button\"\n type=\"button\"\n >\n {renderPicture()}\n </button>\n );\n }\n\n if (isEditing) {\n switch (label) {\n case t('petCloudSection.name'):\n return (\n <PetCloudNameEdit\n initialValue={initialValue}\n onClickCancel={onClickCancel}\n />\n );\n case t('petCloudSection.email'):\n return (\n <PetCloudLoginEmailEdit\n initialValue={initialValue}\n onClickCancel={onClickCancel}\n />\n );\n case t('petCloudSection.petCloudEmail'):\n return (\n <PetCloudEmailEdit\n initialValue={initialValue}\n onClickCancel={onClickCancel}\n />\n );\n case t('petCloudSection.password'):\n return (\n <PetCloudPasswordEdit\n onClickCancel={onClickCancel}\n />\n );\n\n default:\n return null;\n }\n }\n\n return <span className=\"Pet-cloud-account-value\">{initialValue}</span>;\n }\n\n return (\n <div className=\"Pet-cloud-account-row-container\">\n <div className=\"Pet-cloud-account-top-row-container\">\n <h4>{label}</h4>\n\n <button\n className={`${!isEditing && isEditingAny ? 'Pet-cloud-edit-gray'\n : 'Pet-cloud-edit'}`}\n onClick={isEditing ? onClickCancel : onClickActionButton}\n type=\"button\"\n >\n {isEditing ? t('petCloudSection.cancel') : actionLabel}\n </button>\n </div>\n\n {renderValueContainer()}\n </div>\n );\n};\n\nexport { PetCloudAccountRow };\n","export default __webpack_public_path__ + \"static/media/upload-circle.4b9a119a.svg\";","export default __webpack_public_path__ + \"static/media/error.ce1298d3.svg\";","export default __webpack_public_path__ + \"static/media/success.a8c52a4f.svg\";","import React, {\n useState,\n useCallback,\n useEffect,\n useRef,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport uploadIcon from '../../../assets/upload-circle.svg';\nimport errorIcon from '../../../assets/error.svg';\nimport successIcon from '../../../assets/success.svg';\nimport loadingSpinner from '../../../assets/loading-whites.json';\nimport { delay } from '../../../services/utils';\nimport FigoLottie from '../FigoLottie';\nimport './InputImageMyPets.css';\n\nconst DRAGGING_CLASSNAME = ' My-pets-input-image-container-hover';\nconst ERROR_CLASSNAME = ' My-pets-input-image-error';\n\nconst InputImageMyPets = ({\n acceptFiles,\n classContainer = '',\n error,\n file = null,\n onFileChange = () => { },\n}) => {\n const { t } = useTranslation('common');\n const [isDragging, setIsDragging] = useState('');\n const [loading, setLoading] = useState(false);\n const dropzoneRef = useRef();\n const inputRef = useRef();\n\n const hasError = useMemo(() => (error && !loading\n ? ERROR_CLASSNAME : ''), [error, loading]);\n\n const simulateDelay = async () => {\n await delay(1000);\n setLoading(false);\n };\n\n const handleDragover = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDragenter = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n const { fromElement } = event;\n if (fromElement === dropzoneRef.current\n && event.dataTransfer.items\n && event.dataTransfer.items.length > 0) {\n setIsDragging(DRAGGING_CLASSNAME);\n }\n }, []);\n\n const handleDragleave = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n const { fromElement } = event;\n const { current: dropzoneElement } = dropzoneRef;\n const { current: inputElement } = inputRef;\n if (fromElement !== dropzoneElement && fromElement !== inputElement) {\n setIsDragging('');\n }\n }, []);\n\n const handleDrop = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n if (event.dataTransfer.files) {\n setIsDragging('');\n onFileChange(event.dataTransfer.files[0]);\n event.dataTransfer.clearData();\n setLoading(true);\n simulateDelay();\n }\n }, [onFileChange]);\n\n useEffect(() => {\n window.addEventListener('dragover', handleDragover);\n window.addEventListener('dragenter', handleDragenter);\n\n return () => {\n window.removeEventListener('dragover', handleDragover);\n window.removeEventListener('dragenter', handleDragenter);\n };\n }, [handleDragenter, handleDragover]);\n\n useEffect(() => {\n const currentDropzone = dropzoneRef.current;\n if (currentDropzone) {\n currentDropzone.addEventListener('drop', handleDrop);\n currentDropzone.addEventListener('dragleave', handleDragleave);\n }\n\n return () => {\n if (currentDropzone) {\n currentDropzone.removeEventListener('drop', handleDrop);\n currentDropzone.removeEventListener('dragleave', handleDragleave);\n }\n };\n }, [handleDrop, handleDragleave, isDragging]);\n\n function handleFileChange(event) {\n const { files } = event.target;\n onFileChange(files[0]);\n setLoading(true);\n simulateDelay();\n }\n\n function handleDeleteFile() {\n onFileChange(null);\n }\n\n const getContent = () => {\n if (loading) {\n return (\n <FigoLottie\n animationData={loadingSpinner}\n height={30}\n width={30}\n />\n );\n }\n\n if (error) {\n return (\n <>\n <img alt=\"\" src={errorIcon} />\n\n <span className=\"My-pets-input-image-message\n My-pets-input-image-message-error\"\n >\n {t('uploadEditablePhoto.error')}\n </span>\n\n <span className=\"My-pets-input-image-extensions\">\n {acceptFiles.split(',').join(', ')}\n </span>\n </>\n );\n }\n\n if (file && !loading) {\n return (\n <>\n <img alt=\"\" src={successIcon} />\n\n <span className=\"My-pets-input-image-message\">\n {t('uploadEditablePhoto.success')}\n </span>\n\n <span className=\"My-pets-input-image-file-name\">{file.name}</span>\n\n <button\n className=\"My-pets-input-image-delete\"\n onClick={handleDeleteFile}\n type=\"button\"\n >\n {t('uploadEditablePhoto.delete')}\n </button>\n </>\n );\n }\n\n return (\n <>\n <img alt=\"\" className=\"My-pets-input-image-icon\" src={uploadIcon} />\n\n <span className=\"My-pets-input-image-instruction-1\">\n {t('uploadEditablePhoto.dropFile')}\n\n <span className=\"My-pets-input-image-instruction-highlight\">\n {t('uploadEditablePhoto.chooseFile')}\n </span>\n\n {t('uploadEditablePhoto.upload')}\n </span>\n\n <span className=\"My-pets-input-image-instruction-2\">\n {t('uploadEditablePhoto.fileSize')}\n </span>\n </>\n );\n };\n\n return (\n <div\n ref={dropzoneRef}\n className={`My-pets-input-image-container ${isDragging}${hasError}${\n (file && !error) || loading\n ? ' My-pets-input-image-success' : ''} ${classContainer}`}\n >\n {(!file || error) && (\n <input\n ref={inputRef}\n accept={acceptFiles}\n onChange={handleFileChange}\n type=\"file\"\n />\n )}\n\n <div className={`My-pets-input-image-content\n ${!file ? 'No-clicked' : ''}`}\n >\n {getContent()}\n </div>\n </div>\n );\n};\n\nexport { InputImageMyPets };\n","export default __webpack_public_path__ + \"static/media/add-circle.668a8f54.svg\";","export default __webpack_public_path__ + \"static/media/subtract-circle.e2eaff95.svg\";","import React, { useMemo } from 'react';\nimport plusIcon from '../../../assets/myPets/add-circle.svg';\nimport minusIcon from '../../../assets/myPets/subtract-circle.svg';\nimport './SliderImageMyPets.css';\n\nconst SliderMyPets = ({\n max = 100,\n min = 0,\n onChange = () => { },\n value,\n step = 1,\n otherProps,\n}) => {\n const percentage = useMemo(\n () => (100 * (value - min)) / (max - min),\n [value, max, min],\n );\n\n const convertToPercentage =\n (sliderValue) => Math.round(((sliderValue - min) / (max - min)) * 100);\n const handleWidth = 20;\n const offset = (handleWidth / 2) * (percentage / 100);\n\n return (\n <div className=\"My-pets-slider-container\">\n <img alt=\"\" className=\"My-pets-slider-minus\" src={minusIcon} />\n\n <input\n className=\"My-pets-slider-input\"\n max={max}\n min={min}\n onChange={onChange}\n step={step}\n type=\"range\"\n value={value}\n {...otherProps}\n />\n\n <div className=\"My-pets-slider No-clicked\">\n <div className=\"My-pets-slider-value-track No-clicked\">\n <div\n className=\"My-pets-slider-track\"\n style={{ width: `calc(${percentage}%)` }}\n />\n\n <div\n className=\"My-pets-slider-value\"\n style={{ left: `calc(${percentage}% - ${offset}px)` }}\n />\n </div>\n\n <div className=\"My-pets-slider-rail\" />\n </div>\n\n <img alt=\"\" className=\"My-pets-slider-plus\" src={plusIcon} />\n\n <p className=\"My-pets-slider-percentage\">{convertToPercentage(value)}%</p>\n </div>\n );\n};\n\nexport { SliderMyPets };\n","export default __webpack_public_path__ + \"static/media/round-arrow.244e687a.svg\";","import React from 'react';\nimport Cropper from 'react-easy-crop';\nimport './ImageEditableMyPets.css';\nimport { SliderMyPets } from './SliderImageMyPets';\nimport roundArrow from '../../../assets/myPets/round-arrow.svg';\n\nconst ImageEditableMyPets = ({\n classNameButtonContainer = '',\n classNameContainer = '',\n classNameSliderContainer = '',\n crop,\n cropHeight,\n cropWidth,\n image,\n onCropChange = () => { },\n onCropComplete = () => { },\n onRotation = () => { },\n onZoom = () => { },\n rotation,\n rotationStep = 2,\n round,\n zoom,\n}) => {\n const handleRotation = (stepDegrees) => () => {\n onRotation(stepDegrees);\n };\n\n function handleZoom(event) {\n const { value } = event.target;\n onZoom(Number(value));\n }\n\n return (\n <div className=\"My-pets-image-editable-container\">\n <div\n className={`My-pets-image-editable-cropper-container\n ${classNameContainer}`}\n >\n <Cropper\n aspect={16 / 9}\n classes={{\n cropAreaClassName: 'My-pets-image-editable-crop-area',\n }}\n crop={crop}\n cropShape={round ? 'round' : 'rect'}\n cropSize={{ height: cropHeight, width: cropWidth }}\n image={image}\n onCropChange={onCropChange}\n onCropComplete={onCropComplete}\n rotation={rotation}\n showGrid={false}\n zoom={zoom / 150}\n />\n </div>\n\n <div className=\"My-pets-image-editor-actions-box\">\n <div\n className={`My-pets-image-editable-slider-container ${\n classNameSliderContainer}`}\n >\n <SliderMyPets\n max={350}\n min={150}\n onChange={handleZoom}\n step={0.1}\n value={zoom}\n />\n </div>\n\n <div\n className={`My-pets-image-editable-rotate-buttons\n ${classNameButtonContainer}`}\n >\n <button\n className=\"My-pets-image-editable-rotate\"\n onClick={handleRotation(-rotationStep)}\n type=\"button\"\n >\n <img alt=\"Rotate to right\" src={roundArrow} />\n </button>\n\n <button\n className=\"My-pets-image-editable-rotate\"\n onClick={handleRotation(rotationStep)}\n type=\"button\"\n >\n <img\n alt=\"Rotate to left\"\n className=\"My-pets-image-editable-rotate-arrow-left\"\n src={roundArrow}\n />\n </button>\n </div>\n </div>\n </div>\n );\n};\n\nexport { ImageEditableMyPets };\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContainer from '../ModalContainer';\nimport { InputImageMyPets } from './InputImageMyPets';\nimport { ImageEditableMyPets } from './ImageEditableMyPets';\nimport closeIcon from '../../../assets/close-button.svg';\nimport './ImageEditorMyPets.css';\nimport roundArrow from '../../../assets/myPets/round-arrow.svg';\nimport { ActionButton } from '../petCloud/ActionButton';\nimport LoadingActionButtonMyPets from '../petCloud/LoadingActionButtonMyPets';\nimport { readFile, getCroppedImg } from '../../../services/utils';\nimport { SliderMyPets } from './SliderImageMyPets';\n\nconst ACCEPTED_FILES = '.jpg,.jpeg,.png,.svg';\nconst ALLOWED_EXT = /(\\.jpg|\\.jpeg|\\.png|\\.svg)$/i;\n\nconst steps = { EDIT: 2, PREVIEW: 3, REMOVE: 0, SELECT: 1 };\n\nconst ImageEditorMyPets = ({\n classContainer = '',\n classCropperContainer = '',\n classInputContainer = '',\n classRotateButtonsContainer = '',\n classSliderContainer = '',\n imageHeight,\n imageWidth,\n initialPicture = null,\n isSaving = false,\n onClose = () => { },\n onRemove = () => { },\n onSave = () => { },\n onSuccess = () => { },\n photoType = '',\n round = true,\n saveSuccess = false,\n show = false,\n subtitle = '',\n title = '',\n}) => {\n const { t } = useTranslation('common');\n const [imageSource, setImageSource] = useState(null);\n const [invalidSource, setInvalidSource] = useState(false);\n const [imageSourceData, setImageSourceData] = useState();\n const [imageDestination, setImageDestination] = useState(null);\n const [step, setStep] = useState(steps.SELECT);\n const [crop, setCrop] = useState({ x: 0, y: 0 });\n const [croppedAreaPixels, setCroppedAreaPixels] = useState(null);\n const [rotation, setRotation] = useState(0);\n const [zoom, setZoom] = useState(150);\n\n useEffect(() => {\n if (!show) {\n setImageSource(null);\n setInvalidSource(false);\n setImageSourceData(null);\n setImageDestination(null);\n setStep(steps.SELECT);\n setCrop({ x: 0, y: 0 });\n setCroppedAreaPixels(null);\n setRotation(0);\n setZoom(150);\n }\n\n if (show && initialPicture) {\n setImageSourceData(initialPicture);\n setZoom(150);\n setStep(steps.EDIT);\n }\n }, [show]);\n\n async function generatePreview() {\n try {\n const croppedImage = await getCroppedImg(\n imageSourceData,\n croppedAreaPixels,\n rotation,\n );\n\n return croppedImage;\n } catch (_) {\n return null;\n }\n }\n\n const handleModalImageEditorClose = useCallback(() => {\n if (!isSaving && !saveSuccess) {\n onClose();\n }\n }, [isSaving, saveSuccess, onClose]);\n\n const handleImageChanged = useCallback(async (file) => {\n let imageDataUrl = null;\n if (file) {\n const isImage = file.name.match(ALLOWED_EXT);\n if (isImage) {\n setInvalidSource(false);\n imageDataUrl = await readFile(file);\n setZoom(150);\n } else {\n setInvalidSource(true);\n }\n }\n setImageSource(file);\n setImageSourceData(imageDataUrl);\n\n if (imageDataUrl && !invalidSource) {\n setStep((prevStep) => prevStep + 1);\n }\n }, []);\n\n function handleCropChange(newCrop) {\n setCrop(newCrop);\n }\n\n function handleCropComplete(_, newCroppedAreaPixels) {\n setCroppedAreaPixels(newCroppedAreaPixels);\n }\n\n function handleRotation(degreesStep) {\n setRotation((prevRotation) => prevRotation + degreesStep);\n }\n\n async function handleSaveSuccess() {\n onSuccess();\n }\n\n async function handleSave() {\n const imageName = imageSource?.name.split('.')[0] || '';\n let imageToSave = null;\n if (imageDestination) {\n imageToSave = imageDestination;\n } else {\n imageToSave = await generatePreview();\n }\n\n if (imageToSave) {\n onSave(imageToSave, imageName);\n }\n }\n\n function handleRemove() {\n setStep(steps.REMOVE);\n }\n\n function handleZoom(newZoom) {\n setZoom(newZoom);\n }\n\n const ImageActions = () => (\n <div className=\"My-pets-image-editor-actions-container\">\n <div className=\"My-pets-image-editor-actions-buttons\">\n <div className=\"My-pets-image-editor-actions-top-bottom\">\n <LoadingActionButtonMyPets\n disabled={step === steps.SELECT}\n height={20}\n loading={isSaving}\n onClick={handleSave}\n onSuccessAnimationEnd={handleSaveSuccess}\n success={saveSuccess}\n text={t('uploadEditablePhoto.save')}\n type=\"button\"\n width={20}\n />\n\n <ActionButton\n className=\"My-pets-image-editor-actions-cancel\"\n isSecondaryButton\n onClick={handleModalImageEditorClose}\n title={t('uploadEditablePhoto.cancel')}\n />\n </div>\n\n {step === steps.EDIT && initialPicture && (\n <LoadingActionButtonMyPets\n className=\"My-pets-image-editor-remove\"\n disabled={step === steps.SELECT}\n height={20}\n loading={isSaving}\n onClick={handleRemove}\n onSuccessAnimationEnd={handleSaveSuccess}\n success={saveSuccess}\n text={t('uploadEditablePhoto.removeProfilePhoto')}\n type=\"button\"\n width={20}\n />\n )}\n </div>\n\n {step === steps.SELECT && (\n <div className=\"My-pets-image-editor-actions-box\">\n <div\n className=\"My-pets-image-editable-slider-container\"\n >\n <SliderMyPets\n disabled\n max={350}\n min={150}\n step={0.1}\n value={zoom}\n />\n </div>\n\n <div\n className=\"My-pets-image-editable-rotate-buttons\"\n >\n <button\n className=\"My-pets-image-editable-rotate\"\n onClick={handleRotation}\n type=\"button\"\n >\n <img alt=\"Rotate to right\" src={roundArrow} />\n </button>\n\n <button\n className=\"My-pets-image-editable-rotate\"\n onClick={handleRotation}\n type=\"button\"\n >\n <img\n alt=\"Rotate to left\"\n className=\"My-pets-image-editable-rotate-arrow-left\"\n src={roundArrow}\n />\n </button>\n </div>\n </div>\n )}\n </div>\n );\n\n function handleConfirmRemove() {\n onRemove();\n }\n\n function handleKeepImage() {\n setStep(steps.EDIT);\n }\n\n const getStepContent = () => {\n switch (step) {\n case steps.SELECT:\n return (\n <>\n <InputImageMyPets\n acceptFiles={ACCEPTED_FILES}\n classContainer={classInputContainer}\n error={invalidSource}\n file={imageSource}\n imageAreaHeight={imageHeight}\n imageAreaWidth={imageWidth}\n onFileChange={handleImageChanged}\n round={round}\n />\n\n <ImageActions />\n </>\n );\n\n case steps.EDIT:\n return (\n <>\n <ImageEditableMyPets\n classNameButtonConainer={classRotateButtonsContainer}\n classNameContainer={classCropperContainer}\n classNameSliderContainer={classSliderContainer}\n crop={crop}\n cropHeight={imageHeight}\n cropWidth={imageWidth}\n image={imageSourceData}\n onCropChange={handleCropChange}\n onCropComplete={handleCropComplete}\n onRotation={handleRotation}\n onZoom={handleZoom}\n rotation={rotation}\n round={round}\n zoom={zoom}\n />\n\n <ImageActions />\n </>\n );\n\n case steps.REMOVE:\n return (\n <ModalContainer\n contentStyle=\"My-pets-image-editor-remove-container\"\n show\n >\n <h2 className=\"My-pets-image-editor-remove-title-modal\">\n {t('uploadEditablePhoto.removePhoto')}\n </h2>\n\n <h3 className=\"My-pets-image-editor-remove-subtitle-modal\">\n {t('uploadEditablePhoto.removeConfirmation',\n { photoType })}\n </h3>\n\n <div className=\"My-pets-image-editor-remove-buttons\">\n <LoadingActionButtonMyPets\n className=\"My-pets-image-editor-remove-button\"\n disabled={step === steps.SELECT}\n height={20}\n loading={isSaving}\n onClick={handleConfirmRemove}\n onSuccessAnimationEnd={handleSaveSuccess}\n success={saveSuccess}\n text={t('uploadEditablePhoto.remove')}\n width={20}\n />\n\n <ActionButton\n isSecondaryButton\n onClick={handleKeepImage}\n title={t('uploadEditablePhoto.keep')}\n />\n </div>\n </ModalContainer>\n );\n\n default:\n return null;\n }\n };\n\n return (\n <ModalContainer contentStyle=\"My-pets-image-editor-modal\" show={show}>\n <div className={`My-pets-image-editor-container ${classContainer}`}>\n <button\n className=\"My-pets-image-editor-close-icon-container\"\n id=\"closeIconAddPetImageModal\"\n onClick={handleModalImageEditorClose}\n type=\"button\"\n >\n <img\n alt=\"Close\"\n className=\"My-pets-modal-close-icon\"\n src={closeIcon}\n />\n </button>\n\n {step !== steps.REMOVE && (\n <>\n <h3 className=\"My-pets-image-editor-title\">{title}</h3>\n\n <h3 className=\"My-pets-image-editor-subtitle\">\n {subtitle}\n </h3>\n </>\n )}\n\n {getStepContent()}\n </div>\n </ModalContainer>\n );\n};\n\nexport { ImageEditorMyPets };\n","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport NavigationPrompt from 'react-router-navigation-prompt';\n\nimport { PetCloudAccountRow } from './PetCloudAccountRow';\n\nimport { useMyAccountInfo } from '../hooks/useMyAccountInfo';\n\nimport { GenericModal } from '../../common/petCloud/GenericModal';\nimport {\n ImageEditorMyPets,\n} from '../../common/imageEditorMyPets/ImageEditorMyPets';\n\nimport './css/PetCloudAccountScreen.css';\n\nconst PetCloudAccountScreen = () => {\n const { t } = useTranslation('myAccount');\n const primaryUnsavedButtonText =\n t('petCloudSection.unsavedChangesModal.primaryButton');\n const secondaryUnsavedButtonText =\n t('petCloudSection.unsavedChangesModal.secondaryButton');\n const {\n firstName,\n fullName,\n handleCancelModal,\n handleDiscardModal,\n handleChangePictureSuccess,\n handleCloseImageEditor,\n handleEditingPCEmail,\n handleEmailEditing,\n handleNameEditing,\n handleRemovePicture,\n handleSavePicture,\n handleShowImageEditor,\n isEditingAny,\n isEditingEmail,\n isEditingName,\n isEditingPCEmail,\n isPhotoError,\n isPhotoSaved,\n isSavingPhoto,\n lastName,\n loginEmail,\n nameInitials,\n pageHasChanges,\n petCloudEmail,\n profileUrl,\n resetEditFields,\n showImageEditor,\n showUnsavedModal,\n } = useMyAccountInfo();\n\n function shouldPromptWarning(_crntLocation, nextLocation) {\n const shouldPrompt = !nextLocation.pathname\n .includes(t('petCloudSection.petCloudCard.title')) && pageHasChanges;\n\n const hasError = nextLocation.pathname === '/error';\n\n return shouldPrompt && !hasError;\n }\n\n const handleCancelAction = useCallback((onCancel) => () => {\n handleCancelModal();\n\n if (onCancel && typeof onConfirm === 'function') {\n onCancel();\n }\n }, []);\n\n function renderNavigationPrompt(props) {\n const { onCancel, onConfirm } = props;\n\n return (\n <GenericModal\n description={t('petCloudSection.unsavedChangesModal.description')}\n handleOutClick={handleCancelAction(onCancel)}\n isDeleteAction\n onPrimaryClick={handleDiscardModal(onConfirm)}\n onSecondaryClick={handleCancelAction(onCancel)}\n primaryButtonText={primaryUnsavedButtonText}\n secondaryButtonText={secondaryUnsavedButtonText}\n show={pageHasChanges}\n title={t('petCloudSection.unsavedChangesModal.title')}\n />\n );\n }\n\n return (\n <div className=\"Pet-cloud-account-container\">\n <h1 className=\"Pet-cloud-account-title\">{t('petCloudSection.title')}</h1>\n\n <p className=\"Pet-cloud-account-description\">\n {t('petCloudSection.description')}\n </p>\n\n <div className=\"Pet-cloud-account-info-container\">\n <PetCloudAccountRow\n actionLabel={profileUrl\n ? t('petCloudSection.editPhoto')\n : t('petCloudSection.upload')}\n initialValue={nameInitials}\n isEditingAny={isEditingAny}\n isProfilePicture\n label={t('petCloudSection.profilePicture')}\n onClickActionButton={handleShowImageEditor}\n profilePicture={profileUrl}\n />\n\n <PetCloudAccountRow\n actionLabel={t('petCloudSection.edit')}\n initialValue={isEditingName ? { firstName, lastName } : fullName}\n isEditing={isEditingName}\n isEditingAny={isEditingAny}\n label={t('petCloudSection.name')}\n onClickActionButton={handleNameEditing}\n onClickCancel={resetEditFields}\n />\n\n <PetCloudAccountRow\n actionLabel={t('petCloudSection.edit')}\n initialValue={loginEmail}\n isEditing={isEditingEmail}\n isEditingAny={isEditingAny}\n label={t('petCloudSection.email')}\n onClickActionButton={handleEmailEditing}\n onClickCancel={resetEditFields}\n />\n\n <PetCloudAccountRow\n actionLabel={t('petCloudSection.edit')}\n initialValue={petCloudEmail}\n isEditing={isEditingPCEmail}\n isEditingAny={isEditingAny}\n label={t('petCloudSection.petCloudEmail')}\n onClickActionButton={handleEditingPCEmail}\n onClickCancel={resetEditFields}\n />\n </div>\n\n <NavigationPrompt\n disableNative={false}\n when={shouldPromptWarning}\n >\n {renderNavigationPrompt}\n </NavigationPrompt>\n\n <GenericModal\n description={t('petCloudSection.unsavedChangesModal.description')}\n handleOutClick={handleCancelAction()}\n isDeleteAction\n onPrimaryClick={handleDiscardModal()}\n onSecondaryClick={handleCancelAction()}\n primaryButtonText={primaryUnsavedButtonText}\n secondaryButtonText={secondaryUnsavedButtonText}\n show={showUnsavedModal}\n title={t('petCloudSection.unsavedChangesModal.title')}\n />\n\n <ImageEditorMyPets\n error={isPhotoError}\n imageHeight={300}\n imageWidth={300}\n initialPicture={profileUrl}\n isSaving={isSavingPhoto}\n onClose={handleCloseImageEditor}\n onRemove={handleRemovePicture}\n onSave={handleSavePicture}\n onSuccess={handleChangePictureSuccess}\n photoType={t('petCloudSection.profileType')}\n round\n saveSuccess={isPhotoSaved}\n show={showImageEditor}\n title={profileUrl\n ? t('petCloudSection.editProfilePicture')\n : t('petCloudSection.addProfilePicture')}\n />\n </div>\n );\n};\n\nexport { PetCloudAccountScreen };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { MY_ACCOUNT } from '../../../constants';\n\nimport './css/InsuranceAccountRow.css';\n\nconst InsuranceAccountRow = ({\n breadCrumbs = {},\n companyLogo = '',\n initialValue = '',\n isFirstRow = false,\n label = '',\n}) => {\n const { t } = useTranslation('myAccount');\n\n const onPushToEditDetails = () => {\n if (breadCrumbs) {\n breadCrumbs.onAddBreadcrumbItem({\n id: MY_ACCOUNT.update,\n name: t('insuranceAccountSection.update'),\n });\n }\n };\n\n if (isFirstRow) {\n return (\n <div className=\"Insurance-account-row-first-row\">\n <img alt=\"\" src={companyLogo} />\n\n <button\n className=\"Insurance-account-row-edit-button\"\n onClick={onPushToEditDetails}\n type=\"button\"\n >\n <span>{t('insuranceAccountSection.editAccount')}</span>\n </button>\n </div>\n );\n }\n\n return (\n <div className=\"Insurance-account-row-container\">\n <h4>{label}</h4>\n\n <span>{initialValue}</span>\n </div>\n );\n};\n\nexport { InsuranceAccountRow };\n","import React from 'react';\nimport Shimmer from '../../common/Shimmer';\n\nimport './css/InsuranceAccountScreen.css';\n\nconst InsuranceAccountShimmer = () => (\n <div className=\"Insurance-account-shimmer-container\">\n <Shimmer className=\"Insurance-account-shimmer-element\" visible />\n\n <Shimmer className=\"Insurance-account-shimmer-element\" visible />\n\n <Shimmer className=\"Insurance-account-shimmer-element\" visible />\n\n <Shimmer className=\"Insurance-account-shimmer-element\" visible />\n </div>\n);\n\nexport { InsuranceAccountShimmer };\n","export default __webpack_public_path__ + \"static/media/on-error-icon.586d03ab.svg\";","export default __webpack_public_path__ + \"static/media/on-success-icon.4e384b53.svg\";","import React, { useMemo } from 'react';\n\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport {\n useHistory,\n} from 'react-router-dom';\n\nimport onError from '../../../assets/on-error-icon.svg';\nimport onSuccess from '../../../assets/on-success-icon.svg';\n\nimport './css/InsuranceRequestChangeBanner.css';\n\nconst InsuranceRequestChangeBanner = ({ onContactUsClick }) => {\n const { t } = useTranslation('myAccount');\n const history = useHistory();\n\n const store = useSelector(({ session, personalInformation }) => ({\n personalInformation, session,\n }), shallowEqual);\n\n const email = useMemo(() => {\n if (!store.session.customerInformation) {\n return '';\n }\n\n return store.session.customerInformation.email;\n }, [store.session.customerInformation]);\n\n const isRequestSubmitted =\n !store.personalInformation.errorUpdateInsuranceInformation;\n\n const icon = isRequestSubmitted ? onSuccess : onError;\n\n const title = isRequestSubmitted\n ? t('insuranceAccountSection.requestSubmitted')\n : t('insuranceAccountSection.somethingWentWrong');\n\n const description = isRequestSubmitted\n ? t('insuranceAccountSection.requestSubmittedDescription')\n : t('insuranceAccountSection.somethingWentWrongDescription');\n\n const button = isRequestSubmitted\n ? t('insuranceAccountSection.returnToMyAccount')\n : t('insuranceAccountSection.contactUs');\n\n const onClick = () => {\n if (isRequestSubmitted) {\n history.push('/myAccount');\n } else {\n onContactUsClick();\n }\n };\n\n return (\n <div className=\"Insurance-request-change-container\">\n <div className=\"Insurance-request-change-inner-container\">\n <img alt=\"\" src={icon} />\n\n <h2 className=\"Insurance-request-change-title\">{title}</h2>\n\n <p className=\"Insurance-request-change-description\">\n {description}\n\n {isRequestSubmitted && (\n <>\n <br />\n\n <span>{email}</span>\n </>\n )}\n </p>\n\n <button\n className=\"Insurance-request-change-button\"\n onClick={onClick}\n type=\"button\"\n >\n {button}\n </button>\n </div>\n </div>\n );\n};\n\nexport { InsuranceRequestChangeBanner };\n","import React, { useState, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector, shallowEqual, useDispatch } from 'react-redux';\n\nimport { InsuranceRequestChangeBanner } from './InsuranceRequestChangeBanner';\nimport {\n PetCloudInputAnimated,\n} from '../../common/petCloud/PetCloudInputAnimated';\nimport LoadingButton from '../../common/LoadingButton';\n\nimport {\n isEmailValid,\n removeEmojis,\n maskPhoneNumber,\n validateZipCode,\n} from '../../../services/utils';\nimport {\n updateInsuranceInformation,\n} from '../../../actions';\nimport {\n MY_ACCOUNT, MAX_ZIP_LENGTH,\n MAX_PHONE_LENGTH_MASK,\n} from '../../../constants';\n\nimport Checkbox from '../../common/Checkbox';\n\nimport errorIcon from '../../../assets/myAccount/input-error-icon.svg';\nimport { getStateAbbreviation } from '../../../services/zipcode';\nimport { useSubmitRequestAccountChanges } from '../../../hooks/useFeatureFlags';\n\nconst labelToFieldsMap = {\n Address: ['Address', 'City', 'State', 'ZipCode'],\n Email: ['Email'],\n 'Name on Account': ['FirstName', 'LastName'],\n 'Phone Number': ['Phone'],\n};\n\nconst SELECT_OPTION = 'Select';\n\nconst InsuranceAccountUpdateForm =\n ({ toggleUpdateForm, breadCrumbs = {}, onContactUsClick }) => {\n const { t } = useTranslation('myAccount');\n const dispatch = useDispatch();\n const store = useSelector(({ session, personalInformation }) => ({\n personalInformation, session,\n }), shallowEqual);\n const submitRequestChanges = useSubmitRequestAccountChanges();\n\n const email = useMemo(() => {\n if (!store.session.customerInformation) {\n return '';\n }\n\n return store.session.customerInformation.email;\n }, [store.session.customerInformation]);\n\n const companyId = useMemo(() => {\n if (breadCrumbs) {\n return breadCrumbs.navData\n .find((data) => data.id === MY_ACCOUNT.insuranceAccount).extraData;\n }\n\n return 1;\n }, [breadCrumbs]);\n\n const checkboxData = [\n {\n id: 1,\n isChecked: false,\n label: t('insuranceAccountSection.nameAccount'),\n },\n { id: 2, isChecked: false, label: t('insuranceAccountSection.address') },\n { id: 3, isChecked: false, label: t('insuranceAccountSection.email') },\n {\n id: 4,\n isChecked: false,\n label: t('insuranceAccountSection.phoneNumber'),\n },\n ];\n\n // TODO: this information will be pre-filled once the data source split up\n // the name, state, zipcode and other fields.\n const initialFormData = {\n Address: '',\n City: '',\n CompanyId: companyId,\n Email: '',\n FirstName: '',\n LastName: '',\n Phone: '',\n SecondAddress: '',\n SecondaryFirstName: '',\n SecondaryLastName: '',\n State: '',\n ZipCode: '',\n };\n\n const [checkboxes, setCheckboxes] = useState(checkboxData);\n const [formData, setFormData] = useState(initialFormData);\n const [emailError, setEmailError] = useState('');\n const [zipCodeError, setZipCodeError] = useState('');\n const [isPhoneValid, setIsPhoneValid] = useState(false);\n const [isDisabled, setIsDisabled] = useState(true);\n\n const loading = store.personalInformation.loadingUpdateInsuranceInformation;\n const areCheckboxesChecked = checkboxes.some((item) => item.isChecked);\n const isEmailDisabled = checkboxes[2]?.isChecked ? emailError : false;\n const isPhoneDisabled = checkboxes[3]?.isChecked ? !isPhoneValid : false;\n\n const updateButtonState = () => {\n const areAllInputsValid = checkboxes.every((item) => {\n if (item.isChecked) {\n const fieldsToValidate = labelToFieldsMap[item.label];\n\n return fieldsToValidate.every((field) => {\n if (field === 'Email') {\n return formData.Phone.length === MAX_PHONE_LENGTH_MASK\n ? true : formData[field] !== '';\n }\n\n if (field === 'State') {\n const currentFieldValue = formData[field];\n return currentFieldValue !== ''\n && currentFieldValue !== SELECT_OPTION;\n }\n\n return formData[field] !== '';\n });\n }\n\n return true;\n });\n\n setIsDisabled(!areAllInputsValid);\n };\n\n const handleCheckboxChange = (id) => {\n setCheckboxes((prevCheckboxes) => prevCheckboxes\n .map((checkbox) => (checkbox.id === id\n ? { ...checkbox, isChecked: !checkbox.isChecked }\n : checkbox)));\n updateButtonState();\n };\n\n const handleInputChange = (e) => {\n let { value } = e.target;\n const { id } = e.target;\n\n if (id === 'Email') {\n const cleanValue = removeEmojis(value);\n // By pass validation when the Phone field is not empty\n const invalidEmail = !value.length && checkboxes[3]?.isChecked\n && formData.Phone.length === MAX_PHONE_LENGTH_MASK\n ? true : isEmailValid(cleanValue);\n setEmailError(!invalidEmail);\n }\n\n if (id === 'Phone') {\n value = maskPhoneNumber(value);\n setIsPhoneValid(value.length === MAX_PHONE_LENGTH_MASK);\n const invalidEmail = !formData.Email.length && checkboxes[3]?.isChecked\n && value.length === MAX_PHONE_LENGTH_MASK\n ? true : isEmailValid(formData.Email);\n setEmailError(!invalidEmail);\n }\n\n if (id === 'ZipCode') {\n const numericZip = validateZipCode(value);\n const checkLength = numericZip?.length === MAX_ZIP_LENGTH;\n const stateAbbr = getStateAbbreviation(numericZip);\n value = numericZip;\n\n setFormData((prev) => ({\n ...prev,\n State: stateAbbr,\n }));\n\n setZipCodeError(!checkLength || !stateAbbr.length > 0);\n }\n\n setFormData((prevData) => ({\n ...prevData,\n [id]: value,\n }));\n };\n\n const renderStatesOptions = () => {\n const options = [\n { Name: SELECT_OPTION },\n ...store.personalInformation.states,\n ];\n\n return options.map((State) => (\n <option key={State.Name}>{State.Name}</option>\n ));\n };\n\n const renderError = () => {\n if (emailError) {\n return (\n <div className=\"Pet-cloud-forgot-modal-error\">\n <img alt=\"\" src={errorIcon} />\n\n <span>{t('petCloudSection.invalidEmail')}</span>\n </div>\n );\n }\n return null;\n };\n\n const onSubmit = () => {\n dispatch(updateInsuranceInformation(formData));\n };\n\n useEffect(() => {\n updateButtonState();\n }, [formData, checkboxes]);\n\n if (store.personalInformation.errorUpdateInsuranceInformation !== null) {\n return (\n <InsuranceRequestChangeBanner\n onContactUsClick={onContactUsClick}\n />\n );\n }\n return (\n <>\n <h2 className=\"Insurance-account-subtitle\">\n {t('insuranceAccountSection.updateInformation')}\n </h2>\n\n <p className=\"Insurance-account-subtitle-description\">\n {t('insuranceAccountSection.updateInformationDescription')}\n </p>\n\n <h2 className=\"Insurance-account-title-form\">\n {t('insuranceAccountSection.emailOnFile')}\n </h2>\n\n <p className=\"Insurance-account-subtitle-description\">{email}</p>\n\n <h2 className=\"Insurance-account-title-form\">\n {t('insuranceAccountSection.selectInformation')}\n </h2>\n\n <div className=\"Insurance-account-checkboxes-container\">\n <Checkbox\n checked={checkboxes[0].isChecked}\n className=\"Insurance-account-checkbox\"\n isRounded={false}\n label={checkboxes[0].label}\n onChange={() => handleCheckboxChange(checkboxes[0].id)}\n />\n\n {checkboxes[0].isChecked && (\n <div className=\"Insurance-account-inputs-container\n Insurance-account-inputs-container-row\"\n >\n <PetCloudInputAnimated\n id=\"FirstName\"\n inputClass=\"Insurance-account-input-50\"\n onChange={(e) => handleInputChange(e)}\n placeholder={t('insuranceAccountSection.firstName')}\n value={formData.FirstName}\n />\n\n <PetCloudInputAnimated\n id=\"LastName\"\n inputClass=\"Insurance-account-input-50\"\n onChange={(e) => handleInputChange(e)}\n placeholder={t('insuranceAccountSection.lastName')}\n value={formData.LastName}\n />\n </div>\n )}\n\n <Checkbox\n checked={checkboxes[1].isChecked}\n className=\"Insurance-account-checkbox\"\n isRounded={false}\n label={checkboxes[1].label}\n onChange={() => handleCheckboxChange(checkboxes[1].id)}\n />\n\n {checkboxes[1].isChecked && (\n <div className=\"Insurance-account-inputs-container\">\n <PetCloudInputAnimated\n id=\"Address\"\n inputClass=\"Insurance-account-input-100\"\n onChange={(e) => handleInputChange(e)}\n placeholder={t('insuranceAccountSection.addressLine1')}\n value={formData.Address}\n />\n\n <PetCloudInputAnimated\n id=\"SecondAddress\"\n inputClass=\"Insurance-account-input-100\"\n onChange={(e) => handleInputChange(e)}\n placeholder={t('insuranceAccountSection.addressLine2')}\n value={formData.SecondAddress}\n />\n\n <div className=\"Insurance-account-inputs33-contanier\">\n <PetCloudInputAnimated\n id=\"City\"\n inputClass=\"Insurance-account-input-33\"\n onChange={(e) => handleInputChange(e)}\n placeholder={t('insuranceAccountSection.city')}\n value={formData.City}\n />\n\n <PetCloudInputAnimated\n error={zipCodeError\n ? t('insuranceAccountSection.zipCodeError') : ''}\n id=\"ZipCode\"\n inputClass=\"Insurance-account-input-33\"\n onChange={(e) => handleInputChange(e)}\n placeholder={t('insuranceAccountSection.zipCode')}\n value={formData.ZipCode}\n />\n\n <select\n className=\"Insurance-account-select-33\"\n id=\"State\"\n onChange={(e) => handleInputChange(e)}\n value={formData.State}\n >\n {renderStatesOptions()}\n </select>\n </div>\n </div>\n )}\n\n <Checkbox\n checked={checkboxes[2].isChecked}\n className=\"Insurance-account-checkbox\"\n isRounded={false}\n label={checkboxes[2].label}\n onChange={() => handleCheckboxChange(checkboxes[2].id)}\n />\n\n {checkboxes[2].isChecked && (\n <div className=\"Insurance-account-inputs-container\">\n <PetCloudInputAnimated\n error={renderError()}\n id=\"Email\"\n inputClass={`Insurance-account-input-100 \n ${emailError ? 'Insurance-account-input-error' : ''}`}\n onChange={(e) => handleInputChange(e)}\n placeholder={t('insuranceAccountSection.emailAddress')}\n value={formData.Email}\n />\n </div>\n )}\n\n <Checkbox\n checked={checkboxes[3].isChecked}\n className=\"Insurance-account-checkbox\"\n isRounded={false}\n label={checkboxes[3].label}\n onChange={() => handleCheckboxChange(checkboxes[3].id)}\n />\n\n {checkboxes[3].isChecked && (\n <div className=\"Insurance-account-inputs-container\">\n <PetCloudInputAnimated\n id=\"Phone\"\n inputClass=\"Insurance-account-input-100\"\n onChange={(e) => handleInputChange(e)}\n placeholder={t('insuranceAccountSection.phoneNumber')}\n value={formData.Phone}\n />\n </div>\n )}\n </div>\n\n <div className=\"Insurance-account-buttons-container\">\n <button\n className=\"Insurance-account-button-contact-us\"\n onClick={toggleUpdateForm}\n type=\"button\"\n >\n {t('insuranceAccountSection.cancel')}\n </button>\n\n {submitRequestChanges ? (\n <LoadingButton\n className=\"Insurance-account-button-contact-submit\"\n disabled={isDisabled || isEmailDisabled\n || !areCheckboxesChecked || zipCodeError || isPhoneDisabled}\n loading={loading}\n onClick={onSubmit}\n text={t('insuranceAccountSection.submitRequest')}\n type=\"button\"\n />\n ) : null}\n </div>\n </>\n );\n };\n\nexport { InsuranceAccountUpdateForm };\n","export function getStateAbbreviation(zipString) {\n if (typeof zipString !== 'string' || zipString.length !== 5) {\n return '';\n }\n\n const zipcode = parseInt(zipString, 10);\n\n const states = [{ code: 'AL', max: 36999, min: 35000 },\n { code: 'AK', max: 99999, min: 99500 },\n { code: 'AZ', max: 86999, min: 85000 },\n { code: 'AR', max: 72999, min: 71600 },\n { code: 'CA', max: 96699, min: 90000 },\n { code: 'CO', max: 81999, min: 80000 },\n { code: 'CT', max: 6999, min: 6000 },\n { code: 'DE', max: 19999, min: 19700 },\n { code: 'FL', max: 34999, min: 32000 },\n { code: 'GA', max: 31999, min: 30000 },\n { code: 'HI', max: 96999, min: 96700 },\n { code: 'ID', max: 83999, min: 83200 },\n { code: 'IL', max: 62999, min: 60000 },\n { code: 'IN', max: 47999, min: 46000 },\n { code: 'IA', max: 52999, min: 50000 },\n { code: 'KS', max: 67999, min: 66000 },\n { code: 'KY', max: 42999, min: 40000 },\n { code: 'LA', max: 71599, min: 70000 },\n { code: 'ME', max: 4999, min: 3900 },\n { code: 'MD', max: 21999, min: 20600 },\n { code: 'MA', max: 2799, min: 1000 },\n { code: 'MI', max: 49999, min: 48000 },\n { code: 'MN', max: 56999, min: 55000 },\n { code: 'MS', max: 39999, min: 38600 },\n { code: 'MO', max: 65999, min: 63000 },\n { code: 'MT', max: 59999, min: 59000 },\n { code: 'NC', max: 28999, min: 27000 },\n { code: 'ND', max: 58999, min: 58000 },\n { code: 'NE', max: 69999, min: 68000 },\n { code: 'NV', max: 89999, min: 88900 },\n { code: 'NH', max: 3899, min: 3000 },\n { code: 'NJ', max: 8999, min: 7000 },\n { code: 'NM', max: 88499, min: 87000 },\n { code: 'NY', max: 14999, min: 10000 },\n { code: 'OH', max: 45999, min: 43000 },\n { code: 'OK', max: 74999, min: 73000 },\n { code: 'OR', max: 97999, min: 97000 },\n { code: 'PA', max: 19699, min: 15000 },\n { code: 'PR', max: 999, min: 300 },\n { code: 'RI', max: 2999, min: 2800 },\n { code: 'SC', max: 29999, min: 29000 },\n { code: 'SD', max: 57999, min: 57000 },\n { code: 'TN', max: 38599, min: 37000 },\n { code: 'TX', max: 79999, min: 75000 },\n { code: 'TX', max: 88599, min: 88500 },\n { code: 'UT', max: 84999, min: 84000 },\n { code: 'VT', max: 5999, min: 5000 },\n { code: 'VA', max: 24699, min: 22000 },\n { code: 'DC', max: 20599, min: 20000 },\n { code: 'WA', max: 99499, min: 98000 },\n { code: 'WV', max: 26999, min: 24700 },\n { code: 'WI', max: 54999, min: 53000 },\n { code: 'WY', max: 83199, min: 82000 }];\n\n const state = states.find((s) => s.min <= zipcode && s.max >= zipcode);\n\n let zipcodeAbbreviation = '';\n\n if (state) {\n zipcodeAbbreviation = state.code;\n }\n\n return zipcodeAbbreviation;\n}\n","import React, { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { getContactBrandData } from '../../../actions';\nimport { useSubmitRequestAccountChanges } from '../../../hooks/useFeatureFlags';\n\nconst InsuranceAccountRequestChange = ({\n onContactUsClick = () => { },\n toggleUpdateForm = () => { },\n}) => {\n const { t } = useTranslation('myAccount');\n const dispatch = useDispatch();\n const submitAccountChanges = useSubmitRequestAccountChanges();\n\n useEffect(() => {\n dispatch(getContactBrandData());\n }, []);\n\n return (\n <>\n <h2 className=\"Insurance-account-subtitle\">\n {t('insuranceAccountSection.requestChange')}\n </h2>\n\n <p className=\"Insurance-account-subtitle-description\">\n {t('insuranceAccountSection.updateDescription')}\n </p>\n\n <div className=\"Insurance-account-buttons-container\">\n <button\n className=\"Insurance-account-button-contact-us\"\n onClick={onContactUsClick}\n type=\"button\"\n >\n {t('insuranceAccountSection.contactUs')}\n </button>\n\n {submitAccountChanges ? (\n <button\n className=\"Insurance-account-button-contact-submit\"\n onClick={toggleUpdateForm}\n type=\"button\"\n >\n {t('insuranceAccountSection.submitRequestForm')}\n </button>\n ) : null}\n </div>\n </>\n );\n};\n\nexport { InsuranceAccountRequestChange };\n","import React, { useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { getThemeLogoById } from '../../../theme/theme.utils';\n\nimport { MY_ACCOUNT } from '../../../constants';\nimport { CONTACT_US_STEPS_BY_NUMBER }\nfrom '../../sideMenu/contactUs/contactUs.constants';\n\nimport { useInsuranceAccountScreen } from './hooks/useInsuranceAccount';\n\nimport { InsuranceAccountRow } from './InsuranceAccountRow';\nimport { InsuranceAccountShimmer } from './InsuranceAccountShimmer';\nimport { ContactUsModal } from '../../sideMenu/contactUs/ContactUsModal';\nimport { InsuranceAccountUpdateForm } from './InsuranceAccountUpdateForm';\nimport { InsuranceAccountRequestChange } from './InsuranceAccountRequestChange';\n\nimport './css/InsuranceAccountScreen.css';\n\nconst InsuranceAccountScreen = ({ breadCrumbs = {}, currentFolderId = 0 }) => {\n const { t } = useTranslation('myAccount');\n\n const [contactUsVisible, setContactUsVisible] = useState(false);\n const [isUpdateFormOpen, setUpdateFormOpen] = useState(false);\n const toggleUpdateForm = () => setUpdateFormOpen(!isUpdateFormOpen);\n\n const companyId = useMemo(() => {\n if (breadCrumbs) {\n return breadCrumbs.navData\n .find((data) => data.id === MY_ACCOUNT.insuranceAccount).extraData;\n }\n\n return 1;\n }, [breadCrumbs]);\n\n const {\n address,\n email,\n loading,\n nameOnAccount,\n phoneNumber,\n } = useInsuranceAccountScreen(companyId);\n\n const isUpdateAccount = currentFolderId === MY_ACCOUNT.update;\n\n const themeLogo = useMemo(() => {\n const theme = getThemeLogoById(companyId);\n return theme.dark;\n }, [companyId]);\n\n const onContactUsClick = () => {\n setContactUsVisible(true);\n };\n\n const onContactUsClose = () => {\n setContactUsVisible(false);\n };\n\n const originId = CONTACT_US_STEPS_BY_NUMBER?.[companyId];\n\n if (loading) {\n return <InsuranceAccountShimmer />;\n }\n\n function renderAccountScreen() {\n return (\n <div className=\"Insurance-account-container\">\n <h1 className=\"Insurance-account-title\">\n {t('insuranceAccountSection.title')}\n </h1>\n\n <p className=\"Insurance-account-description\">\n {t('insuranceAccountSection.description')}\n </p>\n\n <div className=\"Insurance-account-info-container\">\n <InsuranceAccountRow\n breadCrumbs={breadCrumbs}\n companyLogo={themeLogo}\n isFirstRow\n />\n\n <InsuranceAccountRow\n initialValue={nameOnAccount}\n label={t('insuranceAccountSection.nameAccount')}\n />\n\n <InsuranceAccountRow\n initialValue={phoneNumber}\n label={t('insuranceAccountSection.phoneNumber')}\n />\n\n <InsuranceAccountRow\n initialValue={email}\n label={t('insuranceAccountSection.email')}\n />\n\n <InsuranceAccountRow\n initialValue={address}\n label={t('insuranceAccountSection.customerAddress')}\n />\n </div>\n </div>\n );\n }\n\n function renderUpdateAccount() {\n return (\n <div className=\"Insurance-account-container\">\n <ContactUsModal\n companyStep={originId}\n onClose={onContactUsClose}\n show={contactUsVisible}\n />\n\n <h1 className=\"Insurance-account-title\">\n {t('insuranceAccountSection.updateTitle')}\n </h1>\n\n <div className=\"Insurance-account-info-container\">\n {isUpdateFormOpen && (\n <InsuranceAccountUpdateForm\n breadCrumbs={breadCrumbs}\n onContactUsClick={onContactUsClick}\n setUpdateFormOpen={setUpdateFormOpen}\n toggleUpdateForm={toggleUpdateForm}\n />\n )}\n\n {!isUpdateFormOpen && (\n <InsuranceAccountRequestChange\n onContactUsClick={onContactUsClick}\n toggleUpdateForm={toggleUpdateForm}\n />\n )}\n </div>\n </div>\n\n );\n }\n\n return isUpdateAccount ? renderUpdateAccount() : renderAccountScreen();\n};\n\nexport { InsuranceAccountScreen };\n","import { useEffect, useMemo } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { loadCustomerInformation } from '../../../../actions';\n\nconst useInsuranceAccountScreen = (companyId) => {\n const store = useSelector(({\n session,\n }) => ({ session }), shallowEqual);\n const { session: { customerInformation, loading } } = store;\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (companyId) {\n dispatch(loadCustomerInformation({ marketingChannelId: companyId }));\n }\n }, [companyId]);\n\n const userInformation = useMemo(() => {\n if (!customerInformation) {\n return {\n address: '',\n email: '',\n nameOnAccount: '',\n phoneNumber: '',\n };\n }\n\n const {\n addressPart1,\n addressPart2,\n fullName,\n email,\n phoneNumber1,\n phoneNumber2,\n } = customerInformation;\n\n const fullAddress = addressPart2\n ? `${addressPart1}, ${addressPart2}` : addressPart1;\n\n return {\n address: `${fullAddress}`,\n email,\n nameOnAccount: fullName,\n phoneNumber: phoneNumber1 || phoneNumber2,\n };\n }, [customerInformation]);\n\n return {\n ...userInformation,\n loading,\n };\n};\n\nexport { useInsuranceAccountScreen };\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\nimport { getThemeLogoById } from '../../../theme/theme.utils';\nimport { POLICY_STATUS } from '../../../constants';\n\nimport { CoveragePolicyStatus }\nfrom '../../insurance/coverageOverview/CoveragePolicyStatus';\n\nimport './css/ReimbursementPolicyDetails.css';\n\nconst ReimbursementPolicyDetails = ({\n policyNumber = '',\n policyPets = '',\n policyStatus = '',\n policyTerm = '',\n}) => {\n const { t } = useTranslation('myAccount');\n\n const figoLogo = useMemo(() => {\n const theme = getThemeLogoById(MARKETING_CHANNEL_ID.figo);\n return theme.dark;\n }, []);\n\n const policyStatusId = useMemo(() => POLICY_STATUS[policyStatus\n .toLowerCase()], [POLICY_STATUS, policyStatus]);\n\n return (\n <div className=\"Reimbursement-policy-details-container\">\n <h1>{t('reimbursementSection.policyDetails')}</h1>\n\n <div className=\"Reimbursement-policy-details-card\">\n <img alt=\"\" src={figoLogo} />\n\n <div className=\"Reimbursement-policy-info-wrapper\">\n <div className=\"Reimbursement-policy-info-container\">\n <span className=\"Reimbursement-policy-info-title\">\n {t('reimbursementSection.policyNumber')}\n </span>\n\n <span className=\"Reimbursement-policy-info-value\">\n {policyNumber}\n </span>\n </div>\n\n <div className=\"Reimbursement-policy-info-container\">\n <span className=\"Reimbursement-policy-info-title\">\n {t('reimbursementSection.policyTerm')}\n </span>\n\n <span className=\"Reimbursement-policy-info-value\">\n {policyTerm}\n </span>\n </div>\n\n <div className=\"Reimbursement-policy-info-container\">\n <span className=\"Reimbursement-policy-info-title\">\n {t('reimbursementSection.petsOnThisPolicy')}\n </span>\n\n <span className=\"Reimbursement-policy-info-value\">\n {policyPets}\n </span>\n </div>\n </div>\n\n <CoveragePolicyStatus\n label={policyStatus}\n status={policyStatusId}\n />\n </div>\n </div>\n );\n};\n\nexport { ReimbursementPolicyDetails };\n","export default __webpack_public_path__ + \"static/media/check-payment-logo.40c7c746.svg\";","export default __webpack_public_path__ + \"static/media/saving-bank-logo.03b3b2ad.svg\";","export default __webpack_public_path__ + \"static/media/edit-pencil.4c013dea.svg\";","import React from 'react';\n\nimport '../css/ReimbursementEditMenu.css';\n\nconst ReimbursementEditOption = ({\n handleOnClickOption = () => { },\n itemId,\n option,\n}) => {\n function handleClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n handleOnClickOption(option);\n }\n\n return (\n <li\n aria-selected=\"false\"\n className=\"Reimbursement-edit-menu-item-container Flex\"\n id={`editReimMenuItem-${itemId}-${option.id}`}\n onClick={handleClick}\n onKeyPress={handleClick}\n role=\"option\"\n tabIndex={-1}\n >\n <img alt=\"\" src={option.icon} />\n\n <span>{option.text}</span>\n </li>\n );\n};\n\nexport { ReimbursementEditOption };\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { OverlayContainer } from '../../../common/OverlayContainer';\n\nimport { ReimbursementEditOption } from './ReimbursementEditOption';\n\nimport '../css/ReimbursementEditMenu.css';\n\nconst ReimbursementEditMenu = ({\n itemId = 0,\n options = [],\n}) => {\n const { t } = useTranslation('myAccount');\n const [isVisible, setIsVisible] = useState(false);\n const [displayUp, setDisplayUp] = useState(false);\n\n function handleOnClickOption(option) {\n setIsVisible(false);\n option.onClick(option);\n }\n\n function handleOnClick(event) {\n setIsVisible((prevState) => !prevState);\n event.stopPropagation();\n }\n\n return (\n <>\n <button\n className=\"Reimbursement-edit-button\"\n id={`editReimbursement${itemId}`}\n onClick={handleOnClick}\n type=\"button\"\n >\n <span>{t('reimbursementSection.editOptions.title')}</span>\n </button>\n\n <div\n ref={(menuRef) => {\n if (isVisible && menuRef) {\n const bottomPosition = menuRef.getBoundingClientRect().bottom;\n\n if (window.innerHeight - bottomPosition < 0) {\n setDisplayUp(true);\n }\n }\n }}\n className={`Reimbursement-edit-menu-container \n ${isVisible ? '' : 'Reimbursement-edit-menu-container-hidden'}\n ${displayUp ? 'Reimbursement-edit-menu-display-upwards' : ''}`}\n >\n <OverlayContainer\n className=\"Reimbursement-edit-menu-overlay-container\"\n id={`editReimMenuOverlay${itemId}`}\n onClick={handleOnClick}\n >\n <ul>\n {options.map((option) => (\n <ReimbursementEditOption\n key={`${option.id}-${itemId}`}\n handleOnClickOption={handleOnClickOption}\n itemId={itemId}\n option={option}\n />\n ))}\n </ul>\n </OverlayContainer>\n </div>\n </>\n );\n};\n\nexport { ReimbursementEditMenu };\n","export default __webpack_public_path__ + \"static/media/check-white.04fcfc76.svg\";","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport addIcon\nfrom '../../../../assets/myAccount/reimbursement/check-white.svg';\n\nimport { changeReimbursementMethodType } from '../../../../actions';\nimport {\n CHECK_REIMBURSEMENT,\n DEPOSIT_REIMBURSEMENT,\n} from '../../../../constants';\n\nimport '../css/ReimbursementEditModal.css';\n\nconst ReimbursementMethodContainer = ({\n PreferredReimbursementMethod = DEPOSIT_REIMBURSEMENT,\n}) => {\n const { t } = useTranslation('myAccount');\n const dispatch = useDispatch();\n\n const isBankAccountActive = PreferredReimbursementMethod\n === DEPOSIT_REIMBURSEMENT;\n\n const isCheckActive = PreferredReimbursementMethod\n === CHECK_REIMBURSEMENT;\n\n const bankAccountTabClassname = 'Reimbursement-edit-modal-method-left'\n + `${isBankAccountActive ? '-selected' : ''}`;\n\n const checkTabClassname = 'Reimbursement-edit-modal-method-right'\n + `${isCheckActive ? '-selected' : ''}`;\n\n function displayBankTabContent() {\n dispatch(changeReimbursementMethodType(DEPOSIT_REIMBURSEMENT));\n }\n\n function displayCheckTabContent() {\n dispatch(changeReimbursementMethodType(CHECK_REIMBURSEMENT));\n }\n\n return (\n <div className=\"Reimbursement-edit-modal-method-container\">\n <button\n className={bankAccountTabClassname}\n onClick={displayBankTabContent}\n type=\"button\"\n >\n {isBankAccountActive ? <img alt=\"\" src={addIcon} /> : null}\n\n <span>{t('reimbursementSection.editModal.directDeposit')}</span>\n </button>\n\n <button\n className={checkTabClassname}\n onClick={displayCheckTabContent}\n type=\"button\"\n >\n {isCheckActive ? <img alt=\"\" src={addIcon} /> : null}\n\n <span>{t('reimbursementSection.editModal.check')}</span>\n </button>\n </div>\n );\n};\n\nexport { ReimbursementMethodContainer };\n","import { useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\n\nimport {\n changeReimbursementAccountNumber,\n changeReimbursementAccountType,\n changeReimbursementConfirmAccountNumber,\n changeReimbursementRoutingNumber,\n changeRoutingNumberError,\n closeEditReimbursementMethodModal,\n updateReimbursementMethod,\n} from '../../../../../actions';\nimport { REIMBURSEMENT_METHODS } from '../../../../../constants';\nimport { delay } from '../../../../../services/utils';\n\nconst CHECK_REIMBURSEMENT = 1;\nconst DOWN_KEY = 40;\nconst UP_KEY = 38;\n\nconst useDirectDepositContent = ({ onCancel = () => { } }) => {\n const dispatch = useDispatch();\n const routingNumberRef = useRef(null);\n const bankAccountRef = useRef(null);\n const confirmAccountRef = useRef(null);\n const [accountNumberError, setAccountNumberError] = useState(null);\n const [\n confirmAccountNumberError,\n setConfirmAccountNumberError,\n ] = useState(null);\n const { t } = useTranslation('editReimbursementMethod');\n\n const store = useSelector(({\n billingPayments,\n personalInformation,\n }) => ({ billingPayments, personalInformation }), shallowEqual);\n const { billingPayments } = store;\n const {\n reimbursementData,\n reimbursementMethodUpdateSuccess,\n routingNumberError,\n updatingReimbursementMethod,\n } = billingPayments;\n\n function handleEditReimbursementAccept() {\n if (billingPayments.updatingReimbursementMethod) {\n return;\n }\n\n const reimbursementMethod = reimbursementData.Type === CHECK_REIMBURSEMENT\n ? { Type: CHECK_REIMBURSEMENT }\n : reimbursementData;\n\n dispatch(updateReimbursementMethod(reimbursementMethod));\n }\n\n async function handleEditReimbursementSuccess() {\n await delay(500);\n dispatch(closeEditReimbursementMethodModal());\n }\n\n const handleAccountTypeChange = (type) => () => {\n dispatch(changeReimbursementAccountType(type));\n };\n\n const handleArrowKeyPressed = () => (event) => {\n const { keyCode } = event;\n\n switch (keyCode) {\n case UP_KEY:\n case DOWN_KEY:\n event.preventDefault();\n break;\n default: break;\n }\n };\n\n // For more information about the Routing validation see:\n // http://en.wikipedia.org/wiki/Routing_transit_number\n function isRoutingNumberValid(routing) {\n if (routing.length !== 9) {\n return t('errors.mustBeANineDigitNumber');\n }\n\n const checksumTotal =\n (\n 7 * (parseInt(routing.charAt(0), 10)\n + parseInt(routing.charAt(3), 10)\n + parseInt(routing.charAt(6), 10))\n )\n + (\n 3 * (parseInt(routing.charAt(1), 10)\n + parseInt(routing.charAt(4), 10)\n + parseInt(routing.charAt(7), 10))\n )\n + (\n 9 * (parseInt(routing.charAt(2), 10)\n + parseInt(routing.charAt(5), 10)\n + parseInt(routing.charAt(8), 10))\n );\n\n const checksumMod = checksumTotal % 10;\n if (checksumTotal === 0 || checksumMod !== 0) {\n return t('errors.invalidBankRoutingNumber');\n }\n\n return '';\n }\n\n function validateNumbersOnly(input) {\n const ONLY_NUMBER_REGEX = /^\\d+$/g;\n\n if (input && input.match(ONLY_NUMBER_REGEX)) {\n return '';\n }\n\n return t('errors.mustContainNumbersOnly');\n }\n\n const isBankFormInvalid = useMemo(() => {\n if (reimbursementData.Type === REIMBURSEMENT_METHODS.check) {\n return false;\n }\n\n if (routingNumberError\n || accountNumberError\n || confirmAccountNumberError\n || !reimbursementData.AccountNumber\n || !reimbursementData.ConfirmAccountNumber\n || !reimbursementData.RoutingNumber) {\n return true;\n }\n\n return false;\n }, [\n accountNumberError,\n confirmAccountNumberError,\n reimbursementData,\n routingNumberError,\n ]);\n\n function validateRoutingNumber(routingNumber, formValidation) {\n const numberValidation = validateNumbersOnly(routingNumber);\n\n if (formValidation && !numberValidation) {\n const routingNumValidation = isRoutingNumberValid(routingNumber);\n\n if (routingNumValidation) {\n dispatch(changeRoutingNumberError(routingNumValidation));\n return;\n }\n\n dispatch(changeRoutingNumberError(null));\n return;\n }\n\n dispatch(changeRoutingNumberError(numberValidation));\n }\n\n function handleRoutingNumberChange(event) {\n const { target } = event;\n\n dispatch(changeReimbursementRoutingNumber(target.value));\n validateRoutingNumber(target.value, target.validity.valid);\n }\n\n function validateConfirmBankAccountNumber(confirmAccountNumber) {\n if (!confirmAccountNumber.length) {\n setConfirmAccountNumberError(t('errors.mustContainNumbersOnly'));\n return;\n }\n\n if (confirmAccountNumber === reimbursementData.AccountNumber) {\n setConfirmAccountNumberError(null);\n return;\n }\n\n setConfirmAccountNumberError(t('errors.confirmAccountNumberNoMatch'));\n }\n\n function validateConfirmBankAccountNumberManual(confirmAccountNumber,\n accountNumber) {\n if (confirmAccountNumber === accountNumber) {\n setConfirmAccountNumberError(null);\n return;\n }\n setConfirmAccountNumberError(t('errors.confirmAccountNumberNoMatch'));\n }\n\n function validateBankAccountNumber(accountNumber, formValidation) {\n const numberValidation = validateNumbersOnly(accountNumber);\n\n if (formValidation && !numberValidation) {\n setAccountNumberError(null);\n return;\n }\n setAccountNumberError(numberValidation);\n }\n\n function handleAccountNumberChange(event) {\n const { target } = event;\n\n dispatch(changeReimbursementAccountNumber(target.value));\n validateBankAccountNumber(target.value, target.validity.valid);\n\n if (reimbursementData.ConfirmAccountNumber) {\n validateConfirmBankAccountNumberManual(\n reimbursementData.ConfirmAccountNumber, target.value,\n );\n }\n }\n\n function handleConfirmAccountNumberChange(event) {\n const { target } = event;\n\n dispatch(changeReimbursementConfirmAccountNumber(target.value));\n validateConfirmBankAccountNumber(target.value);\n }\n\n function handleEditReimbursementCancel() {\n dispatch(changeRoutingNumberError(null));\n setAccountNumberError(null);\n setConfirmAccountNumberError(null);\n\n if (onCancel) {\n onCancel();\n }\n }\n\n return ({\n accountNumberError,\n bankAccountRef,\n confirmAccountNumberError,\n confirmAccountRef,\n handleAccountNumberChange,\n handleAccountTypeChange,\n handleArrowKeyPressed,\n handleConfirmAccountNumberChange,\n handleEditReimbursementAccept,\n handleEditReimbursementCancel,\n handleEditReimbursementSuccess,\n handleRoutingNumberChange,\n isBankFormInvalid,\n reimbursementData,\n reimbursementMethodUpdateSuccess,\n routingNumberError,\n routingNumberRef,\n updatingReimbursementMethod,\n });\n};\n\nexport { useDirectDepositContent };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ActionButton } from '../../../common/petCloud';\n\nimport '../css/ReimbursementEditModal.css';\n\nconst EditReimbursementModalButtons = ({\n handleEditReimbursementAccept = () => { },\n handleEditReimbursementCancel = () => { },\n handleEditReimbursementSuccess = () => { },\n isBankFormInvalid = false,\n reimbursementMethodUpdateSuccess = false,\n updatingReimbursementMethod = false,\n}) => {\n const { t } = useTranslation('common');\n\n return (\n <div className=\"Reimbursement-edit-modal-footer-buttons-container\">\n <ActionButton\n disabled={isBankFormInvalid}\n loading={updatingReimbursementMethod}\n onClick={handleEditReimbursementAccept}\n onSuccess={handleEditReimbursementSuccess}\n success={reimbursementMethodUpdateSuccess}\n title={t('saveButton')}\n />\n\n <ActionButton\n isSecondaryButton\n onClick={handleEditReimbursementCancel}\n title={t('cancelButton')}\n />\n </div>\n );\n};\n\nexport { EditReimbursementModalButtons };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n PetCloudInput,\n RadioInputWithLabel,\n} from '../../../common/petCloud';\nimport { EDIT_ROUTING_NUMBER_LENGTH } from '../../../../constants';\nimport { useDirectDepositContent } from './hooks/useDirectDepositContent';\n\nimport { EditReimbursementModalButtons } from './EditReimbursementModalButtons';\n\nimport '../css/DirectDepositContent.css';\n\nconst ACCOUNT_TYPES = { checking: 1, savings: 2 };\n\nconst DirectDepositContent = ({\n onCancel = () => { },\n}) => {\n const { t } = useTranslation('myAccount');\n const {\n accountNumberError,\n bankAccountRef,\n confirmAccountNumberError,\n confirmAccountRef,\n handleAccountNumberChange,\n handleAccountTypeChange,\n handleArrowKeyPressed,\n handleConfirmAccountNumberChange,\n handleEditReimbursementAccept,\n handleEditReimbursementCancel,\n handleEditReimbursementSuccess,\n handleRoutingNumberChange,\n isBankFormInvalid,\n reimbursementData,\n reimbursementMethodUpdateSuccess,\n routingNumberError,\n routingNumberRef,\n updatingReimbursementMethod,\n } = useDirectDepositContent({ onCancel });\n\n return (\n <form\n className=\"Direct-deposit-content-container\"\n onSubmit={handleEditReimbursementAccept}\n >\n <h6>{t('reimbursementSection.editModal.accountType')}</h6>\n\n <div className=\"Direct-deposit-radio-buttons-container\">\n <RadioInputWithLabel\n id={`radio-${t('reimbursementSection.editModal.checking')}`}\n isChecked={reimbursementData.AccountType === ACCOUNT_TYPES.checking}\n onClick={handleAccountTypeChange(ACCOUNT_TYPES.checking)}\n title={t('reimbursementSection.editModal.checking')}\n />\n\n <RadioInputWithLabel\n id={`radio-${t('reimbursementSection.editModal.savings')}`}\n isChecked={reimbursementData.AccountType === ACCOUNT_TYPES.savings}\n onClick={handleAccountTypeChange(ACCOUNT_TYPES.savings)}\n title={t('reimbursementSection.editModal.savings')}\n />\n </div>\n\n <div className=\"Direct-deposit-input-margin\">\n <PetCloudInput\n ariaProps={{\n 'aria-label': t('reimbursementSection.editModal.routingNumber'),\n }}\n error={routingNumberError}\n id=\"bankRoutingNumber\"\n inputRef={routingNumberRef}\n maxLength={EDIT_ROUTING_NUMBER_LENGTH}\n onBlur={handleRoutingNumberChange}\n onChange={handleRoutingNumberChange}\n onKeyDown={handleArrowKeyPressed()}\n pattern=\"[0-9]*\"\n placeholder={t('reimbursementSection.editModal.routingNumber')}\n title={t('reimbursementSection.editModal.routingNumber')}\n type=\"number\"\n value={reimbursementData.RoutingNumber}\n />\n </div>\n\n <div className=\"Direct-deposit-input-margin\">\n <PetCloudInput\n ariaProps={{\n 'aria-label': t('reimbursementSection.editModal.accountNumber'),\n }}\n error={accountNumberError}\n id=\"bankAccountNumber\"\n inputRef={bankAccountRef}\n onBlur={handleAccountNumberChange}\n onChange={handleAccountNumberChange}\n onKeyDown={handleArrowKeyPressed()}\n pattern=\"[0-9]*\"\n placeholder={t('reimbursementSection.editModal.accountNumber')}\n title={t('reimbursementSection.editModal.accountNumber')}\n type=\"number\"\n value={reimbursementData.AccountNumber}\n />\n </div>\n\n <div className=\"Direct-deposit-input-margin-last\">\n <PetCloudInput\n ariaProps={{\n 'aria-label':\n t('reimbursementSection.editModal.confirmAccountNumber'),\n }}\n error={confirmAccountNumberError}\n id=\"confirmBankAccountNumber\"\n inputRef={confirmAccountRef}\n onBlur={handleConfirmAccountNumberChange}\n onChange={handleConfirmAccountNumberChange}\n onKeyDown={handleArrowKeyPressed()}\n pattern=\"[0-9]*\"\n placeholder={t('reimbursementSection.editModal.confirmAccountNumber')}\n title={t('reimbursementSection.editModal.confirmAccountNumber')}\n type=\"number\"\n value={reimbursementData.ConfirmAccountNumber}\n />\n </div>\n\n <EditReimbursementModalButtons\n handleEditReimbursementAccept={handleEditReimbursementAccept}\n handleEditReimbursementCancel={handleEditReimbursementCancel}\n handleEditReimbursementSuccess={handleEditReimbursementSuccess}\n isBankFormInvalid={isBankFormInvalid}\n reimbursementMethodUpdateSuccess={reimbursementMethodUpdateSuccess}\n updatingReimbursementMethod={updatingReimbursementMethod}\n />\n </form>\n );\n};\n\nexport { DirectDepositContent };\n","/* eslint-disable max-len */\nimport React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport { EditReimbursementModalButtons } from './EditReimbursementModalButtons';\n\nimport { useDirectDepositContent } from './hooks/useDirectDepositContent';\n\nimport '../css/CheckContent.css';\n\nconst CheckContent = ({ onCancel = () => { } }) => {\n const { t } = useTranslation('myAccount');\n const store = useSelector(({ personalInformation }) => ({\n personalInformation,\n }), shallowEqual);\n const { personalInformation: { userInfo } } = store;\n const {\n handleEditReimbursementAccept,\n handleEditReimbursementCancel,\n handleEditReimbursementSuccess,\n reimbursementMethodUpdateSuccess,\n updatingReimbursementMethod,\n } = useDirectDepositContent({ onCancel });\n\n const addressValue = useMemo(() => `${userInfo.Address.Line1} ${userInfo.Address.Line2 ? `,${userInfo.Address.Line2}` : ''}\n ${userInfo.Address.City}, ${userInfo.Address.StateId} ${userInfo.Address.ZipCode}`,\n [userInfo.Address]);\n\n return (\n <div>\n <h6 className=\"Check-content-title\">\n {t('reimbursementSection.editModal.addressOnFile')}\n </h6>\n\n <p className=\"Check-content-address\">{addressValue}</p>\n\n <p className=\"Check-content-footer-text\">\n {t('reimbursementSection.editModal.appliedToAllPolicies')}\n </p>\n\n <EditReimbursementModalButtons\n handleEditReimbursementAccept={handleEditReimbursementAccept}\n handleEditReimbursementCancel={handleEditReimbursementCancel}\n handleEditReimbursementSuccess={handleEditReimbursementSuccess}\n reimbursementMethodUpdateSuccess={reimbursementMethodUpdateSuccess}\n updatingReimbursementMethod={updatingReimbursementMethod}\n />\n </div>\n );\n};\n\nexport { CheckContent };\n","import React from 'react';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport ModalContainer from '../../../common/ModalContainer';\n\nimport { ReimbursementMethodContainer } from './ReimbursementMethodContainer';\nimport { DirectDepositContent } from './DirectDepositContent';\nimport { CheckContent } from './CheckContent';\n\nimport closeIcon from '../../../../assets/close-button.svg';\nimport { DEPOSIT_REIMBURSEMENT } from '../../../../constants';\n\nimport '../css/ReimbursementEditModal.css';\n\nconst ReimbursementEditModal = ({\n isVisible = false,\n onCancel = () => { },\n}) => {\n const { t } = useTranslation('myAccount');\n const store = useSelector(({ billingPayments, policies }) => ({\n billingPayments,\n policies,\n }), shallowEqual);\n const {\n billingPayments: {\n reimbursementData: { PreferredReimbursementMethod },\n },\n } = store;\n\n if (!isVisible) {\n return null;\n }\n\n return (\n <ModalContainer show>\n <div className=\"Reimbursement-edit-modal-container \">\n <div className=\"Reimbursement-edit-modal-title-container\">\n <h3>{t('reimbursementSection.editModal.title')}</h3>\n\n <button\n className=\"Reimbursement-edit-modal-close-icon-container\"\n id=\"closeIconEditReimbursementModal\"\n onClick={onCancel}\n type=\"button\"\n >\n <img\n alt=\"Close\"\n src={closeIcon}\n />\n </button>\n </div>\n\n <p className=\"Reimbursement-edit-modal-description\">\n {t('reimbursementSection.editModal.description')}\n </p>\n\n <ReimbursementMethodContainer\n PreferredReimbursementMethod={PreferredReimbursementMethod}\n />\n\n {PreferredReimbursementMethod === DEPOSIT_REIMBURSEMENT\n ? <DirectDepositContent onCancel={onCancel} />\n : <CheckContent onCancel={onCancel} />}\n </div>\n </ModalContainer>\n );\n};\n\nexport { ReimbursementEditModal };\n","import React, { useMemo } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport checkIcon\nfrom '../../../assets/myAccount/reimbursement/check-payment-logo.svg';\nimport savingBankLogo\nfrom '../../../assets/myAccount/reimbursement/saving-bank-logo.svg';\nimport addIcon from '../../../assets/myPets/add-icon-blue.svg';\nimport editIcon from '../../../assets/myAccount/reimbursement/edit-pencil.svg';\n\nimport {\n closeEditReimbursementMethodModal,\n openEditReimbursementMethodModal,\n} from '../../../actions';\n\nimport { ReimbursementEditMenu } from './editOptions/ReimbursementEditMenu';\nimport { ReimbursementEditModal } from './editModal/ReimbursementEditModal';\n\nimport { REIMBURSEMENT_METHODS } from '../../../constants';\n\nimport './css/ReimbursementMethodSection.css';\n\nconst ReimbursementMethodSection = ({ reimbursementOption }) => {\n const { t } = useTranslation('myAccount');\n const dispatch = useDispatch();\n const store = useSelector(({ billingPayments, policies }) => ({\n billingPayments,\n policies,\n }), shallowEqual);\n const {\n billingPayments: {\n editReimbursementMethodModalVisible,\n loadingReimbursementMethod,\n },\n } = store;\n\n const isCheck = reimbursementOption.PreferredReimbursementMethod\n === REIMBURSEMENT_METHODS.check;\n\n function handleEditReimbursementCancel() {\n dispatch(closeEditReimbursementMethodModal());\n }\n\n function handleEditReimbursementClick() {\n dispatch(openEditReimbursementMethodModal(2));\n }\n\n const menuOptions = useMemo(() => {\n const permissions = [];\n\n permissions.push({\n icon: editIcon,\n id: 0,\n isReadOnlyVisible: false,\n onClick: handleEditReimbursementClick,\n text: t('reimbursementSection.editOptions.editAccountDetails'),\n });\n\n return permissions;\n }, []);\n\n function renderReimbursementCard() {\n if (reimbursementOption.PreferredReimbursementMethod\n === REIMBURSEMENT_METHODS.none || loadingReimbursementMethod) {\n return null;\n }\n\n return (\n <div className=\"Reimbursement-method-section-card-container\">\n <div className=\"Reimbursement-method-card-left-content\">\n <img alt=\"\" src={isCheck ? checkIcon : savingBankLogo} />\n\n <p>\n {isCheck ? t('reimbursementSection.checkMethod', {\n addressLine1: reimbursementOption.Details.AddressLine1,\n addressLine2: reimbursementOption.Details.AddressLine2,\n stateId: reimbursementOption.Details.State,\n zipCode: reimbursementOption.Details.Zipcode,\n }) : t('reimbursementSection.bankAccount', {\n accountNumberLastFour:\n reimbursementOption.AccountNumberLastFour,\n })}\n </p>\n </div>\n\n <ReimbursementEditMenu options={menuOptions} />\n </div>\n );\n }\n\n return (\n <div className=\"Reimbursement-method-section-container\">\n <h1>{t('reimbursementSection.reimbursementMethod')}</h1>\n\n <p>{t('reimbursementSection.reimbursmentDescription')}</p>\n\n {renderReimbursementCard()}\n\n {reimbursementOption.PreferredReimbursementMethod\n === REIMBURSEMENT_METHODS.none && (\n <button\n className=\"Reimbursement-method-add-button\"\n onClick={handleEditReimbursementClick}\n type=\"button\"\n >\n <img alt=\"\" src={addIcon} />\n\n <span>{t('reimbursementSection.addReimbursementMethod')}</span>\n </button>\n )}\n\n <ReimbursementEditModal\n isVisible={editReimbursementMethodModalVisible}\n onCancel={handleEditReimbursementCancel}\n />\n </div>\n );\n};\n\nexport { ReimbursementMethodSection };\n","import './ReimbursementDetailsFrame.css';\nimport React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { WEB_VIEW_TYPES } from '../../../../constants';\nimport { useWebviewMultibrand } from '../../../../hooks';\n\nexport const ReimbursementDetailsFrame = ({\n petId = '',\n policy = {},\n}) => {\n const { t } = useTranslation('myAccount');\n\n const {\n getWebView,\n isLoading,\n title,\n url,\n } = useWebviewMultibrand();\n const { marketingChannelId, policyId, policyNumber } = policy;\n\n useEffect(() => {\n const params = {\n companyId: marketingChannelId,\n petId,\n policyId,\n policyNumber,\n webViewType: WEB_VIEW_TYPES.reimbursementMethod,\n };\n\n if (getWebView) {\n getWebView(params);\n }\n }, [\n getWebView,\n marketingChannelId,\n petId,\n policyId,\n policyNumber,\n ]);\n\n return (\n <div\n className={`Reimbursement-details__container \n Colors-${marketingChannelId}`}\n >\n <div className=\"Reimbursement-details__page-title\">\n <h1>{t('reimbursementSection.policyDetails')}</h1>\n </div>\n\n <div className=\"Reimbursement-details__iframe\">\n {!isLoading && (\n <iframe\n allowFullScreen\n src={url}\n title={title}\n />\n )}\n </div>\n </div>\n );\n};\n","import React, { useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\n\nimport { getThemeLogoById } from '../../../../theme/theme.utils';\n\nimport { ReimbursementDetailsFrame } from '../reimbursementDetails';\nimport { MARKETING_CHANNEL_ID } from '../../../../theme/theme.constants';\n\nimport '../css/ReimbursementMultibrandList.css';\nimport { EmptyScreen } from '../../../common/petCloud/EmptyScreen';\n\nconst ReimbursementMultibrandList = ({\n allBrandsData = [],\n onClickCard = () => { },\n}) => {\n const { t } = useTranslation('myAccount');\n const [selectedPolicy, setSelectedPolicy] = useState({});\n const [petId, setPetId] = useState('');\n const [openReimbursementFrame, setOpenReimbursementFrame] = useState(false);\n\n function formatDate(date) {\n return !date ? '-' : moment(date.split('T')[0]).format('MM/DD/YYYY');\n }\n\n const policiesToShow = useMemo(() => allBrandsData\n .filter((policy) => policy.MarketingChannelId !== 0\n && policy.MarketingChannelId !== MARKETING_CHANNEL_ID.ppiOnePack),\n [allBrandsData]);\n\n function renderList() {\n if (!allBrandsData.length || !policiesToShow.length) {\n return (\n <EmptyScreen\n description={t('reimbursementSection.emptyScreen.description')}\n title={t('reimbursementSection.emptyScreen.title')}\n />\n );\n }\n\n return (\n <div className=\"Reimbursement-multibrand-cards-container\">\n <p>{t('reimbursementSection.selectPolicy')}</p>\n\n {policiesToShow.map((policy) => {\n const startDate = formatDate(policy.PolicyStartDate);\n const endDate = formatDate(policy.PolicyEndDate);\n\n const handleOnClickCard = () => {\n if (policy.MarketingChannelId !== MARKETING_CHANNEL_ID.figo) {\n setPetId(policy.Pets[0].PetId);\n setSelectedPolicy({\n marketingChannelId: policy.MarketingChannelId,\n policyId: policy.PolicyId,\n policyNumber: policy.PolicyNumber,\n });\n setOpenReimbursementFrame(true);\n return;\n }\n onClickCard({\n policyInfo: {\n PolicyTerm: `${startDate} - ${endDate}`,\n ...policy,\n },\n policyNumber: policy.PolicyNumber,\n });\n };\n\n return (\n <div\n key={String(policy.PolicyId)}\n className=\"Reimbursement-multibrand-card\"\n >\n <div className=\"Reimbursement-multibrand-left-content\">\n <img\n alt=\"\"\n src={getThemeLogoById(policy.MarketingChannelId).dark}\n />\n\n <div className=\"Reimbursement-multibrand-card-info-wrapper\">\n <div className=\"Reimbursement-multibrand-card-info-container\">\n <span className=\"Reimbursement-multibrand-card-info-title\">\n {t('reimbursementSection.policyNumber')}\n </span>\n\n <span className=\"Reimbursement-multibrand-card-info-value\">\n {policy.PolicyNumber}\n </span>\n </div>\n\n <div className=\"Reimbursement-multibrand-card-info-container\">\n <span className=\"Reimbursement-multibrand-card-info-title\">\n {t('reimbursementSection.policyTerm')}\n </span>\n\n <span className=\"Reimbursement-multibrand-card-info-value\">\n {`${startDate} - ${endDate}`}\n </span>\n </div>\n\n <div className=\"Reimbursement-multibrand-card-info-container\">\n <span className=\"Reimbursement-multibrand-card-info-title\">\n {t('reimbursementSection.petsOnThisPolicy')}\n </span>\n\n <span className=\"Reimbursement-multibrand-card-info-value\">\n {policy.Pets.map((pet) => pet.PetName).join(', ')}\n </span>\n </div>\n </div>\n </div>\n\n <button\n className=\"Reimbursement-multibrand-card-details-button\"\n onClick={handleOnClickCard}\n type=\"button\"\n >\n <span>{t('reimbursementSection.viewDetails')}</span>\n </button>\n </div>\n );\n })}\n </div>\n );\n }\n\n if (openReimbursementFrame) {\n return (\n <ReimbursementDetailsFrame\n petId={petId}\n policy={selectedPolicy}\n />\n );\n }\n\n return (\n <div className=\"Reimbursement-multibrand-screen-container\">\n <h1>{t('reimbursementCard.title')}</h1>\n\n {renderList()}\n </div>\n );\n};\n\nexport { ReimbursementMultibrandList };\n","import React from 'react';\nimport { useReimbursementScreen } from './hooks/useReimbursementScreen';\n\nimport { ReimbursementPolicyDetails } from './ReimbursementPolicyDetails';\nimport { ReimbursementMethodSection } from './ReimbursementMethodSection';\nimport { ReimbursementMultibrandList }\nfrom './multibrandList/ReimbursementMultibrandList';\n\nimport FigoLottie from '../../common/FigoLottie';\nimport loadingSpinner from '../../../assets/lottieFiles/loading-blue.json';\n\nimport { MY_ACCOUNT } from '../../../constants';\n\nimport './css/ReimbursementScreen.css';\nimport { MARKETING_CHANNEL_ID } from '../../../theme/theme.constants';\nimport { ReimbursementDetailsFrame } from './reimbursementDetails';\n\nconst ReimbursementScreen = ({ breadCrumbs, currentFolderId }) => {\n const {\n allBrandsData,\n loadingAllBrandsData,\n onClickReimbursementCard,\n reimbursementOption,\n } = useReimbursementScreen({ breadCrumbs });\n const isReimDetails = currentFolderId === MY_ACCOUNT.reimbursementDetails;\n const currentPolicy = breadCrumbs.navData.find((data) => data.id\n === currentFolderId).extraData.policyInfo;\n\n if (loadingAllBrandsData) {\n return (\n <div className=\"Reimbursement-screen-shimmer-container\">\n <FigoLottie\n animationData={loadingSpinner}\n height={50}\n width={50}\n />\n </div>\n );\n }\n\n function renderContent() {\n if (isReimDetails) {\n if (currentPolicy?.MarketingChannelId\n && currentPolicy.MarketingChannelId\n !== MARKETING_CHANNEL_ID.figo) {\n return (\n <ReimbursementDetailsFrame\n petId={currentPolicy?.policyInfo?.Pets?.[0]?.PetId}\n policy={{\n marketingChannelId: currentPolicy?.PolicyData?.MarketChannelId,\n policyId: currentPolicy?.PolicyData?.Id,\n policyNumber: currentPolicy?.PolicyData?.PolicyDisplayNumber,\n }}\n />\n );\n }\n\n return (\n <div className=\"Reimbursement-screen-container\">\n <ReimbursementPolicyDetails\n policyNumber={currentPolicy.PolicyNumber}\n policyPets={currentPolicy.Pets.map((pet) => pet.PetName).join(', ')}\n policyStatus={currentPolicy.PolicyStatus}\n policyTerm={currentPolicy.PolicyTerm}\n />\n\n <ReimbursementMethodSection\n reimbursementOption={reimbursementOption}\n />\n </div>\n );\n }\n\n return (\n <ReimbursementMultibrandList\n allBrandsData={allBrandsData}\n onClickCard={onClickReimbursementCard}\n />\n );\n }\n\n return renderContent();\n};\n\nexport { ReimbursementScreen };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport figoLogo from '../../../assets/figo-logo.svg';\n\nimport { CoveragePolicyStatus }\nfrom '../../insurance/coverageOverview/CoveragePolicyStatus';\n\nimport './css/PaymentHistoryScreen.css';\n\nconst PaymentHistoryPolicyCard = ({\n expirationDate = '',\n onClick = () => { },\n policyNumber = '',\n startDate = '',\n status = '',\n}) => {\n const { t } = useTranslation('insuranceScreen');\n\n return (\n <button\n className=\"Payment-history-screen-policy-card\"\n onClick={onClick}\n type=\"button\"\n >\n <div className=\"Flex-row\">\n <img\n alt=\"\"\n className=\"Payment-history-screen-policy-card-logo\"\n src={figoLogo}\n />\n\n <div className=\"Payment-history-screen-policy-info-container\">\n <div className=\"Payment-history-screen-policy-info-details\">\n <span className=\"Payment-history-screen-title\">\n {t('policyNumberTitle')}\n </span>\n\n <span className=\"Payment-history-screen-value\">{policyNumber}</span>\n </div>\n\n <div className=\"Payment-history-screen-policy-info-details\">\n <span className=\"Payment-history-screen-title\">\n {t('policyTerm')}\n </span>\n\n <span className=\"Payment-history-screen-value\">\n {`${startDate} - ${expirationDate}`}\n </span>\n </div>\n </div>\n </div>\n\n <CoveragePolicyStatus\n label={t(`policyStatus-${status}`)}\n status={status}\n />\n </button>\n );\n};\n\nexport { PaymentHistoryPolicyCard };\n","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\n\nimport { loadPolicyDetails } from '../../../actions';\n\nimport Shimmer from '../../common/Shimmer';\n\nimport { PaymentHistoryPolicyCard } from './PaymentHistoryPolicyCard';\n\nimport { getDateBasicFormat } from '../../../services/utils';\n\nimport { MY_ACCOUNT } from '../../../constants';\n\nimport './css/PaymentHistoryScreen.css';\n\nconst PaymentHistoryPolicies = ({\n breadCrumbs,\n loading = true,\n policies = [],\n}) => {\n const { t } = useTranslation('myAccount');\n const dispatch = useDispatch();\n\n function formatDate(date) {\n if (!date) {\n return t('na');\n }\n\n return getDateBasicFormat(date.split('T')[0]);\n }\n\n const onClickCard = useCallback((policyNumber) => () => {\n if (breadCrumbs) {\n breadCrumbs.onAddBreadcrumbItem({\n id: MY_ACCOUNT.paymentHistoryList,\n name: t('breadCrumbs.breadCrumbPolicy', {\n policyNumber,\n }),\n });\n }\n\n dispatch(loadPolicyDetails(policyNumber));\n }, [breadCrumbs]);\n\n return (\n <div className=\"Payment-history-screen-policies-container\">\n <h2>{t('paymentHistorySection.insurancePolicies')}</h2>\n\n <div className=\"Payment-history-screen-policies-card-container\">\n <Shimmer\n element=\"fragment\"\n height={56}\n visible={loading || policies.length === 0}\n width={940}\n >\n {policies.map(({\n CoverageStartDate,\n ExpirationDate,\n Number,\n Status,\n }) => (\n <PaymentHistoryPolicyCard\n key={String(Number)}\n expirationDate={formatDate(ExpirationDate)}\n onClick={onClickCard(Number)}\n policyNumber={Number}\n startDate={formatDate(CoverageStartDate)}\n status={Status}\n />\n ))}\n </Shimmer>\n </div>\n </div>\n );\n};\n\nexport { PaymentHistoryPolicies };\n","export default __webpack_public_path__ + \"static/media/arrow-chevron-down.69d3655e.svg\";","import React from 'react';\n\nimport '../css/PaymentHistoryDetailsRow.css';\n\nconst PaymentHistoryDetailsRow = ({\n amountValue = '',\n detailsValue = [],\n totalTitle = '',\n}) => {\n function renderTotalRow() {\n return (\n <tr className=\"Payment-history-details-row-total\">\n <td className=\"Payment-history-details-total-value\">\n <span>{totalTitle}</span>\n\n <span>{amountValue}</span>\n </td>\n </tr>\n );\n }\n\n return (\n <>\n {detailsValue.map((detail, row) => (\n <tr key={String(row)} className=\"Payment-history-details-row\">\n <td className=\"Payment-history-details-value\">\n <span>{detail.Description}</span>\n\n <span>${detail.Amount.toFixed(2)}</span>\n </td>\n </tr>\n ))}\n\n {renderTotalRow()}\n </>\n );\n};\n\nexport { PaymentHistoryDetailsRow };\n","import React from 'react';\n\nimport { doNothing } from '../../../../services/utils';\n\nimport '../css/PaymentHistoryList.css';\n\nconst PaymentHistoryPageButton = ({\n handlePageButtonClick = () => { },\n index = '',\n isActive = false,\n pageNumber = '',\n}) => {\n function handleOnClick() {\n if (isActive) {\n doNothing();\n }\n\n handlePageButtonClick({ pageIndex: index });\n }\n\n return (\n <button\n className={`Payment-history-list-page-button${isActive\n ? '-active' : ''}`}\n onClick={handleOnClick}\n type=\"button\"\n >\n <span>{pageNumber}</span>\n </button>\n );\n};\n\nexport { PaymentHistoryPageButton };\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport arrowIcon from '../../../../assets/myAccount/arrow-chevron-down.svg';\n\nimport { PaymentHistoryDetailsRow } from './PaymentHistoryDetailsRow';\n\nimport { PaymentHistoryPageButton } from './PaymentHistoryPageButton';\n\nimport '../css/PaymentHistoryList.css';\n\nconst PaymentHistoryRow = ({\n amountValue = '',\n dateValue = '',\n descriptionValue = '',\n detailsValue = [],\n handleDetailsClick = () => { },\n handlePageButtonClick = () => { },\n isFooter = false,\n isHeader = false,\n loadingContent = true,\n methodValue = '',\n paymentHistoryCurrentItems = 0,\n paymentHistoryCurrentPage = 1,\n paymentHistoryTotalItems = 0,\n paymentHistoryTotalPages = 1,\n showDetails = false,\n}) => {\n const { t } = useTranslation('myAccount');\n\n const totalPages = useMemo(() => Array.from({\n length: paymentHistoryTotalPages,\n }, (_, index) => ({\n index,\n pageNumber: index + 1,\n })), [paymentHistoryTotalPages]);\n\n function renderDetailsButton() {\n return (\n <button\n className=\"Payment-history-list-button\"\n onClick={handleDetailsClick}\n type=\"button\"\n >\n <span>{showDetails ? t('paymentHistorySection.hideDetails')\n : t('paymentHistorySection.viewDetails')}\n </span>\n\n <img\n alt=\"\"\n className={`Payment-history-list-arrow${showDetails ? '-up' : ''}`}\n src={arrowIcon}\n />\n </button>\n );\n }\n\n if (isHeader) {\n return (\n <thead>\n <tr className=\"Payment-history-list-header\">\n <th>{t('paymentHistorySection.dateTitle')}</th>\n\n <th>{t('paymentHistorySection.descriptionTitle')}</th>\n\n <th>{t('paymentHistorySection.methodTitle')}</th>\n\n <th>{t('paymentHistorySection.amountTitle')}</th>\n\n <th>{t('paymentHistorySection.detailsTitle')}</th>\n </tr>\n </thead>\n );\n }\n\n function renderPagination() {\n return totalPages.map(({ index, pageNumber }) => (\n <PaymentHistoryPageButton\n key={String(index)}\n handlePageButtonClick={handlePageButtonClick}\n index={index}\n isActive={paymentHistoryCurrentPage === pageNumber}\n pageNumber={pageNumber}\n />\n ));\n }\n\n if (isFooter) {\n const ITEMS_PER_PAGE = 10;\n const PREV_PAGE = paymentHistoryCurrentPage - 1;\n let baseTotalItems = 1;\n let totalItems = paymentHistoryCurrentItems;\n\n if (loadingContent) {\n return '';\n }\n\n if (paymentHistoryCurrentPage > 1) {\n baseTotalItems = (PREV_PAGE * ITEMS_PER_PAGE) + 1;\n totalItems = (PREV_PAGE * ITEMS_PER_PAGE) + paymentHistoryCurrentItems;\n\n if (paymentHistoryCurrentPage === paymentHistoryTotalPages) {\n totalItems = paymentHistoryTotalItems;\n }\n }\n\n return (\n <tr className=\"Payment-history-list-footer\">\n <td>\n <span className=\"Payment-history-list-footer-text\">\n {t('paymentHistorySection.showingItems', {\n baseItems: baseTotalItems,\n count: paymentHistoryTotalItems,\n currentItems: totalItems,\n totalItems: paymentHistoryTotalItems,\n })}\n </span>\n </td>\n\n <td className=\"Payment-history-list-footer-pag-container\">\n {renderPagination()}\n </td>\n </tr>\n );\n }\n\n return (\n <>\n <tr className={`Payment-history-list-row${showDetails\n ? '-details' : ''}`}\n >\n <td>{dateValue}</td>\n\n <td>{descriptionValue}</td>\n\n <td>{methodValue}</td>\n\n <td>{amountValue}</td>\n\n <td>{renderDetailsButton()}</td>\n </tr>\n\n {showDetails && (\n <PaymentHistoryDetailsRow\n amountValue={amountValue}\n detailsValue={detailsValue}\n totalTitle={t('paymentHistorySection.total')}\n />\n )}\n </>\n );\n};\n\nexport { PaymentHistoryRow };\n","import React, { useState } from 'react';\n\nimport { usePaymentHistory } from '../hooks/usePaymentHistory';\n\nimport { currencyFormat, getDateBasicFormat } from '../../../../services/utils';\n\nimport { PaymentHistoryRow } from './PaymentHistoryRow';\n\nimport FigoLottie from '../../../common/FigoLottie';\nimport loadingSpinner from '../../../../assets/lottieFiles/loading-blue.json';\n\nimport '../css/PaymentHistoryList.css';\n\nconst PaymentHistoryList = () => {\n const {\n handlePageButtonClick,\n loadingContent,\n paymentHistory,\n paymentHistoryCurrentPage,\n paymentHistoryTotalItems,\n paymentHistoryTotalPages,\n } = usePaymentHistory();\n const [showDetails, setShowDetails] = useState(false);\n const [currentRow, setCurrentRow] = useState(0);\n\n const handleDetailsClick = (row) => () => {\n if (row === currentRow) {\n setShowDetails((prevState) => !prevState);\n } else {\n setShowDetails(true);\n setCurrentRow(row);\n }\n };\n\n if (!loadingContent && !paymentHistory.length) {\n return null;\n }\n\n function renderRows() {\n if (loadingContent) {\n return (\n <div className=\"Payment-history-list-loading-container\">\n <FigoLottie\n animationData={loadingSpinner}\n height={50}\n width={50}\n />\n </div>\n );\n }\n\n return (paymentHistory.map(({\n Amount,\n BillingDate,\n Description,\n PaymentDetails,\n Type,\n }, row) => (\n <PaymentHistoryRow\n key={String(row)}\n amountValue={currencyFormat({ value: Amount })}\n dateValue={getDateBasicFormat(BillingDate.split('T')[0])}\n descriptionValue={Description}\n detailsValue={PaymentDetails}\n handleDetailsClick={handleDetailsClick(row)}\n methodValue={Type}\n showDetails={currentRow === row && showDetails}\n />\n )));\n }\n\n return (\n <table className=\"Payment-history-list-container\">\n <PaymentHistoryRow isHeader />\n\n <tbody>\n {renderRows()}\n </tbody>\n\n <tfoot>\n <PaymentHistoryRow\n handlePageButtonClick={handlePageButtonClick}\n isFooter\n loadingContent={loadingContent}\n paymentHistoryCurrentItems={paymentHistory.length}\n paymentHistoryCurrentPage={paymentHistoryCurrentPage}\n paymentHistoryTotalItems={paymentHistoryTotalItems}\n paymentHistoryTotalPages={paymentHistoryTotalPages}\n />\n </tfoot>\n </table>\n );\n};\n\nexport { PaymentHistoryList };\n","import { useMemo } from 'react';\nimport { useSelector, shallowEqual, useDispatch } from 'react-redux';\nimport { loadPaymentHistory } from '../../../../actions';\n\nconst usePaymentHistory = () => {\n const dispatch = useDispatch();\n const store = useSelector(({\n billingPayments,\n }) => billingPayments, shallowEqual);\n const {\n loadingPaymentHistory,\n paymentHistory,\n paymentHistoryCurrentPage,\n paymentHistoryPolicyNumber,\n paymentHistoryTotalItems,\n paymentHistoryTotalPages,\n policyDetails,\n } = store;\n\n const loadingContent = useMemo(() => loadingPaymentHistory\n || (loadingPaymentHistory && !paymentHistory.length),\n [loadingPaymentHistory, paymentHistory]);\n\n function handlePageButtonClick({ pageIndex }) {\n dispatch(loadPaymentHistory({\n itemsOfFirstPage: 10,\n itemsPerPage: 10,\n pageIndex,\n policyId: policyDetails?.PolicyId,\n }));\n }\n\n return {\n handlePageButtonClick,\n loadingContent,\n paymentHistory,\n paymentHistoryCurrentPage: paymentHistoryCurrentPage + 1,\n paymentHistoryPolicyNumber,\n paymentHistoryTotalItems,\n paymentHistoryTotalPages,\n };\n};\n\nexport { usePaymentHistory };\n","import React, { useEffect, useMemo } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport { PaymentHistoryPolicies } from './PaymentHistoryPolicies';\nimport { PaymentHistoryList } from './PaymentHistoryList/PaymentHistoryList';\nimport { EmptyScreen } from '../../common/petCloud/EmptyScreen';\n\nimport { MY_ACCOUNT } from '../../../constants';\n\nimport { loadPolicyDetails } from '../../../actions';\n\nimport './css/PaymentHistoryScreen.css';\n\nconst PaymentHistoryScreen = ({ breadCrumbs, currentFolderId }) => {\n const dispatch = useDispatch();\n const { t } = useTranslation('myAccount');\n const {\n policies: {\n data,\n loading,\n },\n } = useSelector(({ policies }) => ({ policies }), shallowEqual);\n const isPaymentList = currentFolderId === MY_ACCOUNT.paymentHistoryList;\n\n useEffect(() => {\n if (data.length === 1) {\n dispatch(loadPolicyDetails(data[0].Policy.Number));\n }\n }, [data]);\n\n const policyInfo = useMemo(() => {\n if (data.length && !isPaymentList) {\n return data.map((item) => item.Policy);\n }\n\n return [];\n }, [data, isPaymentList]);\n\n function renderContent() {\n if (!data.length && !loading) {\n return (\n <EmptyScreen\n description={t('paymentHistorySection.emptyScreenDescription')}\n title={t('paymentHistorySection.emptyScreenTitle')}\n />\n );\n }\n\n return (\n <>\n <p className=\"Payment-history-screen-description\">\n {isPaymentList\n ? t('paymentHistorySection.description')\n : t('paymentHistorySection.descriptionPolicies')}\n </p>\n\n {data.length > 1 && !isPaymentList ? (\n <PaymentHistoryPolicies\n breadCrumbs={breadCrumbs}\n loading={loading}\n policies={policyInfo}\n />\n ) : <PaymentHistoryList />}\n </>\n );\n }\n\n return (\n <div className=\"Payment-history-screen-container\">\n <h1 className=\"Payment-history-screen-main-title\">\n {t('paymentHistorySection.title')}\n </h1>\n\n {renderContent()}\n </div>\n );\n};\n\nexport { PaymentHistoryScreen };\n","import React, { useEffect, useMemo } from 'react';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport { useBreadcrumbNavigation } from '../../hooks/useBreadcrumbNavigation';\nimport { Breadcrumbs } from '../common/breadcrumbs/Breadcrumbs';\nimport { BillingAndPaymentsScreen }\nfrom './BillingAndPayments/BillingAndPaymentsScreen';\nimport { MyAccountScreen } from './MyAccountScreen';\nimport { PetCloudAccountScreen } from './petCloudAccount/PetCloudAccountScreen';\nimport { InsuranceAccountScreen }\nfrom './insuranceAccount/InsuranceAccountScreen';\nimport { ReimbursementScreen } from './reimbursement/ReimbursmentScreen';\n\nimport navArrowIcon from '../../assets/myAccount/nav-arrow.svg';\nimport { MY_ACCOUNT } from '../../constants';\n\nimport { PaymentHistoryScreen } from './paymentHistory/PaymentHistoryScreen';\n\nimport './css/MyAccountScreen.css';\n\nconst MyAccountNavigation = () => {\n const { t } = useTranslation('myAccount');\n const match = useRouteMatch();\n const history = useHistory();\n const locationState = history.location.state;\n\n const routeFormat = `${match.path}/:name/:id`;\n const breadCrumbs = useBreadcrumbNavigation({\n homeData: {\n id: MY_ACCOUNT.landing,\n name: t(`breadCrumbs.${MY_ACCOUNT.landing}`),\n },\n navigationParam: 'data',\n navTree: [],\n routeFormat,\n });\n\n const currentFolderId = useMemo(() => {\n if (!breadCrumbs.navData.length) {\n return MY_ACCOUNT.landing;\n }\n\n return breadCrumbs.navData[breadCrumbs.navData.length - 1].id;\n }, [breadCrumbs]);\n\n useEffect(() => {\n if (locationState) {\n breadCrumbs.onAddBreadcrumbItem({\n extraData: locationState.breadCrumbNameExtraData,\n id: locationState.breadCrumbId,\n name: locationState.breadCrumbName,\n });\n }\n }, [breadCrumbs, locationState]);\n\n function renderBreadCrumbs() {\n if (currentFolderId === MY_ACCOUNT.landing || !currentFolderId) {\n return null;\n }\n\n return (\n <Breadcrumbs\n containerClassName=\"Breadcrumbs-container\"\n customNavArrow={navArrowIcon}\n itemActiveClassName=\"Breadcrumb-item-account-active\"\n itemClassName=\"Breadcrumb-item-account\"\n labelField=\"name\"\n navData={breadCrumbs.navData}\n onNavItemClick={breadCrumbs.onBreadcrumbItemClick}\n />\n );\n }\n\n function renderMyAccountContent() {\n switch (currentFolderId) {\n case MY_ACCOUNT.landing:\n return <MyAccountScreen breadCrumbs={breadCrumbs} />;\n case MY_ACCOUNT.petCloudAccount:\n return <PetCloudAccountScreen />;\n case MY_ACCOUNT.insuranceAccount:\n case MY_ACCOUNT.update:\n return (\n <InsuranceAccountScreen\n breadCrumbs={breadCrumbs}\n currentFolderId={currentFolderId}\n />\n );\n case MY_ACCOUNT.billingAndPayments:\n case MY_ACCOUNT.billingAndPaymentDetails:\n return (\n <BillingAndPaymentsScreen\n breadCrumbs={breadCrumbs}\n currentFolderId={currentFolderId}\n />\n );\n case MY_ACCOUNT.paymentHistory:\n case MY_ACCOUNT.paymentHistoryList:\n return (\n <PaymentHistoryScreen\n breadCrumbs={breadCrumbs}\n currentFolderId={currentFolderId}\n />\n );\n case MY_ACCOUNT.reimbursement:\n case MY_ACCOUNT.reimbursementDetails:\n return (\n <ReimbursementScreen\n breadCrumbs={breadCrumbs}\n currentFolderId={currentFolderId}\n />\n );\n default:\n return <MyAccountScreen breadCrumbs={breadCrumbs} />;\n }\n }\n\n return (\n <div className=\"My-account-navigation-container\">\n {renderBreadCrumbs()}\n\n {renderMyAccountContent()}\n </div>\n );\n};\n\nexport { MyAccountNavigation };\n","export default __webpack_public_path__ + \"static/media/figo-pet-tag.91a4ba5a.svg\";","export default __webpack_public_path__ + \"static/media/insurance.445d0cfb.svg\";","export default __webpack_public_path__ + \"static/media/microchip.083ef8d7.svg\";","export default __webpack_public_path__ + \"static/media/my-vets.ed48eb50.svg\";","export default __webpack_public_path__ + \"static/media/family-picture-placeholder.415326d7.svg\";","export default __webpack_public_path__ + \"static/media/family-picture-placeholder-mobile.ed48f27a.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport familyPicturePlaceholder\nfrom '../../../assets/myPets/family-picture-placeholder.svg';\nimport familyPicturePlaceholderMobile\nfrom '../../../assets/myPets/family-picture-placeholder-mobile.svg';\nimport { UploadPhotoButton } from '../../common/UploadPhotoButton';\nimport './PetProfileFamilyPictureMyPets.css';\n\nconst MOBILE_BREAKPOINT_WIDTH = 929;\n\nconst PetProfileFamilyPictureMyPets = ({ onClick, image }) => {\n const { t } = useTranslation('myPets');\n\n const picturePlaceholder = window.innerWidth > MOBILE_BREAKPOINT_WIDTH\n ? familyPicturePlaceholder : familyPicturePlaceholderMobile;\n\n return (\n <div className={image\n ? 'My-pets-profile-family-picture-container'\n : 'My-pets-profile-family-placeholder'}\n >\n <img\n alt=\"Family\"\n className={image\n ? 'My-pets-profile-family-image'\n : 'My-pets-profile-family-image-placeholder'}\n src={image || picturePlaceholder}\n />\n\n <UploadPhotoButton\n className=\"My-pets-profile-family-upload-photo-styles\"\n iconOnly\n isProfilePicture={false}\n onClick={onClick}\n placeholder={!image}\n text={t('PetProfile.uploadPicture')}\n />\n </div>\n );\n};\n\nexport { PetProfileFamilyPictureMyPets };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { UploadPhotoButton } from '../common/UploadPhotoButton';\nimport { getNameInitials } from '../../services/utils';\nimport './PetItemCardMyPets.css';\n\nconst PetProfileImage = ({\n containerClassName,\n hideAddPhoto,\n image,\n imageClassName = 'My-pets-item-card-image-pet-list',\n initialsClassName = 'My-pets-item-card-image-initials',\n isProfile,\n onAddPhotoClick = () => {},\n onClick = () => {},\n petName,\n}) => {\n const { t } = useTranslation('myPets');\n\n const petInitials = getNameInitials(petName);\n\n return (\n <div className={containerClassName || 'Pet-profile-image-container'}>\n {image ? (\n <button\n className=\"Like-span My-pets-item-card-image-action\"\n onClick={onClick}\n type=\"button\"\n >\n\n <img\n alt=\"My-pets item\"\n className={`My-pets-item-card-image ${imageClassName}`}\n src={image}\n />\n </button>\n ) : (\n <div className={`My-pets-item-card-image ${imageClassName}`}>\n <h1 className={`${initialsClassName} No-clicked `}>{petInitials}</h1>\n\n <button\n className={`My-pets-item-card-image-button ${\n hideAddPhoto ? 'Gone' : ''\n }`}\n disabled={hideAddPhoto}\n onClick={onAddPhotoClick}\n type=\"button\"\n >\n {t('PetCard.AddPhoto')}\n </button>\n </div>\n )}\n\n {isProfile && (\n <UploadPhotoButton\n className=\"My-pets-item-card-profile-image-icon\"\n iconOnly\n isProfilePicture\n onClick={onAddPhotoClick}\n />\n )}\n </div>\n );\n};\n\nexport { PetProfileImage };\n","export default __webpack_public_path__ + \"static/media/pencil.16d140e1.svg\";","export default __webpack_public_path__ + \"static/media/quotation.97bdae59.svg\";","import React, { useState, useImperativeHandle, forwardRef } from 'react';\nimport { useSelector, shallowEqual, useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { PetProfileFamilyPictureMyPets } from './PetProfileFamilyPictureMyPets';\nimport { PetProfileImage } from '../PetProfileImage';\nimport { PET_GENDER } from '../../../constants';\nimport {\n addPetRestarted,\n editPet,\n removePetPhoto,\n} from '../../../actions/myPets';\nimport pencil from '../../../assets/myPets/pencil.svg';\nimport quotes from '../../../assets/myPets/quotation.svg';\nimport './PetProfileInfoCardMyPets.css';\nimport { refreshPets } from '../../../actions';\nimport { ImageEditorMyPets }\nfrom '../../common/imageEditorMyPets/ImageEditorMyPets';\n\nconst PetProfileInfoCardMyPets = forwardRef(({\n familyMembers,\n familyPicture,\n handleOnAddFamilyCoverClick,\n handleOnEditPetClick,\n petAge,\n petBio,\n petBirthday,\n petBreed,\n petBreedId,\n petGender,\n petId,\n petName,\n petType,\n petWeight,\n profilePicture,\n}, ref) => {\n const { t } = useTranslation('myPets');\n const dispatch = useDispatch();\n const [isUploading, setIsUploading] = useState(false);\n const store = useSelector(({\n common,\n myPets,\n }) => ({ common, myPets }), shallowEqual);\n\n function handleAddPhoto() {\n setIsUploading(true);\n }\n\n function closeAddPhoto() {\n setIsUploading(false);\n dispatch(addPetRestarted());\n }\n\n async function handleSavePhoto(newImage, fileName) {\n const petImageData = newImage.replace(/^data:(.*,)?/, '');\n\n const petProfile = {\n BreedId: petBreedId,\n Description: petBio ? petBio.replace(/[\\\\\"\\\\]/g, '') : '',\n DOB: petBirthday,\n Gender: petGender,\n Id: petId,\n Name: petName,\n PetImage: {\n ContentType: 'image/jpeg',\n Extension: 'jpg',\n FileContent: petImageData,\n FileName: fileName,\n },\n TypeId: petType,\n Weight: petWeight || '0',\n };\n dispatch(editPet(petProfile));\n }\n\n function handleSavePhotoSuccess() {\n closeAddPhoto();\n dispatch(refreshPets());\n }\n\n function handleRemovePhoto() {\n dispatch(removePetPhoto({ petProfileId: petId }));\n }\n\n useImperativeHandle(\n ref,\n () => ({\n handleAddPhoto,\n }),\n );\n\n return (\n <div className=\"My-pets-profile-info-card-content\">\n <PetProfileFamilyPictureMyPets\n image={familyPicture}\n onClick={handleOnAddFamilyCoverClick}\n />\n\n <div className=\"My-pets-profile-info-card-information Flex\">\n <div className=\"My-pets-profile-info-card-left-section\n Flex Flex-column\"\n >\n <PetProfileImage\n containerClassName={'Pet-profile-image-container '\n + 'Flex Flex-column'}\n image={profilePicture}\n imageClassName=\"My-pets-profile-info-card-image Pet-profile-image\"\n isProfile\n onAddPhotoClick={handleAddPhoto}\n petName={petName}\n petType={petType}\n />\n\n </div>\n\n <div className=\"My-pets-profile-info-card-pet-details\">\n <div className=\"My-pets-profile-info-title-button\">\n <h1>{petName}</h1>\n\n <button\n className=\"My-pets-profile-info-card-edit-button\"\n onClick={handleOnEditPetClick}\n type=\"button\"\n >\n <img\n alt=\"\"\n className=\"My-pets-profile-info-card-edit-icon\"\n src={pencil}\n />\n\n {t('PetProfile.buttonEdit')}\n </button>\n </div>\n\n <div className=\"My-pets-profile-info-card-pet-details-row\">\n <span>{petGender === PET_GENDER.MALE ? 'Male' : 'Female'}</span>\n\n <span>\n {`${petAge} yr${petAge > 1 || petAge === '-' ? 's' : ''}`}\n </span>\n\n <span>\n {`${petWeight || '-'} lb${petWeight <= 1 ? '' : 's'}`}\n </span>\n\n <span>{petBreed}</span>\n </div>\n <div className={`My-pets-profile-info-card-pet-details-bio${\n !familyMembers.length ? '-no-family-members' : ''} Flex`}\n >\n <div className=\"My-pets-profile-info-card-pet-details-bio-box\">\n <img alt=\"\" src={quotes} />\n\n <p>{petBio || t('PetProfile.defaultBio')}</p>\n </div>\n <div />\n </div>\n </div>\n </div>\n\n <ImageEditorMyPets\n error={store.myPets.error ? t('errorPhoto') : ''}\n imageHeight={230}\n imageWidth={230}\n initialPicture={profilePicture}\n isSaving={store.myPets.loading}\n onClose={closeAddPhoto}\n onRemove={handleRemovePhoto}\n onSave={handleSavePhoto}\n onSuccess={handleSavePhotoSuccess}\n photoType={t('petPhoto')}\n saveSuccess={store.myPets.success}\n show={isUploading}\n subtitle={t('addProfilePhoto')}\n title={profilePicture ? t('editPetPhoto') : t('addPetPhoto')}\n />\n </div>\n );\n});\n\nexport { PetProfileInfoCardMyPets };\n","export default __webpack_public_path__ + \"static/media/check-icon.7cdab274.svg\";","export default __webpack_public_path__ + \"static/media/add-icon.21886bcc.svg\";","import React from 'react';\nimport checkIcon from '../../assets/myPets/check-icon.svg';\nimport plusIcon from '../../assets/myPets/add-icon.svg';\nimport './MyPetsButton.css';\n\nconst MyPetsButton = ({ text = '', isChecked = false, onClick = () => {} }) => (\n <button\n className={`My-pets-add-button-container ${isChecked\n ? 'My-pets-add-button-disabled'\n : ''}`}\n id={text}\n onClick={onClick}\n type=\"button\"\n >\n <img\n alt=\"\"\n className={`My-pets-add-button-no-clicked ${isChecked\n ? 'My-pets-add-button-img-check' : 'My-pets-add-button-img-add'}`}\n src={isChecked ? checkIcon : plusIcon}\n />\n\n <span className=\"My-pets-add-button-no-clicked\">{text}</span>\n </button>\n);\n\nexport { MyPetsButton };\n","import React, { useState, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { MyPetsButton } from '../../common/MyPetsButton';\nimport './PetProfileProgressMyPets.css';\n\nconst PetProfileProgressMyPets = ({\n percentageComplete = 0,\n petName = '',\n steps = [],\n}) => {\n const { t } = useTranslation('myPets');\n const [value, setValue] = useState(0);\n\n useEffect(() => {\n const interval = setInterval(() => {\n setValue(percentageComplete);\n }, 500);\n return () => clearInterval(interval);\n }, [percentageComplete]);\n\n return (\n <div className=\"My-pets-profile-progress-container\">\n <div className=\"My-pets-profile-progress-header Flex\">\n <h2 className=\"My-pets-profile-progress-title\">\n {t(\n 'completeProfile.incompleteProfileTitle',\n { petName },\n )}\n </h2>\n </div>\n\n <div className=\"My-pets-profile-progress-actions Flex\">\n {steps.map((step) => (\n <MyPetsButton\n key={step.name}\n isChecked={step.isComplete}\n onClick={step.onClick}\n text={step.name}\n />\n ))}\n </div>\n\n <div className=\"My-pets-profile-progress-bar-container\">\n <div className=\"My-pets-profile-progress-bar\" style={{ width: '100%' }}>\n <div\n className=\"My-pets-profile-progress-bar-completion\"\n style={{\n width: `${value}%`,\n }}\n />\n </div>\n\n <span className=\"Percentage-complete\">\n {t(\n 'completeProfile.percentageComplete',\n { percentage: percentageComplete },\n )}\n </span>\n </div>\n </div>\n );\n};\n\nexport { PetProfileProgressMyPets };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport './PetProfileCompleted.css';\n\nconst PetProfileCompleted = ({ petName = '' }) => {\n const { t } = useTranslation('myPets');\n\n return (\n <div className=\"Pet-proflie-completed-container\">\n <span>{t('PetProfile.petProfileCompleted', { petName })}</span>\n </div>\n );\n};\n\nexport { PetProfileCompleted };\n","import { useEffect } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { petProfileRedirected } from '../../../actions';\n\nimport { delay } from '../../../services/utils';\n\nimport { MY_PETS } from '../../navigation/routes.constants';\n\nconst MyOwnPetsValidation = () => {\n const store = useSelector(({\n myPets,\n personalInformation,\n }) => ({\n myPets,\n personalInformation,\n }), shallowEqual);\n\n const { personalInformation: { pets } } = store;\n const { myPets: { selectedPetId, petProfileFailed } } = store;\n const history = useHistory();\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (!selectedPetId || !pets.length) {\n return;\n }\n\n const isOwnPet = !!pets.find((pet) => pet.Id.toString()\n === selectedPetId.toString());\n\n if (isOwnPet) {\n return;\n }\n\n dispatch(petProfileRedirected());\n delay(2000).then(() => history.push(MY_PETS));\n }, [history, pets, selectedPetId]);\n\n useEffect(() => {\n if (!petProfileFailed) {\n return;\n }\n\n dispatch(petProfileRedirected());\n delay(2000).then(() => history.push(MY_PETS));\n }, [history, petProfileFailed, dispatch]);\n\n return null;\n};\n\nexport { MyOwnPetsValidation };\n","export default __webpack_public_path__ + \"static/media/placeholder-image.cf983e09.svg\";","export default __webpack_public_path__ + \"static/media/my-pets-bin.11a3fe51.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport placeHolder from '../../../assets/myVets/placeholder-image.svg';\nimport removeVet from '../../../assets/myVets/my-pets-bin.svg';\nimport { EXPLORE_PROVIDERS } from '../../../constants';\n\nimport './MyVetCardItem.css';\n\nconst MyVetCardItem = ({\n handleRemoveVet = () => { },\n isVisitedVet = false,\n providerId = '',\n vetAddress1 = '',\n vetAddress2 = '',\n vetCity = '',\n vetEmail = '',\n vetFax = '',\n vetImage = '',\n vetName = '',\n vetState = '',\n vetTelephone = '',\n vetZipCode = '',\n}) => {\n const { t } = useTranslation('myPets');\n\n return (\n <div className=\"My-vet-card-item-container\">\n {isVisitedVet ? (\n <>\n <h4 className=\"My-vet-card-info-name\">{vetName}</h4>\n\n <div className=\"My-vet-card-item-first-row\">\n <span>\n {`${vetAddress1}, ${vetState}, ${vetCity}, ${vetZipCode}`}\n </span>\n\n {vetTelephone ? (\n <span>{`${t('MyVets.phone')}: ${vetTelephone}`}</span>\n ) : null}\n\n {vetFax ? (\n <span>{`${t('MyVets.fax')}: ${vetFax}`}</span>\n ) : null}\n </div>\n\n <span className=\"My-vet-card-item-email\">{vetEmail}</span>\n </>\n ) : (\n <>\n <div className=\"My-vet-card-item-info-container\">\n <div className=\"My-vet-card-image-container\">\n <img\n alt=\"Placeholder\"\n aria-label=\"Placeholder\"\n className={vetImage ? 'My-vet-card-img' : 'My-vet-card-no-img'}\n src={vetImage || placeHolder}\n />\n </div>\n\n <h4 className=\"My-vet-card-info-name\">{vetName}</h4>\n\n <p className=\"My-vet-card-info-telephone\">{vetTelephone}</p>\n\n {providerId === EXPLORE_PROVIDERS.manuallyAdded ? (\n <p className=\"My-vet-card-info-address\">\n {`${vetState}, ${vetCity}`}\n </p>\n ) : (\n <p className=\"My-vet-card-info-address\">\n {vetAddress1}\n\n {vetAddress2 && `, ${vetAddress2}`}\n </p>\n )}\n </div>\n </>\n )}\n\n <button\n className=\"My-vet-card-remove-button btn\"\n onClick={handleRemoveVet}\n type=\"button\"\n >\n <img\n alt={t('myVets.removeVet')}\n aria-label={t('myVets.removeVet')}\n className=\"My-vet-card-remove-icon\"\n src={removeVet}\n />\n </button>\n </div>\n );\n};\n\nexport { MyVetCardItem };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport placeHolderIcon from '../../../assets/myVets/veterinary-briefcase.svg';\n\nimport './MyVetsPlaceholder.css';\n\nconst MyVetsPlaceholder = ({ handleAddVetClick = () => { } }) => {\n const { t } = useTranslation('myPets');\n\n return (\n <div className=\"My-vets-placeholder-container\">\n <img alt=\"\" src={placeHolderIcon} />\n\n <h4>{t('MyVets.placeHolderTitle')}</h4>\n\n <span className=\"My-vets-placeholder-text\">\n {t('MyVets.placeHolderText')}\n </span>\n\n <button\n className=\"My-vets-placeholder-button\"\n onClick={handleAddVetClick}\n type=\"button\"\n >\n <span>{t('MyVets.addAVet')}</span>\n </button>\n </div>\n );\n};\n\nexport { MyVetsPlaceholder };\n","export default __webpack_public_path__ + \"static/media/add.28e2a19c.svg\";","import React, { useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport ScrollableDiv from '../../common/ScrollableDiv';\nimport Shimmer from '../../common/Shimmer';\nimport { MyVetCardItem } from './MyVetCardItem';\nimport { MyPetsAddVetModal } from '../addVetModal/MyPetsAddVetModal';\nimport { GenericModal } from '../../common/petCloud/GenericModal';\nimport { MyVetsPlaceholder } from './MyVetsPlaceholder';\nimport { PetCloudBreadcrumbs } from '../common/PetCloudBreadcrumbs';\n\nimport { getAllFavorites, removeVet } from '../../../actions/myVets';\n\nimport { useManualVet } from '../../../hooks';\n\nimport addVetIcon from '../../../assets/myVets/add.svg';\n\nimport { EXPLORE_PROVIDERS } from '../../../constants';\n\nimport './MyVetsComponent.css';\n\nconst MyVetsComponent = ({ petName }) => {\n const dispatch = useDispatch();\n const { t } = useTranslation('myPets');\n const [loadingDelete, setLoadingDelete] = useState(false);\n const store = useSelector(({ myVets }) => ({\n favoriteVets: myVets.favoriteVets,\n isLoadingFavorites: myVets.isLoadingFavorites,\n isRemovingPet: myVets.isRemovingPet,\n removePetSuccess: myVets.removePetSuccess,\n vetCustomSaved: myVets.vetCustomSaved,\n }), shallowEqual);\n const [selectedVetToRemove, setSelectedVetToRemove] = useState(null);\n const [addVetModalOpen, setAddVetModalOpen] = useState(false);\n const [selectedVet, setSelectedVet] = useState(null);\n const isManualVetRedesign = useManualVet();\n\n useEffect(() => {\n dispatch(getAllFavorites());\n }, [dispatch]);\n\n useEffect(() => {\n if (store.removePetSuccess) {\n dispatch(getAllFavorites());\n setSelectedVetToRemove(null);\n }\n }, [dispatch, store.removePetSuccess]);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n useEffect(() => {\n if (store.removePetSuccess) {\n setLoadingDelete(false);\n }\n }, [store.removePetSuccess]);\n\n const hasNoVets = useMemo(() => !store.isLoadingFavorites\n && !store.favoriteVets.length,\n [store, store.favoriteVets, store.isLoadingFavorites]);\n\n const showRemovePetCard = (vet) => () => {\n setSelectedVetToRemove(vet);\n };\n\n function hideRemovePetCard() {\n if (!store.isRemovingPet) {\n setSelectedVetToRemove(null);\n }\n }\n\n function handleAddVetClick() {\n setAddVetModalOpen(true);\n }\n\n function handleCloseAddVetModal() {\n setAddVetModalOpen(false);\n }\n\n function handleRemoveVet() {\n if (!store.isRemovingPet) {\n setLoadingDelete(true);\n dispatch(removeVet({\n isVisitedVet: selectedVetToRemove.isVisitedVet,\n placeId: selectedVetToRemove.vetPlaceId,\n }));\n }\n }\n\n useEffect(() => {\n if (store.vetCustomSaved) {\n handleCloseAddVetModal();\n }\n }, [store.vetCustomSaved]);\n\n const renderDeleteVetModal = () => (\n <GenericModal\n description={t('MyVets.removeVetDescription')}\n handleOutClick={hideRemovePetCard}\n isDeleteAction\n loadingPrimary={loadingDelete}\n onPrimaryClick={handleRemoveVet}\n onSecondaryClick={hideRemovePetCard}\n primaryButtonText={t('MyVets.deleteBtn')}\n secondaryButtonText={t('MyVets.keepVetBtn')}\n show={!!selectedVetToRemove}\n title={t('MyVets.deleteVet')}\n />\n );\n\n const renderVetScreenContent = () => {\n if (hasNoVets && isManualVetRedesign) {\n return <MyVetsPlaceholder handleAddVetClick={handleAddVetClick} />;\n }\n\n return (\n <>\n {store.favoriteVets.map((vet) => {\n let vetInfo = {};\n\n if (vet?.ProviderId) {\n const {\n Address1,\n Address2,\n City,\n Phone,\n PlaceId,\n PlaceName,\n ProviderId,\n State,\n Thumbnail,\n } = vet;\n\n vetInfo = {\n isVisitedVet: false,\n providerId: ProviderId,\n vetAddress1: Address1,\n vetAddress2: Address2,\n vetCity: City,\n vetEmail: '',\n vetFax: '',\n vetImage: Thumbnail,\n vetName: PlaceName,\n vetPlaceId: PlaceId,\n vetState: State,\n vetTelephone: Phone,\n vetZipCode: '',\n };\n } else {\n const {\n address,\n city,\n email,\n fax,\n id,\n phone,\n state,\n vetName,\n zipCode,\n } = vet;\n\n vetInfo = {\n isVisitedVet: true,\n providerId: EXPLORE_PROVIDERS.manuallyAdded,\n vetAddress1: address,\n vetAddress2: '',\n vetCity: city,\n vetEmail: email,\n vetFax: fax,\n vetImage: '',\n vetName,\n vetPlaceId: id,\n vetState: state,\n vetTelephone: phone,\n vetZipCode: zipCode,\n };\n }\n\n return selectedVetToRemove?.vetPlaceId === vetInfo.vetPlaceId\n ? renderDeleteVetModal() : (\n <MyVetCardItem\n key={String(vetInfo.vetPlaceId)}\n handleRemoveVet={showRemovePetCard(vetInfo)}\n isVisitedVet={vetInfo.isVisitedVet}\n providerId={vetInfo.providerId}\n vetAddress1={vetInfo.vetAddress1}\n vetAddress2={vetInfo.vetAddress2}\n vetCity={vetInfo.vetCity}\n vetEmail={vetInfo.vetEmail}\n vetFax={vetInfo.vetFax}\n vetImage={vetInfo.vetImage}\n vetName={vetInfo.vetName}\n vetState={vetInfo.vetState}\n vetTelephone={vetInfo.vetTelephone}\n vetZipCode={vetInfo.vetZipCode}\n />\n );\n })}\n </>\n );\n };\n\n return (\n <div className=\"My-pets-vets-container Flex Flex-column\">\n <div className=\"breadcrumb-container\">\n <PetCloudBreadcrumbs\n activeRoute={isManualVetRedesign\n ? t('MyVets.visitedVetsTitle')\n : t('MyVets.title')}\n rootRoute={petName}\n />\n </div>\n\n <div className=\"My-pets-vets-header Flex\">\n <h2 className=\"My-pets-vets-title\">\n {isManualVetRedesign\n ? t('MyVets.visitedVetsTitle')\n : t('MyVets.title')}\n </h2>\n\n {hasNoVets && isManualVetRedesign ? null : (\n <button\n className=\"My-pets-vets-add-vet-button\"\n onClick={handleAddVetClick}\n type=\"button\"\n >\n <span className=\"underline-wrapper\">\n <img\n alt=\"\"\n className=\"My-pets-vets-add-vet-button-icon\"\n src={addVetIcon}\n />\n\n {t('MyVets.addaVet')}\n </span>\n </button>\n )}\n </div>\n\n <ScrollableDiv className=\"My-pets-vets-cards-container\">\n <Shimmer\n className=\"Flex Flex-column\"\n height={107}\n visible={store.isLoadingFavorites}\n width={384}\n >\n {renderVetScreenContent()}\n </Shimmer>\n </ScrollableDiv>\n\n {addVetModalOpen && (\n <MyPetsAddVetModal\n onClose={handleCloseAddVetModal}\n onSelectedVet={setSelectedVet}\n primaryVet={isManualVetRedesign}\n selectedVet={selectedVet}\n setAddVetModalOpen={setAddVetModalOpen}\n />\n )}\n </div>\n );\n};\n\nexport { MyVetsComponent };\n","export default __webpack_public_path__ + \"static/media/pencil-icon.2e53433b.svg\";","import React, { useEffect, useMemo } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n loadMicrochipData,\n microchipModalVisible,\n} from '../../../actions';\nimport FigoLottie from '../../common/FigoLottie';\n\nimport addIconBlue from '../../../assets/myPets/add-icon-blue.svg';\nimport pencilIcon from '../../../assets/myPets/pencil-icon.svg';\nimport loadingSpinnerBlue\nfrom '../../../assets/lottieFiles/loading-blue.json';\n\nimport { PetCloudBreadcrumbs } from '../common/PetCloudBreadcrumbs';\n\nimport './MicrochipScreen.css';\n\nconst MicrochipScreen = () => {\n const { t } = useTranslation('myPets');\n\n const { id: paramId } = useParams();\n const dispatch = useDispatch();\n const store = useSelector(\n ({\n myPets,\n }) => ({\n myPets,\n }), shallowEqual,\n );\n const { myPets: { petProfile }, myPets: { loading }, myPets } = store;\n const { Name = '', Id = '' } = petProfile;\n const { microchipCompanies, microchipData, petProfileLoading } = myPets;\n const { ChipId = '' } = microchipData;\n const isLoading = loading || petProfileLoading;\n const petId = Id || paramId;\n const hasMicrochip = Object.keys(microchipData).length > 2;\n\n const provider = useMemo(() => {\n if (!hasMicrochip) {\n return {};\n }\n\n const companyId = parseInt(microchipData.MicrochipId, 10);\n\n return microchipCompanies.find((company) => company.Id === companyId);\n }, [hasMicrochip, microchipCompanies, microchipData]);\n\n function openMicrochipModal() {\n dispatch(microchipModalVisible({ isVisible: true }));\n }\n\n useEffect(() => {\n if (petId) {\n dispatch(loadMicrochipData({ petId }));\n }\n window.scrollTo(0, 0);\n }, []);\n\n function renderHeader() {\n return (\n <div className=\"Microchip-screen-header-container\">\n <h1 className=\"Microchip-screen-page-title\">\n {t('MicroChip.pageTitle')}\n </h1>\n\n {!hasMicrochip && (\n <button\n className=\"Microchip-screen-button-add-microchip\"\n onClick={openMicrochipModal}\n type=\"button\"\n >\n <img\n alt=\"\"\n className=\"Microchip-screen-button-image\"\n src={addIconBlue}\n />\n {t('MicroChip.addAMicrochip')}\n </button>\n )}\n </div>\n );\n }\n\n function renderCardInformation() {\n if (!hasMicrochip) return null;\n\n return (\n <div className=\"Microchip-screen-card-container\">\n <div className=\"Microchip-screen-card\">\n <div className=\"Microchip-screen-card-left-side\">\n <div className=\"Microchip-screen-id-information\">\n <h2 className=\"Microchip-screen-title-information\">\n {t('MicroChip.microchipID')}\n </h2>\n\n <p className=\"Microchip-screen-information\">{ChipId}</p>\n </div>\n\n <div>\n <h2 className=\"Microchip-screen-title-information\">\n {t('MicroChip.vendor')}\n </h2>\n\n <p className=\"Microchip-screen-information\">\n {provider.ListName}\n </p>\n </div>\n </div>\n\n <div className=\"Microchip-screen-card-right-side\">\n <button\n className=\"Microchip-screen-button-edit-microchip\"\n onClick={openMicrochipModal}\n type=\"button\"\n >\n <img\n alt=\"\"\n className=\"Microchip-screen-button-image\"\n src={pencilIcon}\n />\n {t('MicroChip.editDetails')}\n </button>\n </div>\n </div>\n </div>\n );\n }\n\n if (isLoading) {\n return (\n <div className=\"My-pets-loading-container\">\n <FigoLottie\n animationData={loadingSpinnerBlue}\n height={50}\n width={50}\n />\n </div>\n );\n }\n\n return (\n <div className=\"Microchip-screen-container\">\n <PetCloudBreadcrumbs\n activeRoute={t('MicroChip.microchip')}\n rootRoute={Name}\n />\n\n {renderHeader()}\n\n {renderCardInformation()}\n </div>\n );\n};\n\nexport { MicrochipScreen };\n","export default __webpack_public_path__ + \"static/media/cross-icon.09d92367.svg\";","import React from 'react';\nimport Form from 'react-bootstrap/Form';\n\nconst FigoSelect = ({\n className,\n controlId,\n custom,\n inputName,\n onChange,\n placeholder,\n renderOptionList,\n title,\n value,\n}) => (\n <Form.Group controlId={controlId}>\n <Form.Label>{title}</Form.Label>\n\n <Form.Control\n as=\"select\"\n className={className}\n custom={custom}\n name={inputName}\n onBlur={onChange}\n onChange={onChange}\n placeholder={placeholder}\n type=\"text\"\n value={value}\n >\n {renderOptionList()}\n </Form.Control>\n </Form.Group>\n);\n\nexport default FigoSelect;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { Form } from 'react-bootstrap';\nimport ModalContainer from '../../common/ModalContainer';\nimport crossImage from '../../../assets/myPets/cross-icon.svg';\nimport FigoInput from '../../common/FigoInput';\nimport FigoSelect from '../../common/FigoSelect';\nimport {\n microchipModalVisible,\n saveMicrochip,\n loadPetProfile,\n} from '../../../actions';\nimport LoadingButton from '../../common/LoadingButton';\nimport { removeEmojis } from '../../../services/utils';\nimport './MicroChipModal.css';\n\nconst MicroChipModal = () => {\n const { t } = useTranslation('myPets');\n const dispatch = useDispatch();\n const store = useSelector(({ myPets }) => ({ myPets }), shallowEqual);\n const { myPets } = store;\n const {\n loading,\n microchipCompanies,\n microchipData,\n showMicrochipModal,\n success,\n } = myPets;\n const { ChipId, MicrochipId, OrderId } = microchipData;\n const [chipID, setChipID] = useState('');\n const companyIdState = !ChipId ? '' : MicrochipId;\n const [companyID, setCompanyID] = useState(1);\n const disabledButton = !chipID || !companyID;\n\n const setInitialData = useCallback(() => {\n setChipID(ChipId);\n setCompanyID(companyIdState);\n }, [microchipData]);\n\n useEffect(() => {\n setInitialData();\n }, [setInitialData]);\n\n function onClose() {\n dispatch(microchipModalVisible({ isVisible: false }));\n setInitialData();\n }\n\n function renderCompanyListWithoutDefaultCompany() {\n return [\n <option key=\"default\" value=\"\">\n Select..\n </option>,\n ...microchipCompanies?.map((company) => (\n <option key={company.Id} value={company.Id}>\n {company.ListName}\n </option>\n )),\n ];\n }\n\n function handleChipIDChange(event) {\n const { target: { value } } = event;\n\n setChipID(removeEmojis(value));\n }\n\n function handleCompanySelect(event) {\n const { target: { value } } = event;\n\n setCompanyID(value);\n }\n\n function handleSaveChip(event) {\n event.preventDefault();\n\n dispatch(saveMicrochip({\n ...microchipData,\n ChipId: chipID.replace(/\\s/g, ''),\n MicrochipId: companyID,\n OrderId: parseInt(OrderId, 10),\n }));\n }\n\n function handleSaveChipSuccess() {\n dispatch(loadPetProfile());\n dispatch(microchipModalVisible({ isVisible: false }));\n }\n\n function renderMicrochipModal() {\n return (\n <div className=\"Microchip-modal-container\">\n <button\n aria-label=\"Close Modal\"\n className=\"Microchip-modal-cross-button\"\n onClick={onClose}\n type=\"button\"\n >\n <img alt={t('MicroChip.closeModal')} src={crossImage} />\n </button>\n\n <div className=\"Microchip-modal-content\">\n <h2 className=\"Microchip-modal-title\">\n {t('MicroChip.pageTitle')}\n </h2>\n\n <p className=\"Microchip-modal-subtitle\">\n {t('MicroChip.microchipDetails')}\n </p>\n\n <Form\n className=\"Microchip-form-container Flex Flex-column\"\n onSubmit={handleSaveChip}\n >\n <FigoSelect\n controlId=\"microchipCompanies\"\n custom\n onChange={handleCompanySelect}\n renderOptionList={renderCompanyListWithoutDefaultCompany}\n title={t('MicroChip.microchipCompany')}\n value={companyID}\n />\n\n <FigoInput\n controlId=\"chipID\"\n inputName=\"chipID\"\n maxLength={50}\n onChange={handleChipIDChange}\n placeholder={t('MicroChip.chipIdInputPlaceholder')}\n title={t('MicroChip.microchipID')}\n value={chipID}\n />\n\n <div className=\"Microchip-modal-buttons-container\">\n <LoadingButton\n className=\"Microchip-modal-save-button\"\n disabled={disabledButton}\n loading={loading}\n onClick={handleSaveChip}\n onSuccessAnimationEnd={handleSaveChipSuccess}\n success={success}\n text={t('MicroChip.add')}\n />\n\n <button\n className=\"Microchip-modal-cancel-button\"\n onClick={onClose}\n type=\"button\"\n >\n {t('MicroChip.cancel')}\n </button>\n </div>\n </Form>\n </div>\n </div>\n );\n }\n\n return (\n <ModalContainer\n contentStyle=\"Modal-content-container Flex\"\n show={showMicrochipModal}\n >\n {renderMicrochipModal()}\n </ModalContainer>\n );\n};\n\nexport { MicroChipModal };\n","import { useEffect, useMemo, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport {\n contactsFormInitialized,\n editModeSet,\n familyMemberNameErrorMessageSetted,\n familyMemberNameSetted,\n familyMemberPhoneNumberErrorMessageSetted,\n familyMemberPhoneNumberSetted,\n figoTagModalHidden,\n loadPetProfile,\n messageToFinderSetted,\n petIdSetted,\n petTagInfoEditModeSet,\n petTagSetted,\n setPetTagInfo,\n tagNumberErrorMessageSetted,\n} from '../../../actions';\nimport {\n removeEmojis,\n validateNumbersOnly,\n validatePhone,\n} from '../../../services/utils';\n\nconst usePetTagModal = ({ petId }) => {\n const { t } = useTranslation('myPets');\n const dispatch = useDispatch();\n const store = useSelector(({ figoPetTag }) => ({ figoPetTag }), shallowEqual);\n const {\n data,\n emergencyContactsForm,\n isEditMode,\n isPetTagInfoRequestStarted,\n petTagInfo: { MessageToFinder, PetId, TagNumber },\n successPetTagPost,\n tagNumberErrorMessage,\n } = store.figoPetTag;\n const [saveButtonDisabled, setSaveButtonDisabled] = useState(true);\n\n useEffect(() => {\n if (!PetId || (PetId !== petId)) {\n dispatch(petIdSetted(petId));\n }\n }, [PetId, dispatch, petId]);\n\n function hasObjectEmptyValues(object = {}) {\n return Object.values(object).filter((value) => !!value).length > 0;\n }\n\n useEffect(() => {\n if (Object.keys(data).length) {\n const isFamilyMember1Fill = hasObjectEmptyValues(\n data.EmergencyContacts[0] || {},\n );\n\n const isFamilyMember2Fill = hasObjectEmptyValues(\n data.EmergencyContacts[1] || {},\n );\n\n const isFamilyMember3Fill = hasObjectEmptyValues(\n data.EmergencyContacts[2] || {},\n );\n\n const editMode = data.TagNumber\n || isFamilyMember1Fill\n || isFamilyMember2Fill\n || isFamilyMember3Fill\n || data.MessageToFinder;\n\n dispatch(editModeSet(editMode));\n }\n }, [data, dispatch]);\n\n useEffect(() => {\n if (Object.keys(data).length && isEditMode) {\n dispatch(petTagInfoEditModeSet({\n messageToFinder: data.MessageToFinder || '',\n tagNumber: data.TagNumber || '',\n }));\n }\n }, [data, dispatch, isEditMode]);\n\n useEffect(() => {\n if (data && Array.isArray(data?.EmergencyContacts)) {\n dispatch(contactsFormInitialized(data.EmergencyContacts));\n }\n }, [data]);\n\n function handlePetTagClose() {\n dispatch(loadPetProfile());\n dispatch(figoTagModalHidden());\n }\n\n function handlePetTagInput(event) {\n dispatch(petTagSetted(removeEmojis(event.target.value)));\n setSaveButtonDisabled(removeEmojis(event.target.value) === data.TagNumber);\n }\n\n function handleOnBlurPetTag() {\n dispatch(tagNumberErrorMessageSetted(TagNumber ? ''\n : t('PetTagModal.tagNumberError')));\n }\n\n function handleMessageToFinderInput(event) {\n dispatch(messageToFinderSetted(removeEmojis(event.target.value)));\n setSaveButtonDisabled(removeEmojis(event.target.value)\n === data.MessageToFinder);\n }\n\n const handleFamilyMemberNameInput = (contactKey) => (event) => {\n dispatch(familyMemberNameSetted({ contactKey, name: event.target.value }));\n\n setSaveButtonDisabled(event.target.value === emergencyContactsForm\n .find((contact) => contact.key === contactKey)?.name);\n };\n\n const handleFamilyMemberPhoneNumberInput = (contactKey) => (event) => {\n const { value } = event.target;\n const cleanText = value ? value.replace(/[()-\\s]/g, '') : '';\n const onlyNumbersValue = validateNumbersOnly(cleanText)\n ? cleanText\n : cleanText.replace(/\\D/g, '');\n const PHONE_MAX_LENGTH = 10;\n\n if (onlyNumbersValue.length > PHONE_MAX_LENGTH) {\n return;\n }\n\n dispatch(familyMemberPhoneNumberSetted({\n contactKey,\n phoneNumber: onlyNumbersValue,\n }));\n\n setSaveButtonDisabled(onlyNumbersValue === emergencyContactsForm\n .find((contact) => contact.key === contactKey)?.phoneNumber);\n\n dispatch(familyMemberPhoneNumberErrorMessageSetted({\n contactKey,\n errorMessage: '',\n }));\n };\n\n function findErrors(contact) {\n let nameErrorFound = false;\n let phoneErrorFound = false;\n const requiredError = t('PetTagModal.requiredError');\n const invalidPhoneError = t('PetTagModal.phoneNumberError');\n if (contact.isRequired) {\n if (!contact.name) {\n dispatch(familyMemberNameErrorMessageSetted({\n contactKey: contact.key,\n errorMessage: requiredError,\n }));\n nameErrorFound = true;\n }\n\n if (!contact.phoneNumber) {\n dispatch(familyMemberPhoneNumberErrorMessageSetted({\n contactKey: contact.key,\n errorMessage: requiredError,\n }));\n phoneErrorFound = true;\n }\n }\n\n if (!phoneErrorFound) {\n dispatch(familyMemberPhoneNumberErrorMessageSetted({\n contactKey: contact.key,\n errorMessage: '',\n }));\n }\n\n if (!nameErrorFound) {\n dispatch(familyMemberNameErrorMessageSetted({\n contactKey: contact.key,\n errorMessage: '',\n }));\n }\n\n if (nameErrorFound || phoneErrorFound) {\n return true;\n }\n\n if (!contact.name && contact.phoneNumber) {\n dispatch(familyMemberNameErrorMessageSetted({\n contactKey: contact.key,\n errorMessage: requiredError,\n }));\n nameErrorFound = true;\n }\n\n if (contact.phoneNumber && !validatePhone(contact.phoneNumber)) {\n dispatch(familyMemberPhoneNumberErrorMessageSetted({\n contactKey: contact.key,\n errorMessage: invalidPhoneError,\n }));\n phoneErrorFound = true;\n }\n\n if (contact.name && !contact.phoneNumber) {\n dispatch(familyMemberPhoneNumberErrorMessageSetted({\n contactKey: contact.key,\n errorMessage: requiredError,\n }));\n phoneErrorFound = true;\n }\n\n if (!phoneErrorFound) {\n dispatch(familyMemberPhoneNumberErrorMessageSetted({\n contactKey: contact.key,\n errorMessage: '',\n }));\n }\n\n if (!nameErrorFound) {\n dispatch(familyMemberNameErrorMessageSetted({\n contactKey: contact.key,\n errorMessage: '',\n }));\n }\n\n setSaveButtonDisabled(phoneErrorFound || nameErrorFound);\n\n return phoneErrorFound || nameErrorFound;\n }\n\n function handleSavePetTagButton() {\n const errors = emergencyContactsForm.some((contact) => findErrors(contact));\n\n if (errors) {\n return;\n }\n\n const figoTag = {\n EmergencyContacts: emergencyContactsForm.map((contact) => ({\n Id: contact.id,\n Name: contact.name,\n PhoneNumber: contact.phoneNumber,\n })),\n MessageToFinder,\n PetId,\n TagNumber,\n };\n\n dispatch(setPetTagInfo(figoTag));\n }\n\n const addButtonDisabled = useMemo(() => !TagNumber || tagNumberErrorMessage\n || !emergencyContactsForm[0].name || !emergencyContactsForm[0].phoneNumber\n || emergencyContactsForm[0].hasNameError\n || emergencyContactsForm[0].hasPhoneNumberError,\n [\n emergencyContactsForm,\n TagNumber,\n tagNumberErrorMessage,\n ]);\n\n const familyMemberInfo = useMemo(() => {\n const emptyMember = {\n name: '',\n nameErrorMessage: '',\n phoneNumber: '',\n phoneNumberErrorMessage: '',\n };\n\n const member1 = emergencyContactsForm\n .find((member) => member.key === 1) || emptyMember;\n const member2 = emergencyContactsForm\n .find((member) => member.key === 2) || emptyMember;\n const member3 = emergencyContactsForm\n .find((member) => member.key === 3) || emptyMember;\n\n return [member1, member2, member3];\n }, [emergencyContactsForm]);\n\n return {\n addButtonDisabled,\n emergencyContactsForm,\n familyMemberInfo,\n handleFamilyMemberNameInput,\n handleFamilyMemberPhoneNumberInput,\n handleMessageToFinderInput,\n handleOnBlurPetTag,\n handlePetTagClose,\n handlePetTagInput,\n handleSavePetTagButton,\n isEditMode,\n isPetTagInfoRequestStarted,\n MessageToFinder,\n saveButtonDisabled,\n successPetTagPost,\n TagNumber,\n tagNumberErrorMessage,\n };\n};\n\nexport { usePetTagModal };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport closeIcon from '../../../assets/close-button.svg';\n\nimport ModalContainer from '../../common/ModalContainer';\nimport ScrollableDiv from '../../common/ScrollableDiv';\nimport { ActionButton, PetCloudInput } from '../../common/petCloud';\n\nimport { usePetTagModal } from '../hooks/usePetTagModal';\n\nimport { maskPhoneNumber } from '../../../services/utils';\n\nimport './PetTagModal.css';\n\nconst PetTagModal = ({\n isVisible = false,\n petId = '',\n}) => {\n const { t } = useTranslation('myPets');\n const messageToFinderMaxLength = 2000;\n\n const {\n addButtonDisabled,\n familyMemberInfo,\n handleFamilyMemberNameInput,\n handleFamilyMemberPhoneNumberInput,\n handleMessageToFinderInput,\n handleOnBlurPetTag,\n handlePetTagClose,\n handlePetTagInput,\n handleSavePetTagButton,\n isEditMode,\n isPetTagInfoRequestStarted,\n MessageToFinder,\n saveButtonDisabled,\n successPetTagPost,\n TagNumber,\n tagNumberErrorMessage,\n } = usePetTagModal({ petId });\n\n return (\n <ModalContainer show={isVisible}>\n <ScrollableDiv className=\"Pet-tag-modal-main-container\" tabIndex={-1}>\n <div className=\"Pet-tag-modal-title-container\">\n <h3>{t('PetTagModal.title')}</h3>\n\n <button\n className=\"Pet-tag-modal-close-icon-container\"\n id=\"closeIconAddPetModal\"\n onClick={handlePetTagClose}\n type=\"button\"\n >\n <img\n alt=\"Close\"\n className=\"Pet-tag-modal-close-icon\"\n src={closeIcon}\n />\n </button>\n </div>\n\n <p className=\"Pet-tag-modal-description\">\n {t('PetTagModal.description')}\n </p>\n\n <div className=\"Pet-tag-modal-content-container\">\n <div className=\"Pet-tag-modal-tag-input-container\">\n <PetCloudInput\n error={tagNumberErrorMessage}\n onBlur={handleOnBlurPetTag}\n onChange={handlePetTagInput}\n placeholder={t('PetTagModal.exampleTagNumber')}\n title={`${t('PetTagModal.tagNumberField')}*`}\n value={TagNumber}\n />\n </div>\n\n <PetCloudInput\n className=\"Pet-tag-modal-finder-input\"\n isTextArea\n maxLength={messageToFinderMaxLength}\n onChange={handleMessageToFinderInput}\n placeholder={t('PetTagModal.exampleMessageFinder')}\n title={t('PetTagModal.messageToFinderField')}\n value={MessageToFinder}\n />\n\n <div className=\"Pet-tag-modal-row-container\">\n <PetCloudInput\n className=\"Pet-tag-modal-contact-input\"\n error={familyMemberInfo[0].nameErrorMessage}\n onChange={handleFamilyMemberNameInput(1)}\n placeholder={t('PetTagModal.fullName')}\n title={t('PetTagModal.emergencyContactField', { number: '1*' })}\n value={familyMemberInfo[0].name}\n />\n\n <PetCloudInput\n className=\"Pet-tag-modal-phone-input\"\n error={familyMemberInfo[0].phoneNumberErrorMessage}\n errorClassName=\"Pet-tag-modal-phone-error\"\n onChange={handleFamilyMemberPhoneNumberInput(1)}\n placeholder={t('PetTagModal.phoneNumber')}\n value={maskPhoneNumber(familyMemberInfo[0].phoneNumber)}\n />\n </div>\n\n <div className=\"Pet-tag-modal-row-container\">\n <PetCloudInput\n className=\"Pet-tag-modal-contact-input\"\n error={familyMemberInfo[1].nameErrorMessage}\n onChange={handleFamilyMemberNameInput(2)}\n placeholder={t('PetTagModal.fullName')}\n title={t('PetTagModal.emergencyContactField', { number: 2 })}\n value={familyMemberInfo[1].name}\n />\n\n <PetCloudInput\n className=\"Pet-tag-modal-phone-input\"\n error={familyMemberInfo[1].phoneNumberErrorMessage}\n errorClassName=\"Pet-tag-modal-phone-error\"\n onChange={handleFamilyMemberPhoneNumberInput(2)}\n placeholder={t('PetTagModal.phoneNumber')}\n value={maskPhoneNumber(familyMemberInfo[1].phoneNumber)}\n />\n </div>\n\n <div className=\"Pet-tag-modal-row-container\">\n <PetCloudInput\n className=\"Pet-tag-modal-contact-input\"\n error={familyMemberInfo[2].nameErrorMessage}\n onChange={handleFamilyMemberNameInput(3)}\n placeholder={t('PetTagModal.fullName')}\n title={t('PetTagModal.emergencyContactField', { number: 3 })}\n value={familyMemberInfo[2].name}\n />\n\n <PetCloudInput\n className=\"Pet-tag-modal-phone-input\"\n error={familyMemberInfo[2].phoneNumberErrorMessage}\n errorClassName=\"Pet-tag-modal-phone-error\"\n onChange={handleFamilyMemberPhoneNumberInput(3)}\n placeholder={t('PetTagModal.phoneNumber')}\n value={maskPhoneNumber(familyMemberInfo[2].phoneNumber)}\n />\n </div>\n </div>\n\n <div className={`Pet-tag-modal-footer-container\n ${familyMemberInfo[2].phoneNumberErrorMessage\n ? 'Pet-tag-modal-footer-container-margin' : ''}`}\n >\n <ActionButton\n disabled={isEditMode ? saveButtonDisabled : addButtonDisabled}\n loading={isPetTagInfoRequestStarted}\n onClick={handleSavePetTagButton}\n onSuccess={handlePetTagClose}\n success={successPetTagPost}\n title={isEditMode ? t('PetTagModal.saveButton')\n : t('PetTagModal.addButton')}\n />\n\n <ActionButton\n isSecondaryButton\n onClick={handlePetTagClose}\n title={t('PetTagModal.cancelButton')}\n />\n </div>\n </ScrollableDiv>\n </ModalContainer>\n );\n};\n\nexport { PetTagModal };\n","import React, { useEffect } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n figoTagModalShown,\n getPetTagInfo,\n} from '../../../actions';\nimport FigoLottie from '../../common/FigoLottie';\n\nimport addIconBlue from '../../../assets/myPets/add-icon-blue.svg';\n\nimport pencilIcon from '../../../assets/myPets/pencil-icon.svg';\nimport loadingSpinnerBlue\nfrom '../../../assets/lottieFiles/loading-blue.json';\n\nimport { PetCloudBreadcrumbs } from '../common/PetCloudBreadcrumbs';\nimport { maskPhoneNumber } from '../../../services/utils';\n\nimport { PetTagModal } from './PetTagModal';\n\nimport './PetTagScreen.css';\n\nconst PetTagScreen = () => {\n const { t } = useTranslation('myPets');\n\n const dispatch = useDispatch();\n const store = useSelector(\n ({\n figoPetTag,\n myPets,\n }) => ({\n figoPetTag,\n myPets,\n }), shallowEqual,\n );\n\n const {\n figoPetTag: {\n data: { MessageToFinder, TagNumber, EmergencyContacts },\n isFigoTagModalVisible,\n isLoadingPetInfo,\n },\n myPets: { petProfile, petProfileLoading, selectedPetId },\n } = store;\n\n const { Name = '', Id = '' } = petProfile;\n\n const isLoading = petProfileLoading || isLoadingPetInfo;\n const petId = Id || selectedPetId;\n\n useEffect(() => {\n if (!isFigoTagModalVisible && petId) {\n dispatch(getPetTagInfo(petId));\n }\n }, [dispatch, isFigoTagModalVisible, petId]);\n\n function openPetTagModal() {\n dispatch(figoTagModalShown());\n }\n\n function renderHeader() {\n return (\n <div className=\"Pet-tag-screen-header-container\">\n <h1 className=\"Pet-tag-screen-page-title\">\n {t('PetTag.title')}\n </h1>\n\n {!TagNumber && (\n <button\n className=\"Pet-tag-screen-button-add-tag\"\n onClick={openPetTagModal}\n type=\"button\"\n >\n <img\n alt=\"\"\n className=\"Pet-tag-screen-button-image\"\n src={addIconBlue}\n />\n\n <span>{t('PetTag.addPetTag')}</span>\n </button>\n )}\n </div>\n );\n }\n\n function renderEmergencyContacts() {\n if (!EmergencyContacts.length) {\n return null;\n }\n\n return EmergencyContacts.map((contact) => {\n if (contact.Name) {\n return (\n <span key={`${contact.Id}`}>{t('PetTag.emergencyContact', {\n name: contact.Name,\n phoneNumber: maskPhoneNumber(contact.PhoneNumber),\n })}\n </span>\n );\n }\n\n return null;\n });\n }\n\n function renderCardInformation() {\n if (!TagNumber) return null;\n\n return (\n <div>\n <div className=\"Pet-tag-screen-card\">\n <div className=\"Pet-tag-screen-card-left-side\">\n <div className=\"Pet-tag-screen-information\">\n <div className=\"Pet-tag-screen-information-item\">\n <h4>{t('PetTag.tagNumberTitle')}</h4>\n\n <span>{TagNumber}</span>\n </div>\n\n <div className=\"Pet-tag-screen-information-item\">\n <h4>{t('PetTag.messageToFinderTitle')}</h4>\n\n <p>{MessageToFinder}</p>\n </div>\n\n <div className=\"Pet-tag-screen-information-item\">\n <h4>{t('PetTag.emergencyContactsTitle')}</h4>\n\n <div className=\"Pet-tag-emergency-contacts-container\">\n {renderEmergencyContacts()}\n </div>\n </div>\n </div>\n </div>\n\n <div>\n <button\n className=\"Pet-tag-screen-button-edit-tag\"\n onClick={openPetTagModal}\n type=\"button\"\n >\n <img\n alt=\"\"\n className=\"Pet-tag-screen-button-image\"\n src={pencilIcon}\n />\n\n <span>{t('PetTag.editDetails')}</span>\n </button>\n </div>\n </div>\n </div>\n );\n }\n\n if (isLoading) {\n return (\n <div className=\"My-pets-loading-container\">\n <FigoLottie\n animationData={loadingSpinnerBlue}\n height={50}\n width={50}\n />\n </div>\n );\n }\n\n return (\n <div className=\"Pet-tag-screen-container\">\n <PetCloudBreadcrumbs\n activeRoute={t('PetTag.petTag')}\n rootRoute={Name}\n />\n\n {renderHeader()}\n\n {renderCardInformation()}\n\n <PetTagModal isVisible={isFigoTagModalVisible} petId={petId} />\n </div>\n );\n};\n\nexport { PetTagScreen };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nconst PetProfileCardLink = ({ children, href }) => (\n <Link className=\"My-pets-profile-card-container\" to={href}>\n {children}\n </Link>\n);\n\nconst PetProfileCardButton = ({ children, onClick }) => (\n <button\n className=\"My-pets-profile-card-container\"\n onClick={onClick}\n type=\"button\"\n >\n {children}\n </button>\n);\n\nexport const PetProfileCard = ({\n onClick = null,\n href,\n iconSrc,\n paragraph,\n title,\n}) => {\n const Container = onClick ? PetProfileCardButton : PetProfileCardLink;\n\n return (\n <Container href={href} onClick={onClick}>\n <img alt=\"\" className=\"card-icon\" src={iconSrc} />\n\n <div className=\"My-pets-profile-card-text-content\">\n <h3 className=\"My-pets-profile-card-title\">\n {title}\n </h3>\n\n <p className=\"My-pets-profile-card-paragraph\">\n {paragraph}\n </p>\n </div>\n </Container>\n );\n};\n","import React, {\n useMemo,\n useEffect,\n useRef,\n useCallback,\n} from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { Route, Switch, useHistory, useRouteMatch } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport figoPetTagIcon from '../../../assets/myPets/cards/figo-pet-tag.svg';\nimport insuranceIcon from '../../../assets/myPets/cards/insurance.svg';\nimport microchipIcon from '../../../assets/myPets/cards/microchip.svg';\nimport myVetsIcon from '../../../assets/myPets/cards/my-vets.svg';\nimport {\n billingPaymentReseted,\n clearPolicyNotifications,\n figoTagModalShown,\n loadMicrochipData,\n loadPetProfile,\n loadPoliciesOverview,\n loadPolicyDetails,\n microchipModalVisible,\n petSelected,\n setSelectedPetId,\n setSelectedPetIndex,\n temporaryTokenReset,\n} from '../../../actions';\nimport {\n goToGetQuotesD2C,\n} from '../../../services/utils';\nimport {\n PET_GENDER,\n PET_TYPE_ID,\n} from '../../../constants';\nimport { useMixpanel, usePMS } from '../../../hooks';\nimport { EV1, EV15 } from '../../../services/mixpanel';\nimport * as routes from '../../navigation/routes.constants';\n\nimport { PetProfileInfoCardMyPets } from './PetProfileInfoCardMyPets';\nimport FigoLottie from '../../common/FigoLottie';\nimport loadingSpinnerBlue\nfrom '../../../assets/lottieFiles/loading-blue.json';\nimport { PetProfileProgressMyPets } from './PetProfileProgressMyPets';\nimport { YoungPetModal } from '../../insurance/YoungPetModal';\nimport { PetProfileCompleted } from '../PetProfileCompleted';\nimport { MyOwnPetsValidation } from './MyOwnPetsValidation';\nimport { MyVetsComponent } from '../myVets/MyVetsComponent';\nimport { MicrochipScreen } from '../microchip/MicrochipScreen';\nimport { MicroChipModal } from './MicroChipModal';\nimport { PetTagScreen } from '../petTag/PetTagScreen';\nimport { PetProfileCard } from './PetProfileCard';\nimport { PetTagModal } from '../petTag/PetTagModal';\nimport { usePolicyBrand } from '../../../hooks/usePolicyBrand';\nimport './PetProfileScreenMyPets.css';\n\nconst PetProfileScreenMyPets = ({\n handleOnAddFamilyCoverClick,\n handleOnEditPetClick,\n}) => {\n const { t } = useTranslation('myPets');\n const dispatch = useDispatch();\n const history = useHistory();\n const { sendEvent } = useMixpanel();\n const { path, url } = useRouteMatch();\n const { pms } = usePMS();\n const petInfoRef = useRef();\n const store = useSelector(\n ({\n figoPetTag,\n myPets,\n personalInformation,\n policies,\n session,\n }) => ({\n figoPetTag,\n myPets,\n personalInformation,\n policies,\n session,\n }), shallowEqual,\n );\n\n const {\n figoPetTag: {\n data: { TagNumber },\n isFigoTagModalVisible,\n },\n myPets: { microchipData, petProfile, petProfileLoading, selectedPetId },\n policies: {\n allPets,\n isYoungPetModalVisible,\n loading,\n multibrandPolicies,\n policiesOverView,\n },\n personalInformation: {\n pets,\n petsLoading,\n profileLoading,\n userInfo,\n },\n session: { isImpersonate, impersonatingAdminEmail, publicToken },\n } = store;\n\n useEffect(() => {\n if (selectedPetId) {\n dispatch(loadPetProfile());\n dispatch(loadMicrochipData({ petId: selectedPetId }));\n }\n }, [selectedPetId]);\n\n const profileVisited = useCallback(() => {\n if (!petProfileLoading && selectedPetId\n && Object.keys(petProfile).length\n && Object.keys(userInfo).length) {\n const {\n CustomerGuid,\n CustomerId,\n petOwnerFollowed,\n } = petProfile;\n const { LoginEmail, SocialInfo: { Username } } = userInfo;\n\n sendEvent(EV15({\n customerEmail: LoginEmail,\n customerGuid: CustomerGuid,\n customerName: Username,\n followStatus: petOwnerFollowed,\n ownPet: 'Yes',\n petId: selectedPetId,\n petOwnerId: CustomerId,\n }));\n }\n }, [selectedPetId, petProfile, petProfileLoading, userInfo]);\n\n useEffect(profileVisited, []);\n\n const pet = useMemo(() => {\n if (!pets) {\n return {};\n }\n\n return pets\n .find((element) => element.Id === Number(selectedPetId));\n }, [pets, selectedPetId]);\n\n const petPolicy = useMemo(() => {\n const foundPet = allPets\n .find((petValue) => petValue.PetId === Number(selectedPetId));\n\n if (foundPet && pet && foundPet.policies) {\n const foundPolicy = foundPet.policies\n .find((policy) => policy.Number === pet.PolicyNumber) || {};\n if (foundPolicy && policiesOverView) {\n const policyOverview = policiesOverView\n .find((value) => value.PetInformation.PolicyNumber\n === pet.PolicyNumber) || {};\n return {\n ...foundPolicy,\n ...policyOverview,\n };\n }\n }\n\n return null;\n }, [allPets, pet, policiesOverView, selectedPetId]);\n\n const { policyBrandName } =\n usePolicyBrand({ policyNumber: pet?.PolicyNumber });\n\n const isFigo = useMemo(() => !!(petPolicy && petPolicy.Number),\n [petPolicy]);\n\n const familyMembers = useMemo(() => {\n if (!pets) {\n return [];\n }\n\n return pets\n .reduce((petList, element) => {\n if (element.Id !== Number(selectedPetId)) {\n petList.push({\n petId: element.Id,\n petName: element.Name,\n petProfileImage: element.ImageUrl,\n petType: element.PetType,\n });\n }\n return petList;\n }, []);\n }, [pets, selectedPetId]);\n\n useEffect(() => {\n if (pet && pet.PolicyNumber) {\n dispatch(loadPolicyDetails(pet.PolicyNumber));\n }\n\n if (isFigo) {\n dispatch(loadPoliciesOverview());\n }\n }, [pet, dispatch, isFigo]);\n\n useEffect(() => {\n if (publicToken) {\n goToGetQuotesD2C({\n impersonate: isImpersonate,\n impersonatingAdminEmail,\n LoginEmail: userInfo.LoginEmail,\n publicToken,\n });\n\n dispatch(temporaryTokenReset());\n }\n }, [\n dispatch,\n userInfo.LoginEmail,\n publicToken,\n ]);\n\n function handleAddPetPhotoClick() {\n if (petInfoRef.current) {\n petInfoRef.current.handleAddPhoto();\n }\n }\n\n function handleAddMicrochipClick() {\n dispatch(microchipModalVisible({ isVisible: true }));\n }\n\n function handleOnClickInsurance() {\n const arrayData = isFigo ? allPets : multibrandPolicies || [];\n const petIndex = arrayData?.findIndex((data) => data.PetId\n === petProfile.Id);\n dispatch(petSelected(petIndex));\n dispatch(setSelectedPetId(Number(petProfile.Id)));\n dispatch(clearPolicyNotifications());\n dispatch(setSelectedPetIndex(petIndex));\n dispatch(billingPaymentReseted());\n const source = window.location.pathname;\n sendEvent(EV1({ pms, policyBrand: policyBrandName, source }));\n history.push(`${routes.INSURANCE}/${petProfile.Id}`);\n }\n\n const completeProfileSteps = useMemo(() => {\n const steps = [\n {\n isComplete: true,\n name: t('completeProfile.addPetDetails'),\n },\n {\n isComplete: !!petProfile.ImageUrl,\n name: t('completeProfile.addPetPhoto'),\n onClick: handleAddPetPhotoClick,\n },\n {\n isComplete: !!store.personalInformation.profile.CoverPicture,\n name: t('completeProfile.addFamilyPhoto'),\n onClick: handleOnAddFamilyCoverClick,\n },\n {\n isComplete: !!petProfile.MicrochipDto,\n name: t('completeProfile.addMicrochip'),\n onClick: handleAddMicrochipClick,\n },\n {\n isComplete: !!petProfile.Description,\n name: t('completeProfile.addPetBio'),\n onClick: () => handleOnEditPetClick({ isDescription: true }),\n },\n ];\n\n if (isFigo) {\n steps.push({\n isComplete: !!petProfile.PetTagInfoDto?.TagNumber,\n name: t('completeProfile.addFigoTag'),\n onClick: () => dispatch(figoTagModalShown()),\n });\n }\n\n const stepsSorted = steps.sort((prevStp, nextStp) => {\n if (prevStp.isComplete && !nextStp.isComplete) {\n return -1;\n }\n\n if (!prevStp.isComplete && nextStp.isComplete) {\n return 1;\n }\n\n return 0;\n });\n\n return stepsSorted;\n }, [\n dispatch,\n figoTagModalShown,\n isFigo,\n microchipData,\n petProfile.Description,\n petProfile.ImageUrl,\n petProfile.MicrochipDto,\n petProfile.PetTagInfoDto,\n store.personalInformation.profile.CoverPicture,\n TagNumber,\n ]);\n\n function getPercentageProgress() {\n const completedStepsList = completeProfileSteps\n .map((step) => step.isComplete)\n .filter((isCompleted) => isCompleted);\n\n return Math\n .trunc((completedStepsList.length / completeProfileSteps.length) * 100);\n }\n\n const renderMyPetsProgressContent = () => {\n const currentPercentageProgress = getPercentageProgress();\n const isProfileCompleted = currentPercentageProgress === 100;\n\n if (isProfileCompleted) {\n return <PetProfileCompleted petName={petProfile.Name} />;\n }\n\n return (\n <PetProfileProgressMyPets\n percentageComplete={currentPercentageProgress}\n petName={petProfile.Name}\n steps={completeProfileSteps}\n />\n );\n };\n\n const CardGrid = () => {\n const getContent = () => {\n const cardContent = [\n {\n href: '',\n iconSrc: insuranceIcon,\n onClick: handleOnClickInsurance,\n paragraph: t('completeProfile.insuranceParagraph'),\n title: t('completeProfile.insuranceTitle'),\n },\n {\n href: `${url}${routes.MY_VETS}`,\n iconSrc: myVetsIcon,\n paragraph: t('completeProfile.myVetsParagraph'),\n title: t('completeProfile.myVetsTitle'),\n },\n {\n href: `${url}${routes.MICROCHIP}`,\n iconSrc: microchipIcon,\n paragraph: t('completeProfile.microchipParagraph'),\n title: t('completeProfile.microchipTitle'),\n },\n ];\n\n if (isFigo) {\n cardContent.splice(3, 0, {\n href: `${url}${routes.PET_TAG}`,\n iconSrc: figoPetTagIcon,\n paragraph: t('completeProfile.figoPetTagParagraph'),\n title: t('completeProfile.figoPetTagTitle'),\n });\n }\n\n return cardContent;\n };\n\n return (\n <div className=\"My-pets-profile-grid-container\">\n {getContent().map((item) => (\n <PetProfileCard\n key={item.title}\n href={item.href}\n iconSrc={item.iconSrc}\n onClick={item.onClick}\n paragraph={item.paragraph}\n title={item.title}\n />\n ))}\n </div>\n );\n };\n\n const renderPetProfile = () => {\n if (\n petsLoading\n || profileLoading\n || loading\n || petProfileLoading\n ) {\n return (\n <div className=\"My-pets-loading-container\">\n <FigoLottie\n animationData={loadingSpinnerBlue}\n height={50}\n width={50}\n />\n </div>\n );\n }\n\n return (\n <div className=\"My-pets-profile-container\">\n <PetProfileInfoCardMyPets\n ref={petInfoRef}\n city={store.personalInformation.profile.City}\n familyMembers={familyMembers}\n familyPicture={store.personalInformation.profile.CoverPicture}\n handleOnAddFamilyCoverClick={handleOnAddFamilyCoverClick}\n handleOnEditPetClick={handleOnEditPetClick}\n petAge={petProfile.Age || '-'}\n petBio={petProfile.Description || null}\n petBirthday={petProfile.DisplayDOB?.split('T')[0] || null}\n petBreed={petProfile.BreedName || '-'}\n petBreedId={Number(petProfile.BreedId)}\n petGender={petProfile.Gender || PET_GENDER.MALE}\n petId={petProfile.Id}\n petName={petProfile.Name || ''}\n petType={petProfile.Type || PET_TYPE_ID.DOG}\n petWeight={petProfile.Weight || null}\n profilePicture={petProfile.ImageUrl || null}\n />\n\n <div className=\"My-pets-cards-container\">\n {renderMyPetsProgressContent()}\n\n <CardGrid />\n </div>\n\n <YoungPetModal isVisible={isYoungPetModalVisible} />\n\n <MicroChipModal />\n\n <PetTagModal isVisible={isFigoTagModalVisible} petId={selectedPetId} />\n </div>\n );\n };\n\n return (\n <>\n <Switch>\n <Route exact path={path}>\n <MyOwnPetsValidation />\n\n {renderPetProfile()}\n </Route>\n\n <Route path={`${path}${routes.MY_VETS}`}>\n <MyVetsComponent petName={petProfile.Name} />\n </Route>\n\n <Route path={`${path}${routes.MICROCHIP}`}>\n <MicrochipScreen />\n\n <MicroChipModal />\n </Route>\n\n <Route path={`${path}${routes.PET_TAG}`}>\n <PetTagScreen />\n\n <MicroChipModal />\n </Route>\n </Switch>\n </>\n );\n};\n\nexport { PetProfileScreenMyPets };\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { addPetRestarted, deletePet, refreshPets } from '../../actions';\n\nimport ModalContainer from '../common/ModalContainer';\nimport { ActionButton } from '../common/petCloud/ActionButton';\n\nimport closeIcon from '../../assets/close-button.svg';\n\nimport { MY_PETS } from '../navigation/routes.constants';\n\nimport { useMixpanel } from '../../hooks';\nimport { EV11 } from '../../services/mixpanel';\n\nimport './DeleteAPetModal.css';\n\nconst DeleteAPetModal = ({\n isInsured,\n name,\n onClose = () => { },\n petId,\n show,\n}) => {\n const { t } = useTranslation('myPets');\n const { loading, success } =\n useSelector(({ myPets }) => myPets, shallowEqual);\n const dispatch = useDispatch();\n const history = useHistory();\n const { sendEvent } = useMixpanel();\n\n function handleDeletePet() {\n sendEvent(EV11({ petId }));\n dispatch(deletePet(petId));\n }\n\n function handleDeletedPet() {\n onClose();\n dispatch(refreshPets());\n history.push(MY_PETS);\n dispatch(addPetRestarted());\n }\n\n return (\n <ModalContainer show={show}>\n <div className=\"Delete-a-pet-modal-main-container\">\n <div className=\"Delete-a-pet-modal-header\">\n <h3>{t('DeletePetModal.deletePet')}</h3>\n\n <button\n className=\"Delete-a-pet-close-modal\"\n id=\"closeIconAddPetModal\"\n onClick={onClose}\n type=\"button\"\n >\n <img alt=\"Close\" src={closeIcon} />\n </button>\n </div>\n\n <p className=\"Delete-a-pet-modal-message\">\n {isInsured\n ? t('DeletePetModal.insuredPet')\n : t('DeletePetModal.confirmationMessage', { petName: name })}\n </p>\n\n <div className=\"Delete-a-pet-actions\">\n {isInsured ? (\n <ActionButton\n onClick={onClose}\n title={t('DeletePetModal.close')}\n />\n ) : (\n <>\n <ActionButton\n isDeleteButton\n loading={loading}\n onClick={handleDeletePet}\n onSuccess={handleDeletedPet}\n success={success}\n title={t('DeletePetModal.deleteButton')}\n />\n\n <ActionButton\n isSecondaryButton\n onClick={onClose}\n title={t('DeletePetModal.cancel')}\n />\n </>\n )}\n </div>\n </div>\n </ModalContainer>\n );\n};\n\nexport { DeleteAPetModal };\n","import React, { useState, useEffect, useMemo } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { PetProfileScreenMyPets } from './petProfile/PetProfileScreenMyPets';\nimport { ImageEditorMyPets }\nfrom '../common/imageEditorMyPets/ImageEditorMyPets';\nimport {\n addPetRestarted,\n changeProfilePicture,\n changeProfilePictureRestart,\n refreshPersonalInformation,\n removeCoverPicture,\n setSelectedPetId,\n} from '../../actions';\nimport './NavigationMyPets.css';\nimport './petProfile/FamilyCoverPicture.css';\nimport {\n PET_TYPE_ID,\n ADD_PET_MODAL_STEPS,\n PRODUCT_FAMILY,\n} from '../../constants';\nimport { MY_PETS } from '../navigation/routes.constants';\nimport { AddAPetModal } from './AddAPetModal';\nimport { DeleteAPetModal } from './DeleteAPetModal';\nimport { delay } from '../../services/utils';\nimport { CONTACT_US_STEPS }\nfrom '../sideMenu/contactUs/contactUs.constants';\nimport { ContactUsModal } from '../sideMenu/contactUs/ContactUsModal';\n\nconst NavigationMyPets = ({ contactUsVisible, setContactUsVisible }) => {\n const { t } = useTranslation('myPets');\n const dispatch = useDispatch();\n const history = useHistory();\n const [modalAddPetVisible, setModalAddPetVisible] = useState(false);\n const [modalAddFamilyCoverVisible, setModalAddFamilyCoverVisible] =\n useState(false);\n const [modalDeletePetVisible, setModalDeletePetVisible] = useState(false);\n const [petInformation, setPetInformation] = useState(null);\n const [initialStep, setInitialStep] =\n useState(ADD_PET_MODAL_STEPS.FIRST_STEP);\n const { id } = useParams();\n const store = useSelector(\n ({\n myPets,\n personalInformation,\n policies,\n }) => ({\n myPets,\n personalInformation,\n policies,\n }), shallowEqual,\n );\n\n const {\n myPets: { selectedPetId, petProfile },\n policies: { allPolicies },\n personalInformation: { pictureEditing },\n } = store;\n\n const isGPI = useMemo(() => {\n if (allPolicies && selectedPetId) {\n const actualPet = allPolicies\n .find((pet) => pet.PetInformation.PetId === Number(selectedPetId));\n return actualPet?.Policy.ProductFamilyId === PRODUCT_FAMILY.GPI;\n }\n return false;\n }, [selectedPetId, allPolicies]);\n\n const onContactUsOpen = () => {\n setContactUsVisible(true);\n };\n\n const onContactUsClose = () => {\n setContactUsVisible(false);\n };\n\n useEffect(() => {\n if (id) {\n dispatch(setSelectedPetId(id));\n }\n }, [id, dispatch]);\n\n function getPetInformation() {\n const { myPets: { breedData } } = store;\n const breedList = petProfile.Type === PET_TYPE_ID.DOG\n ? breedData.dogBreeds : breedData.catBreeds;\n\n let petBreed = breedList\n .find((breed) => breed.Name === petProfile.BreedName);\n\n if (!petBreed) {\n petBreed = {\n Id: petProfile.BreedId,\n IsDog: petProfile.Type === PET_TYPE_ID.DOG,\n Name: petProfile.BreedName,\n };\n }\n\n return {\n BreedInformation: petBreed,\n DateOfBirth: new Date(petProfile.DisplayDOB.split('.')[0]),\n isPetInsured: !!petProfile.PolicyNumber,\n PetType: petProfile.Type,\n ...petProfile,\n };\n }\n\n function handleOnEditPetClick({ isDescription = false }) {\n if (!Object.keys(petProfile).length) {\n return;\n }\n\n if (isDescription) {\n setInitialStep(ADD_PET_MODAL_STEPS.THIRD_STEP);\n }\n\n setPetInformation(getPetInformation());\n setModalAddPetVisible(true);\n }\n\n function handleOnAddFamilyCoverClick() {\n setModalAddFamilyCoverVisible(true);\n }\n\n function handleModalAddFamilyCoverClose() {\n setModalAddFamilyCoverVisible(false);\n }\n\n async function handleSaveFamilyCover(newImage) {\n const isCover = true;\n const imageBase64 = newImage.replace(/^data:(.*,)?/, '');\n\n dispatch(changeProfilePicture({ imageBase64, isCover }));\n }\n\n function handleSaveFamilyCoverSuccess() {\n setModalAddFamilyCoverVisible(false);\n dispatch(changeProfilePictureRestart());\n dispatch(refreshPersonalInformation());\n }\n\n function handleRemoveFamilyCover() {\n dispatch(removeCoverPicture());\n }\n\n function handleOnAddPetClose() {\n setInitialStep(ADD_PET_MODAL_STEPS.FIRST_STEP);\n setModalAddPetVisible(false);\n dispatch(addPetRestarted());\n }\n\n function openDeleteModal() {\n setModalDeletePetVisible(true);\n setModalAddPetVisible(false);\n }\n\n function closeDeleteModal() {\n setModalDeletePetVisible(false);\n\n if (allPolicies.length && allPolicies.length > 1) {\n const firstPetId = allPolicies[0].PetInformation.PetId;\n\n dispatch(setSelectedPetId(firstPetId));\n delay(1000).then(() => history.push(`${MY_PETS}/${firstPetId}`));\n }\n }\n\n function renderDeleteModal() {\n if (modalDeletePetVisible) {\n return (\n <DeleteAPetModal\n image={petInformation.ImageUrl}\n isInsured={petInformation.IsInsured}\n name={petInformation.Name}\n onClose={closeDeleteModal}\n petId={petInformation.Id}\n petTypeId={petInformation.PetType}\n show\n />\n );\n }\n\n return null;\n }\n\n function renderPetsContent() {\n return (\n <div>\n <PetProfileScreenMyPets\n handleOnAddFamilyCoverClick={handleOnAddFamilyCoverClick}\n handleOnEditPetClick={handleOnEditPetClick}\n />\n </div>\n );\n }\n\n return (\n <div className=\"My-pets-profile-content\">\n <AddAPetModal\n initialStep={initialStep}\n isGPI={isGPI}\n modalAddPetVisible={modalAddPetVisible}\n onCloseModalAddPet={handleOnAddPetClose}\n onContactUsClick={onContactUsOpen}\n onDelete={openDeleteModal}\n petInformation={petInformation}\n />\n\n {renderDeleteModal()}\n\n {modalAddFamilyCoverVisible && (\n <ImageEditorMyPets\n classContainer=\"Family-cover-picture-container\"\n classCropperContainer=\"Family-cover-picture-draggable-container\"\n classInputContainer=\"Family-cover-picture-draggable-container\"\n classRotateButtonsContainer=\"Family-cover-picture-rotate-buttons\"\n classSliderContainer=\"Family-cover-picture-slider-container\"\n error={pictureEditing.error ? t('errorPhoto') : ''}\n imageHeight={237}\n imageWidth={460}\n initialPicture={store.personalInformation.profile.CoverPicture}\n isSaving={pictureEditing.loading}\n onClose={handleModalAddFamilyCoverClose}\n onRemove={handleRemoveFamilyCover}\n onSave={handleSaveFamilyCover}\n onSuccess={handleSaveFamilyCoverSuccess}\n photoType={t('coverPicture')}\n round={false}\n saveSuccess={pictureEditing.success}\n show={modalAddFamilyCoverVisible}\n subtitle={t('addHeaderPhoto')}\n title={t('addFamilyPhoto')}\n />\n )}\n\n <ContactUsModal\n companyStep={CONTACT_US_STEPS.HOME}\n onClose={onContactUsClose}\n show={contactUsVisible}\n />\n\n {renderPetsContent()}\n </div>\n );\n};\n\nexport { NavigationMyPets };\n","export default __webpack_public_path__ + \"static/media/petcloud-paw.7f7892ae.svg\";","export default __webpack_public_path__ + \"static/media/petcloud-text.c165a52c.svg\";","export default __webpack_public_path__ + \"static/media/alert-circle.ce682ad9.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { getData } from '../../services/api';\nimport { IMPERSONATE_KEY } from '../../services/constants';\nimport { boolParse } from '../../services/utils';\n\nimport alertIcon from '../../assets/impersonate-banner/alert-circle.svg';\n\nimport './ImpersonateBanner.css';\n\nconst ImpersonateBanner = () => {\n const { t } = useTranslation('common');\n const isImpersonateLocalStorage = getData(IMPERSONATE_KEY);\n const showBanner = boolParse(isImpersonateLocalStorage).isBool;\n\n if (showBanner) {\n return (\n <div className=\"Impersonate-banner-main-container\">\n <img alt=\"\" src={alertIcon} />\n\n <h1>{t('impersonateBanner.title')}</h1>\n </div>\n );\n }\n\n return null;\n};\n\nexport { ImpersonateBanner };\n","import React from 'react';\nimport petCloudPaw from '../../assets/sideMenu/petcloud-paw.svg';\nimport petCloudText from '../../assets/sideMenu/petcloud-text.svg';\nimport { ImpersonateBanner } from './ImpersonateBanner';\n\nconst Header = ({ centered = false }) => (\n <div className=\"Main-header-container\">\n <div className=\"Main-header\">\n <div className={`Main-header-logo ${\n centered ? 'Main-header-centered' : ''}`}\n >\n <img alt=\"\" className=\"Main-header-paw\" src={petCloudPaw} />\n\n <img alt=\"\" src={petCloudText} />\n </div>\n </div>\n\n <ImpersonateBanner />\n </div>\n);\n\nexport default Header;\n","export default __webpack_public_path__ + \"static/media/error-dog.7b8bb071.svg\";","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { showGenericError } from '../../actions';\nimport { ContactUsModal } from '../sideMenu/contactUs/ContactUsModal';\nimport { CONTACT_US_STEPS }\nfrom '../sideMenu/contactUs/contactUs.constants';\n\nimport Header from '../navigation/Header';\nimport ErrorDogImage from '../../assets/error-dog.svg';\n\nimport './GenericError.css';\n\nconst GenericError = () => {\n const { t } = useTranslation('genericError');\n const dispatch = useDispatch();\n const history = useHistory();\n\n const store = useSelector(({\n personalInformation,\n }) => ({\n personalInformation,\n }), shallowEqual);\n\n const {\n personalInformation,\n } = store;\n\n const hasPersonalInformation =\n Object.keys(personalInformation.userInfo).length > 0;\n\n const [contactUsVisible, setContactUsVisible] = useState(false);\n\n useEffect(() => {\n dispatch(showGenericError(false));\n }, []);\n\n const onContactUsClick = () => {\n setContactUsVisible(true);\n };\n\n const onContactUsClose = () => {\n setContactUsVisible(false);\n };\n\n const goBack = () => {\n history.goBack();\n };\n\n return (\n <>\n {!hasPersonalInformation && <Header />}\n\n <div className=\"Generic-error-container\">\n {hasPersonalInformation && (\n <ContactUsModal\n companyStep={CONTACT_US_STEPS.HOME}\n onClose={onContactUsClose}\n show={contactUsVisible}\n />\n )}\n\n <div className=\"Generic-error-inner-container\">\n <img alt=\"\" className=\"Generic-error-image\" src={ErrorDogImage} />\n\n <h2 className=\"Generic-error-title\">{t('title')}</h2>\n\n <p className=\"Generic-error-message\">{t('message')}</p>\n\n {hasPersonalInformation && (\n <button\n className=\"Generic-error-button\"\n onClick={onContactUsClick}\n type=\"button\"\n >\n {t('buttonTitle')}\n </button>\n )}\n\n <button\n className=\"Generic-error-back\"\n onClick={goBack}\n type=\"button\"\n >\n {t('back')}\n </button>\n </div>\n </div>\n </>\n );\n};\n\nexport default GenericError;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport figoLogo from\n'../../assets/found-lost-pet/figo-logo-light-background.png';\nimport './HeaderCommon.css';\n\nconst HeaderCommon = ({\n hideSignIn = false,\n}) => {\n const { t } = useTranslation('foundLostPet');\n\n return (\n <div className=\"Figo-common-header-container\">\n <img\n alt=\"figoLogo\"\n className=\"Figo-common-header-logo\"\n src={figoLogo}\n />\n\n {!hideSignIn && (\n <div className=\"Figo-common-header-text-container\">\n <span className=\"Figo-common-header-title\">\n {t('haveAFigoAccount')}\n </span>\n\n <a className=\"Figo-common-header-sign-in\" href=\"/\">\n {t('signIn')}\n </a>\n </div>\n )}\n </div>\n );\n};\n\nexport default HeaderCommon;\n","export default \"data:image/png;base64,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\"","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { CONTACT_FIGO_URL } from '../../constants';\nimport crazyPatternIcon from '../../assets/found-lost-pet/pattern-bar.png';\n\nimport './FooterFoundLostPet.css';\n\nconst FooterFoundLostPet = () => {\n const { t } = useTranslation('foundLostPet');\n const currentYear = new Date().getFullYear();\n\n return (\n <>\n <img\n alt=\"crazy pattern\"\n className=\"Found-lost-pet-crazy-pattern-background\"\n src={crazyPatternIcon}\n />\n\n <div className=\"Footer-found-lost-pet-container\">\n <div className=\"Footer-found-lost-pet-have-question-container\">\n <span className=\"Footer-found-lost-pet-text\">\n {t('haveQuestions')} \n </span>\n\n <a\n className=\"Footer-found-lost-pet-contact-figo\"\n href={CONTACT_FIGO_URL}\n target=\"blank\"\n >\n {t('contactFigo')}\n </a>\n </div>\n\n <div className=\"Footer-found-lost-pet-copyright-container\">\n <span className=\"Footer-found-lost-pet-copyright-text\">\n {t('copyright', { currentYear })}\n </span>\n </div>\n </div>\n </>\n );\n};\n\nexport { FooterFoundLostPet };\n","export default \"data:image/png;base64,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\"","import React from 'react';\n\nimport './InputCapsule.css';\n\nconst InputCapsule = ({\n customStyleClass = '',\n error = '',\n maxLength = 10,\n onChange = () => { },\n placeholder = '',\n value = '',\n}) => {\n function onInputValueChange(event) {\n onChange(event);\n }\n\n return (\n <div className=\"Input-capsule-input-container-with-error\">\n <input\n className={`Input-capsule-input ${customStyleClass}`}\n maxLength={maxLength}\n onChange={onInputValueChange}\n placeholder={placeholder}\n type=\"text\"\n value={value}\n />\n\n {error ? <span>{error}</span> : null}\n </div>\n );\n};\n\nexport { InputCapsule };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport { PET_TYPE_ID } from '../../constants';\n\nimport datPlaceholder from '../../assets/billingPayments/cat-placeholder.png';\nimport dogPlaceholder from '../../assets/billingPayments/dog-placeholder.png';\n\nimport './FoundLostPetPetInformation.css';\n\nconst FoundLostPetPetInformation = ({ columnDesign = false }) => {\n const store = useSelector(({ foundPetLost }) => (foundPetLost), shallowEqual);\n const { lostPetData } = store;\n const { t } = useTranslation('foundLostPet');\n\n const petAge = lostPetData.PetAge;\n const petAddress = t('petBreedAndAddress',\n { breedName: lostPetData.BreedName, petCity: lostPetData.City });\n const petType = lostPetData.Type;\n const petProfilePicture = lostPetData.ImageUrl;\n const placeHolderPet =\n petType === PET_TYPE_ID.CAT ? datPlaceholder : dogPlaceholder;\n const petBiography = lostPetData.Note;\n const petName = lostPetData.PetName;\n\n if (columnDesign) {\n return (\n <>\n <img\n alt=\"petProfilePicture\"\n className=\"Figo-lost-pet-found-pet-picture\"\n src={petProfilePicture || placeHolderPet}\n />\n\n <span className=\"Figo-lost-pet-found-pet-name\">\n {petName}\n </span>\n\n <span className=\"Figo-lost-pet-found-pet-age\">\n {t('petAgeYearsOld', { petAge })}\n </span>\n\n <span className=\"Figo-lost-pet-found-pet-address\">\n {petAddress}\n </span>\n\n <span className={'Figo-lost-pet-found-pet-message-information '\n + `${petBiography ? '' : 'Gone'}`}\n >\n {petBiography}\n </span>\n </>\n );\n }\n\n return (\n <div className=\"Figo-lost-pet-found-pet-row\">\n <img\n alt=\"petProfilePicture\"\n className={'Figo-lost-pet-found-pet-picture '\n + 'Figo-lost-pet-found-pet-no-margin'}\n src={petProfilePicture || placeHolderPet}\n />\n\n <div className=\"Figo-lost-pet-found-pet-col\">\n <span\n className={'Figo-lost-pet-found-pet-name '\n + 'Figo-lost-pet-found-pet-no-margin'}\n >\n {petName}\n </span>\n\n <span className=\"Figo-lost-pet-found-pet-age\">\n {t('petAgeYearsOld', { petAge })}\n </span>\n\n <span className=\"Figo-lost-pet-found-pet-address\">\n {petAddress}\n </span>\n </div>\n </div>\n );\n};\n\nexport { FoundLostPetPetInformation };\n","export default __webpack_public_path__ + \"static/media/family.9c7692e6.png\";","import React from 'react';\nimport familyIcon from '../../assets/found-lost-pet/family.png';\n\nimport './FoundLostPetFamilyRow.css';\n\nconst FoundLostPetFamilyRow = () => (\n <div className=\"Figo-lost-pet-family-row\">\n <img alt=\"family\" src={familyIcon} />\n </div>\n);\n\nexport { FoundLostPetFamilyRow };\n","import React from 'react';\n\nimport './FoundLostPetContactFormInput.css';\n\nconst FoundLostPetContactFormInput = ({\n customInputType = 'text',\n customStyleClass = '',\n error = '',\n isMultiLineMessage = false,\n maxLength = 10,\n onChange = () => { },\n placeholder = '',\n value = '',\n}) => {\n function onInputValueChange(event) {\n onChange(event);\n }\n\n if (isMultiLineMessage) {\n return (\n <div className=\"Found-lost-pet-form-input-container-with-error\">\n <textarea\n className={`Found-lost-pet-form-input-multiline ${customStyleClass} ${\n error ? ' Found-lost-pet-form-input-invalid-field' : ''\n }`}\n inputMode={customInputType}\n maxLength={maxLength}\n onChange={onInputValueChange}\n placeholder={placeholder}\n type=\"text\"\n value={value}\n />\n\n <div className=\"Found-lost-pet-form-input-footer-container\">\n <span className=\"Found-lost-pet-form-input-error\">{error}</span>\n\n <span className=\"Found-lost-pet-form-input-counter\">\n {value.length}/{maxLength}\n </span>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"Found-lost-pet-form-input-container-with-error\">\n <input\n className={`Found-lost-pet-form-input ${customStyleClass} ${\n error ? ' Found-lost-pet-form-input-invalid-field' : ''}`}\n inputMode={customInputType}\n maxLength={maxLength}\n onChange={onInputValueChange}\n placeholder={placeholder}\n type=\"text\"\n value={value}\n />\n\n {error ? <span>{error}</span> : null}\n </div>\n );\n};\n\nexport { FoundLostPetContactFormInput };\n","import React, { useState, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\n\nimport { contactPetFamily, showGenericError } from '../../actions';\n\nimport {\n maskPhoneNumber,\n removeEmojis,\n validateNumbersOnly,\n} from '../../services/utils';\n\nimport LoadingButton from '../common/LoadingButton';\nimport { FoundLostPetContactFormInput } from './FoundLostPetContactFormInput';\nimport { FoundLostPetPetInformation } from './FoundLostPetPetInformation';\n\nimport './FoundLostPetContactForm.css';\n\nconst MAX_NAME = 60;\nconst MAX_PHONE = 10;\nconst MAX_MESSAGE = 500;\n\nconst FoundLostPetContactForm = () => {\n const { t } = useTranslation('foundLostPet');\n const store = useSelector(({ foundPetLost }) => (foundPetLost), shallowEqual);\n const dispatch = useDispatch();\n const [name, setName] = useState('');\n const [nameError, setNameError] = useState('');\n const [phone, setPhone] = useState('');\n const [phoneError, setPhoneError] = useState('');\n const [message, setMessage] = useState('');\n const [messageError, setMessageError] = useState('');\n const {\n isSendingMessage,\n lostPetTag,\n sendMessageAttempted,\n sendMessageSuccess,\n } = store;\n\n useEffect(() => {\n if (sendMessageAttempted) {\n if (!sendMessageSuccess) {\n dispatch(showGenericError(true));\n }\n }\n }, [sendMessageAttempted, sendMessageSuccess]);\n\n function onNameChanged(event) {\n const cleanValue = removeEmojis(event.target.value);\n if (cleanValue.trim().length <= MAX_NAME) {\n setName(cleanValue);\n setNameError('');\n }\n }\n\n function onPhoneChanged(event) {\n const { value } = event.target;\n const cleanText = value ? value.replace(/[()-\\s]/g, '') : '';\n const onlyNumbersValue = validateNumbersOnly(cleanText)\n ? cleanText\n : cleanText.replace(/\\D/g, '');\n\n if (onlyNumbersValue.length && onlyNumbersValue.length < MAX_PHONE) {\n setPhoneError(t('contactPetFamily.phoneError'));\n } else {\n setPhoneError('');\n }\n\n if (onlyNumbersValue.length <= MAX_PHONE) {\n setPhone(onlyNumbersValue);\n }\n }\n\n function onMessageChanged(event) {\n const cleanValue = removeEmojis(event.target.value);\n if (cleanValue.trim().length <= MAX_MESSAGE) {\n setMessage(cleanValue);\n setMessageError('');\n }\n }\n\n function handleSubmit(event) {\n event.preventDefault();\n let hasError = false;\n\n if (!name.length) {\n setNameError(t('requiredField'));\n hasError = true;\n }\n\n if (phoneError || phone.length < MAX_PHONE) {\n setPhoneError(t('contactPetFamily.phoneError'));\n hasError = true;\n }\n\n if (!message.length) {\n setMessageError(t('requiredField'));\n hasError = true;\n }\n\n if (hasError) {\n return;\n }\n\n dispatch(contactPetFamily({\n finderName: name,\n lostPetTag,\n message,\n phoneNumber: phone,\n }));\n }\n\n return (\n <form className=\"Found-lost-pet-contact-form-form\" onSubmit={handleSubmit}>\n <span className=\"Found-lost-pet-contact-form-title\">\n {t('contactPetFamily.title')}\n </span>\n\n <FoundLostPetPetInformation />\n\n <FoundLostPetContactFormInput\n customStyleClass=\"\"\n error={nameError}\n maxLength={50}\n onChange={onNameChanged}\n placeholder={t('contactPetFamily.nameLabel')}\n value={name}\n />\n\n <FoundLostPetContactFormInput\n customInputType=\"numeric\"\n customStyleClass=\"\"\n error={phoneError}\n maxLength={50}\n onChange={onPhoneChanged}\n placeholder={t('contactPetFamily.phoneLabel')}\n value={maskPhoneNumber(phone)}\n />\n\n <FoundLostPetContactFormInput\n customStyleClass=\"\"\n error={messageError}\n isMultiLineMessage\n maxLength={500}\n onChange={onMessageChanged}\n placeholder={t('contactPetFamily.messageLabel')}\n value={message}\n />\n\n <LoadingButton\n className={'Figo-lost-pet-found-rounded-button-base'\n + ' Found-lost-pet-contact-form-submit-button'}\n loading={isSendingMessage}\n text={t('contactPetFamily.textMyFamily')}\n type=\"submit\"\n />\n </form>\n );\n};\n\nexport { FoundLostPetContactForm };\n","import React, { useEffect, useState } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport {\n lostPetTagChanged,\n searchPetTag,\n searchPetTagReset,\n} from '../../actions';\n\nimport {\n CONTACT_FIGO_URL,\n LEARN_MORE_URL,\n} from '../../constants';\n\nimport LoadingButton from '../common/LoadingButton';\nimport HeaderCommon from '../common/HeaderCommon';\nimport { FooterFoundLostPet } from './FooterFoundLostPet';\nimport { InputCapsule } from '../common/inputFiles/InputCapsule';\nimport { FoundLostPetPetInformation } from './FoundLostPetPetInformation';\nimport { FoundLostPetFamilyRow } from './FoundLostPetFamilyRow';\nimport { FoundLostPetContactForm } from './FoundLostPetContactForm';\n\nimport { useLogoutAndRedirection } from '../../hooks/useLogoutAndRedirection';\n\nimport './FoundLostPet.css';\n\nconst FoundLostPet = () => {\n const store = useSelector(({ foundPetLost }) => (foundPetLost), shallowEqual);\n const {\n loadingLostPetData,\n lostPetData,\n lostPetDataError,\n lostPetTag,\n sendMessageAttempted,\n sendMessageSuccess,\n } = store;\n const dispatch = useDispatch();\n const [isContactPetFamilyOpen, setContactPetFamilyOpen] = useState(false);\n const [petTagError, setPetTagError] = useState('');\n const { t } = useTranslation('foundLostPet');\n\n useLogoutAndRedirection();\n\n useEffect(() => () => {\n dispatch(searchPetTagReset());\n }, []);\n\n const notFoundTagError = React.useMemo(() => (\n lostPetDataError?.length ? t('petTagError') : ''), [lostPetDataError]);\n\n function handlePetTagChanged(event) {\n const { target: { value } } = event;\n dispatch(lostPetTagChanged(value));\n if (value) {\n setPetTagError('');\n }\n }\n\n function handleSearchPetSubmit(event) {\n event.preventDefault();\n\n if (!lostPetTag) {\n setPetTagError(t('requiredField'));\n return;\n }\n\n setPetTagError('');\n dispatch(searchPetTag({ petTag: lostPetTag }));\n }\n\n function handleTextMyFamilyClick() {\n setContactPetFamilyOpen(true);\n }\n\n const renderContent = () => {\n const petHasBeenFound = !!lostPetData;\n const messageSentSuccessfully = sendMessageAttempted && sendMessageSuccess;\n\n if (petHasBeenFound) {\n const petName = lostPetData.PetName;\n\n if (messageSentSuccessfully) {\n return (\n <div className=\"Figo-lost-pet-content-container\">\n <FoundLostPetFamilyRow />\n\n <span className=\"Figo-lost-pet-found-title\">{t('thankYou')}</span>\n\n <p className=\"Figo-lost-pet-gratitude\">\n {t('gratitude', {\n interpolation: { escapeValue: false },\n petName,\n })}\n\n <a\n className=\"Figo-lost-pet-contact\"\n href={CONTACT_FIGO_URL}\n target=\"blank\"\n >\n {t('contactFigo')}.\n </a>\n </p>\n\n <a\n className={'btn btn-info Figo-lost-pet-found-rounded-button-base '\n + ' Figo-lost-pet-learn-more'}\n href={LEARN_MORE_URL}\n >\n {t('learnMore')}\n </a>\n </div>\n );\n }\n\n if (isContactPetFamilyOpen) {\n return (\n <div className=\"Figo-lost-pet-content-container\">\n <FoundLostPetFamilyRow />\n\n <FoundLostPetContactForm />\n </div>\n );\n }\n\n return (\n <div className=\"Figo-lost-pet-content-container\">\n <FoundLostPetFamilyRow />\n\n <h2 className=\"Figo-lost-pet-found-title\">\n {t('youFoundMe')}\n </h2>\n\n <FoundLostPetPetInformation columnDesign />\n\n <LoadingButton\n className={'Figo-lost-pet-found-rounded-button-base '\n + 'Figo-lost-pet-found-pet-text-my-family-button'}\n onClick={handleTextMyFamilyClick}\n text={t('textMyFamily')}\n textStyle=\"Figo-lost-pet-found-pet-text-my-family-text\"\n />\n </div>\n );\n }\n\n return (\n <div className=\"Figo-lost-pet-content-container\">\n <FoundLostPetFamilyRow />\n\n <div className=\"Figo-lost-pet-form-container\">\n <span className=\"Found-lost-pet-content-title\">\n {t('foundLostPet')}\n </span>\n\n <span className=\"Found-lost-pet-content-subtitle\">\n {t('foundLostPetContent')}\n </span>\n\n <form\n className=\"Found-lost-pet-inputs-container\"\n onSubmit={handleSearchPetSubmit}\n >\n <InputCapsule\n customStyleClass=\"Found-lost-pet-input-tag\"\n error={notFoundTagError || petTagError}\n maxLength={14}\n onChange={handlePetTagChanged}\n placeholder={t('enterTagNumberPlaceholder')}\n value={lostPetTag}\n />\n\n <LoadingButton\n className={'Figo-lost-pet-found-rounded-button-base '\n + 'Found-lost-pet-button-search'}\n loading={loadingLostPetData}\n onClick={handleSearchPetSubmit}\n text={t('searchTag')}\n />\n </form>\n </div>\n </div>\n );\n };\n\n return (\n <div className=\"Found-lost-pet-main-container\">\n <HeaderCommon />\n\n {renderContent()}\n\n <FooterFoundLostPet />\n </div>\n );\n};\n\nexport { FoundLostPet };\n","import { useEffect, useMemo } from 'react';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { useB2CInfo } from './useB2CInfo';\n\n/**\n * Use this hook for do logout and then redirect to the current\n * location (query params are supported if exists) on public router.\n */\nconst useLogoutAndRedirection = () => {\n const store = useSelector(({ session }) => ({ session }), shallowEqual);\n const history = useHistory();\n const { logoutB2C } = useB2CInfo();\n\n const fullCurrentPath = useMemo(() => {\n if (history.location.search) {\n return `${history.location.pathname}${history.location.search}`;\n }\n\n return history.location.pathname;\n }, [history.location]);\n\n useEffect(() => {\n const hasSession = !!store.session.userInfo;\n if (hasSession) {\n logoutB2C();\n history.replace(fullCurrentPath);\n }\n }, []);\n};\n\nexport { useLogoutAndRedirection };\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector, shallowEqual, useDispatch } from 'react-redux';\nimport { acceptTermsOfService } from '../../actions';\nimport ModalContainer from '../common/ModalContainer';\nimport { ActionButton } from '../common/petCloud/ActionButton';\nimport './AcceptTermsOfServiceModal.css';\n\nconst AcceptTermsOfServiceModal = () => {\n const { t } = useTranslation('common');\n const store = useSelector(({ session }) => ({ session }), shallowEqual);\n const dispatch = useDispatch();\n const [visible, setVisible] = useState(false);\n const privacyPolicyLink = store.session.privacyPolicyLink || '/';\n const termsOfServiceLink = store.session.termsOfServiceLink || '/';\n const { userHasTermsOfService } = store.session;\n const firstPart = t('acceptTermsOfServiceModal.messages.firstPart');\n const termsOfService = t('acceptTermsOfServiceModal.title');\n const connector = t('acceptTermsOfServiceModal.messages.connector');\n const ending = t('acceptTermsOfServiceModal.messages.ending');\n const privacyPolicy = t('acceptTermsOfServiceModal.privacyPolicy');\n const buttonText = t('acceptTermsOfServiceModal.buttonText');\n\n const onClose = useCallback(() => {\n dispatch(acceptTermsOfService());\n setVisible(false);\n }, [dispatch]);\n\n useEffect(() => {\n setVisible(!userHasTermsOfService);\n }, [userHasTermsOfService]);\n\n function greenText({ content, link }) {\n return (\n <a\n className=\"Accept-terms-modal-content-green\"\n href={link}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {content}\n </a>\n );\n }\n\n return (\n <ModalContainer\n cancelable\n handleOutClick={onClose}\n id=\"acceptTermsOfServiceModal\"\n show={visible}\n >\n <div className=\"Accept-terms-modal-container\">\n <span className=\"Accept-terms-modal-title\">{termsOfService}</span>\n\n <span className=\"Accept-terms-modal-content\">\n {firstPart} {greenText({\n content: termsOfService,\n link: termsOfServiceLink,\n })} \n {connector} {greenText({\n content: privacyPolicy,\n link: privacyPolicyLink,\n })}{ending}\n </span>\n\n <ActionButton\n className=\"Accept-terms-modal-close-button\"\n onClick={onClose}\n title={buttonText}\n />\n </div>\n </ModalContainer>\n );\n};\n\nexport { AcceptTermsOfServiceModal };\n","export default __webpack_public_path__ + \"static/media/arrow-down-disabled.e9758fe4.svg\";","import React, { Component } from 'react';\nimport Lottie from 'react-lottie';\nimport Button from 'react-bootstrap/Button';\nimport loadingSpinner from '../../assets/loading-spinner.json';\nimport loadingCheck from '../../assets/loading-check.json';\nimport './SuccessButton.css';\n\nclass SuccessButton extends Component {\n constructor(props) {\n super(props);\n this.state = {\n buttonContent: {\n text: props.text,\n },\n className: props.className,\n loading: false,\n };\n }\n\n handleAnimationEnd = () => {\n if (this.state.buttonContent\n && this.state.buttonContent.animation === loadingCheck) {\n if (this.fadeOutTimer) {\n clearTimeout(this.fadeOutTimer);\n }\n\n if (!this.props.disableFadeOut) {\n this.setState({ className: 'animated fadeOut' });\n this.fadeOutTimer = setTimeout(() => this.handleFadeOut(), 1000);\n } else {\n this.handleFadeOut();\n }\n }\n };\n\n handleFadeOut() {\n if (this.props.onAnimationEnd) {\n this.props.onAnimationEnd();\n this.setState({ loading: false });\n }\n }\n\n getButtonSize = (size) => {\n let width = 30;\n let height = 26;\n\n if (size === 'lg') {\n width = 36;\n height = 36;\n }\n\n return { height, width };\n };\n\n startSuccess() {\n this.setState({\n buttonContent: {\n animation: loadingCheck,\n loop: false,\n },\n });\n }\n\n startLoading() {\n this.setState({\n buttonContent: {\n animation: loadingSpinner,\n loop: true,\n },\n loading: true,\n });\n }\n\n reset() {\n const { text, className } = this.props;\n const buttonContent = { text };\n\n this.setState({ buttonContent, className, loading: false });\n }\n\n renderButtonContent() {\n const { buttonContent } = this.state;\n const { size, text } = this.props;\n\n if (buttonContent.animation) {\n const defaultOptions = {\n animationData: buttonContent.animation,\n autoplay: true,\n loop: buttonContent.loop,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n },\n };\n\n const { height, width } = this.getButtonSize(size);\n\n return (\n <Lottie\n eventListeners={[{\n callback: this.handleAnimationEnd,\n eventName: 'complete',\n }]}\n height={height}\n options={defaultOptions}\n width={width}\n />\n );\n } if (buttonContent.text) {\n return buttonContent.text;\n }\n\n return text;\n }\n\n renderCancelButton() {\n if (!this.props.cancelable || this.state.loading) {\n return null;\n }\n\n return (\n <Button\n className=\"Cancel-button Button-mint\"\n onClick={this.props.onCancelClick}\n variant=\"light\"\n >\n {this.props.cancelText}\n </Button>\n );\n }\n\n render() {\n return (\n <div className=\"Success-button-container\">\n {this.renderCancelButton()}\n\n <Button\n {...this.props}\n className={`${this.props.inactive\n ? 'Save-button-inactive'\n : 'Save-button'} ${this.state.className}`}\n >\n {this.renderButtonContent()}\n </Button>\n </div>\n );\n }\n}\n\nexport { SuccessButton };\n","export default __webpack_public_path__ + \"static/media/burger-menu.75e8db52.svg\";","import React, { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport { doNothing } from '../../services/utils';\nimport { GenericModal } from './petCloud';\n\nconst URGENT_MESSAGES_KEY = 'urgent-messages';\n\nexport const UrgentMessages = () => {\n const { t } = useTranslation('common');\n const store = useSelector(({ common }) => common);\n const [show, setShow] = useState(false);\n const { applicationMessages } = store;\n\n const onClose = () => {\n setShow(false);\n };\n\n React.useEffect(() => {\n if (!applicationMessages?.Id) {\n return;\n }\n\n try {\n const { Id } = applicationMessages;\n\n const lastMessagesRaw = sessionStorage.getItem(URGENT_MESSAGES_KEY);\n const lastMessages = lastMessagesRaw ? JSON.parse(lastMessagesRaw) : [];\n const isNew = !lastMessages.includes(Id);\n\n if (isNew) {\n setShow(true);\n sessionStorage\n .setItem(URGENT_MESSAGES_KEY, JSON.stringify([...lastMessages, Id]));\n }\n } catch (_) {\n doNothing();\n }\n }, [applicationMessages]);\n\n return (\n <GenericModal\n handleOutClick={onClose}\n onPrimaryClick={onClose}\n primaryButtonText={t('okButton')}\n show={show}\n title={applicationMessages?.Title}\n >\n <p>{applicationMessages?.MessageBody}</p>\n </GenericModal>\n );\n};\n","import React from 'react';\n// import { Link, Route, Switch, withRouter } from 'react-router-dom';\nimport { Route, Redirect, Switch, withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Image from 'react-bootstrap/Image';\n// import Nav from 'react-bootstrap/Nav';\nimport Row from 'react-bootstrap/Row';\n\nimport { HomeScreen } from '../home';\nimport PageNotFound from '../pageNotFound/PageNotFound';\nimport SideMenu from '../sideMenu/SideMenu';\nimport InsuranceNavigation from '../insurance/InsuranceNavigation';\nimport { FileClaimbotScreen } from '../claims/claimbot/FileClaimbotScreen';\nimport InboxAndDocsScreen from '../inboxAndDocs/InboxAndDocsScreen';\nimport { MyAccountNavigation } from '../myAccount/MyAccountNavigation';\nimport { NavigationMyPets } from '../myPets/NavigationMyPets';\nimport GenericError from '../genericError/GenericError';\nimport { FoundLostPet } from '../foundLostPet/FoundLostPet';\nimport { AcceptTermsOfServiceModal } from '../settings';\n\nimport menuIcon from '../../assets/sideMenu/burger-menu.svg';\nimport * as routes from './routes.constants';\nimport Header from './Header';\nimport './SessionRouter.css';\nimport { useB2CInfo } from '../../hooks';\nimport { getData } from '../../services/api';\nimport { CUSTOMER_API_TOKEN } from '../../services/constants';\nimport { UrgentMessages } from '../common/UrgentMessages';\n\nconst sideMenuMinMediaQuery = { lg: '(max-width: 1024px)' };\n\nclass SessionRouter extends React.Component {\n constructor(props) {\n super(props);\n this.screenWindow = window;\n this.screenMatch = this.screenWindow.matchMedia(sideMenuMinMediaQuery.lg);\n this.screenMatch.addListener(this.onScreenSizeChange);\n\n this.state = {\n contactUsVisible: false,\n leftMenuOpen: !this.screenMatch.matches,\n myAccountMenuOpen: false,\n };\n\n const hasToken = getData(CUSTOMER_API_TOKEN);\n\n if (!hasToken) {\n this.props.getAllTokens();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.showGenericError && this.props.showGenericError) {\n this.props.history.push(routes.ERROR);\n }\n\n if (this.props.isExpired && prevProps.isExpired) {\n this.props.getAllTokens();\n }\n }\n\n toggleSidebar = () => {\n this.setState((prevState) => ({ leftMenuOpen: !prevState.leftMenuOpen }));\n };\n\n onScreenSizeChange = (event) => {\n this.setState(() => ({ leftMenuOpen: !event.matches }));\n };\n\n closeMenu = () => {\n if (this.screenMatch.matches && this.state.leftMenuOpen) {\n this.setState(() => ({ leftMenuOpen: false }));\n }\n };\n\n toggleMyAccountMenu = () => {\n this.addDOMEventListener();\n this.setState((prevState) => ({\n myAccountMenuOpen: !prevState.myAccountMenuOpen,\n }));\n };\n\n setContactUsVisible = (visible) => {\n this.setState(() => ({\n contactUsVisible: visible,\n }));\n };\n\n comingSoon = () => <p>Coming Soon</p>;\n\n render() {\n const { leftMenuOpen, contactUsVisible } = this.state;\n\n return (\n <>\n <Header />\n\n <AcceptTermsOfServiceModal />\n\n <div className=\"Layout\" id=\"layout\">\n <div className={`${leftMenuOpen ? 'open' : 'closed'}`} id=\"left\">\n <Image\n className={'Side-menu-burger-icon'\n + `${leftMenuOpen ? ' Side-menu-burger-open' : ''}`}\n onClick={this.toggleSidebar}\n src={menuIcon}\n />\n\n <div\n className={`sidebar ${leftMenuOpen ? 'open' : 'closed'}`\n + ' Sidebar'}\n >\n <div className=\"content\">\n <SideMenu\n contactUsVisible={contactUsVisible}\n onMenuItemPress={this.closeMenu}\n setContactUsVisible={this.setContactUsVisible}\n />\n </div>\n </div>\n </div>\n\n <Row\n className=\"Sidebar-overlay d-xl-none\"\n onClick={this.toggleSidebar}\n style={{ display: `${leftMenuOpen ? 'initial' : 'none'}` }}\n />\n\n <div className=\"Main-content\">\n\n <div className=\"Main-content\">\n <div className=\"Content\">\n <Switch>\n <Route exact path={['/', routes.HOME]}>\n <HomeScreen />\n </Route>\n\n <Route path={[routes.B2C_TOKEN_REGISTER]}>\n <Redirect to=\"/\" />\n </Route>\n\n <Route path={routes.INBOX_DOCS}>\n <InboxAndDocsScreen />\n </Route>\n\n <Route path={routes.MY_ACCOUNT}>\n <MyAccountNavigation />\n </Route>\n\n <Route exact path={routes.MY_PETS}>\n <Redirect to=\"/insurance\" />\n </Route>\n\n <Route path={[`${routes.MY_PETS}/:id`, routes.MY_PETS]}>\n <NavigationMyPets\n contactUsVisible={contactUsVisible}\n setContactUsVisible={this.setContactUsVisible}\n />\n </Route>\n\n <Route path={[routes.INSURANCE, routes.CHANGE_COVERAGE]}>\n <InsuranceNavigation />\n </Route>\n\n <Route path={routes.CLAIMS}>\n <InsuranceNavigation />\n </Route>\n\n <Route path={`${this.props.match.path}/details`}>\n <InsuranceNavigation />\n </Route>\n\n <Route path={routes.FILE_CLAIMBOT}>\n <FileClaimbotScreen />\n </Route>\n\n {/* TODO uncomment when is ready to prod */}\n {/* <Route path=\"/vets\">\n {this.comingSoon}\n </Route> */}\n\n <Route path={routes.ERROR}>\n <GenericError />\n </Route>\n\n <Route exact path={routes.FOUND_LOST_PET}>\n <FoundLostPet />\n </Route>\n\n <Route path=\"*\">\n <PageNotFound />\n </Route>\n </Switch>\n </div>\n </div>\n </div>\n </div>\n\n <UrgentMessages />\n </>\n );\n }\n}\n\nfunction mapStateToProps(state) {\n const { isExpired, userInfo } = state.session;\n const { showGenericError } = state.common;\n\n return { isExpired, showGenericError, userInfo };\n}\n\nconst Component = connect(mapStateToProps)(SessionRouter);\n\nconst SessionRouterApp = (props) => {\n const { getAllTokens } = useB2CInfo();\n\n return <Component {...props} getAllTokens={getAllTokens} />;\n};\n\nexport default withRouter(SessionRouterApp);\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useIsAuthenticated, useMsalAuthentication } from '@azure/msal-react';\nimport { InteractionType } from '@azure/msal-browser';\nimport { jwtDecode } from 'jwt-decode';\n\nimport { doLogin, refreshPets, startupFromCache } from '../../actions';\nimport {\n useB2CInfo,\n useCustomerV1T176413,\n useMixpanel,\n useQuery,\n} from '../../hooks';\n\nimport FigoLoadingOverlay from '../common/FigoLoadingOverlay';\n\nimport { b2cPolicies, loginRequestScopes } from '../../authConfigB2C';\n\nimport { getData, saveData } from '../../services/api';\nimport {\n IMPERSONATE_EMAIL,\n API_TOKEN,\n USER_INFO_KEY,\n} from '../../services/constants';\n\nimport './LoginScreen.css';\nimport { EV_LOGIN, MIXPANEL_LOGIN_EVENTS } from '../../services/mixpanel';\nimport { createLogAuth } from '../../sagas/session';\n\nconst SCOPES = loginRequestScopes;\n\nconst LoginScreen = ({ registerToken, isImpersonate = false }) => {\n const store = useSelector(({ session }) => session, shallowEqual);\n const [email, setEmail] = useState('');\n const [mount, setMount] = useState(false);\n const dispatch = useDispatch();\n const query = useQuery();\n const { sendEvent } = useMixpanel();\n const customerV1T176413 = useCustomerV1T176413();\n\n const loginHintParam = query.get('login_hint');\n const targetEmailParam = query.get('target_email');\n\n const requestOptions = isImpersonate\n ? {\n ...SCOPES,\n ...b2cPolicies.authorities.impersonation,\n extraQueryParameters: {\n targetEmail: targetEmailParam,\n },\n loginHint: loginHintParam,\n }\n : {\n ...SCOPES,\n ...b2cPolicies.authorities.signUpSignIn,\n };\n\n const { getAllTokens, logoutB2C } = useB2CInfo();\n const isAuthenticated = useIsAuthenticated();\n const b2cAuthentication =\n useMsalAuthentication(InteractionType.Redirect, requestOptions);\n\n const { result } = b2cAuthentication;\n\n const { loading, privateToken } = store;\n\n useEffect(() => {\n if (email) {\n setEmail(email.trim());\n }\n }, [email]);\n\n useEffect(() => {\n if (loginHintParam) {\n saveData(IMPERSONATE_EMAIL, loginHintParam);\n }\n }, [loginHintParam]);\n\n useEffect(() => {\n if (b2cAuthentication.error) {\n const logOutAndLog = async () => {\n await createLogAuth({\n dataDogTag: 'b2cAuthentication',\n error: b2cAuthentication.error,\n mixpanelKey: MIXPANEL_LOGIN_EVENTS.getApiTokens,\n useCustomerAPIV1: customerV1T176413,\n });\n\n logoutB2C();\n };\n\n logOutAndLog();\n }\n }, [b2cAuthentication.error, isAuthenticated]);\n\n const signInUser = useCallback((tokenResponse) => {\n let impersonateToken = null;\n\n if (tokenResponse) {\n impersonateToken = tokenResponse?.account\n ?.idTokenClaims?.impersonatedUser;\n }\n\n let hasCustomerId = false;\n let decoded = {};\n\n try {\n decoded = jwtDecode(tokenResponse.accessToken);\n hasCustomerId = decoded.petCloudCustomerId > 0\n || decoded.impersonatedUserPetCloudCustomerId > 0;\n } catch (error) {\n createLogAuth({\n dataDogTag: 'Error to decode jwt',\n error: error?.message,\n mixpanelKey: MIXPANEL_LOGIN_EVENTS.error,\n useCustomerAPIV1: customerV1T176413,\n });\n }\n\n if (!hasCustomerId) {\n createLogAuth({\n dataDogTag: 'Invalid customer Id',\n email: decoded?.email,\n error: `petCloudCustomerId: 0 on login ${decoded?.email}, `\n + `Token CustomerID ${tokenResponse.accessToken}`,\n mixpanelKey: MIXPANEL_LOGIN_EVENTS.invalidCustomerId,\n useCustomerAPIV1: customerV1T176413,\n });\n }\n\n if (tokenResponse && hasCustomerId) {\n dispatch(doLogin({\n b2cToken: tokenResponse.accessToken || tokenResponse.idToken,\n dispatch,\n email,\n isImpersonate: impersonateToken,\n }));\n } else {\n logoutB2C();\n }\n }, [email]);\n\n useEffect(() => {\n if (result) {\n signInUser(result);\n }\n }, [result]);\n\n useEffect(() => {\n if (!mount) {\n setMount(true);\n }\n\n if (isAuthenticated || registerToken || !mount) {\n return;\n }\n\n sendEvent(EV_LOGIN({\n email: '',\n mixpanelEvent: MIXPANEL_LOGIN_EVENTS.b2cStarted,\n }));\n }, [isAuthenticated, mount]);\n\n useEffect(() => {\n const sUserInfo = getData(USER_INFO_KEY);\n\n const startFromCache = async () => {\n await getAllTokens();\n\n const userInfo = JSON.parse(sUserInfo);\n const token = getData(API_TOKEN);\n\n await dispatch(startupFromCache({ privateToken: token, userInfo }));\n dispatch(refreshPets());\n };\n\n if (isAuthenticated && !privateToken && sUserInfo) {\n startFromCache();\n }\n }, [dispatch, isAuthenticated, privateToken]);\n\n return (\n <>\n <FigoLoadingOverlay visible={!result || loading} />\n </>\n );\n};\n\nexport { LoginScreen };\n","export default __webpack_public_path__ + \"static/media/pet-patient.67f7b0b5.png\";","import React, { useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport {\n useAlphabeticalSortedPetsWithPolicy,\n usePostMessage,\n useQuery,\n} from '../../hooks';\nimport { getPrivateToken } from '../../actions';\nimport FigoLoadingOverlay from '../common/FigoLoadingOverlay';\nimport petPatient from '../../assets/updatePayment/pet-patient.png';\nimport { POLICY_STATUS } from '../../constants';\nimport BillingInfoScreen\nfrom '../myAccount/BillingAndPayments/BillingInfoScreen';\n\nimport './UpdatePaymentMethodScreen.css';\n\nconst UpdatePaymentMethodScreen = () => {\n const query = useQuery();\n const publicToken = query.get('publicToken');\n const dispatch = useDispatch();\n const postMessage = usePostMessage();\n const policyNumberParam = query.get('policyNumber');\n const petIdMobile = query.get('petId');\n const { t } = useTranslation(['paymentMethod', 'settingsScreen']);\n const store = useSelector(({\n billingPayments,\n claims,\n policies,\n session,\n settings,\n }) => ({\n billingPayments,\n claims,\n policies,\n session,\n settings,\n }), shallowEqual);\n const { billingPayments: {\n updatingPaymentMethod,\n },\n settings: { featureFlags } } = store;\n const [localLoading, setLocalLoading] = useState(false);\n\n const loadingContent = useMemo(() => store.session.loading\n || store.policies.loading\n || updatingPaymentMethod, [\n store.session.loading,\n store.policies.loading,\n updatingPaymentMethod,\n ]);\n\n useEffect(() => {\n if (loadingContent || localLoading) {\n return;\n }\n\n postMessage('loading-finished');\n setLocalLoading(true);\n }, [loadingContent, localLoading]);\n\n useEffect(() => {\n if (!store.session.privateToken && publicToken && !featureFlags.loading) {\n dispatch(getPrivateToken({ publicToken }));\n }\n }, [\n dispatch,\n featureFlags.loading,\n publicToken,\n store.session.privateToken,\n ]);\n\n const getAlphabeticalSortedPets = useAlphabeticalSortedPetsWithPolicy()\n .filter((pet) => pet.policies.filter((petPolicy) => petPolicy.Status\n === POLICY_STATUS.active || petPolicy.Status === POLICY_STATUS.future)\n .length);\n\n const selectedPet = useMemo(() => {\n if (!getAlphabeticalSortedPets[0]) {\n return {};\n }\n\n let currentPet = getAlphabeticalSortedPets[0];\n\n if (petIdMobile) {\n const petFound = getAlphabeticalSortedPets\n .find((pet) => pet.PetId === Number(petIdMobile));\n\n if (petFound) {\n currentPet = petFound;\n }\n }\n\n return currentPet;\n }, [getAlphabeticalSortedPets, petIdMobile]);\n\n const selectedPolicy = useMemo(() => {\n if (!selectedPet || !selectedPet.policies) {\n return '';\n }\n\n if (policyNumberParam && publicToken) {\n const policyFound = selectedPet\n .policies.find((policy) => (policy.Status\n === POLICY_STATUS.active || POLICY_STATUS.future)\n && policy.Number === policyNumberParam);\n if (policyFound) {\n const { Number: policyNumber } = policyFound;\n return policyNumber;\n }\n }\n\n const { Number: policyNumber } = selectedPet\n .policies.find((policy) => policy.Status === POLICY_STATUS.active\n || POLICY_STATUS.future);\n\n return policyNumber;\n }, [selectedPet, policyNumberParam, publicToken]);\n\n const NoActivePolicies = () => (\n <div className=\"Update-payment-method-no-policies-container\">\n <img alt=\"pet-patient\" src={petPatient} />\n\n <span>{t('noActivePolicies')}</span>\n </div>\n );\n\n function renderContent() {\n if (selectedPolicy && !loadingContent) {\n // TODO: fix petId and policyId on query params with support old version\n // eslint-disable-next-line max-len\n // @link(https://petpartnersinc.visualstudio.com/Pet%20Cloud/_workitems/edit/123752)\n return (\n <BillingInfoScreen\n policyNumber={selectedPolicy}\n />\n );\n }\n\n return <FigoLoadingOverlay visible />;\n }\n\n return getAlphabeticalSortedPets.length || loadingContent\n ? renderContent() : <NoActivePolicies />;\n};\n\nexport { UpdatePaymentMethodScreen };\n","import React, { useEffect } from 'react';\nimport { Redirect, withRouter } from 'react-router-dom';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { convertImpersonateCustomerId } from '../../actions';\n\nconst RedirectCustomerId = ({ isSessionActive, location }) => {\n const dispatch = useDispatch();\n const store = useSelector(({ session }) => ({ session }), shallowEqual);\n const {\n impersonateCustomerId: customerId,\n isImpersonate,\n } = store.session;\n const customerIdParam = new URLSearchParams(location.search)\n .get('customerId');\n\n useEffect(() => {\n if (customerIdParam) {\n dispatch(convertImpersonateCustomerId(customerIdParam));\n }\n }, [customerIdParam]);\n\n const handleImpersonateRedirect = () => {\n if (customerId && isImpersonate && !isSessionActive) {\n return (<Redirect to={`/impersonate/${customerId}`} />);\n }\n return <Redirect to=\"/\" />;\n };\n\n return (handleImpersonateRedirect());\n};\n\nexport default withRouter(RedirectCustomerId);\n","export default __webpack_public_path__ + \"static/media/app-icon.2c891c4e.png\";","import React, { useEffect, useState } from 'react';\n\nimport { APP_STORE_URL, GOOGLE_PLAY_URL } from '../../constants';\nimport { delay } from '../../services/utils';\n\nimport './bannerApp.css';\n\nimport FigoIcon from '../../assets/login/app-icon.png';\n\nconst BannerApp = ({ appName, buttonText, title }) => {\n const [classShow, setClassShow] = useState('');\n const [isAndroid, setAndroid] = useState(false);\n const [isMobile, setMobile] = useState(false);\n const [isSafari, setSafari] = useState(false);\n\n useEffect(() => {\n const userAgent = typeof window.navigator === 'undefined'\n ? '' : navigator.userAgent.toLowerCase();\n\n setMobile(userAgent.match(/android|iPhone/i));\n setAndroid(userAgent.match(/android/i));\n setSafari(userAgent.match(/safari/i)\n && !userAgent.match(/crios|duckduckgo|fxios|chrome/i));\n }, []);\n\n useEffect(() => {\n const show = async () => {\n if (isSafari) {\n setClassShow('Banner-hide');\n return;\n }\n\n await delay(300);\n\n setClassShow('Banner-container-show');\n };\n\n if (isMobile) {\n show();\n }\n }, [isMobile]);\n\n async function handlePlaystoreClick() {\n if (isAndroid) {\n window.location.href = 'app://open.mypetcloud';\n await delay(300);\n }\n\n window.location.href = isAndroid ? GOOGLE_PLAY_URL : APP_STORE_URL;\n }\n\n return (\n <div className={`Banner-container ${classShow}`}>\n <div>\n <div className=\"Banner-icon-container\">\n <img alt=\"app-icon\" className=\"Banner-logo\" src={FigoIcon} />\n\n <div className=\"Banner-text-name-container\">\n <span>{appName}</span>\n\n <span>{title}</span>\n </div>\n </div>\n </div>\n\n <div>\n <button\n className=\"Banner-button\"\n onClick={handlePlaystoreClick}\n type=\"button\"\n >\n {buttonText}\n </button>\n </div>\n </div>\n );\n};\n\nexport { BannerApp };\n","export default __webpack_public_path__ + \"static/media/google-play.c48f126c.svg\";","export default __webpack_public_path__ + \"static/media/app-store.b65445aa.svg\";","import React from 'react';\nimport { Image } from 'react-bootstrap';\n\nimport googlePlayBadge from '../../assets/google-play.svg';\nimport appStoreBadge from '../../assets/app-store.svg';\n\nimport { APP_STORE_URL, GOOGLE_PLAY_URL } from '../../constants';\n\nconst DownloadMobileApps = () => (\n <div className=\"Login-app-stores-container\">\n <a href={GOOGLE_PLAY_URL} rel=\"noopener noreferrer\" target=\"_blank\">\n <Image alt=\"\" src={googlePlayBadge} />\n </a>\n\n <a href={APP_STORE_URL} rel=\"noopener noreferrer\" target=\"_blank\">\n <Image alt=\"\" src={appStoreBadge} />\n </a>\n </div>\n);\n\nexport { DownloadMobileApps };\n","export default __webpack_public_path__ + \"static/media/mail.e7d61b05.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport mailicon from '../../assets/mail.svg';\n\nimport './PublicFooter.css';\n\nconst PublicFooter = () => {\n const { t } = useTranslation('common');\n return (\n <footer className=\"Public-footer\">\n <div className=\"Public-footer-support\">\n <div>{t('publicFooter.haveQuestion')}</div>\n\n <div className=\"Public-footer-support-email\">\n <img alt=\"\" src={mailicon} />\n\n <a href={`mailto:${t('publicFooter.email')}`}>\n {t('publicFooter.email')}\n </a>\n </div>\n </div>\n\n <div className=\"Public-footer-copyright\">\n {t('publicFooter.copyright', { year: new Date().getFullYear() })}\n </div>\n </footer>\n );\n};\n\nexport { PublicFooter };\n","export default __webpack_public_path__ + \"static/media/login-background.470bac74.svg\";","export default __webpack_public_path__ + \"static/media/pet-cloud-logo.ae9fdda1.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { BannerApp } from './BannerApp';\nimport { DownloadMobileApps } from './DownloadMobileApps';\nimport { PublicFooter } from '../common/PublicFooter';\n\nimport FigoBackground from '../../assets/login/login-background.svg';\nimport PetCloudBanner from '../../assets/pet-cloud-logo.svg';\n\nimport './LoginMobile.css';\n\nconst LoginMobile = () => {\n const { t } = useTranslation('loginScreen');\n\n return (\n <div className=\"Login-mobile\">\n <BannerApp\n appName=\"Figo Pet Cloud\"\n buttonText={t('loginMobile.view')}\n title={t('loginMobile.openApp')}\n />\n\n <div className=\"Login-mobile-container\">\n <div className=\"Login-pet-cloud-banner\">\n <img alt=\"\" src={PetCloudBanner} />\n </div>\n\n <img\n alt=\"\"\n className=\"Login-mobile-figo-background\"\n src={FigoBackground}\n />\n\n <div className=\"Login-mobile-background-content\">\n <h1>{t('loginMobile.welcome')}</h1>\n\n <p>{t('loginMobile.textApp')}</p>\n\n <div className=\"Login-mobile-apps-container\">\n <DownloadMobileApps />\n </div>\n </div>\n\n </div>\n\n <PublicFooter />\n\n </div>\n );\n};\n\nexport { LoginMobile };\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport Shimmer from '../../common/Shimmer';\nimport './css/RenewalFloatingBarTop.css';\n\nconst RenewalFloatingBarTop = () => {\n const store = useSelector(({ policies }) => ({ ...policies.changeCoverage }));\n const { rate: { isAnnual }, quoteSelectedValues } = store;\n const { t } = useTranslation('changeCoverage');\n\n const totalPrice = useMemo(() => {\n const price = isAnnual\n ? quoteSelectedValues.total : quoteSelectedValues.totalMonthly;\n const annual = isAnnual ? quoteSelectedValues.totalAnnual : 0;\n\n if (!price) {\n return { annual: '$0.00', monthly: '$0.00' };\n }\n\n return {\n annual: `$${annual}`,\n monthly: `$${price}`,\n };\n }, [isAnnual, quoteSelectedValues]);\n\n return (\n <div className=\"Renewal-floating-bar-top-background\">\n {store.loading\n ? (<Shimmer className=\"Renewal-floating-bar-top-container\" />)\n : (\n <div className=\"Renewal-floating-bar-top-container\">\n <span className=\"Renewal-floating-bar-top-premium\">\n {isAnnual\n ? t('options.annualPremium')\n : t('options.monthlyPremium')}\n </span>\n\n <span className=\"Renewal-floating-bar-top-amount\">\n {isAnnual ? totalPrice.annual : totalPrice.monthly}\n </span>\n </div>\n )}\n </div>\n );\n};\n\nexport { RenewalFloatingBarTop };\n","import React from 'react';\nimport FigoLogo from '../../assets/figo-logo-white.svg';\nimport { RenewalFloatingBarTop }\nfrom '../changeCoverage/changeCoverageOptions/RenewalFloatingBarTop';\nimport '../common/HeaderCommon.css';\n\nconst MobileHeader = () => {\n const pathname = window.location.pathname;\n\n function renderFloatingBar() {\n if (!pathname.includes('/options')) {\n return null;\n }\n\n return <RenewalFloatingBarTop />;\n }\n\n return (\n <div className=\"Main-header-mobile\">\n <img\n alt=\"figo logo\"\n className={'Figo-common-header-logo-mobile'\n + `${pathname.includes('/options')\n ? ' Figo-common-header-logo-mobile-cc' : ''}`}\n src={FigoLogo}\n />\n\n {renderFloatingBar()}\n </div>\n );\n};\n\nexport { MobileHeader };\n","export default __webpack_public_path__ + \"static/media/check.151f53b2.svg\";","export default __webpack_public_path__ + \"static/media/tablet_confirmation.b4ab9cde.svg\";","export default __webpack_public_path__ + \"static/media/tablet_confirmation_balloon.39a261c4.svg\";","export default __webpack_public_path__ + \"static/media/mobile_confirmation.1ca100ba.svg\";","export default __webpack_public_path__ + \"static/media/mobile_confirmation_balloon.cbf54088.svg\";","const Wrapper = (props) => {\n const { children } = props;\n\n return children;\n};\n\nexport { Wrapper };\n","import React, { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport checkIcon from '../../../assets/changeCoverage/check.svg';\nimport tabletPortrait from '../assets/tablet_confirmation.svg';\nimport tabletBalloon from '../assets/tablet_confirmation_balloon.svg';\nimport mobilePortrait from '../assets/mobile_confirmation.svg';\nimport mobileBalloon from '../assets/mobile_confirmation_balloon.svg';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { Wrapper } from '../../common/Wrapper';\nimport { CONTACT_FIGO_URL } from '../../../constants';\nimport './SubmitSuccess.css';\n\nconst SubmitSuccess = ({ onClose = () => { } }) => {\n const { t } = useTranslation('changeCoverage');\n const store = useSelector(({ policies }) => ({ ...policies.changeCoverage }));\n const { rate: { effectiveDate, petQuoteResponseList } } = store;\n const { isTablet } = useResponsive();\n\n const petInfo = useMemo(() => {\n if (petQuoteResponseList && petQuoteResponseList.length) {\n return petQuoteResponseList[0];\n }\n\n return { Plans: [] };\n }, [petQuoteResponseList]);\n\n function renderPortrait() {\n return (\n <div className=\"Submit-portrait\">\n <img\n alt=\"portrait\"\n className=\"Submit-background\"\n src={isTablet ? tabletPortrait : mobilePortrait}\n />\n\n <img\n alt=\"ballon\"\n className=\"Submit-balloon\"\n src={isTablet ? tabletBalloon : mobileBalloon}\n />\n </div>\n );\n }\n\n return (\n <div className=\"Submit-success-container\">\n <Wrapper>\n {renderPortrait()}\n\n <div className=\"Flex-row Submit-title-container\">\n <img\n alt=\"Powerup plus card\"\n className=\"Check-button-plus\"\n src={checkIcon}\n />\n\n <span className=\"Submit-title\">{t('submit.title')}</span>\n </div>\n\n <span className=\"Submit-almost-done\">{t('submit.almostDone')}</span>\n\n <div className=\"Submit-message-container\">\n <p className=\"Submit-message\">\n {t('submit.message', { petName: petInfo.petName })}\n\n <span className=\"Submit-date\">{effectiveDate}</span>.\n\n {t('submit.moreInfo')}\n\n <a\n className=\"Submit-contact-us\"\n href={CONTACT_FIGO_URL}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {t('submit.contactUs')}\n </a>\n </p>\n </div>\n\n <button onClick={onClose} type=\"button\">{t('close')}</button>\n </Wrapper>\n </div>\n );\n};\n\nexport { SubmitSuccess };\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { Route, Switch, useHistory, useRouteMatch } from 'react-router-dom';\nimport { isMobile } from '../../services/utils';\nimport {\n CHANGE_COVERAGE,\n CHANGE_COVERAGE_SUBMIT_SUCCESS,\n CHANGE_COVERAGE_WEB,\n} from '../navigation/routes.constants';\nimport {\n clearPolicyNotifications,\n getChangeCoveragePreview,\n getPrivateToken,\n petSelected,\n policySelected,\n restartRate,\n setSelectedPetId,\n setSelectedPetIndex,\n} from '../../actions';\nimport { MobileHeader } from '../navigation/MobileHeader';\nimport {\n useAlphabeticalSortedPetsWithPolicy,\n usePostMessage,\n useQuery,\n} from '../../hooks';\nimport { usePetPolicies } from '../../hooks/usePetPolicies';\nimport { SubmitSuccess } from './changeCoverageSubmitted/SubmitSuccess';\nimport {\n ChangeCoverageScreenPreview,\n ChangeCoverageScreenOptions,\n} from '../insurance/changeCoverage';\nimport './ChangeCoverageScreen.css';\n\nconst ChangeCoverageScreen = () => {\n const match = useRouteMatch();\n const history = useHistory();\n const dispatch = useDispatch();\n const query = useQuery();\n const postMessage = usePostMessage();\n const publicTokenParam = query.get('publicToken');\n const [policyNumber, setPolicyNumber] = useState(match.params.policyNumber\n || '');\n const [publicToken, setPublicToken] = useState(publicTokenParam || '');\n const store = useSelector(({\n policies,\n session,\n settings,\n }) => ({ policies, session, settings }), shallowEqual);\n const {\n policies: {\n allPets,\n changeCoverage: { success },\n loading: policiesLoading,\n },\n settings: { featureFlags },\n } = store;\n const sortedPetsWithPolicy =\n useAlphabeticalSortedPetsWithPolicy();\n const { hasPets } = usePetPolicies();\n\n function handlePolicySelect(index) {\n const { policies } = store;\n\n dispatch(clearPolicyNotifications());\n\n if (!policies.allPolicies.length) {\n return;\n }\n\n dispatch(policySelected(index));\n }\n\n function handlePetSelect(index) {\n const petId = allPets[index].PetId;\n const indexBillingPayment = sortedPetsWithPolicy\n .findIndex((pet) => pet.PetId === petId);\n const indexNotFound = -1;\n const firstIndex = 0;\n dispatch(petSelected(indexBillingPayment === indexNotFound\n ? firstIndex\n : indexBillingPayment));\n dispatch(setSelectedPetId(petId));\n dispatch(clearPolicyNotifications());\n dispatch(setSelectedPetIndex(index));\n }\n\n useEffect(() => {\n if (policiesLoading) {\n return;\n }\n\n if (hasPets && store.session.privateToken) {\n const petIndexToSelect = sortedPetsWithPolicy\n .findIndex((pet) => pet.policies\n .find((policy, index) => {\n const policyFound = policy.Number === policyNumber;\n if (policyFound) {\n handlePolicySelect(index);\n }\n return policyFound;\n }));\n\n if (petIndexToSelect >= 0) {\n handlePetSelect(petIndexToSelect);\n }\n }\n }, [\n dispatch,\n hasPets,\n policyNumber,\n sortedPetsWithPolicy,\n store.session.privateToken,\n ]);\n\n useEffect(() => () => {\n dispatch(restartRate());\n }, []);\n\n useEffect(() => {\n setPolicyNumber(match.params.policyNumber || '');\n if (!publicToken) {\n setPublicToken(publicTokenParam);\n }\n }, [match.params, publicTokenParam]);\n\n useEffect(() => {\n if (!isMobile()) {\n history.replace(`${CHANGE_COVERAGE_WEB}/${policyNumber}`);\n } else if (!publicToken) {\n history.replace('/');\n }\n }, [publicToken]);\n\n useEffect(() => {\n if (!store.session.privateToken && publicToken && !featureFlags.loading) {\n dispatch(getPrivateToken({ publicToken }));\n }\n }, [\n dispatch,\n featureFlags.loading,\n publicToken,\n store.session.privateToken,\n ]);\n\n useEffect(() => {\n if (store.session.privateToken && policyNumber) {\n dispatch(getChangeCoveragePreview({ policyNumber }));\n }\n }, [dispatch, policyNumber, store.session.privateToken]);\n\n useEffect(() => {\n if (success) {\n history.push(CHANGE_COVERAGE_SUBMIT_SUCCESS);\n }\n }, [history, success]);\n\n function handleChangeCoverageButton() {\n history.push(`${match.url}/options`);\n }\n\n function handleKeepCoverageButton() {\n postMessage('close-page');\n }\n\n function handleRateError() {\n history.goBack();\n }\n\n function shouldPromptWarning() {\n return false;\n }\n\n function renderContent() {\n if (!store.session.privateToken) {\n return null;\n }\n\n return (\n <>\n <Switch>\n <Route path={`${match.path}/options`}>\n <ChangeCoverageScreenOptions\n onRateCreationError={handleRateError}\n policyNumber={policyNumber}\n validatePromptWarning={shouldPromptWarning}\n />\n </Route>\n\n <Route path={CHANGE_COVERAGE_SUBMIT_SUCCESS}>\n <SubmitSuccess onClose={handleKeepCoverageButton} />\n </Route>\n\n <Route path={CHANGE_COVERAGE}>\n <ChangeCoverageScreenPreview\n onChangeCoverageClick={handleChangeCoverageButton}\n onKeepClick={handleKeepCoverageButton}\n />\n </Route>\n\n </Switch>\n </>\n );\n }\n\n return (\n <div className=\"Change-coverage-main-container\">\n <MobileHeader />\n\n {renderContent()}\n </div>\n );\n};\n\nexport { ChangeCoverageScreen };\n","export default __webpack_public_path__ + \"static/media/figo-logo.08d97850.png\";","export default __webpack_public_path__ + \"static/media/app-store-apple.8a7fd273.png\";","export default __webpack_public_path__ + \"static/media/google-play.fce37c01.png\";","import React, { useEffect, useRef } from 'react';\nimport { useRouteMatch } from 'react-router-dom';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { getSharePostData } from '../../actions';\nimport Shimmer from '../common/Shimmer';\nimport figoLogo from '../../assets/sharePost/figo-logo.png';\nimport appleAppStoreLogo from '../../assets/sharePost/app-store-apple.png';\nimport googlePlayLogo from '../../assets/sharePost/google-play.png';\nimport defaultProfilePic from '../../assets/sharePost/default-pic.png';\nimport { APP_STORE_LINK, GOOGLE_PLAY_LINK } from '../../constants';\nimport './SharePost.css';\n\nconst OPEN_ANCHOR = /<a[\\s]+([^>]+)>/g;\nconst CLOSE_ANCHOR = /<\\/a>/g;\n\nconst SharePost = () => {\n const match = useRouteMatch();\n const { postId = '' } = match.params;\n const store = useSelector(({ common }) => ({ common }), shallowEqual);\n const {\n isLoading,\n postAuthorName,\n postAuthorPicPath,\n postContents,\n postDate,\n postPhotoPath,\n } = store.common.sharePost;\n\n const dispatch = useDispatch();\n\n const postContentRef = useRef(null);\n\n useEffect(() => {\n if (postContentRef.current) {\n postContentRef.current.innerHTML = postContents\n ?.replace(OPEN_ANCHOR, '<strong>')\n .replace(CLOSE_ANCHOR, '</strong>');\n }\n }, [postContentRef.current, postContents]);\n\n useEffect(() => {\n dispatch(getSharePostData({ postId }));\n }, [dispatch, postId]);\n\n return (\n <div>\n <nav className=\"Share-post-navbar\">\n <div className=\"Share-post-nav-container\">\n <a href=\"https://www.mypetcloud.com/\">\n <img alt=\"figo\" className=\"Share-post-nav-header\" src={figoLogo} />\n </a>\n\n <div className=\"Share-post-store-icons\">\n <a href={APP_STORE_LINK}>\n <img\n alt=\"app store\"\n className=\"Share-post-nav-appstore\"\n src={appleAppStoreLogo}\n />\n </a>\n\n <a href={GOOGLE_PLAY_LINK}>\n <img\n alt=\"google play\"\n className=\"Share-post-navbar-googleplay\"\n src={googlePlayLogo}\n />\n </a>\n </div>\n </div>\n </nav>\n\n {isLoading ? (\n <Shimmer className=\"Share-post-shimmer-container\" />\n ) : (\n <div className=\"Share-post-container\">\n <article className=\"Share-post-article\">\n <div className=\"Share-post-article-header\">\n <img\n alt=\"\"\n className=\"Share-post-profile-pic\"\n src={postAuthorPicPath || defaultProfilePic}\n />\n\n <div className=\"Share-post-article-profile\">\n <h3 className=\"Share-post-profile-name\">{postAuthorName}</h3>\n\n <h4 className=\"Share-post-profile-date\">{postDate}</h4>\n </div>\n </div>\n\n <div className=\"Share-post-article-content\">\n <img\n alt=\"\"\n className=\"Share-post-article-pic\"\n src={postPhotoPath}\n />\n\n <p ref={postContentRef} className=\"Share-post-article-text\" />\n </div>\n </article>\n </div>\n )}\n </div>\n );\n};\n\nexport { SharePost };\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAACE4AAAhOAFFljFgAAAFIGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjItMDQtMTlUMDg6NDQ6NTUtMDc6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIyLTA0LTE5VDA4OjQ4OjQ3LTA3OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIyLTA0LTE5VDA4OjQ4OjQ3LTA3OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjVmM2NhMzkzLTYw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\"","export default __webpack_public_path__ + \"static/media/email.e7d61b05.svg\";","export default __webpack_public_path__ + \"static/media/apple-store.45b9f9de.svg\";","export default __webpack_public_path__ + \"static/media/playstore.658bbf74.svg\";","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport emailIcon from '../../assets/login/email.svg';\nimport appleStoreImg from '../../assets/login/apple-store.svg';\nimport googleStoreImg from '../../assets/login/playstore.svg';\nimport './FooterPetCloud.css';\nimport { APP_STORE_LINK, GOOGLE_PLAY_URL } from '../../constants';\n\nconst FooterPetCloud = ({ showStoreIcons = true }) => {\n const { t } = useTranslation('common');\n\n return (\n <div className=\"Footer-pet-cloud-container\">\n <div className=\"d-flex Flex-column\">\n <span>{t('resetPassword.reasetFooter.haveQuestion')}</span>\n\n <div className=\"d-flex\">\n <span>\n <img\n alt=\"\"\n className=\"Footer-pet-cloud-email-icon\"\n src={emailIcon}\n />\n {t('resetPassword.reasetFooter.email')}\n </span>\n </div>\n </div>\n\n <div className=\"d-flex Flex-column Footer-pet-cloud-div-right\">\n {showStoreIcons && (\n <>\n <span className=\"Footer-pet-cloud-download-title\">\n {t('resetPassword.reasetFooter.downloadApp')}\n </span>\n\n <div className=\"d-flex Footer-pet-cloud-stores\">\n <a href={APP_STORE_LINK}>\n <img alt=\"apple store\" src={appleStoreImg} />\n </a>\n\n <a href={GOOGLE_PLAY_URL}>\n <img alt=\"google play store\" src={googleStoreImg} />\n </a>\n </div>\n </>\n )}\n\n <span className=\"Footer-pet-cloud-download-email\">\n {t('resetPassword.reasetFooter.copyright')}\n </span>\n </div>\n </div>\n );\n};\n\nexport { FooterPetCloud };\n","import React from 'react';\n\nimport petCloudLogo from '../../assets/pet-cloud-logo.svg';\n\nimport './HeaderPetcloud.css';\n\nconst HeaderPetcloud = ({\n logoutLabel = '',\n onLogoutClick = () => { },\n showLogout = false,\n}) => (\n <div className=\"Reset-password-pet-cloud-logo-div\">\n <img\n alt=\"pet-cloud-logo\"\n className=\"Reset-password-pet-cloud-logo\"\n src={petCloudLogo}\n />\n\n {showLogout && (\n <button onClick={onLogoutClick} type=\"button\">\n {logoutLabel}\n </button>\n )}\n </div>\n);\n\nexport { HeaderPetcloud };\n","export default __webpack_public_path__ + \"static/media/pet-collage.d1b1855f.svg\";","export default __webpack_public_path__ + \"static/media/google-play-navy.299c9201.svg\";","export default __webpack_public_path__ + \"static/media/apple-store-navy.3c992942.svg\";","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { FooterPetCloud } from '../resetPassword/FooterPetCloud';\nimport { HeaderPetcloud } from '../resetPassword/HeaderPetcloud';\n\nimport petCollage from '../../assets/downloadMobileApps/pet-collage.svg';\nimport playStore from '../../assets/google-play-navy.svg';\nimport appStore from '../../assets/apple-store-navy.svg';\nimport petcloudQrCode\nfrom '../../assets/downloadMobileApps/petcloud-qr-code.png';\nimport checkArrow from '../../assets/downloadMobileApps/check-arrow-white.png';\n\nimport FigoLottie from '../common/FigoLottie';\nimport { APP_STORE_LINK, GOOGLE_PLAY_LINK } from '../../constants';\nimport { sendLinkMessage } from '../../actions';\nimport { maskPhoneNumber, validateNumbersOnly } from '../../services/utils';\n\nimport { removeAllData } from '../../services/api';\n\nimport './DownloadMobileApplications.css';\n\nconst DownloadMobileApplications = () => {\n const { t } = useTranslation('common');\n const [phoneNumber, setPhoneNumber] = useState('');\n const dispatch = useDispatch();\n const store = useSelector(({ common }) => ({ common }), shallowEqual);\n const history = useHistory();\n\n const {\n common: {\n comingSoon: {\n isSendingMessage,\n messageSent,\n },\n },\n } = store;\n\n useEffect(() => {\n removeAllData();\n }, []);\n\n function onPhoneNumberChanged(event) {\n const { target: { value } } = event;\n const cleanText = value ? value.replace(/[()-\\s]/g, '') : '';\n const onlyNumbersValue = validateNumbersOnly(cleanText)\n ? cleanText\n : cleanText.replace(/\\D/g, '');\n\n setPhoneNumber(maskPhoneNumber(onlyNumbersValue));\n }\n\n function onLogoutPress() {\n history.replace('/');\n }\n\n function onTextMeALinkPress() {\n if (isSendingMessage || !phoneNumber) {\n return;\n }\n const toPhone = phoneNumber.replaceAll('(', '').replaceAll(')', '');\n\n dispatch(sendLinkMessage({ toPhone }));\n }\n\n function renderContentButton() {\n if (messageSent) {\n return (\n <>\n <img alt=\"\" className=\"Download-apps-arrow-check\" src={checkArrow} />\n\n {t('downloadMobileApplications.messageSent')}\n </>\n );\n }\n\n if (isSendingMessage) {\n return <FigoLottie height={30} width={30} />;\n }\n\n return t('downloadMobileApplications.textMeALink');\n }\n\n return (\n <div className=\"Download-apps-main-container\">\n <HeaderPetcloud\n logoutLabel={t('downloadMobileApplications.logoutLabel')}\n onLogoutClick={onLogoutPress}\n showLogout\n />\n\n <div className=\"Download-apps-card-container\">\n <div className=\"Download-apps-card\">\n <img\n alt=\"\"\n className=\"Download-apps-pet-collage-image\"\n src={petCollage}\n />\n\n <h1>{t('downloadMobileApplications.welcome')}</h1>\n\n <span>{t('downloadMobileApplications.description')}</span>\n\n <div className=\"Download-apps-icon-store-container\">\n <a\n href={GOOGLE_PLAY_LINK}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n <img\n alt=\"play store\"\n className=\"Download-apps-icon-store\"\n src={playStore}\n />\n </a>\n\n <a\n href={APP_STORE_LINK}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n <img\n alt=\"\"\n className=\"Download-apps-icon-store\"\n src={appStore}\n />\n </a>\n </div>\n\n <img\n alt=\"\"\n className=\"Download-apps-qr-code\"\n src={petcloudQrCode}\n />\n\n <input\n className=\"Download-apps-phone-number-input\"\n onChange={onPhoneNumberChanged}\n placeholder={t('downloadMobileApplications.phoneNumberPlaceholder')}\n value={phoneNumber}\n />\n\n <button\n className=\"Download-apps-submit-button\"\n onClick={onTextMeALinkPress}\n type=\"button\"\n >\n {renderContentButton()}\n </button>\n </div>\n </div>\n\n <FooterPetCloud showStoreIcons={false} />\n </div>\n );\n};\n\nexport { DownloadMobileApplications };\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAALCAYAAABPhbxiAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABbSURBVHgBxdHBDQAQDAXQ2sgIRrCBFYxgQyMYwQil4SCi0rr4iYvktfmpAWUQMYI2HSUcKS+o9mc/ICrLFb5ump+UxCCKP021O95QgEuPFWcRYrAMLdjRcSWoAZ46vocbFxfZAAAAAElFTkSuQmCC\"","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Header from '../navigation/Header';\nimport { ContentfulComponent } from './petCloud/ContentfulComponent';\nimport { getContentfulPage } from '../../actions';\nimport Shimmer from './Shimmer';\nimport './ContentfulPage.css';\n\nconst ContentfulPage = ({ contentfulKey = '' }) => {\n const dispatch = useDispatch();\n const store = useSelector(({ common }) => common.contentfulPage);\n\n useEffect(() => {\n if (contentfulKey) {\n dispatch(getContentfulPage(contentfulKey));\n }\n }, [contentfulKey]);\n\n return (\n <>\n <Header centered />\n\n {store.loading ? <Shimmer className=\"Contentful-page-shimmer\" />\n : (\n <div className=\"Contentful-page\">\n <h1 className=\"Contentful-page-title\">{store.title}</h1>\n\n <ContentfulComponent\n className=\"Contentful-page-content\"\n htmlContent={store.content}\n />\n </div>\n )}\n </>\n );\n};\n\nexport { ContentfulPage };\n","import React from 'react';\nimport { ContentfulPage } from '../common/ContentfulPage';\nimport { contentfulPages } from '../../services/constants';\n\nconst TermsOfUseScreen = () => (\n <ContentfulPage contentfulKey={contentfulPages.TOS} />\n);\n\nexport { TermsOfUseScreen };\n","import React from 'react';\nimport { ContentfulPage } from '../common/ContentfulPage';\nimport { contentfulPages } from '../../services/constants';\n\nconst PrivacyPolicyScreen = () => (\n <ContentfulPage contentfulKey={contentfulPages.PRIVACY_POLICY} />\n);\n\nexport { PrivacyPolicyScreen };\n","import React, { useEffect } from 'react';\nimport { Redirect, Route, Switch, withRouter } from 'react-router-dom';\nimport { useSelector, shallowEqual } from 'react-redux';\n\nimport { LoginScreen } from '../login/LoginScreen';\nimport { FoundLostPet } from '../foundLostPet/FoundLostPet';\nimport GenericError from '../genericError/GenericError';\nimport {\n UpdatePaymentMethodScreen,\n} from '../updatePaymentMethod/UpdatePaymentMethodScreen';\nimport RedirectCustomerId from './RedirectCustomerId';\nimport { LoginMobile } from '../login/LoginMobile';\nimport { ChangeCoverageScreen } from '../changeCoverage/ChangeCoverageScreen';\nimport { SharePost } from '../sharePost/SharePost';\nimport {\n DownloadMobileApplications,\n} from '../downloadMobileApplications/DownloadMobileApplications';\n\nimport * as routes from './routes.constants';\nimport { isMobile } from '../../services/utils';\nimport { TermsOfUseScreen } from '../contentfulPages/TermsOfUseScreen';\nimport { PrivacyPolicyScreen } from '../contentfulPages/PrivacyPolicyScreen';\n\nconst PublicRouter = (props) => {\n const showGenericError =\n useSelector(({ common }) => (common.showGenericError), shallowEqual);\n\n const mobile = React.useMemo(() => isMobile(), []);\n\n useEffect(() => {\n if (showGenericError) {\n props.history.push(routes.ERROR);\n }\n }, [showGenericError]);\n\n return (\n <Switch>\n <Route\n exact\n onEnter={window.location.reload}\n path={routes.IOS_URL}\n />\n\n <Route exact path=\"/\">\n {mobile ? <LoginMobile /> : <LoginScreen />}\n </Route>\n\n <Route path={routes.B2C_TOKEN_REGISTER}>\n <LoginScreen registerToken />\n </Route>\n\n <Route exact path={routes.REDIRECT}>\n <LoginScreen />\n </Route>\n\n <Route exact path={routes.LOGIN}>\n <RedirectCustomerId />\n </Route>\n\n <Route path={routes.IMPERSONATE}>\n <LoginScreen isImpersonate />\n </Route>\n\n <Route exact path={routes.FOUND_LOST_PET}>\n <FoundLostPet />\n </Route>\n\n <Route exact path={routes.TERMS_OF_USE}>\n <TermsOfUseScreen />\n </Route>\n\n <Route exact path={routes.PRIVACY_POLICY}>\n <PrivacyPolicyScreen />\n </Route>\n\n <Route path={routes.ERROR}>\n <GenericError />\n </Route>\n\n <Route path={`${routes.POST_SHARE}/:postId`}>\n <SharePost />\n </Route>\n\n <Route path={routes.CHANGE_COVERAGE}>\n <ChangeCoverageScreen />\n </Route>\n\n <Route path={routes.PAYMENT_METHOD_EDIT}>\n <UpdatePaymentMethodScreen />\n </Route>\n\n <Route path={routes.DOWNLOAD_MOBILE_APPS}>\n <DownloadMobileApplications />\n </Route>\n\n <Route path=\"*\">\n {mobile ? <LoginMobile /> : <Redirect to=\"/\" />}\n </Route>\n </Switch>\n );\n};\n\nexport default withRouter(PublicRouter);\n","export default __webpack_public_path__ + \"static/media/error-modal-header.17d9d0bb.png\";","import React, { useState } from 'react';\nimport Button from 'react-bootstrap/Button';\nimport Card from 'react-bootstrap/Card';\nimport Form from 'react-bootstrap/Form';\nimport Image from 'react-bootstrap/Image';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport TouchableDiv from './TouchableDiv';\nimport trashImage from '../../assets/settings/trash.png';\nimport errorModalHeaderImage from '../../assets/error-modal-header.png';\nimport { dismissAlert } from '../../actions';\nimport './CustomModal.css';\n\nconst CustomModal = () => {\n const { t } = useTranslation('common');\n const [inputValue, changeInputValue] = useState('');\n const dispatch = useDispatch();\n const alert = useSelector(({\n common,\n }) => (common.alert), shallowEqual);\n const CONTACT_US_URL =\n 'https://figopetinsurance.com/contact-us-figo-pet-insurance';\n\n function handleInputChanged(event) {\n switch (event.target.id) {\n case 'modalInput':\n changeInputValue(event.target.value);\n break;\n\n default:\n break;\n }\n }\n\n function handleInputModalSubmit(event) {\n event.preventDefault();\n dispatch(dismissAlert());\n\n if (alert.primaryAction) {\n alert.primaryAction({ inputValue });\n }\n\n changeInputValue('');\n }\n\n function onPrimaryAction() {\n dispatch(dismissAlert());\n\n if (alert.primaryAction) {\n alert.primaryAction();\n }\n }\n\n function onSecondaryAction() {\n dispatch(dismissAlert());\n\n if (alert.secondaryAction) {\n alert.secondaryAction();\n }\n\n changeInputValue('');\n }\n\n function handleCloseModal() {\n dispatch(dismissAlert());\n }\n\n function handleModalOverlayClick() {\n const { type } = alert;\n const overlayClose =\n type === 'info'\n || type === 'error'\n || type === 'input'\n || alert.overlayClose;\n\n if (overlayClose) {\n handleCloseModal();\n }\n }\n\n const renderModal = () => {\n switch (alert.type) {\n case 'info':\n return (\n <div\n className=\"Modal-overlay\"\n id=\"InfoModalOverlay\"\n onClick={handleModalOverlayClick}\n onKeyDown={handleModalOverlayClick}\n role=\"button\"\n tabIndex={0}\n >\n <Card className=\"Info-modal-card\">\n <Image\n className=\"Info-modal-image-title\"\n fluid\n src={alert.image}\n />\n\n <div className=\"Info-modal-text-body\">\n <p className=\"Info-modal-body-text\">{alert.title}</p>\n </div>\n\n <div className=\"Info-modal-subtitle-container\">\n <p className=\"Info-modal-subtitle-text\">{alert.subtitle}</p>\n </div>\n\n <Button\n className=\"Info-modal-action Custom-info\"\n onClick={onPrimaryAction}\n variant=\"info\"\n >\n {alert.primaryText}\n </Button>\n <div className=\"Info-modal-actions\" />\n </Card>\n </div>\n );\n\n case 'error':\n return (\n <TouchableDiv\n className=\"Modal-overlay\"\n id=\"ErrorModalOverlay\"\n onClick={handleModalOverlayClick}\n >\n <Card className=\"Error-modal-card\">\n <button\n className=\"Error-modal-close-button\"\n onClick={handleCloseModal}\n type=\"submit\"\n >\n <span className=\"Error-modal-close-text\">x</span>\n </button>\n <Image\n className=\"Error-modal-image-title\"\n fluid\n src={errorModalHeaderImage}\n />\n\n <span className=\"Error-modal-body-text\">\n {t('errorModal.title')}\n </span>\n <div>\n <span className=\"Error-modal-subtext\">\n {t('errorModal.subtitle')}\n </span>\n <a\n className=\"Error-modal-subtext Contact-subtext\"\n href={CONTACT_US_URL}\n >\n {t('errorModal.subtitleContact')}\n </a>\n </div>\n </Card>\n </TouchableDiv>\n );\n\n case 'input':\n return (\n <TouchableDiv\n className=\"Modal-overlay\"\n id=\"InputModalOverlay\"\n onClick={handleModalOverlayClick}\n >\n <Card className=\"Input-modal-card\">\n <div className=\"Static-modal-content\">\n <Image\n className=\"Input-modal-image\"\n fluid\n height={alert.imageSize}\n src={alert.image}\n width={alert.imageSize}\n />\n\n <span className=\"Input-modal-title\">{alert.title}</span>\n\n <span className=\"Input-modal-subtitle\">{alert.subtitle}</span>\n </div>\n\n <Form onSubmit={handleInputModalSubmit}>\n <Form.Group\n className=\"Input-modal-form-group\"\n controlId=\"modalInput\"\n >\n <Form.Label>{alert.inputLabel}</Form.Label>\n\n <Form.Control\n className={`Input-modal-input\n ${alert.error && ' Input-error'}`}\n maxLength={alert.maxLength}\n onChange={handleInputChanged}\n placeholder={alert.placeholder}\n type={alert.inputType}\n value={inputValue}\n />\n\n <p className=\"Error-label\">\n {alert.error || ''}\n </p>\n </Form.Group>\n\n <div className=\"Input-modal-buttons-container\">\n <Button\n className=\"Input-modal-button Custom-light\"\n onClick={onSecondaryAction}\n size=\"lg\"\n variant=\"light\"\n >\n <span className=\"Input-modal-secondary-text\">\n {alert.secondaryText}\n </span>\n </Button>\n\n <Button\n className=\"Input-modal-button Custom-info\"\n size=\"lg\"\n type=\"submit\"\n variant=\"info\"\n >\n <span className=\"Input-modal-primary-text\">\n {alert.primaryText}\n </span>\n </Button>\n </div>\n </Form>\n </Card>\n </TouchableDiv>\n );\n\n default:\n return (\n <TouchableDiv\n className=\"Modal-overlay\"\n onClick={handleModalOverlayClick}\n >\n <Card className=\"Confirm-modal-card\">\n <Image\n className=\"Confirm-modal-image-title\"\n fluid\n src={alert.image || trashImage}\n />\n\n <div className=\"Confirm-modal-text-body\">\n <p className=\"Confirm-modal-body-text\">{alert.body}</p>\n </div>\n\n <div className=\"Confirm-modal-actions\">\n <Button\n className=\"Confirm-modal-action Button-mint Custom-light\"\n onClick={onSecondaryAction}\n variant=\"light\"\n >\n {alert.secondaryText}\n </Button>\n\n <Button\n className=\"Confirm-modal-action Custom-info-blue\"\n onClick={onPrimaryAction}\n variant=\"info\"\n >\n {alert.primaryText}\n </Button>\n </div>\n </Card>\n </TouchableDiv>\n );\n }\n };\n\n return alert.visible && renderModal();\n};\n\nexport default CustomModal;\n","export default \"data:image/png;base64,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\"","import React from 'react';\nimport Button from 'react-bootstrap/Button';\nimport Card from 'react-bootstrap/Card';\nimport Image from 'react-bootstrap/Image';\nimport alertImage from '../../assets/alert.png';\nimport './MessageModal.css';\n\nconst MessageModal = ({\n body,\n buttonText,\n hideClosebutton = false,\n image = alertImage,\n onButtonClick,\n title,\n visible,\n}) => {\n function handleModalOverlayClick(event) {\n if (event.target.id === 'messageModalOverlay') {\n if (onButtonClick) {\n onButtonClick();\n }\n }\n }\n\n function handleOnButtonClick() {\n if (onButtonClick) {\n onButtonClick();\n }\n }\n\n function renderModal() {\n if (visible) {\n return (\n <div\n className=\"Modal-overlay\"\n id=\"messageModalOverlay\"\n onClick={handleModalOverlayClick}\n onKeyDown={handleModalOverlayClick}\n role=\"button\"\n tabIndex={0}\n >\n <Card className=\"Message-modal-card\">\n <div className=\"Message-modal-card-content\">\n <Image\n className=\"Message-modal-image\"\n fluid\n src={image}\n />\n\n <span className=\"Message-modal-body-title\">{title}</span>\n\n <div className=\"Message-modal-body-container\">\n <p className=\"Message-modal-body-text\">{body}</p>\n </div>\n\n {hideClosebutton\n ? null\n : (\n <Button\n className=\"Message-modal-button Custom-info\"\n id=\"messageModalButton\"\n onClick={handleOnButtonClick}\n variant=\"info\"\n >\n {buttonText}\n </Button>\n )}\n </div>\n </Card>\n </div>\n );\n }\n\n return null;\n }\n\n return renderModal();\n};\n\nexport default MessageModal;\n","import React, { useEffect, useState, useCallback } from 'react';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport MessageModal from './MessageModal';\nimport { getStorageOrDefault } from '../../services/api';\n\nconst ImpersonateSession = () => {\n const { t } = useTranslation('sessionRouter');\n const store = useSelector(({ accountLogin }) => (accountLogin), shallowEqual);\n const [exireSession, setExpireSession] = useState(false);\n const { userInfo } = store;\n\n const onFocus = useCallback(async () => {\n const user = await getStorageOrDefault('user_info');\n\n if (!userInfo || !user) {\n return;\n }\n\n const { CustomerId } = user;\n\n if (CustomerId !== userInfo.CustomerId) {\n setExpireSession(true);\n }\n }, [store.email]);\n\n useEffect(() => {\n window.onfocus = onFocus;\n\n return () => { window.onfocus = null; };\n }, [onFocus]);\n\n return (\n <MessageModal\n body={t('impersonate.sessionEndBody')}\n buttonText={t('impersonate.sessionEndButton')}\n hideClosebutton\n title={t('impersonate.sessionEndTitle')}\n visible={exireSession}\n />\n );\n};\n\nexport { ImpersonateSession };\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux';\nimport { useIsAuthenticated } from '@azure/msal-react';\nimport { createPortal } from 'react-dom';\n\nimport { startup, startupFinished } from './actions';\nimport SessionRouter from './components/navigation/SessionRouter';\nimport PublicRouter from './components/navigation/PublicRouter';\nimport CustomModal from './components/common/CustomModal';\nimport { ImpersonateSession } from './components/common/ImpersonateSession';\n\nimport { useOneIncScript } from './hooks/useOneIncScript';\nimport { useB2CInfo } from './hooks';\nimport { doNothing } from './services/utils';\nimport app from './app.json';\n\nconst VersionData = () => createPortal(\n <meta data-version={app.version} name=\"App version\" />,\n document.head,\n);\n\nconst AppRouter = () => {\n const dispatch = useDispatch();\n useOneIncScript();\n\n const pathname = window.location.pathname.split('/')[1];\n const store = useSelector(({\n policies,\n session,\n }) => ({ policies, session }), shallowEqual);\n const { logoutB2C, getAllTokens } = useB2CInfo();\n const [allTokensLoaded, setAllTokensLoaded] = useState(false);\n const isAuthenticated = useIsAuthenticated();\n\n useEffect(() => {\n switch (pathname) {\n case 'login':\n logoutB2C();\n break;\n case 'paymentMethod':\n localStorage.clear();\n dispatch(startupFinished());\n break;\n default:\n doNothing();\n }\n\n return () => null;\n }, []);\n\n const getTokensBeforeStartUp = async () => {\n await getAllTokens();\n dispatch(startup());\n setAllTokensLoaded(true);\n };\n\n const hasSession = useMemo(() => (\n Boolean(isAuthenticated\n && store.session.privateToken\n && store.session.userInfo)\n ), [isAuthenticated, store.session.privateToken, store.session.userInfo]);\n\n useEffect(() => {\n if (hasSession) {\n getTokensBeforeStartUp();\n }\n }, [hasSession]);\n\n function renderPageContent() {\n if (hasSession && allTokensLoaded) {\n return <SessionRouter />;\n }\n\n return <PublicRouter />;\n }\n\n return (\n <Router>\n {renderPageContent()}\n\n <CustomModal />\n\n <ImpersonateSession />\n\n <VersionData />\n </Router>\n );\n};\n\nexport default AppRouter;\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport HomeEn from './translations/home.en.json';\nimport SessionRouterEn from './translations/sessionRouter.en.json';\nimport SideMenuEn from './translations/sideMenu.en.json';\nimport SettingsScreenEn from './translations/settingsScreen.en.json';\nimport LoginScreenEn from './translations/loginScreen.en.json';\nimport PageNotFoundEn from './translations/pageNotFound.en.json';\nimport CommonEn from './translations/common.en.json';\nimport InboxAndDocsEn from './translations/inboxAndDocs.en.json';\nimport MyPetsEn from './translations/myPets.en.json';\nimport EditReimbursementMethodEn\nfrom './translations/editReimbursementMethod.en.json';\nimport InsuranceEn from './translations/insurance.en.json';\nimport ClaimsEn from './translations/claims.en.json';\nimport FileClaims from './translations/fileClaims.en.json';\nimport FileClaimbot from './translations/fileClaimbot.en.json';\nimport FoundLostPet from './translations/foundLostPet.en.json';\nimport GenericErrorEn from './translations/genericError.en.json';\nimport PaymentMethodEn from './translations/paymentMethod.en.json';\nimport ChangeCoverageEn from './translations/changeCoverage.en.json';\nimport MyAccountEn from './translations/myAccountScreen.en.json';\nimport multibrandEn from './translations/multibrand.en.json';\n\nconst resources = {\n en: {\n changeCoverage: ChangeCoverageEn,\n claims: ClaimsEn,\n common: CommonEn,\n editReimbursementMethod: EditReimbursementMethodEn,\n fileClaimbot: FileClaimbot,\n fileClaims: FileClaims,\n foundLostPet: FoundLostPet,\n genericError: GenericErrorEn,\n home: HomeEn,\n inboxAndDocs: InboxAndDocsEn,\n insuranceScreen: InsuranceEn,\n loginScreen: LoginScreenEn,\n multibrand: multibrandEn,\n myAccount: MyAccountEn,\n myPets: MyPetsEn,\n pageNotFound: PageNotFoundEn,\n paymentMethod: PaymentMethodEn,\n sessionRouter: SessionRouterEn,\n settingsScreen: SettingsScreenEn,\n sideMenu: SideMenuEn,\n },\n};\n\ni18n.use(initReactI18next).init({\n debug: false,\n defaultNS: 'home',\n lng: 'en',\n ns: ['common', 'home', 'loginScreen'],\n resources,\n});\n\nexport default i18n;\n","import React from 'react';\nimport { Provider } from 'react-redux';\nimport { MsalProvider } from '@azure/msal-react';\nimport { I18nextProvider } from 'react-i18next';\nimport { initializeStore } from './store';\nimport { MixpanelProvider } from './hooks/useMixpanel';\nimport AppRouter from './AppRouter';\nimport i18n from './i18n';\nimport './App.css';\nimport './colors.css';\nimport { FeatureFlagProvider } from './hooks/useFeatureFlags';\n\nconst App = ({ instance }) => (\n <MsalProvider instance={instance}>\n <Provider store={initializeStore()}>\n <FeatureFlagProvider>\n <I18nextProvider i18n={i18n}>\n <MixpanelProvider>\n <AppRouter />\n </MixpanelProvider>\n </I18nextProvider>\n </FeatureFlagProvider>\n </Provider>\n </MsalProvider>\n);\n\nexport default App;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client.js';\nimport { PublicClientApplication } from '@azure/msal-browser';\nimport { msalConfig } from './authConfigB2C';\nimport * as serviceWorker from './serviceWorker';\nimport App from './App.jsx';\nimport './index.css';\nimport './common.css';\n\nconst msalInstance = new PublicClientApplication(msalConfig);\n\nconst container = document.getElementById('root');\nconst root = createRoot(container);\nroot.render(<App instance={msalInstance} />);\nserviceWorker.unregister();\n"],"sourceRoot":""}