{"version":3,"sources":["Common/PageHeading/PageHeading.tsx","Common/ProcessStoreList/api.ts","Common/PageNotFound.tsx","Common/OpenLoanApplicationWrapper/OpenLoanApplicationForRemoteSigningWrapper.tsx","Common/OpenLoanApplicationWrapper/OpenLoanApplicationForRemoteSigning.tsx","Common/ReadOnlyMoneyAmountField/ReadOnlyMoneyAmountField.tsx","Common/PortalStatusAlert/PortalStatusAlert.tsx","Common/useDebounceState.ts","Common/PersonalDataProcessingDisclaimer/PersonalDataProcessingDisclaimer.tsx","Common/PreContractualDocuments/utils.ts","Common/Snackbar/branchExperienceState.ts","Common/OptionalEditFields/OptionalEditMoneyField.tsx","DigitalId/api.ts","Common/ReadOnlyDateField/ReadOnlyDateField.tsx","Common/useCriteria.ts","Common/PreContractualDocuments/state.ts","Common/ProcessStoreList/domain.ts","Common/PortalStatusAlert/api.ts","Common/OptionalEditFields/OptionalEditDropdownField.tsx","Common/ShareWithClientButton/ShareWithClientButton.tsx","Common/ShareWithClientButton/useShareWithClientButtonProps.tsx","Common/useTestEnvironment.ts","Common/Snackbar/SnackbarProvider.tsx","Common/TabLock/TabLock.tsx","ConfigBlocks.ts","DocumentTitle.tsx","Common/PortalStatusAlert/PortalStatusAlertDialog.tsx","Common/Price/DisplayMoneyAmount.tsx","Common/OptionalEditFields/OptionalEditTextField.tsx","GDPR/GDPR.tsx","GDPR/api.ts","Common/PrivacyPolicyDisclamer/PrivacyPolicyDisclaimer.tsx","Common/Price/DisplayMoneyAmount.treat.ts","Common/useValidators.ts","Common/PreContractualDocuments/ContractsPanel.tsx","Common/selectDropdownOption.ts","Common/documentAPI.ts","Common/useScrollTopOnChange.tsx","Common/PreContractualDocuments/api.ts","Common/PhoneNumberField/usePhoneNumberFieldProps.tsx","Common/YesNoRadioGroup/YesNoRadioGroupField.tsx","Common/PreContractualDocuments/Contracts.tsx","DigitalId/DigitalIdInstructions.tsx","Common/UserValidation/UserValidation.tsx","Common/useSBDeepLink.ts","Common/Stepper/FlowAccordion/FlowAccordion.treat.ts","Common/UserValidation/api.ts","Common/UserValidation/UserNotValidatedError.tsx","Common/VirtualKeyboard/virtualKeyboardUtils.ts","Common/PreContractualDocuments/DocumentDialog.tsx","Common/OptionalEditFields/OptionalEditYesNoField.tsx","Common/OverdraftCard/OverdraftCardDesktop.treat.ts","Common/ReadOnlyYesNoField/ReadOnlyYesNoField.tsx","Common/PhoneNumberField/PhoneNumberField.tsx","Common/StartNewFlow.tsx","Common/PreContractualDocuments/PreContractualDocuments.tsx","Common/PreContractualDocuments/TermsAndConditions.tsx","DigitalId/DigitalId.tsx","Common/PreContractualDocuments/MarketingConsentDialog.tsx","Common/PortalStatusAlert/PortalStatusWrapper.tsx","Common/PhoneNumberField/api.ts","Common/Stepper/FlowAccordion/FlowAccordionMacro.tsx","DigitalId/DigitalIdStart.tsx","DigitalId/DigitalIdClientProfile.tsx","DigitalId/DigitalIdStatus.tsx","DigitalId/DigitalIdStop.tsx","DigitalId/DigitalIdClientMock.tsx","Common/OptionalEditFields/OptionalEditMonthYearField.tsx","Common/OptionalEditFields/OptionalEditTextField.treat.ts","Common/documentDomain.ts","DigitalId/state.ts","Common/PreContractualDocuments/MarketingConsentConfirmationDialog.tsx","Common/PreContractualDocuments/DocumentsSignature.tsx","Common/useTenantCurrency.ts","Common/UserValidation/UserNotValidatedDialog.tsx","Common/UserValidation/utils.ts","Common/Price/MoneyField/MoneyField.tsx","Common/PreContractualDocuments/DocumentItem.tsx","Common/PreContractualDocuments/ExternalPushNotificationCard.tsx","Common/PreContractualDocuments/SBAuthorizationButton.tsx","Common/PreContractualDocuments/SBAuthorizationResultWaiting.tsx","Common/OpenLoanApplicationWrapper/domain.ts","Common/PortalStatusAlert/PortalStatusMaintenance.tsx","Common/PortalStatusAlert/PortalStatusMaintenance.treat.ts","Common/OpenLoanApplicationWrapper/OpenLoanApplicationWrapperLatest.tsx"],"names":["ApplicationProductType","t","CL","UKONTO","SAVINGS","MORTGAGE","PERSONAL_PROFILE","SL","TL","RL","RPL","OD","ApplicationLoanType","optionFromNullable","UserType","BROKER","BANKER","FRANCHISE_PARTNER","FRANCHISE_AS_BRANCH","CLIENT","UNKNOWN","FlowType","TLS","IN_PERSON","REMOTE","ApplicationStatus","BLOCKED_FOR_REMOTE_EMAIL_LINK","SENT_TO_THE_BANK","PRELIMINARY_APPROVED","TO_BE_REVIEWED_INDIVIDUALLY","PRELIMINARY_DECLINED","CREATED","PENDING_SIGNATURE","DELETED","EXPIRED","SIGNED","HARD_KO","AC_SENT_TO_THE_BANK","AC_PRELIMINARY_APPROVED","AC_TO_BE_REVIEWED_INDIVIDUALLY","AC_PRELIMINARY_DECLINED","ADDITIONAL_INFO_REQUIRED","APPLICATION_RENOUNCED","FINAL_DECISION_ACCEPTED","FINAL_DECISION_REJECTED","APPROVED","REJECTED","SIGNED_DOCUMENTS_NEEDED","UNDER_REWORK","IN_PROGRESS","AC_IN_PROGRESS","SLApplicationStatusFinished","TenorType","Months","Years","ApplicationRecord","brokerId","NonEmptyString","applicationId","firstName","withFallback","option","none","lastName","createdDate","DateFromISOString","lastModifiedDate","expirationDate","optionFromUndefined","productType","loanType","amount","NonNegativeInteger","currency","Currency","tenor","PositiveInteger","tenorType","status","flowType","userType","userName","locked","expiresSoon","clientPhoneNumber","BankerApplicationListInput","clientNameOrApplicationId","size","SearchStatusType","birthNumber","clientNumber","accountNumber","emailAddress","clientUserIdOrAlias","phoneNumber","productTypeList","fromDate","toDate","source","SearchSourceType","eqBankerApplicationListInput","eq","getStructEq","eqNumber","eqString","eqStrict","array","getEq","eqDate","BankerApplicationListOutput","getBankerApplicationList","apiCall","inputCodec","inputEq","path","outputCodec","BrokerApplicationListInput","searchText","page","eqBrokerApplicationListInput","BrokerApplicationListOutput","content","totalPages","totalElements","last","number","getBrokerApplicationList","GetClientApplicationsListOutput","getClientApplicationsList","fromEquals","constFalse","PageNotFound","formatMessage","useFormatMessage","config","useAppContext","title","backgroundImageURL","onLogoClick","iconAction","onStepClick","constVoid","steps","contentBackground","palette","background","type","heading","subheading","actions","variant","label","action","window","location","href","PWSURL","OpenLoanApplicationForRemoteSigningWrapper","transitionToPotentialClient","useAuthenticationContext","useEffect","OpenLoanApplicationForRemoteSigning","navigatePWS","getClientStatusResult","usePolling","api","shouldPollingContinue","intervalMS","renderStandardLoan","restoreDataObject","onPhoneVerified","onExit","some","onClientExists","authenticationMethod","initialLoanOffer","onAgeValidationFail","applicationStatus","isProspectClient","isCredentialsAndSigningRemote","clientExists","pipe","remoteData","constNull","response","foldClientStatus","isRiskyClient","ReadOnlyMoneyAmountField","props","labelId","useUniqueID","column","shrink","inverted","readonly","description","id","value","fractionDigits","feedback","units","message","PortalStatusAlert","logout","portalStatus","isAlertModalVisible","setAlertModalVisible","usePortalStatusContext","foldPortalStatus","onInitial","onNone","onActive","grow","inAuthenticatedPage","onCancel","onConfirm","onDismiss","onScheduled","useDebounceState","delay","debouncedValue","setDebouncedValue","useState","timeout","setTimeout","clearTimeout","PersonalDataProcessingDisclaimer","isBranchExperienceTouchScreen","useIsTouchScreen","dataModalOpen","setDataModalOpen","personalDataProcessingTemplates","useCommand","documentAPI","personalDataProcessingContent","disclaimerLabel","weight","buttonLink","disabledLink","file","docsets","taskEither","chain","items","docId","getFirstUnreadDocument","documents","documentsRead","findFirst","d","set","every","d2","getDocumentReadingStatus","elem","exists","useFormatError","error","getPreContractualDocumentsActions","dispatch","commands","handleContractRead","contractRead","map","readDocumentAction","handleContractUnread","contractUnread","unreadDocumentAction","handleMarketingConsentAcceptance","accepted","marketingConsent","changeMarketingConsentAction","handlePreContractualReceived","checked","termsAndConditionsReceived","changeDocumentsReceivedConfirmationAction","handleModalMarketingConsentAcceptance","confirmMarketingConsentAction","handleForeignSigningConsentAcceptance","foreignSigningConsent","changeForeignSigningConsentAction","mediationInsuranceDocset","getSmartKeyInitialMode","State","informative","success","warning","LocalizedString","targetScreen","parent","child","both","Action","state","setStateAction","reducerConfig","sharedReducerConfig","_","OptionalEditMoneyField","formatMoneyAmountValue","useFormatMoneyAmountValue","edit","fieldProps","getOrElse","constant","digitalIdStart","applicantIndex","DigitalIdStatus","stopReason","digitalIdStatus","DigitalIdClientIdentified","photo","digitalIdClientIdentified","DigitalIdQrCode","qrCode","digitalIdQrCode","DigitalIdClientCheckExistingResponse","existingClient","duplicateContacts","hasBlockingNotes","multipleUsers","personalNumberMatch","clientStatus","userID","digitalIdClientCheckExisting","digitalIdExtractData","ClientDataOutput","DigitalIdSavedDocuments","ready","name","digitalIdSaveDocuments","FlowInfo","info","digitalIdFlowInfo","digitalIdGetDocuments","digitalIdSetBirthNumber","ReadOnlyDateField","formatDate","useFormatDate","format","fold","useCriteria","lengthRange","minLength","maxLength","validator","passwordCriteriaValidators","hasDigit","hasSpecialCharacter","hasLowerLetter","hasCapitalLetter","noPartialConsecutiveDigits","noSpecialCharacters","noDigitFirstCharacter","length","maxRepetitions","clientPasswordCriteria","thirdPartyPasswordCriteria","securityPinCriteria","noDigitRepeatsMoreThanN","times","passwordStrengthLabel","strength","pinStrengthLabel","UIError","ReadDocumentsState","setFromArray","ord","ordString","documentsReceivedConfirmation","isMarketingConsentModalOpen","optionCodec","ExistingClientAuthenticationMethod","SigningDocumentsState","ReadDocumentAction","payload","documentId","UnreadDocumentAction","ChangeDocumentsReceivedConfirmationAction","confirm","ChangeMarketingConsentAction","ChangeForeignSigningConsentAction","StartSignatureAction","allDocuments","nonEmptyArrayC","DocumentMeta","checkDocumentRead","checkMarketingConsent","isForeignClient","startSignatureAction","ConfirmMarketingConsentAction","confirmation","DismissMarketingModalAction","dismissMarketingModalAction","CancelSignatureAction","checkHasReadAllContracts","nonEmptyArray","document","fromArray","difference","insert","remove","confirmDocumentsReceived","PENDING","CLOSED","ALL","YOU","CurrentPortalStatus","currentlyBlocked","portalBlockScheduled","timeFrom","timeTo","currentPortalStatus","OptionalEditDropdownField","String","ShareWithClientButton","buttonProps","useShareWithClientButtonProps","data-test-id","alwaysConfirmed","backToReadyOrSharing","branchExperienceFeaturesActive","useBranchExperienceContext","shareWithClientButtonConfirmationDelayMs","shareWithClientButtonShareDelayMs","_state","setState","branchExperienceState","Date","now","startTime","rightTask","task","of","fromIO","rightIO","resultLabel","shareWithClientLabel","submitLabel","labels","normal","loading","loadingMessage","seconds","formatDuration","Math","round","undefined","disabled","useTestEnvironment","environment","SnackbarProviderParent","sharedSnackbar","useParentSharedReducer","children","getState","getSetState","SnackbarProviderChild","_sharedSnackbar","useChildSharedReducer","flatten","SnackbarProvider","isTouchScreen","Component","snackbar","setSnackbar","alt","filter","s","newSnackbar","is","TabLock","icon","ErrorIcon","RemoteConfig","UKontoPWSPageURL","UKontoPWSPageHeight","scannerAppUrl","settingsPageURL","tinByCountryURL","CRSCountryURL","FATCAURL","mockScanner","onlineBankingInfoURL","externalCommunication","enhancedMF20","dev","sit","uat","prod","hf","ci","allowOverdraftSelection","biometricConsent","ezyPageURL","unicreditBranchesMapURL","PWSExistingClientURL","cookiesConsentInfoUrl","contactDetailsDuplicityCheck","fromNullable","OPUCEXAssignmentEnabled","multiplePackages","personalProfileDocumentUpload","personalProfileMarketingConsent","branchExperience","promotionsEnabled","virtualKeyboardEnabled","editAddresses","documentBlurAcceptableScore","specularAcceptableScore","timeToBlurMaxTolerance","LogoutRedirectUrl","ukontoRemoteFlowEnabled","ukontoExistingClientsForceSMSOtpSignature","disableNewPackageExistingClientFromPersonalProfile","windowMessageEventsLogs","forceNativePDFViewer","adaptiveEnabled","r5Enabled","r6Enabled","savingsAccountEnabled","localBirthNumberEnabled","greenMTGEnabled","enableMtgImprovementsUi","mobileUploadIdFeedBackInterval","useNewMobileIdUploadUx","enableCashLoanId3PInBranch","r8EnableDeleteReqDoc","r8Enabled","enableUkontoRestore","r8EnableReuseReservedAccount","r8EnableSimpleRefinancing","r8EnableDiscountsOnOffer","r8EnableForeignCountriesSupport","r1EnableForeignNonResidentSupport","enableVirtualCardsImpl","enableVirtualCardsLoanImpl","physicalCardDefaultCheck","virtualCardTopImgURL","virtualCardMcTopImgURL","virtualCardMcMiddleImgURL","virtualCardOpenImgURL","virtualCardMcOpenImgURL","physicalCardTopImgURL","physicalCardMcTopImgURL","physicalCardMcMiddleImgURL","physicalCardOpenImgURL","physicalCardMcOpenImgURL","packageSelectionOpenMastercardImgUrl","packageSelectionMiddleMastercardImgUrl","packageSelectionTopMastercardImgUrl","enableBankFee50FE","recaptchaEnabled","recaptchaPublicKey","r6NewSironMapping","enableMastercardImpl","enablePreapprovedOverdraftOB","enablePreapprovedOverdraftSB","enablePreapprovedOverdraftTLS","enablePAOverdraftEmailLinkRestore","enableForcedRecaptcha","enableDigitalId","enableDocumentSigning","enableInvestmentsEntryPoint","importConfigurations","apiEndpoint","locale","override","fetchConfigurations","fetch","replace","method","headers","Accept","then","body","json","tryCatch","chainEitherKW","decode","bimap","e","isNonEmpty","console","failure","join","DocumentTitle","apiParameters","tenant","foldTenant","envTitle","toUpperCase","PortalStatusAlertDialog","isRemote","useIsRemoteChannel","stayLoggedAction","dark","logoutAction","subtitle","ProblemIcon","iconColor","borderColor","DisplayMoneyAmount","useFormatMoneyAmount","formatMoneyAmount","className","cx","classes","vAlignContent","OptionalEditTextField","GDPR","paperBased","onShareWithClient","getGdprData","gdprApi","setGdprConsent","formatRichMessage","useFormatRichMessage2","channel","isInPersonChannel","endsWith","isSubmitting","setIsSubmitting","gdprData","setGdprData","franchiseBranchGdprRequired","boolean","onContinue","onReject","iAgree","setIAgree","franchiseBranchName","city","franchiseBranchCity","style","overflowY","maxHeight","hAlignContent","height","width","padding","spaceUnit","display","borderRadius","border","blue800","backgroundColor","color","white","useWhitespacePreWrap","onChange","prev","issuesType","basis","getFranchiseBranchGdprDataOutput","getFranchiseBranchGdprData","setFranchiseBranchGdprConsentInput","setFranchiseBranchGdprConsent","PrivacyPolicyDisclaimer","privacyPolicyTemplates","privacyPolicyContent","privacyPolicyDownload","align","neutral700","downloadAction","fileName","filePath","light","input","small","big","medium","large","useValidators","formatNumber","useIntl","validIco","validName","useCompanyNameAndIcoValidators","max","validators","min","errorMessage","alphaNumeric","validEmail","validPhone","lengthError","formatError","validDate","validBirthDate","validBirthNumber","validNumber","nonNegativeNumber","inSequence","nonNegativeInteger","positiveInteger","validInteger","fromPredicate","n","Number","isInteger","positiveNumber","percentageNumber","nonBlankString","nonEmptyString","digitsOnly","validStreetNumber","disableSpecialCharacters","latinCharactersOnly","validDay","validPassword","passwordMatches","validPin","pinMatches","modulo11Compliant","validCompanyIco","allowUnknown","companyIcoIsValid","commonValidator","validCompanyName","companyNameValid","minMax","defined","definedNoExtract","minAmountValidator","validAddressField","maxLengthNr","amountMinMax","amountMinMaxWithNegative","validCompanyIcoRequired","validCompanyNameRequired","validOTP","otpLength","isChanged","initialValue","minimalDate","minimalValidDate","minDate","maximalDate","maximalValidDate","maxDate","ContractsPanel","getDocumentReadingConfirmProps","readingConfirmationType","readStatus","isRead","onRead","onDocumentRead","onUnread","onDocumentUnread","documentToCheckForReadingConfirmation","constTrue","headerIcon","isOpen","isSigningStarted","onSelect","divider","mapWithIndex","index","dataTestId","showErrors","onDocumentOpen","onForeignDocumentOpen","selectedDropdownOption","options","o","dropdownOptionToValue","dropdownOption","a","_tag","DocumentSetId","privacyPolicy","personalDataProcessing","overdraftInformation","representativeExample","creditBureauMemorandum","dataProcessingRegisters","loanInsurance","mtgLoanInsurance","branchContactData","PackageInsuranceInfo","CLcreditBureauMemorandum","DBN_SD_056","DBN_SD_059","DBN_SD_055","OVDRepresentativeExample","eqDocset","docTitle","docset","downloadUrl","contractualDocument","docType","PreContractualDocumentMeta","signatureRequired","DocumentTemplatesInput","nonEmptyArrayCodec","eqDocumentTemplatesInput","DocumentTemplatesOutput","templates","DocumentContentInput","CpiApplicationFormDocumentOutput","pdfContent","FileContent","pdfName","eqDocumentContentInput","DocumentContentOutput","filename","contentDocMTG","contentSealed","DocumentDownloadInput","eqDocumentDownloadInput","DocumentDownloadOutput","downloadDocument","DocumentMime","GetDocumentContentOutput","mimeType","docTypeId","docTypeName","GetDocumentContentInput","documentID","eqGetDocumentContent","getDocumentContentMortgage","getDocumentContentSL","getCpiApplicationFormDocument","useScrollTopOnChange","behavior","ref","scrollTo","top","ContractReadOutput","DocumentsListOutput","PreContractualDocumentsListOutput","ContractReadInput","documentRead","eqContractReadInput","TermsAndConditionsReceivedOutput","MarketingConsentReadInput","eqMarketingConsentReadInput","eqBoolean","ForeignSigningConsentReadInput","eqForeignSigningConsentReadInput","PhoneNumberOutput","TermsAndConditionsOutput","usePhoneNumberFieldConfig","prefixes","useQuery","phoneApi","prefixOptions","useMemo","prefix","flag","constUndefined","usePhoneNumberFieldProps","phoneNumberFieldConfig","handleSubmit","useForm","initialValues","initialPhoneNumber","fieldValidators","onSubmit","phoneNumberFieldProps","handlePhoneNumberSubmit","YesNoRadioGroupField","onBlur","optionKey","toString","renderOption","renderOptionChildren","isOptionDisabled","Contracts","showContractModal","setShowContractModal","showForeignContractModal","setShowForeignContractModal","getCashLoanContract","docArray","isSome","ukontoContracts","getUkontoContracts","currentAccountContracts","getCurrentAccountContracts","cashLoanContractAndOtherContracts","cashLoanContracts","otherContracts","getOtherContracts","contracts","concat","getCashLoanAndOtherContracts","allContracts","documents1","documents2","array2","result","extendNonEmptyArray","isCf","isOvd","useVirtualCardsContractLayout","mustReadAllDocuments","handleDismiss","handleConfirm","sealed","contractType","DigitalIdInstructions","instructions","marginTop","neutral200","paddingTop","paddingBottom","paddingLeft","paddingRight","neutral400","Initial","InProgress","Completed","AddPhone","Validation","UserValidation","userValidation","refreshUserDetails","validateDetailsCall","addPhoneState","setAddPhoneState","validationState","setValidationState","canAddPhoneIfMissing","poolingDisabled","setPoolingDisabled","updatePhoneCompleted","setUpdatePhoneCompleted","usePollingEffect","onError","onSuccess","validate","cta","onDialogExit","validateUser","hasPhoneNumber","isModal","dialogTitle","onDialogDismiss","validationResult","foldPhoneState","AddPhoneNumber","onComplete","skipValidation","foldValidationState","data","contactType","operationType","process","useSBDeepLink","link","authInfo","url","isNone","Error","flowId","useAppRedirect","redirectUrl","stickyStepper","stickyStepperTop","noPadding","ValidateDetailsOutput","hasPasswordForCommunication","hasEmailAddress","isEmailVerified","isPhoneNumberVerified","CheckStatus","DONE","ERROR","results","validateDetails","UserNotValidatedError","dialogTexts","getDialogTexts","useVirtualFormSubmit","cb","handleEnter","key","isTrusted","addEventListener","removeEventListener","DocumentDialog","documentDownload","onHandleConfirm","isModalInsuranceMediation","item","toUndefined","infoBannerContent","OptionalEditYesNoField","identity","ReadOnlyYesNoField","PhoneNumberField","StartNewFlow","StartNewFlow_","startNewFlow","startNewFlowKeepClient","startRD","useRemoteData","keepClient","render","PreContractualDocuments","isMobileLayout","useIsMobileLayout","portalBlocked","empty","showContractsAgreement","signatureProps","marketingModalOpen","setMarketingModalOpen","preContractualDocuments","getDocuments","onReadContract","onUnreadContract","onTermsAndConditionsReceived","onMarketingConsentExpressed","onForeignSigningConsentExpressed","flow","showReadingConfirm","contractsReadingConfirmationProps","ContentWrapper","marketingConsentCheckbox","multiline","event","currentTarget","documentsSignatureBox","startSignature","showMarketingConsent","shouldVerifySignatureStatus","onAfterSignature","isSignatureStarted","smartKeyInitialMode","onCancelSignature","skipContracts","hideRequestNotice","triggerRemoteFinalPage","onContinueRemoteSigning","contractsAgreementCheckbox","foreignSigningConsentCheckbox","hasInsurance","promotion","toNullable","getTermsAndConditions","showBackButton","onBack","hideDocumentsSignatureBox","startCheckingRemoteSignature","onAnswer","consent","Document","FileIcon","onClick","TermsAndConditions","setOpen","open","termsAndConditions","DigitalId","onClientIdentified","onStop","onRetry","MarketingConsentDialog","marketingConsentTemplates","marketingConsentContent","PortalStatusWrapper","initialPortalStatus","setInitialPortalStatus","redirectWrapper","additionalMessage","IDPrefixesOutput","Tenant","getStatusFromIndex","accordionItemIndex","currentIndex","visitedPanels","has","FlowAccordionMacro","setVisitedPanels","Set","changeIndex","useCallback","resetNextSteps","i","oldPanels","range","union","onStepSelect","panels","accordionItem","panelKey","disableNavigation","hideTitle","up","down","move","panelStatus","stepNumber","CheckIcon","PencilIcon","panelIcon","stripSurroundingPadding","contentRowType","zipper","z","offsetTopToStuck","classWhenStuck","lookup","DigitalIdStart","start","DigitalIdClientProfile","clientIdentified","setClientIdentified","getClientIdentified","r","blue600","useDigitalIdParentReducer","getQrCode","getQrCodeAndSave","qr","DigitalIdStop","DigitalIdClientMock","setBirthNumber","setError","setCustomerBirthNumber","left","v","unsafeLocalizedString","placeholder","issues","errors","OptionalEditMonthYearField","finalDate","month","year","setFullYear","setMonth","textAlignment","getOnlyDownloadMimes","isSafari","mimes","push","reducer","digitalIdReducerConfig","initState","useDigitalIdChildReducer","MarketingConsentConfirmationDialog","WarningIcon","confirmLabel","cancelLabel","DocumentsSignature","matches","ID","otpAuthProps","onFailure","onSignFailure","requestNotice","otpRequestButtonLabel","otpSubmitButtonLabel","otpTitleLabel","onProcessStart","processStarted","onGenerateOTP","generateOtpCommand","onVerifyOTP","verifyOtpCommand","unsafePositiveInteger","allowResendOTP","QR","smartKeyProps","authorizeWithPush","checkAuthorizationPushPath","generateAuthorizationQR","checkAuthorizationQRPath","onFailedSignature","initialMode","PUSH_NOTIFICATION","EXTERNAL_PUSH_NOTIFICATION","onApplicationRejected","authorizeWithPushTLS","PIN","deepLink","beforeAuthorizationAction","canStartProcess","canStartAuthorization","useTenantCurrency","UserNotValidatedDialog","headerActions","exit","MoneyField","forwardRef","forwardedRef","formatCurrency","useFormatCurrency","decimalDigits","rightContent","assistiveText","formatOptions","maximumFractionDigits","DocumentItem","stackProps","fluid","alignItems","isFrameWorkAgreement","isProductContract","ExternalPushNotificationCard","applicationRejected","SBAuthorizationButton","sbAuthorize","sbAuthorizeCalled","setSbAuthorizeCalled","cancelSignatureRequest","SBAuthorizationResultWaiting","checkAuthorization","checkPush","foldRestoreDataType","restoreDataType","match","onById","onLatest","PortalStatusMaintenance","minHeight","msg","neutral100","linebreak","container","OpenLoanApplicationWrapperLatest","openLoan","getLastSavedLoan","restoreData"],"mappings":"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","file":"static/js/index~7b225a16.5812b0c8.chunk.js","sourcesContent":["// NOTE(gabro): PageHeading was moved to the DS, and this re-export is to avoid\n// changing all the imports in blocks\nexport { PageHeading } from \"design-system\";\n","import * as t from \"io-ts\";\nimport { eq, option, array } from \"fp-ts\";\nimport { NonNegativeInteger, PositiveInteger } from \"design-system\";\nimport { apiCall } from \"../../APICall\";\nimport { withFallback } from \"io-ts-types/lib/withFallback\";\nimport { optionFromNullable } from \"io-ts-types/lib/optionFromNullable\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { DateFromISOString } from \"io-ts-types/lib/DateFromISOString\";\nimport { Currency, optionFromUndefined } from \"../../globalDomain\";\nimport { SearchSourceType, SearchStatusType } from \"./domain\";\nimport { constFalse } from \"fp-ts/function\";\nimport { IO } from \"fp-ts/IO\";\nimport { Reader } from \"fp-ts/Reader\";\n\nexport const ApplicationProductType = t.keyof({\n CL: true,\n UKONTO: true,\n SAVINGS: true,\n MORTGAGE: true,\n PERSONAL_PROFILE: true,\n SL: true,\n TL: true,\n RL: true,\n RPL: true,\n OD: true,\n});\n\nexport type ApplicationProductType = t.TypeOf;\n\nconst ApplicationLoanType = optionFromNullable(t.literal(\"SL\"));\n\nexport type ApplicationLoanType = t.TypeOf;\n\nexport const UserType = t.keyof({\n BROKER: true,\n BANKER: true,\n FRANCHISE_PARTNER: true,\n FRANCHISE_AS_BRANCH: true,\n CLIENT: true,\n UNKNOWN: true,\n});\n\nexport type UserType = t.TypeOf;\n\nconst FlowType = t.keyof({\n TLS: true,\n IN_PERSON: true,\n REMOTE: true,\n});\ntype FlowType = t.TypeOf;\n\nexport function foldApplicationRecordFlowType(\n matches: {\n [k in FlowType]: IO;\n }\n): Reader {\n return flowType => matches[flowType]();\n}\n\nexport const ApplicationStatus = t.keyof(\n {\n BLOCKED_FOR_REMOTE_EMAIL_LINK: true,\n SENT_TO_THE_BANK: true,\n PRELIMINARY_APPROVED: true,\n TO_BE_REVIEWED_INDIVIDUALLY: true,\n PRELIMINARY_DECLINED: true,\n CREATED: true,\n PENDING_SIGNATURE: true,\n DELETED: true,\n EXPIRED: true,\n SIGNED: true,\n HARD_KO: true,\n AC_SENT_TO_THE_BANK: true,\n AC_PRELIMINARY_APPROVED: true,\n AC_TO_BE_REVIEWED_INDIVIDUALLY: true,\n AC_PRELIMINARY_DECLINED: true,\n ADDITIONAL_INFO_REQUIRED: true,\n APPLICATION_RENOUNCED: true,\n FINAL_DECISION_ACCEPTED: true,\n FINAL_DECISION_REJECTED: true,\n APPROVED: true,\n REJECTED: true,\n SIGNED_DOCUMENTS_NEEDED: true,\n UNDER_REWORK: true,\n IN_PROGRESS: true,\n AC_IN_PROGRESS: true,\n },\n \"ApplicationStatus\"\n);\n\nexport type ApplicationStatus = t.TypeOf;\n\nexport const SLApplicationStatusResumable = t.intersection([\n t.keyof({\n CREATED: true,\n PENDING_SIGNATURE: true,\n SIGNED_DOCUMENTS_NEEDED: true,\n UNDER_REWORK: true,\n IN_PROGRESS: true,\n }),\n ApplicationStatus,\n]);\n\nexport type SLApplicationStatusResumable = t.TypeOf<\n typeof SLApplicationStatusResumable\n>;\n\nexport const SLApplicationStatusFinished = t.intersection([\n t.keyof({\n APPROVED: true,\n REJECTED: true,\n }),\n ApplicationStatus,\n]);\n\nconst TenorType = t.keyof({\n Months: true,\n Years: true,\n});\n\nexport const ApplicationRecord = t.type(\n {\n brokerId: NonEmptyString,\n applicationId: NonEmptyString,\n firstName: withFallback(optionFromNullable(NonEmptyString), option.none),\n lastName: withFallback(optionFromNullable(NonEmptyString), option.none),\n createdDate: DateFromISOString,\n lastModifiedDate: DateFromISOString,\n expirationDate: optionFromUndefined(DateFromISOString),\n productType: ApplicationProductType,\n loanType: ApplicationLoanType,\n amount: optionFromUndefined(NonNegativeInteger),\n currency: optionFromUndefined(Currency),\n tenor: optionFromUndefined(PositiveInteger),\n tenorType: optionFromUndefined(TenorType),\n status: ApplicationStatus,\n flowType: FlowType,\n userType: UserType,\n userName: withFallback(optionFromNullable(NonEmptyString), option.none),\n locked: t.boolean,\n expiresSoon: withFallback(t.boolean, false),\n clientPhoneNumber: withFallback(\n optionFromNullable(NonEmptyString),\n option.none\n ),\n },\n \"ApplicationListRecord\"\n);\n\nconst BankerApplicationListInput = t.type(\n {\n clientNameOrApplicationId: t.string,\n size: PositiveInteger,\n status: SearchStatusType,\n birthNumber: t.string,\n clientNumber: t.string,\n accountNumber: t.string,\n emailAddress: t.string,\n clientUserIdOrAlias: t.string,\n phoneNumber: t.string,\n productTypeList: t.array(ApplicationProductType),\n fromDate: optionFromNullable(DateFromISOString),\n toDate: optionFromNullable(DateFromISOString),\n source: SearchSourceType,\n },\n \"BankerApplicationListInput\"\n);\n\nconst eqBankerApplicationListInput = eq.getStructEq({\n size: eq.eqNumber,\n clientNameOrApplicationId: eq.eqString,\n status: eq.eqStrict,\n birthNumber: eq.eqString,\n clientNumber: eq.eqString,\n accountNumber: eq.eqString,\n emailAddress: eq.eqString,\n clientUserIdOrAlias: eq.eqString,\n phoneNumber: eq.eqString,\n productTypeList: array.getEq(eq.eqStrict),\n fromDate: option.getEq(eq.eqDate),\n toDate: option.getEq(eq.eqDate),\n source: eq.eqStrict,\n});\n\nconst BankerApplicationListOutput = t.array(\n ApplicationRecord,\n \"BankerApplicationListOutput\"\n);\n\nexport type BankerApplicationListOutput = t.TypeOf<\n typeof BankerApplicationListOutput\n>;\n\nexport type ApplicationRecord = t.TypeOf;\n\nexport const getBankerApplicationList = apiCall({\n inputCodec: BankerApplicationListInput,\n inputEq: eqBankerApplicationListInput,\n path: [\"utilities\", \"process\", \"store\", \"bybankerid\"],\n outputCodec: BankerApplicationListOutput,\n});\n\nconst BrokerApplicationListInput = t.type(\n {\n searchText: t.string,\n page: NonNegativeInteger,\n size: PositiveInteger,\n },\n \"BrokerApplicationListInput\"\n);\n\nconst eqBrokerApplicationListInput = eq.getStructEq({\n searchText: eq.eqString,\n page: eq.eqNumber,\n size: eq.eqNumber,\n});\n\nconst BrokerApplicationListOutput = t.type(\n {\n content: t.array(ApplicationRecord),\n totalPages: NonNegativeInteger,\n totalElements: NonNegativeInteger,\n last: t.boolean,\n size: NonNegativeInteger,\n number: NonNegativeInteger,\n },\n \"BrokerApplicationListOutput\"\n);\n\nexport const getBrokerApplicationList = apiCall({\n inputCodec: BrokerApplicationListInput,\n inputEq: eqBrokerApplicationListInput,\n path: [\"utilities\", \"process\", \"store\", \"bybrokerid\"],\n outputCodec: BrokerApplicationListOutput,\n});\n\nconst GetClientApplicationsListOutput = t.array(ApplicationRecord);\nexport type GetClientApplicationsListOutput = t.TypeOf<\n typeof GetClientApplicationsListOutput\n>;\n\nexport const getClientApplicationsList = apiCall({\n inputCodec: t.void,\n inputEq: eq.fromEquals(constFalse),\n path: [\"utilities\", \"process\", \"store\", \"getApplicationsForClient\"],\n outputCodec: GetClientApplicationsListOutput,\n});\n","import { ContentRow, FeedbackBlock } from \"design-system\";\nimport { palette } from \"design-system/lib/styleConstants\";\nimport { option } from \"fp-ts\";\nimport { constVoid } from \"fp-ts/function\";\nimport { useFormatMessage } from \"../intl\";\nimport { useAppContext } from \"../useAppContext\";\nimport { MainLayout } from \"./MainLayout/MainLayout\";\n\nexport function PageNotFound() {\n const formatMessage = useFormatMessage();\n const { config } = useAppContext();\n return (\n \n \n (window.location.href = config.PWSURL),\n },\n ]}\n />\n \n \n );\n}\n","import { useAuthenticationContext } from \"design-system\";\nimport { useEffect } from \"react\";\nimport { OpenLoanApplicationForRemoteSigning } from \"./OpenLoanApplicationForRemoteSigning\";\n\nexport const OpenLoanApplicationForRemoteSigningWrapper = () => {\n const { transitionToPotentialClient } = useAuthenticationContext();\n\n useEffect(() => {\n transitionToPotentialClient();\n }, []);\n\n return ;\n};\n","import { usePolling } from \"../../useAPI\";\nimport * as api from \"../../StandardLoan/api\";\nimport { OpenLoanApplicationWrapperLatest } from \"./OpenLoanApplicationWrapperLatest\";\nimport StandardLoan from \"../../StandardLoan/StandardLoan\";\nimport { option } from \"fp-ts\";\nimport { constNull, constVoid, pipe } from \"fp-ts/function\";\nimport * as remoteData from \"../../RemoteData\";\nimport { BasicFullScreenLoader } from \"../BasicFullScreenLoader\";\nimport { foldClientStatus } from \"../../StandardLoan/FollowUpAndSignature/LowRiskClient/LowRiskClientState\";\nimport { CheckingContractsLoader } from \"../../StandardLoan/FollowUpAndSignature/LowRiskClient/CheckingContractsLoader\";\nimport { useAppContext } from \"../../useAppContext\";\n\nexport const OpenLoanApplicationForRemoteSigning = () => {\n const {\n config: { PWSURL },\n } = useAppContext();\n\n const navigatePWS = () => {\n window.location.href = PWSURL;\n };\n\n const [getClientStatusResult] = usePolling(api.getClientStatus, {\n shouldPollingContinue: ({ status }) => status === \"PENDING\",\n intervalMS: 3000,\n });\n\n const renderStandardLoan = (\n (\n \n )}\n />\n );\n\n return pipe(\n getClientStatusResult,\n remoteData.fold(\n () => ,\n constNull,\n response =>\n pipe(\n response,\n foldClientStatus(\n () => ,\n () => (\n \n ),\n () => renderStandardLoan\n )\n )\n )\n );\n};\n","import {\n Box,\n FieldHeader,\n InlineMessage,\n LocalizedString,\n NonNegativeInteger,\n Space,\n useUniqueID,\n} from \"design-system\";\nimport { ComponentProps } from \"react\";\nimport { MoneyAmount } from \"../../globalDomain\";\nimport { DisplayMoneyAmount } from \"../Price/DisplayMoneyAmount\";\n\ntype Props = {\n label: LocalizedString;\n value: MoneyAmount;\n inverted?: boolean;\n size: \"small\" | \"x-small\" | \"input\" | \"large\" | \"big\";\n fractionDigits?: NonNegativeInteger;\n description?: LocalizedString;\n feedback?: {\n type: ComponentProps[\"type\"];\n message: LocalizedString;\n };\n};\n\nexport function ReadOnlyMoneyAmountField(props: Props) {\n const labelId = useUniqueID();\n return (\n \n \n \n {props.feedback && (\n \n \n \n \n )}\n \n );\n}\n","import {\n Box,\n Space,\n Banner,\n useAuthenticationContext,\n LocalizedString,\n} from \"design-system\";\n\nimport { option } from \"fp-ts\";\nimport { constNull } from \"fp-ts/function\";\nimport { foldPortalStatus } from \"../../globalDomain\";\nimport { usePortalStatusContext } from \"../../PortalStatusContext\";\nimport { PortalStatusAlertDialog } from \"./PortalStatusAlertDialog\";\n\ntype Props = { inAuthenticatedPage: boolean };\n\nexport function PortalStatusAlert(props: Props) {\n const { logout } = useAuthenticationContext();\n\n const {\n portalStatus,\n isAlertModalVisible,\n setAlertModalVisible,\n } = usePortalStatusContext();\n\n return (\n <>\n {foldPortalStatus(portalStatus, {\n onInitial: constNull,\n onNone: constNull,\n onActive: (message: LocalizedString) => (\n \n \n \n {props.inAuthenticatedPage && isAlertModalVisible && (\n setAlertModalVisible(false)}\n onConfirm={logout}\n onDismiss={() => setAlertModalVisible(false)}\n />\n )}\n \n ),\n onScheduled: (message: LocalizedString) => (\n \n \n \n \n ),\n })}\n \n );\n}\n","import { useEffect, useState } from \"react\";\n\nexport function useDebounceState(value: V, delay: number) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(timeout);\n };\n }, [value]);\n\n return debouncedValue;\n}\n","import {\n Box,\n buttonLink,\n Body,\n useIsTouchScreen,\n LocalizedString,\n} from \"design-system\";\nimport { useFormatMessage } from \"../../intl\";\nimport { useState } from \"react\";\nimport { FilePDFDialog } from \"../Dialogs/FilePDFDialog/FilePDFDialog\";\nimport { pipe } from \"fp-ts/function\";\nimport { taskEither } from \"fp-ts\";\nimport { useCommand } from \"../../useAPI\";\nimport * as documentAPI from \"../../Common/documentAPI\";\n\ntype Props = {\n label?: LocalizedString;\n disabledLink?: boolean;\n};\n\nexport function PersonalDataProcessingDisclaimer(props: Props) {\n const formatMessage = useFormatMessage();\n const isBranchExperienceTouchScreen = useIsTouchScreen();\n\n const [dataModalOpen, setDataModalOpen] = useState(false);\n\n const personalDataProcessingTemplates = useCommand(documentAPI.templates);\n const personalDataProcessingContent = useCommand(documentAPI.content);\n\n const disclaimerLabel = isBranchExperienceTouchScreen\n ? formatMessage(\n \"PersonalDataProcessingDisclaimer.byContinuingDisclaimer.externalScreeen\"\n )\n : formatMessage(\"PersonalDataProcessingDisclaimer.byContinuingDisclaimer\");\n\n return (\n \n \n {[\n props.label || disclaimerLabel,\n buttonLink(\n () => setDataModalOpen(true),\n formatMessage(\n \"PersonalDataProcessingDisclaimer.personalDataProcessing\"\n ),\n props.disabledLink\n ),\n ]}\n \n {dataModalOpen && (\n setDataModalOpen(false)}\n title={formatMessage(\n \"PersonalDataProcessingDisclaimer.personalDataProcessingTitle\"\n )}\n file={pipe(\n personalDataProcessingTemplates({\n docsets: [\"personalDataProcessing\"],\n }),\n taskEither.chain(items =>\n personalDataProcessingContent({ docId: items[0].docId })\n )\n )}\n />\n )}\n \n );\n}\n","import { LocalizedString } from \"design-system\";\nimport { array, eq, option, set, taskEither } from \"fp-ts\";\nimport { constVoid, pipe } from \"fp-ts/function\";\nimport { ReaderTaskEither } from \"fp-ts/ReaderTaskEither\";\nimport { TaskEither } from \"fp-ts//TaskEither\";\nimport { NonEmptyArray } from \"fp-ts/NonEmptyArray\";\nimport { Option } from \"fp-ts/Option\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { Dispatch } from \"react\";\nimport { useFormatMessage } from \"../../intl\";\nimport { PreContractualDocumentMeta } from \"../documentAPI\";\nimport {\n UIError,\n Action,\n unreadDocumentAction,\n readDocumentAction,\n changeMarketingConsentAction,\n changeDocumentsReceivedConfirmationAction,\n confirmMarketingConsentAction,\n changeForeignSigningConsentAction,\n} from \"./state\";\nimport { ExistingClientAuthenticationMethod } from \"../../globalDomain\";\nimport { SmartKeyMode } from \"../../SmartKey/SmartKeyState\";\n\nexport type DocumentReadStatus = \"Unread\" | \"Reading\" | \"Read\";\n\nexport function getFirstUnreadDocument(\n documents: NonEmptyArray,\n documentsRead: Set\n): Option {\n return pipe(\n documents,\n array.findFirst(d =>\n pipe(\n documentsRead,\n set.every(d2 => d2 !== d.docId)\n )\n )\n );\n}\n\nexport function getDocumentReadingStatus(\n documents: NonEmptyArray,\n documentsRead: Set\n) {\n return (docId: NonEmptyString): DocumentReadStatus => {\n const isRead = pipe(documentsRead, set.elem(eq.eqStrict)(docId));\n\n if (isRead) {\n return \"Read\";\n } else {\n if (\n pipe(\n getFirstUnreadDocument(documents, documentsRead),\n option.exists(d => d.docId === docId)\n )\n ) {\n return \"Reading\";\n }\n return \"Unread\";\n }\n };\n}\n\nexport const useFormatError = () => {\n const formatMessage = useFormatMessage();\n return (error: UIError): LocalizedString => {\n switch (error) {\n case \"DocumentsUnread\":\n return formatMessage(\"UKonto.ReadDocuments.unreadDocumentsError\");\n }\n };\n};\n\nexport const getPreContractualDocumentsActions = (\n dispatch: Dispatch,\n commands: {\n contractRead: ReaderTaskEither;\n contractUnread: ReaderTaskEither;\n marketingConsent: ReaderTaskEither;\n termsAndConditionsReceived: TaskEither;\n foreignSigningConsent?: ReaderTaskEither;\n }\n) => {\n return {\n handleContractRead: (docId: NonEmptyString) =>\n pipe(\n commands.contractRead(docId),\n taskEither.map(() => dispatch(readDocumentAction(docId)))\n ),\n handleContractUnread: (docId: NonEmptyString) =>\n pipe(\n commands.contractUnread(docId),\n taskEither.map(() => dispatch(unreadDocumentAction(docId)))\n ),\n handleMarketingConsentAcceptance: (accepted: boolean) =>\n pipe(\n commands.marketingConsent(accepted),\n taskEither.map(() => dispatch(changeMarketingConsentAction(accepted)))\n ),\n handlePreContractualReceived: (checked: boolean) =>\n pipe(\n commands.termsAndConditionsReceived,\n taskEither.map(() =>\n dispatch(changeDocumentsReceivedConfirmationAction(checked))\n )\n ),\n handleModalMarketingConsentAcceptance: (accepted: boolean) =>\n pipe(\n commands.marketingConsent(accepted),\n taskEither.map(() => dispatch(confirmMarketingConsentAction(accepted)))\n ),\n handleForeignSigningConsentAcceptance: (accepted: boolean) =>\n commands.foreignSigningConsent\n ? pipe(\n commands.foreignSigningConsent(accepted),\n taskEither.map(() =>\n dispatch(changeForeignSigningConsentAction(accepted))\n )\n )\n : constVoid,\n };\n};\n\nexport const mediationInsuranceDocset = \"uKontoInsuranceMediation\";\n\nexport function getSmartKeyInitialMode(\n authenticationMethod: Option\n): Option {\n return pipe(\n authenticationMethod,\n option.chain(value => {\n switch (value) {\n case \"QR\":\n return option.some(\"qr\");\n case \"PUSH_NOTIFICATION\":\n return option.some(\"push\");\n default:\n return option.none;\n }\n })\n );\n}\n","import { LocalizedString } from \"design-system\";\nimport * as t from \"io-ts\";\nimport { optionFromNullable } from \"io-ts-types/lib/optionFromNullable\";\nimport { sharedReducerConfig } from \"../../BranchExperience/useSharedReducer\";\n\nconst Initial = optionFromNullable(\n t.type(\n {\n type: t.keyof({\n informative: true,\n success: true,\n warning: true,\n error: true,\n }),\n message: LocalizedString,\n targetScreen: t.keyof({\n parent: true,\n child: true,\n both: true,\n }),\n },\n \"Initial\"\n )\n);\n\nconst State = Initial;\nexport type State = t.TypeOf;\n\nconst SetStateAction = t.type({\n type: t.literal(\"SetStateAction\"),\n state: State,\n});\nconst Action = SetStateAction;\nexport type Action = t.TypeOf;\n\nexport function setStateAction(state: State): Action {\n return {\n type: \"SetStateAction\",\n state,\n };\n}\n\nfunction reducer(_: State, action: Action): State {\n switch (action.type) {\n case \"SetStateAction\":\n return action.state;\n }\n}\n\nexport const reducerConfig = sharedReducerConfig(\n \"SnackbarProvider\",\n State,\n Action,\n reducer\n);\n","import { ComponentProps } from \"react\";\nimport { ReadOnlyField } from \"design-system\";\nimport { useFormatMoneyAmountValue } from \"../../intl\";\nimport { constant, pipe } from \"fp-ts/function\";\nimport { option } from \"fp-ts\";\nimport { MoneyField } from \"../Price/MoneyField/MoneyField\";\n\ntype Feedback = ComponentProps[\"feedback\"];\n\ntype Props = ComponentProps & {\n edit: boolean;\n feedback?: Feedback;\n};\n\nexport function OptionalEditMoneyField(props: Props) {\n const formatMoneyAmountValue = useFormatMoneyAmountValue();\n const { edit, ...fieldProps } = props;\n\n return edit ? (\n \n ) : (\n ({\n amount,\n currency: props.currency,\n }))\n )}\n feedback={props.feedback}\n />\n );\n}\n","import { apiCall } from \"../APICall\";\nimport * as t from \"io-ts\";\nimport { eq } from \"fp-ts\";\nimport { constFalse } from \"fp-ts/function\";\nimport { ClientDataOutput } from \"../IdUpload/api\";\n\nexport const digitalIdStart = apiCall({\n path: [\"clients\", \"digitalId\", \"start\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.type({\n applicantIndex: t.union([t.string, t.null, t.undefined]),\n }),\n outputCodec: t.union([t.void, t.null, t.undefined]),\n});\n\nconst DigitalIdStatus = t.type({\n status: t.union([\n t.literal(\"RETRY\"),\n t.literal(\"STOP\"),\n t.literal(\"CONTINUE\"),\n ]),\n stopReason: t.string,\n});\nexport const digitalIdStatus = apiCall({\n path: [\"clients\", \"digitalId\", \"status\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: DigitalIdStatus,\n});\n\nconst DigitalIdClientIdentified = t.type({\n photo: t.string,\n});\nexport type DigitalIdClientIdentified = t.TypeOf<\n typeof DigitalIdClientIdentified\n>;\nexport const digitalIdClientIdentified = apiCall({\n path: [\"clients\", \"digitalId\", \"client\", \"photo\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: DigitalIdClientIdentified,\n});\n\nconst DigitalIdQrCode = t.type({\n qrCode: t.string,\n});\nexport const digitalIdQrCode = apiCall({\n path: [\"clients\", \"digitalId\", \"qrCode\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: DigitalIdQrCode,\n});\n\nconst DigitalIdClientCheckExistingResponse = t.type({\n existingClient: t.boolean,\n duplicateContacts: t.boolean,\n hasBlockingNotes: t.boolean,\n multipleUsers: t.boolean,\n personalNumberMatch: t.boolean,\n clientNumber: t.union([t.string, t.null, t.undefined]),\n clientStatus: t.union([t.string, t.null, t.undefined]),\n userID: t.union([t.string, t.null, t.undefined]),\n});\nexport type ExistingClient = t.TypeOf<\n typeof DigitalIdClientCheckExistingResponse\n>;\nexport const digitalIdClientCheckExisting = apiCall({\n path: [\"clients\", \"digitalId\", \"client\", \"checkExisting\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: DigitalIdClientCheckExistingResponse,\n});\n\nexport const digitalIdExtractData = apiCall({\n path: [\"clients\", \"digitalId\", \"extractData\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: ClientDataOutput,\n});\n\nconst DigitalIdSavedDocuments = t.type({\n ready: t.boolean,\n documents: t.array(\n t.type({\n name: t.string,\n id: t.string,\n })\n ),\n});\n\nexport type SavedDocuments = t.TypeOf;\n\nexport const digitalIdSaveDocuments = apiCall({\n path: [\"clients\", \"digitalId\", \"identification\", \"documents\", \"save\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: t.union([t.void, t.null, t.undefined]),\n});\n\nconst FlowInfo = t.type({\n info: t.string,\n});\n\nexport const digitalIdFlowInfo = apiCall({\n path: [\"clients\", \"digitalId\", \"identification\", \"flowInfo\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: FlowInfo,\n});\n\nexport const digitalIdGetDocuments = apiCall({\n path: [\"clients\", \"digitalId\", \"identification\", \"documents\", \"get\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: DigitalIdSavedDocuments,\n});\n\nexport const digitalIdSetBirthNumber = apiCall({\n path: [\"clients\", \"digitalId\", \"client\", \"birthNumber\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.type({ birthNumber: t.string }),\n outputCodec: t.union([t.void, t.null, t.undefined]),\n});\n","import { constant, pipe } from \"fp-ts/function\";\nimport {\n TextChildren,\n ReadOnlyField,\n InlineMessage,\n LocalizedString,\n} from \"design-system\";\n\nimport { option } from \"fp-ts\";\nimport { Option } from \"fp-ts/Option\";\nimport { useFormatDate } from \"../../intl\";\nimport { ComponentProps } from \"react\";\n\ntype Props = {\n id?: string;\n value: Option;\n label: TextChildren;\n format: \"mm-yyyy\" | \"dd-mm-yyyy\";\n feedback?: {\n type: ComponentProps[\"type\"];\n message: LocalizedString;\n };\n};\n\nexport function ReadOnlyDateField(props: Props) {\n const formatDate = useFormatDate(props.format);\n return (\n \n );\n}\n","import {\n Criteria,\n PasswordStrength,\n passwordCriteriaValidators,\n LocalizedString,\n} from \"design-system\";\nimport { useFormatMessage } from \"../intl\";\n\nexport const useCriteria = () => {\n const formatMessage = useFormatMessage();\n\n const lengthRange: (\n minLength: number,\n maxLength: number\n ) => Criteria = (minLength, maxLength) => ({\n label: formatMessage(\"Form.passwordCriteria.lengthRange\", {\n minLength,\n maxLength,\n }),\n validator: passwordCriteriaValidators.lengthRange(minLength, maxLength),\n });\n\n const minLength: (length: number) => Criteria = length => ({\n label: formatMessage(\"Form.passwordCriteria.minLength\", { length }),\n validator: passwordCriteriaValidators.minLength(length),\n });\n\n const hasDigit: Criteria = {\n label: formatMessage(\"Form.passwordCriteria.digit\"),\n validator: passwordCriteriaValidators.hasDigit,\n };\n\n const hasSpecialCharacter: Criteria = {\n label: formatMessage(\"Form.passwordCriteria.specialCharacter\"),\n validator: passwordCriteriaValidators.hasSpecialCharacter,\n };\n\n const hasLowerLetter: Criteria = {\n label: formatMessage(\"Form.passwordCriteria.lowercaseLetter\"),\n validator: passwordCriteriaValidators.hasLowerLetter,\n };\n\n const hasCapitalLetter: Criteria = {\n label: formatMessage(\"Form.passwordCriteria.capitalLetter\"),\n validator: passwordCriteriaValidators.hasCapitalLetter,\n };\n\n const noPartialConsecutiveDigits: Criteria = {\n label: formatMessage(\"Form.passwordCriteria.noConsecutiveDigits\"),\n validator: passwordCriteriaValidators.noPartialConsecutiveDigits,\n };\n\n const noDigitRepeatsMoreThanN: (\n maxRepetitions: number\n ) => Criteria = maxRepetitions => ({\n label: formatMessage(\"Form.passwordCriteria.noDigitRepeatsMoreThanN\", {\n times: maxRepetitions,\n }),\n validator: passwordCriteriaValidators.noDigitRepeatsMoreThanN(\n maxRepetitions\n ),\n });\n\n const noSpecialCharacters: Criteria = {\n label: formatMessage(\"Form.passwordCriteria.noSpecialCharacters\"),\n validator: passwordCriteriaValidators.noSpecialCharacters,\n };\n\n const noDigitFirstCharacter: Criteria = {\n label: formatMessage(\"Form.passwordCriteria.noDigitFirstCharacter\"),\n validator: passwordCriteriaValidators.noDigitFirstCharacter,\n };\n\n const clientPasswordCriteria = {\n lengthRange: lengthRange(6, 14),\n noDigitFirstCharacter,\n noSpecialCharacters,\n };\n\n const thirdPartyPasswordCriteria = {\n minLength: minLength(8),\n hasDigit,\n hasLowerLetter,\n hasCapitalLetter,\n hasSpecialCharacter,\n } as const;\n\n const securityPinCriteria = {\n lengthRange: lengthRange(6, 8),\n noPartialConsecutiveDigits,\n noDigitRepeatsMoreThanN: noDigitRepeatsMoreThanN(2),\n };\n\n const passwordStrengthLabel = (\n strength: Exclude\n ): LocalizedString => {\n switch (strength) {\n case \"good\":\n return formatMessage(\"Form.passwordField.goodPassword\");\n case \"strong\":\n return formatMessage(\"Form.passwordField.strongPassword\");\n }\n };\n\n const pinStrengthLabel = (\n strength: Exclude\n ): LocalizedString => {\n switch (strength) {\n case \"good\":\n return formatMessage(\"Form.passwordField.goodPin\");\n case \"strong\":\n return formatMessage(\"Form.passwordField.strongPin\");\n }\n };\n\n return {\n clientPasswordCriteria,\n thirdPartyPasswordCriteria,\n securityPinCriteria,\n passwordStrengthLabel,\n pinStrengthLabel,\n };\n};\n","import { set, option, eq, ord, nonEmptyArray } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { NonEmptyArray } from \"fp-ts/NonEmptyArray\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { nonEmptyArray as nonEmptyArrayC } from \"io-ts-types/lib/nonEmptyArray\";\nimport { DocumentMeta } from \"../documentAPI\";\nimport * as t from \"io-ts\";\nimport { setFromArray } from \"io-ts-types/lib/setFromArray\";\nimport {\n ExistingClientAuthenticationMethod,\n optionFromUndefined,\n} from \"../../globalDomain\";\nimport { sharedReducerConfig } from \"../../BranchExperience/useSharedReducer\";\nimport { option as optionCodec } from \"io-ts-types/lib/option\";\n\nconst UIError = t.literal(\"DocumentsUnread\");\nexport type UIError = t.TypeOf;\n\nconst ReadDocumentsState = t.type({\n type: t.literal(\"ReadDocuments\"),\n documentsRead: setFromArray(NonEmptyString, ord.ordString),\n documentsReceivedConfirmation: t.boolean,\n marketingConsent: t.boolean,\n foreignSigningConsent: t.boolean,\n isMarketingConsentModalOpen: t.boolean,\n error: optionFromUndefined(UIError),\n authenticationMethod: optionCodec(ExistingClientAuthenticationMethod),\n});\nconst SigningDocumentsState = t.type({\n type: t.literal(\"SigningDocuments\"),\n authenticationMethod: optionCodec(ExistingClientAuthenticationMethod),\n documentsRead: setFromArray(NonEmptyString, ord.ordString),\n documentsReceivedConfirmation: t.boolean,\n marketingConsent: t.boolean,\n foreignSigningConsent: t.boolean,\n});\nconst State = t.union([ReadDocumentsState, SigningDocumentsState]);\n\nexport type State = t.TypeOf;\n\nconst ReadDocumentAction = t.type({\n type: t.literal(\"ReadDocument\"),\n payload: NonEmptyString,\n});\nexport function readDocumentAction(documentId: NonEmptyString): Action {\n return {\n type: \"ReadDocument\",\n payload: documentId,\n };\n}\n\nconst UnreadDocumentAction = t.type({\n type: t.literal(\"UnreadDocument\"),\n payload: NonEmptyString,\n});\nexport function unreadDocumentAction(documentId: NonEmptyString): Action {\n return {\n type: \"UnreadDocument\",\n payload: documentId,\n };\n}\n\nconst ChangeDocumentsReceivedConfirmationAction = t.type({\n type: t.literal(\"ChangeDocumentsReceivedConfirmation\"),\n payload: t.boolean,\n});\nexport function changeDocumentsReceivedConfirmationAction(\n confirm: boolean\n): Action {\n return {\n type: \"ChangeDocumentsReceivedConfirmation\",\n payload: confirm,\n };\n}\n\nconst ChangeMarketingConsentAction = t.type({\n type: t.literal(\"ChangeMarketingConsent\"),\n payload: t.boolean,\n});\nexport function changeMarketingConsentAction(value: boolean): Action {\n return {\n type: \"ChangeMarketingConsent\",\n payload: value,\n };\n}\n\nconst ChangeForeignSigningConsentAction = t.type({\n type: t.literal(\"ChangeForeignSigningConsent\"),\n payload: t.boolean,\n});\nexport function changeForeignSigningConsentAction(value: boolean): Action {\n return {\n type: \"ChangeForeignSigningConsent\",\n payload: value,\n };\n}\n\nconst StartSignatureAction = t.type({\n type: t.literal(\"StartSignature\"),\n payload: t.type({\n allDocuments: nonEmptyArrayC(DocumentMeta),\n checkDocumentRead: t.boolean,\n checkMarketingConsent: t.boolean,\n isForeignClient: t.boolean,\n }),\n});\nexport function startSignatureAction(\n allDocuments: NonEmptyArray,\n checkDocumentRead: boolean,\n checkMarketingConsent: boolean,\n isForeignClient: boolean\n): Action {\n return {\n type: \"StartSignature\",\n payload: {\n allDocuments,\n checkDocumentRead,\n checkMarketingConsent,\n isForeignClient,\n },\n };\n}\n\nconst ConfirmMarketingConsentAction = t.type({\n type: t.literal(\"ConfirmMarketingConsentAction\"),\n payload: t.boolean,\n});\nexport function confirmMarketingConsentAction(confirmation: boolean): Action {\n return {\n type: \"ConfirmMarketingConsentAction\",\n payload: confirmation,\n };\n}\n\nconst DismissMarketingModalAction = t.type({\n type: t.literal(\"DismissMarketingModal\"),\n});\nexport function dismissMarketingModalAction(): Action {\n return {\n type: \"DismissMarketingModal\",\n };\n}\nconst CancelSignatureAction = t.type({\n type: t.literal(\"CancelSignature\"),\n});\n\nexport const Action = t.union([\n ReadDocumentAction,\n UnreadDocumentAction,\n ChangeDocumentsReceivedConfirmationAction,\n ChangeMarketingConsentAction,\n ChangeForeignSigningConsentAction,\n StartSignatureAction,\n ConfirmMarketingConsentAction,\n DismissMarketingModalAction,\n CancelSignatureAction,\n]);\nexport type Action = t.TypeOf;\n\nfunction checkHasReadAllContracts(\n allDocuments: NonEmptyArray,\n documentsRead: Set\n): boolean {\n const unreadDocuments = pipe(\n allDocuments,\n nonEmptyArray.map(document => document.docId),\n set.fromArray(eq.eqString),\n set.difference(eq.eqString)(documentsRead)\n );\n return unreadDocuments.size === 0;\n}\n\nfunction checkCanStartSignature(\n allDocuments: NonEmptyArray,\n documentsRead: Set,\n confirmDocumentsReceived: boolean,\n isForeignClient: boolean,\n foreignSigningConsent: boolean\n): boolean {\n return isForeignClient\n ? checkHasReadAllContracts(allDocuments, documentsRead) &&\n confirmDocumentsReceived &&\n foreignSigningConsent\n : checkHasReadAllContracts(allDocuments, documentsRead) &&\n confirmDocumentsReceived;\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case \"ReadDocument\":\n if (state.type === \"ReadDocuments\") {\n return {\n ...state,\n documentsRead: pipe(\n state.documentsRead,\n set.insert(eq.eqString)(action.payload)\n ),\n error: option.none,\n };\n } else return state;\n case \"UnreadDocument\":\n if (state.type === \"ReadDocuments\") {\n return {\n ...state,\n documentsRead: pipe(\n state.documentsRead,\n set.remove(eq.eqString)(action.payload)\n ),\n error: option.none,\n };\n } else return state;\n case \"ChangeDocumentsReceivedConfirmation\":\n if (state.type === \"ReadDocuments\") {\n return {\n ...state,\n documentsReceivedConfirmation: action.payload,\n error: action.payload ? option.none : state.error,\n };\n } else return state;\n case \"ChangeMarketingConsent\":\n if (state.type === \"ReadDocuments\") {\n return {\n ...state,\n marketingConsent: action.payload,\n };\n } else return state;\n case \"ChangeForeignSigningConsent\":\n if (state.type === \"ReadDocuments\") {\n return {\n ...state,\n foreignSigningConsent: action.payload,\n };\n } else return state;\n case \"StartSignature\":\n if (state.type === \"ReadDocuments\") {\n if (\n !action.payload.checkDocumentRead ||\n checkCanStartSignature(\n action.payload.allDocuments,\n state.documentsRead,\n state.documentsReceivedConfirmation,\n action.payload.isForeignClient,\n state.foreignSigningConsent\n )\n ) {\n if (state.marketingConsent || !action.payload.checkMarketingConsent) {\n return {\n type: \"SigningDocuments\",\n marketingConsent: state.marketingConsent,\n authenticationMethod: state.authenticationMethod,\n documentsRead: state.documentsRead,\n documentsReceivedConfirmation:\n state.documentsReceivedConfirmation,\n foreignSigningConsent: state.foreignSigningConsent,\n };\n } else {\n return {\n ...state,\n isMarketingConsentModalOpen: true,\n };\n }\n } else {\n return {\n ...state,\n error: option.some(\"DocumentsUnread\"),\n };\n }\n } else return state;\n case \"ConfirmMarketingConsentAction\":\n if (state.type === \"ReadDocuments\") {\n return {\n type: \"SigningDocuments\",\n marketingConsent: action.payload,\n authenticationMethod: state.authenticationMethod,\n documentsRead: state.documentsRead,\n documentsReceivedConfirmation: state.documentsReceivedConfirmation,\n foreignSigningConsent: state.foreignSigningConsent,\n };\n } else return state;\n case \"DismissMarketingModal\":\n if (state.type === \"ReadDocuments\") {\n return {\n ...state,\n isMarketingConsentModalOpen: false,\n };\n } else {\n return state;\n }\n case \"CancelSignature\":\n if (state.type === \"SigningDocuments\") {\n return {\n ...state,\n type: \"ReadDocuments\",\n isMarketingConsentModalOpen: false,\n error: option.none,\n };\n } else {\n return state;\n }\n }\n}\n\nexport const reducerConfig = sharedReducerConfig(\n \"PreContractualDocuments\",\n State,\n Action,\n reducer\n);\n","import * as t from \"io-ts\";\n\nexport const SearchStatusType = t.keyof({\n PENDING: true,\n CLOSED: true,\n});\n\nexport type SearchStatusType = t.TypeOf;\n\nexport const SearchSourceType = t.keyof({\n ALL: true,\n YOU: true,\n});\n\nexport type SearchSourceType = t.TypeOf;\n","import * as t from \"io-ts\";\nimport { apiCall } from \"../../APICall\";\nimport { eq, option } from \"fp-ts\";\nimport { constFalse } from \"fp-ts/function\";\nimport { optionFromUndefined } from \"../../globalDomain\";\nimport { withFallback } from \"io-ts-types/lib/withFallback\";\n\nconst CurrentPortalStatus = t.union(\n [\n t.type({\n currentlyBlocked: t.literal(true),\n portalBlockScheduled: t.literal(false),\n timeFrom: withFallback(optionFromUndefined(t.number), option.none),\n timeTo: withFallback(optionFromUndefined(t.number), option.none),\n }),\n t.type({\n currentlyBlocked: t.literal(false),\n portalBlockScheduled: t.literal(true),\n timeFrom: withFallback(optionFromUndefined(t.number), option.none),\n timeTo: withFallback(optionFromUndefined(t.number), option.none),\n }),\n t.type({\n currentlyBlocked: t.literal(false),\n portalBlockScheduled: t.literal(false),\n }),\n ],\n \"CurrentPortalStatus\"\n);\nexport type CurrentPortalStatus = t.TypeOf;\n\nexport const currentPortalStatus = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"utilities\", \"noauth\", \"cached\", \"currentPortalStatus\"],\n inputCodec: t.void,\n outputCodec: CurrentPortalStatus,\n});\n","import { ReadOnlyField } from \"design-system\";\nimport { constant, pipe } from \"fp-ts/function\";\nimport { option } from \"fp-ts\";\nimport {\n DropdownField,\n DropdownFieldProps,\n} from \"../DropdownField/DropdownField\";\nimport { ComponentProps } from \"react\";\n\ntype Feedback = ComponentProps[\"feedback\"];\n\ntype Props = DropdownFieldProps & {\n edit: boolean;\n feedback?: Feedback;\n};\n\nexport function OptionalEditDropdownField(props: Props) {\n const { edit, ...fieldProps } = props;\n\n if (edit) return ;\n\n const value = pipe(\n props.value,\n option.map(({ label }) => String(label)),\n option.getOrElse(constant(\"\"))\n );\n\n return (\n \n );\n}\n","import { LoadingButton } from \"design-system\";\nimport {\n Props,\n useShareWithClientButtonProps,\n} from \"./useShareWithClientButtonProps\";\n\nexport function ShareWithClientButton(props: Props) {\n const buttonProps = useShareWithClientButtonProps(props);\n return (\n \n );\n}\n","import { LoadingButton, LocalizedString } from \"design-system\";\n\nimport { task, taskEither } from \"fp-ts\";\nimport { constVoid, pipe } from \"fp-ts/function\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { ComponentProps, useEffect, useState } from \"react\";\nimport { formatDuration, useFormatMessage } from \"../../intl\";\nimport { useAppContext } from \"../../useAppContext\";\nimport { useBranchExperienceContext } from \"../../BranchExperience/BranchExperienceContext\";\n\nexport type BranchExperienceState = \"sharedWithClient\" | \"notShared\";\n\nexport type Props = {\n branchExperienceState: BranchExperienceState;\n action: TaskEither;\n submitLabel: LocalizedString;\n disabled?: boolean;\n shareWithClientLabel?: LocalizedString;\n};\n\ntype State =\n | { type: \"readyToShare\" }\n | { type: \"sharingWithCountdown\"; startTime: number }\n | { type: \"confirmedByClient\" };\n\nconst alwaysConfirmed: State = { type: \"confirmedByClient\" };\nconst backToReadyOrSharing: State = { type: \"readyToShare\" };\nconst countdownIntervalMs = 200;\n\nexport function useShareWithClientButtonProps(\n props: Props\n): Pick<\n ComponentProps,\n \"action\" | \"labels\" | \"loadingMessage\" | \"disabled\"\n> {\n const formatMessage = useFormatMessage();\n const { branchExperienceFeaturesActive } = useBranchExperienceContext();\n const {\n config: {\n shareWithClientButtonConfirmationDelayMs,\n shareWithClientButtonShareDelayMs,\n },\n } = useAppContext();\n\n const [_state, setState] = useState({ type: \"readyToShare\" });\n const state = branchExperienceFeaturesActive ? _state : alwaysConfirmed;\n useEffect(() => {\n if (props.branchExperienceState !== \"sharedWithClient\") {\n setState(backToReadyOrSharing);\n } else if (state.type === \"sharingWithCountdown\") {\n if (\n Date.now() - state.startTime >=\n shareWithClientButtonConfirmationDelayMs\n ) {\n setState({ type: \"confirmedByClient\" });\n } else {\n const timeout = setTimeout(() => {\n if (\n state.type === \"sharingWithCountdown\" &&\n props.branchExperienceState === \"sharedWithClient\"\n ) {\n setState({\n type: \"sharingWithCountdown\",\n startTime: state.startTime,\n });\n }\n }, countdownIntervalMs);\n return () => clearTimeout(timeout);\n }\n }\n return constVoid;\n }, [props.branchExperienceState, state]);\n\n const action = ((): TaskEither => {\n switch (state.type) {\n case \"readyToShare\":\n return pipe(\n props.action,\n taskEither.chain(() =>\n taskEither.rightTask(\n pipe(task.of(null), task.delay(shareWithClientButtonShareDelayMs))\n )\n ),\n taskEither.chain(() =>\n taskEither.fromIO(() =>\n setState({ type: \"sharingWithCountdown\", startTime: Date.now() })\n )\n )\n );\n case \"sharingWithCountdown\":\n return taskEither.rightIO(constVoid);\n case \"confirmedByClient\":\n return props.action;\n }\n })();\n\n const resultLabel = ((): LocalizedString => {\n switch (state.type) {\n case \"readyToShare\":\n case \"sharingWithCountdown\":\n return (\n props.shareWithClientLabel ||\n formatMessage(\"ShareWithClientButton.label\")\n );\n case \"confirmedByClient\":\n return props.submitLabel;\n }\n })();\n\n const label = ((): LocalizedString => {\n switch (state.type) {\n case \"readyToShare\":\n return (\n props.shareWithClientLabel ||\n formatMessage(\"ShareWithClientButton.label\")\n );\n case \"sharingWithCountdown\":\n case \"confirmedByClient\":\n return props.submitLabel;\n }\n })();\n\n return {\n labels: {\n normal: label,\n success: resultLabel,\n loading: label,\n error: resultLabel,\n },\n action,\n loadingMessage:\n state.type === \"sharingWithCountdown\"\n ? formatMessage(\"ShareWithClientButton.counterMessage\", {\n seconds: formatDuration(\n Math.round(\n (shareWithClientButtonConfirmationDelayMs -\n (Date.now() - state.startTime)) /\n 1000\n )\n ),\n })\n : undefined,\n disabled: state.type === \"sharingWithCountdown\" || props.disabled,\n };\n}\n","import { useAppContext } from \"../useAppContext\";\n\nexport function useTestEnvironment() {\n const {\n config: { environment },\n } = useAppContext();\n\n return (\n environment === \"sit\" ||\n environment === \"uat\" ||\n environment === \"hf\" ||\n environment === \"dev\"\n );\n}\n","import {\n useIsTouchScreen,\n SnackBarProvider as DSSnackbarProvider,\n SnackbarState,\n Children,\n LocalizedString,\n} from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { Option } from \"fp-ts/Option\";\nimport { ComponentProps, useState } from \"react\";\nimport {\n useChildSharedReducer,\n useParentSharedReducer,\n} from \"../../BranchExperience/useSharedReducer\";\nimport {\n reducerConfig,\n setStateAction,\n State,\n Action,\n} from \"./branchExperienceState\";\n\ntype Props = {\n children: Children;\n};\n\ntype LocalStateProps = {\n getState: (\n sharedState: State\n ) => ComponentProps[\"state\"];\n getSetState: (\n dispatch: (action: Action) => unknown\n ) => ComponentProps[\"setState\"];\n};\n\nfunction SnackbarProviderParent(props: Props & LocalStateProps) {\n const [sharedSnackbar, dispatch] = useParentSharedReducer(\n reducerConfig,\n option.none\n );\n return (\n \n );\n}\n\nfunction SnackbarProviderChild(props: Props & LocalStateProps) {\n const [_sharedSnackbar, dispatch] = useChildSharedReducer(reducerConfig);\n const sharedSnackbar = pipe(_sharedSnackbar, option.flatten);\n return (\n \n );\n}\n\nexport function SnackbarProvider(props: Props) {\n const isTouchScreen = useIsTouchScreen();\n const Component = isTouchScreen\n ? SnackbarProviderChild\n : SnackbarProviderParent;\n const [snackbar, setSnackbar] = useState>(option.none);\n const getState = (sharedSnackbar: State) =>\n pipe(\n snackbar,\n option.alt(() =>\n pipe(\n sharedSnackbar,\n option.filter(s => {\n switch (s.targetScreen) {\n case \"child\":\n return isTouchScreen;\n case \"parent\":\n return !isTouchScreen;\n case \"both\":\n return true;\n }\n }),\n option.map(\n (s): SnackbarState => ({\n type: s.type,\n message: s.message,\n action: option.none,\n })\n )\n )\n )\n );\n const getSetState = (dispatch: (action: Action) => unknown) => (\n newSnackbar: Option\n ) => {\n setSnackbar(\n pipe(\n newSnackbar,\n option.filter(\n s => s.targetScreen === \"self\" || s.targetScreen === \"both\"\n )\n )\n );\n dispatch(\n setStateAction(\n pipe(\n newSnackbar,\n option.chain(s =>\n LocalizedString.is(s.message)\n ? option.some({\n type: s.type,\n message: s.message,\n targetScreen: (() => {\n switch (s.targetScreen || \"self\") {\n case \"self\":\n return isTouchScreen ? \"child\" : \"parent\";\n case \"other\":\n return isTouchScreen ? \"parent\" : \"child\";\n case \"both\":\n return \"both\";\n }\n })(),\n })\n : option.none\n )\n )\n )\n );\n };\n return ;\n}\n","import { Body, Dialog, ErrorIcon } from \"design-system\";\nimport { useFormatMessage } from \"../../intl\";\nimport { option } from \"fp-ts\";\n\nexport function TabLock() {\n const formatMessage = useFormatMessage();\n\n return (\n <>\n \n \n {formatMessage(\"TabLock.anotherOpenTab.label\")}\n \n \n \n );\n}\n","import { TaskEither } from \"fp-ts/TaskEither\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport * as t from \"io-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { array, taskEither } from \"fp-ts\";\nimport { failure } from \"io-ts/lib/PathReporter\";\nimport { PositiveInteger } from \"design-system\";\nimport { Option } from \"fp-ts/Option\";\nimport { fromNullable } from \"io-ts-types/lib/fromNullable\";\nimport { SupportedLocales } from \"./globalDomain\";\n\nexport type BuildConfig = {\n apiEndpoint: Option;\n apiPort: Option;\n};\n\nconst RemoteConfig = t.type(\n {\n UKontoPWSPageURL: NonEmptyString,\n UKontoPWSPageHeight: t.number,\n scannerAppUrl: NonEmptyString,\n settingsPageURL: NonEmptyString,\n tinByCountryURL: NonEmptyString,\n CRSCountryURL: NonEmptyString,\n FATCAURL: NonEmptyString,\n mockScanner: t.boolean,\n onlineBankingInfoURL: NonEmptyString,\n externalCommunication: t.boolean,\n enhancedMF20: t.boolean,\n environment: t.keyof({\n dev: true,\n sit: true,\n uat: true,\n prod: true,\n hf: true,\n ci: true,\n }),\n allowOverdraftSelection: t.boolean,\n biometricConsent: t.boolean,\n ezyPageURL: NonEmptyString,\n PWSURL: NonEmptyString,\n unicreditBranchesMapURL: NonEmptyString,\n PWSExistingClientURL: NonEmptyString,\n cookiesConsentInfoUrl: NonEmptyString,\n contactDetailsDuplicityCheck: fromNullable(t.boolean, true),\n OPUCEXAssignmentEnabled: fromNullable(t.boolean, true),\n multiplePackages: fromNullable(t.boolean, true),\n personalProfileDocumentUpload: fromNullable(t.boolean, true),\n personalProfileMarketingConsent: fromNullable(t.boolean, true),\n branchExperience: fromNullable(t.boolean, true),\n promotionsEnabled: fromNullable(t.boolean, false),\n shareWithClientButtonConfirmationDelayMs: fromNullable(t.number, 5000),\n shareWithClientButtonShareDelayMs: fromNullable(t.number, 2000),\n virtualKeyboardEnabled: fromNullable(t.boolean, true),\n editAddresses: fromNullable(t.boolean, true),\n documentBlurAcceptableScore: fromNullable(t.number, 60),\n specularAcceptableScore: fromNullable(t.number, 60),\n timeToBlurMaxTolerance: fromNullable(t.number, 9999),\n LogoutRedirectUrl: NonEmptyString,\n \"MTG.reworkOfApplicationWorkaround\": fromNullable(t.boolean, true),\n ukontoRemoteFlowEnabled: fromNullable(t.boolean, true),\n ukontoExistingClientsForceSMSOtpSignature: fromNullable(t.boolean, false),\n disableNewPackageExistingClientFromPersonalProfile: fromNullable(\n t.boolean,\n false\n ),\n windowMessageEventsLogs: fromNullable(t.boolean, false),\n forceNativePDFViewer: fromNullable(t.boolean, false),\n adaptiveEnabled: fromNullable(t.boolean, false),\n r5Enabled: fromNullable(t.boolean, false),\n \"r5.2Enabled\": fromNullable(t.boolean, false),\n r6Enabled: fromNullable(t.boolean, false),\n savingsAccountEnabled: fromNullable(t.boolean, false),\n localBirthNumberEnabled: fromNullable(t.boolean, false),\n greenMTGEnabled: fromNullable(t.boolean, false),\n enableMtgImprovementsUi: fromNullable(t.boolean, false),\n mobileUploadIdFeedBackInterval: fromNullable(t.number, 20),\n useNewMobileIdUploadUx: fromNullable(t.boolean, true),\n enableCashLoanId3PInBranch: fromNullable(t.boolean, false),\n r8EnableDeleteReqDoc: fromNullable(t.boolean, false),\n r8Enabled: fromNullable(t.boolean, false),\n enableUkontoRestore: fromNullable(t.boolean, false),\n r8EnableReuseReservedAccount: fromNullable(t.boolean, false),\n r8EnableSimpleRefinancing: fromNullable(t.boolean, false),\n r8EnableDiscountsOnOffer: fromNullable(t.boolean, false),\n r8EnableForeignCountriesSupport: fromNullable(t.boolean, false),\n r1EnableForeignNonResidentSupport: fromNullable(t.boolean, false),\n enableVirtualCardsImpl: fromNullable(t.boolean, false),\n enableVirtualCardsLoanImpl: fromNullable(t.boolean, false),\n physicalCardDefaultCheck: fromNullable(t.boolean, false),\n virtualCardTopImgURL: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n virtualCardMcTopImgURL: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n virtualCardMcMiddleImgURL: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n virtualCardOpenImgURL: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n virtualCardMcOpenImgURL: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n physicalCardTopImgURL: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n physicalCardMcTopImgURL: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n /* physicalCardMiddleImgURL: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),*/\n physicalCardMcMiddleImgURL: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n physicalCardOpenImgURL: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n physicalCardMcOpenImgURL: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n packageSelectionOpenMastercardImgUrl: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n packageSelectionMiddleMastercardImgUrl: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n packageSelectionTopMastercardImgUrl: fromNullable(\n NonEmptyString,\n \"dummy-url\" as NonEmptyString\n ),\n enableBankFee50FE: fromNullable(t.boolean, false),\n recaptchaEnabled: fromNullable(t.boolean, false),\n recaptchaPublicKey: fromNullable(t.string, \"\"),\n r6NewSironMapping: fromNullable(t.boolean, false),\n enableMastercardImpl: fromNullable(t.boolean, false),\n enablePreapprovedOverdraftOB: fromNullable(t.boolean, false),\n enablePreapprovedOverdraftSB: fromNullable(t.boolean, false),\n enablePreapprovedOverdraftTLS: fromNullable(t.boolean, false),\n enablePAOverdraftEmailLinkRestore: fromNullable(t.boolean, false),\n enableForcedRecaptcha: fromNullable(t.boolean, false),\n enableDigitalId: fromNullable(t.boolean, false),\n enableDocumentSigning: fromNullable(t.boolean, false),\n enableInvestmentsEntryPoint: fromNullable(t.boolean, false),\n },\n \"RemoteConfig\"\n);\n\nexport type RemoteConfig = t.TypeOf;\n\nexport function importConfigurations(\n apiEndpoint: NonEmptyString,\n locale: SupportedLocales,\n override: Partial = {}\n): TaskEither {\n const fetchConfigurations = () =>\n fetch(\n `${apiEndpoint.replace(\n /\\/+$/,\n \"\"\n )}/utilities/configurations/noauth?component=eShopFE`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Accept-Language\": locale,\n },\n }\n ).then(body => body.json());\n\n return pipe(\n taskEither.tryCatch(fetchConfigurations, () => [] as t.Errors),\n taskEither.chainEitherKW(RemoteConfig.decode),\n taskEither.bimap(\n e => {\n if (array.isNonEmpty(e)) {\n console.error(\"Decoding error: \", failure(e).join(\"\\n\"));\n }\n },\n config => ({ ...config, ...override })\n )\n );\n}\n","import { Helmet } from \"react-helmet\";\nimport { useFormatMessage } from \"./intl\";\nimport { useAppContext } from \"./useAppContext\";\nimport { foldTenant } from \"./globalDomain\";\n\nexport function DocumentTitle() {\n const formatMessage = useFormatMessage();\n const {\n config: { environment },\n apiParameters: { tenant },\n } = useAppContext();\n\n const title = foldTenant(\n tenant,\n () => formatMessage(\"DocumentTitle.SK\"),\n () => formatMessage(\"DocumentTitle.CZ\")\n );\n\n const envTitle = ((): string => {\n switch (environment) {\n case \"dev\":\n case \"sit\":\n case \"uat\":\n case \"hf\":\n case \"ci\":\n return `${environment.toUpperCase()} | ${title}`;\n case \"prod\":\n return title;\n }\n })();\n\n return (\n \n {envTitle}\n \n );\n}\n","import { Dialog, TextChildren, ProblemIcon, Action } from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { IO } from \"fp-ts/IO\";\nimport { useFormatMessage } from \"../../intl\";\nimport { useIsRemoteChannel } from \"../../useChannel\";\n\ntype Props = {\n message: TextChildren;\n onCancel: IO;\n onDismiss: IO;\n onConfirm: IO;\n};\n\nexport function PortalStatusAlertDialog(props: Props) {\n const isRemote = useIsRemoteChannel();\n const formatMessage = useFormatMessage();\n\n const stayLoggedAction: Action = {\n label: formatMessage(\"PortalStatus.modal.blocked.cancel\"),\n action: props.onCancel,\n variant: \"secondary\",\n dark: true,\n };\n\n const logoutAction: Action = {\n label: formatMessage(\"PortalStatus.modal.blocked.confirm\"),\n action: props.onConfirm,\n variant: \"danger\",\n };\n\n const actions: [Action] | [Action, Action] = !isRemote\n ? [stayLoggedAction, logoutAction]\n : [stayLoggedAction];\n\n return (\n \n );\n}\n","import { MoneyAmount } from \"../../globalDomain\";\nimport * as classes from \"./DisplayMoneyAmount.treat\";\nimport { useFormatMoneyAmount } from \"../../intl\";\nimport { Space, NonNegativeInteger, Box } from \"design-system\";\nimport cx from \"classnames\";\n\ntype Props = {\n id?: string;\n inverted?: boolean;\n amount: MoneyAmount;\n size: \"input\" | \"small\" | \"x-small\" | \"large\" | \"big\";\n fractionDigits?: NonNegativeInteger;\n vAlignContent?: \"top\" | \"center\" | \"bottom\";\n className?: string;\n};\n\nexport function DisplayMoneyAmount(props: Props) {\n const formatMoneyAmount = useFormatMoneyAmount(props.fractionDigits);\n return formatMoneyAmount(props.amount, ({ amount, currency }) => (\n \n {amount}\n \n \n {currency}\n \n \n ));\n}\n","import { ComponentProps } from \"react\";\nimport { Box, ReadOnlyField, TextField } from \"design-system\";\nimport * as classes from \"./OptionalEditTextField.treat\";\n\ntype Feedback = ComponentProps[\"feedback\"];\n\ntype Props = ComponentProps & {\n edit: boolean;\n feedback?: Feedback;\n};\n\nexport function OptionalEditTextField(props: Props) {\n const { edit, ...fieldProps } = props;\n\n if (edit) return ;\n\n if (props.value.length === 0) return null;\n\n return (\n \n \n \n );\n}\n","import {\n Body,\n Box,\n Checkbox,\n Dialog,\n LoadingButton,\n Space,\n WarningIcon,\n} from \"design-system\";\nimport { boolean, option, taskEither } from \"fp-ts\";\nimport { useFormatMessage, useFormatRichMessage2 } from \"../intl\";\nimport { ComponentProps, useEffect, useState } from \"react\";\nimport { FranchiseBranchGdprData } from \"./api\";\nimport { pipe } from \"fp-ts/function\";\nimport { useCommand } from \"../useAPI\";\nimport * as gdprApi from \"./api\";\nimport { palette, spaceUnit } from \"design-system/lib/styleConstants\";\nimport { useAppContext } from \"../useAppContext\";\n\ntype Props = {\n onDismiss: () => void;\n onContinue: () => void;\n paperBased?: boolean;\n onShareWithClient?: (gdprData: FranchiseBranchGdprData) => void;\n accepted?: boolean;\n};\n\nexport const GDPR = ({\n paperBased = false,\n onShareWithClient,\n accepted,\n ...props\n}: Props) => {\n const getGdprData = useCommand(gdprApi.getFranchiseBranchGdprData);\n const setGdprConsent = useCommand(gdprApi.setFranchiseBranchGdprConsent);\n const formatMessage = useFormatMessage();\n const formatRichMessage = useFormatRichMessage2();\n const {\n apiParameters: { channel },\n } = useAppContext();\n const isInPersonChannel = channel.endsWith(\"InPerson\");\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [gdprData, setGdprData] = useState();\n\n useEffect(() => {\n pipe(\n getGdprData(),\n taskEither.chain(gdprData =>\n pipe(\n gdprData.franchiseBranchGdprRequired,\n boolean.fold(\n () =>\n taskEither.fromIO(() => {\n props.onContinue();\n }),\n () =>\n taskEither.fromIO(() => {\n setGdprData(gdprData);\n onShareWithClient && onShareWithClient(gdprData);\n })\n )\n )\n )\n )();\n }, []);\n\n useEffect(() => {\n if (accepted) {\n onContinue();\n }\n }, [accepted]);\n\n const onContinue = pipe(\n taskEither.fromIO(() => setIsSubmitting(true)),\n taskEither.chain(() => setGdprConsent({ accepted: true, paperBased })),\n taskEither.chain(() => taskEither.fromIO(props.onContinue))\n );\n\n const onReject = pipe(\n taskEither.fromIO(() => setIsSubmitting(true)),\n taskEither.chain(() => setGdprConsent({ accepted: false, paperBased })),\n taskEither.chain(() => taskEither.fromIO(props.onContinue))\n );\n\n const [iAgree, setIAgree] = useState(false);\n const actions: Pick<\n ComponentProps,\n \"variant\" | \"action\" | \"labels\" | \"loadingMessage\" | \"disabled\"\n >[] = onShareWithClient\n ? []\n : isInPersonChannel\n ? [\n {\n variant: \"primary\",\n disabled: !iAgree,\n labels: {\n normal: formatMessage(\"Continue\"),\n success: formatMessage(\"Continue\"),\n loading: formatMessage(\"Loading\"),\n error: formatMessage(\"Error\"),\n },\n action: onContinue,\n },\n ]\n : [\n {\n variant: \"secondary\",\n labels: {\n normal: formatMessage(\"GDPR.remote.action.reject\"),\n success: formatMessage(\"GDPR.remote.action.reject\"),\n loading: formatMessage(\"Loading\"),\n error: formatMessage(\"Error\"),\n },\n action: onReject,\n },\n {\n variant: \"primary\",\n labels: {\n normal: formatMessage(\"GDPR.remote.action.accept\", {\n name: gdprData?.franchiseBranchName,\n city: gdprData?.franchiseBranchCity,\n }),\n success: formatMessage(\"GDPR.remote.action.accept\", {\n name: gdprData?.franchiseBranchName,\n city: gdprData?.franchiseBranchCity,\n }),\n loading: formatMessage(\"Loading\"),\n error: formatMessage(\"Error\"),\n },\n action: onContinue,\n },\n ];\n\n return (\n <>\n {gdprData?.franchiseBranchGdprRequired && (\n \n \n \n \n \n \n \n \n \n {formatMessage(\"GDPR.title\")}\n \n \n \n
\n {formatRichMessage(\n isInPersonChannel\n ? paperBased\n ? \"GDPR.paperBased.subtitle\"\n : \"GDPR.subtitle\"\n : \"GDPR.remote.subtitle\",\n {\n city: gdprData.franchiseBranchCity,\n },\n { useWhitespacePreWrap: true }\n )}\n
\n \n {isInPersonChannel && !onShareWithClient && (\n <>\n \n setIAgree(prev => !prev)}\n value={iAgree}\n issuesType={option.none}\n />\n \n )}\n \n \n {actions.map(action => (\n <>\n \n \n \n ))}\n \n \n
\n \n )}\n \n );\n};\n","import * as t from \"io-ts\";\nimport { eq } from \"fp-ts\";\nimport { apiCall } from \"../APICall\";\nimport { constFalse } from \"fp-ts/function\";\n\nexport const getFranchiseBranchGdprDataOutput = t.type({\n franchiseBranchGdprRequired: t.boolean,\n franchiseBranchName: t.union([t.null, t.undefined, t.string]),\n franchiseBranchCity: t.union([t.null, t.undefined, t.string]),\n});\n\nexport type FranchiseBranchGdprData = t.TypeOf<\n typeof getFranchiseBranchGdprDataOutput\n>;\n\nexport const getFranchiseBranchGdprData = apiCall({\n path: [\"clients\", \"franchiseBranchGdpr\", \"data\"],\n inputCodec: t.void,\n inputEq: eq.fromEquals(constFalse),\n outputCodec: getFranchiseBranchGdprDataOutput,\n});\n\nconst setFranchiseBranchGdprConsentInput = t.type({\n accepted: t.boolean,\n paperBased: t.boolean,\n});\n\nexport const setFranchiseBranchGdprConsent = apiCall({\n path: [\"clients\", \"franchiseBranchGdpr\", \"consent\"],\n inputCodec: setFranchiseBranchGdprConsentInput,\n inputEq: eq.fromEquals(constFalse),\n outputCodec: t.unknown,\n});\n","import { Box, buttonLink, Body } from \"design-system\";\nimport { useFormatMessage } from \"../../intl\";\nimport { useState } from \"react\";\nimport { FilePDFDialog } from \"../Dialogs/FilePDFDialog/FilePDFDialog\";\nimport { pipe } from \"fp-ts/function\";\nimport { taskEither } from \"fp-ts\";\nimport { useCommand } from \"../../useAPI\";\nimport * as documentAPI from \"../../Common/documentAPI\";\nimport { palette } from \"design-system/lib/styleConstants\";\n\ntype Props = {\n align: \"center\" | \"left\";\n};\n\nexport function PrivacyPolicyDisclaimer(props: Props) {\n const formatMessage = useFormatMessage();\n\n const [dataModalOpen, setDataModalOpen] = useState(false);\n\n const privacyPolicyTemplates = useCommand(documentAPI.templates);\n const privacyPolicyContent = useCommand(documentAPI.content);\n const privacyPolicyDownload = useCommand(documentAPI.downloadDocument);\n\n return (\n \n \n {[\n formatMessage(\"PrivacyPolicyDisclaimer.byContinuingDisclaimer\"),\n buttonLink(\n () => setDataModalOpen(true),\n formatMessage(\"PrivacyPolicyDisclaimer.privacyPolicy\")\n ),\n ]}\n \n {dataModalOpen && (\n setDataModalOpen(false)}\n title={formatMessage(\"PrivacyPolicyDisclaimer.privacyPolicyTitle\")}\n file={pipe(\n privacyPolicyTemplates({\n docsets: [\"privacyPolicy\"],\n }),\n taskEither.chain(items =>\n privacyPolicyContent({ docId: items[0].docId })\n )\n )}\n downloadAction={pipe(\n privacyPolicyTemplates({\n docsets: [\"privacyPolicy\"],\n }),\n taskEither.chain(items =>\n privacyPolicyDownload({\n docId: items[0].docId,\n fileName: formatMessage(\n \"PrivacyPolicyDisclaimer.privacyPolicyFileName\"\n ),\n })\n ),\n taskEither.map(({ filePath }) => filePath)\n )}\n />\n )}\n \n );\n}\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./DisplayMoneyAmount.treat.NKzaQC6.css\";\nexport var light = '_2RJpC';\nexport var dark = 'GHHVk';\nexport var amount = {input:'_1tx-f','x-small':'_2AF6k',small:'qrnj1',big:'_1K7Qd',medium:'xkJXm',large:'_3o3DH'};\nexport var currency = {input:'JW4ge','x-small':'_2jHOK',small:'_23ujO',medium:'_3U9bc',big:'_2mWex',large:'_1Z1jc'};","import {\n validators,\n NonNegativeBrand,\n LocalizedString,\n PositiveInteger,\n} from \"design-system\";\nimport { Branded } from \"io-ts\";\nimport { useIntl } from \"react-intl\";\nimport { LocaleKey, useFormatMessage } from \"../intl\";\nimport { useCompanyNameAndIcoValidators } from \"./CompanyField/utils\";\nimport { constant } from \"fp-ts/function\";\n\nexport const useValidators = () => {\n const formatMessage = useFormatMessage();\n const { formatNumber } = useIntl();\n const { validIco, validName } = useCompanyNameAndIcoValidators();\n\n const defined = (errorMessage?: LocalizedString) =>\n validators.defined(\n errorMessage || formatMessage(\"Form.fieldError.required\")\n );\n\n const definedNoExtract = (errorMessage?: LocalizedString) =>\n validators.definedNoExtract(\n errorMessage || formatMessage(\"Form.fieldError.required\")\n );\n\n const maxLength = (max: number) =>\n validators.maxLength(\n max,\n formatMessage(\"Form.fieldError.maxLength\", {\n max,\n })\n );\n\n const minLength = (min: number, errorMessage: LocaleKey) =>\n validators.minLength(min, formatMessage(errorMessage));\n\n const alphaNumeric = validators.alphaNumeric(\n formatMessage(\"Form.fieldError.alphaNumeric\")\n );\n\n const validEmail = validators.validEmail(\n formatMessage(\"Form.fieldError.emailFormat\")\n );\n\n const validPhone = validators.validPhone({\n lengthError: formatMessage(\n \"Identification.otp.phoneNumber.validation.errorLength\"\n ),\n formatError: formatMessage(\"Form.fieldError.phoneNumberFormat\"),\n });\n\n const validDate = validators.validDate(\n formatMessage(\"Form.fieldError.invalidDateFormat\")\n );\n\n const validBirthDate = validators.validBirthDate(\n formatMessage(\"Form.fieldError.invalidDateFormat\"),\n formatMessage(\"Identification.personalData.birthDateMinError\")\n );\n\n const minimalDate = (minimalValidDate: Date) =>\n validators.minDate(\n minimalValidDate,\n formatMessage(\"Form.fieldError.dateTooOld\")\n );\n\n const maximalDate = (maximalValidDate: Date) =>\n validators.maxDate(\n maximalValidDate,\n formatMessage(\"Form.fieldError.invalidDateInFuture\")\n );\n\n const validBirthNumber = validators.validBirthNumber(\n formatMessage(\"Identification.personalData.birthNumberFormatError\")\n );\n\n const validNumber = validators.validNumber(\n formatMessage(\"Form.fieldError.validNumber\")\n );\n\n const nonNegativeNumber = validators.inSequence(\n validNumber,\n validators.nonNegativeNumber(formatMessage(\"Form.fieldError.nonNegative\"))\n );\n\n const nonNegativeInteger = validators.inSequence(\n validNumber,\n validators.nonNegativeInteger(\n formatMessage(\"Form.fieldError.nonNegativeInteger\")\n )\n );\n\n const positiveInteger = validators.inSequence(\n validNumber,\n validators.positiveInteger(formatMessage(\"Form.fieldError.positiveInteger\"))\n );\n\n const validInteger = validators.inSequence(\n validNumber,\n validators.fromPredicate(\n n => Number.isInteger(n),\n formatMessage(\"Form.fieldError.validInteger\")\n )\n );\n\n const positiveNumber = validators.inSequence(\n validNumber,\n validators.positiveNumber(formatMessage(\"Form.fieldError.positive\"))\n );\n\n const percentageNumber = validators.inSequence(\n validNumber,\n validators.percentageNumber(\n formatMessage(\"Form.fieldError.invalidPercentage\")\n )\n );\n\n const nonBlankString = validators.nonBlankString(\n formatMessage(\"Form.fieldError.required\")\n );\n\n const nonEmptyString = validators.nonEmptyString(\n formatMessage(\"Form.fieldError.required\")\n );\n\n const digitsOnly = validators.digitsOnly(\n formatMessage(\"Form.fieldError.digitsOnly\")\n );\n\n const validStreetNumber = validators.validStreetNumber(\n formatMessage(\"Form.fieldError.invalidStreetNumber\")\n );\n\n const disableSpecialCharacters = validators.disableSpecialCharacters(\n formatMessage(\"Form.fieldError.disableSpecialCharacters\")\n );\n\n const latinCharactersOnly = validators.latinCharactersOnly(\n formatMessage(\"Form.fieldError.latinCharactersOnly\")\n );\n\n const validDay = validators.validDay(formatMessage(\"Form.fieldError.day\"));\n\n const validPassword = validators.validPassword(\n formatMessage(\"Form.fieldError.required\"),\n formatMessage(\"Form.passwordField.conditionsNotFulfilled\")\n );\n\n const passwordMatches = validators.passwordMatches(\n formatMessage(\"Form.fieldError.required\"),\n formatMessage(\"Form.passwordField.passwordsDoNotMatch\")\n );\n\n const validPin = validators.validPin(\n formatMessage(\"Form.fieldError.required\"),\n formatMessage(\"Form.fieldError.digitsOnly\"),\n formatMessage(\"Form.passwordField.weakPin\")\n );\n\n const pinMatches = validators.passwordMatches(\n formatMessage(\"Form.fieldError.required\"),\n formatMessage(\"Form.passwordField.pinsDoNotMatch\")\n );\n\n const modulo11Compliant = validators.modulo11Compliant(\n formatMessage(\"Form.fieldError.invalidAccountNumber\")\n );\n\n const validCompanyIco = (\n allowUnknown: boolean,\n companyIcoIsValid?: boolean\n ) => {\n const commonValidator = validators.inSequence(\n maxLength(15),\n minLength(2, \"Form.fieldError.invalidCompanyICO\"),\n digitsOnly,\n nonBlankString\n );\n\n return allowUnknown\n ? commonValidator\n : validators.inSequence(\n commonValidator,\n companyIcoIsValid !== undefined\n ? validators.fromPredicate(\n constant(companyIcoIsValid),\n formatMessage(\"Form.fieldError.invalidCompanyICO\")\n )\n : validIco(formatMessage(\"Form.fieldError.invalidCompanyICO\"))\n );\n };\n\n const validAddressField = (maxLengthNr: number) => {\n const commonValidator = validators.inSequence(\n maxLength(maxLengthNr),\n nonBlankString\n );\n\n return commonValidator;\n };\n\n const validCompanyIcoRequired = (\n allowUnknown: boolean,\n companyIcoIsValid?: boolean\n ) =>\n validators.inSequence(\n nonEmptyString,\n validCompanyIco(allowUnknown, companyIcoIsValid)\n );\n\n const validCompanyName = (companyNameValid?: boolean) => {\n const commonValidator = validators.inSequence(\n maxLength(200),\n minLength(2, \"Form.fieldError.invalidCompanyName\"),\n nonEmptyString\n );\n\n return validators.inSequence(\n commonValidator,\n companyNameValid !== undefined\n ? validators.fromPredicate(\n constant(companyNameValid),\n formatMessage(\"Form.fieldError.invalidCompanyName\")\n )\n : validName(formatMessage(\"Form.fieldError.invalidCompanyName\"))\n );\n };\n\n const validCompanyNameRequired = (companyNameValid?: boolean) =>\n validators.inSequence(nonEmptyString, validCompanyName(companyNameValid));\n\n const minMax = (min: number, max: number) =>\n validators.fromPredicate(\n n => n >= min && n <= max,\n formatMessage(\"Form.fieldError.minMaxAmount\", {\n min: formatNumber(min),\n max: formatNumber(max),\n })\n );\n\n const amountMinMax = (min: number, max: number) =>\n validators.inSequence(\n validNumber,\n nonNegativeNumber,\n minMax>(min, max)\n );\n\n const amountMinMaxWithNegative = (min: number, max: number) =>\n validators.inSequence(validNumber, minMax(min, max));\n\n const validOTP = (otpLength: L) =>\n validators.validOTP(\n otpLength,\n formatMessage(\"Form.fieldError.validOTP\", {\n otpLength,\n })\n );\n\n const isChanged = (initialValue: T) =>\n validators.isChanged(\n initialValue,\n formatMessage(\"Form.fieldError.isChanged\")\n );\n\n const checked = (errorMessage?: LocalizedString) =>\n validators.checked(\n errorMessage || formatMessage(\"Form.fieldError.checked\")\n );\n\n const minAmountValidator = (min: number, errorMessage: LocalizedString) =>\n validators.inSequence(\n validNumber,\n validators.fromPredicate(n => n >= min, errorMessage)\n );\n\n return {\n nonBlankString,\n defined,\n definedNoExtract,\n maxLength,\n alphaNumeric,\n validEmail,\n validPhone,\n validDate,\n validBirthDate,\n nonNegativeNumber,\n validNumber,\n nonNegativeInteger,\n positiveInteger,\n validInteger,\n positiveNumber,\n percentageNumber,\n digitsOnly,\n minAmountValidator,\n validStreetNumber,\n nonEmptyString,\n disableSpecialCharacters,\n latinCharactersOnly,\n validDay,\n validPassword,\n validPin,\n passwordMatches,\n pinMatches,\n modulo11Compliant,\n validCompanyIco,\n validAddressField,\n validCompanyName,\n amountMinMax,\n amountMinMaxWithNegative,\n validCompanyIcoRequired,\n validCompanyNameRequired,\n validOTP,\n isChanged,\n checked,\n validBirthNumber,\n minimalDate,\n maximalDate,\n };\n};\n","import { Panel, Stack, LocalizedString } from \"design-system\";\nimport { pipe, constTrue } from \"fp-ts/function\";\nimport { option, set, array, eq } from \"fp-ts\";\nimport { PreContractualDocumentMeta } from \"../documentAPI\";\nimport { NonEmptyArray } from \"fp-ts/NonEmptyArray\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { DocumentItem, DocumentReadingConfirmProps } from \"./DocumentItem\";\nimport { getDocumentReadingStatus, getFirstUnreadDocument } from \"./utils\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\n\nexport type ReadingConfirmProps =\n | {\n readingConfirmationType: \"none\";\n }\n | {\n readingConfirmationType: \"status\";\n documentsRead: Set;\n }\n | {\n readingConfirmationType: \"checkbox\";\n documentsRead: Set;\n onDocumentRead: (documentId: NonEmptyString) => TaskEither;\n onDocumentUnread: (\n documentId: NonEmptyString\n ) => TaskEither;\n };\n\ntype Props = {\n documents: NonEmptyArray;\n documentToCheckForReadingConfirmation?:\n | NonEmptyArray\n | undefined;\n showErrors: boolean;\n isSigningStarted?: boolean;\n isForeignClient?: boolean;\n onDocumentOpen: (document: PreContractualDocumentMeta) => unknown;\n onForeignDocumentOpen: (document: PreContractualDocumentMeta) => unknown;\n title: LocalizedString;\n} & ReadingConfirmProps;\n\nexport function ContractsPanel(props: Props) {\n function getDocumentReadingConfirmProps(\n docId: NonEmptyString\n ): DocumentReadingConfirmProps {\n switch (props.readingConfirmationType) {\n case \"none\":\n return { readingConfirmationType: \"none\" };\n case \"status\":\n return {\n readingConfirmationType: \"status\",\n readStatus: getDocumentReadingStatus(\n props.documents,\n props.documentsRead\n )(docId),\n };\n case \"checkbox\":\n const isRead = pipe(props.documentsRead, set.elem(eq.eqStrict)(docId));\n return {\n readingConfirmationType: \"checkbox\",\n isRead,\n onRead: props.onDocumentRead(docId),\n onUnread: props.onDocumentUnread(docId),\n disabled:\n !isRead &&\n pipe(\n getFirstUnreadDocument(\n props.documentToCheckForReadingConfirmation\n ? props.documentToCheckForReadingConfirmation\n : props.documents,\n props.documentsRead\n ),\n option.fold(constTrue, d => d.docId !== docId)\n ),\n };\n }\n }\n\n return (\n (\n \n {pipe(\n props.documents,\n array.mapWithIndex((index, document) => (\n \n ))\n )}\n \n )}\n />\n );\n}\n","import { Option } from \"fp-ts/Option\";\nimport { pipe } from \"fp-ts/function\";\nimport { option, array } from \"fp-ts\";\nimport { DropdownOption } from \"design-system\";\n\nexport function selectedDropdownOption(\n initialValue: Option,\n options: Array>\n): Option> {\n return pipe(\n initialValue,\n option.chain(initialValue =>\n pipe(\n options,\n array.findFirst(o => initialValue === o.value)\n )\n )\n );\n}\n\nfunction isOption(a: Option | A): a is Option {\n return \"_tag\" in a && a._tag != null;\n}\n\nexport function dropdownOptionToValue(\n dropdownOption: Option> | DropdownOption\n): Option {\n return pipe(\n isOption(dropdownOption) ? dropdownOption : option.some(dropdownOption),\n option.map(o => o.value)\n );\n}\n","import { withFallback } from \"io-ts-types/lib/withFallback\";\nimport { apiCall } from \"../APICall\";\nimport * as t from \"io-ts\";\nimport * as eq from \"fp-ts/Eq\";\nimport { FileContent, LocalizedString } from \"design-system\";\nimport { nonEmptyArray as nonEmptyArrayCodec } from \"io-ts-types/lib/nonEmptyArray\";\nimport { nonEmptyArray } from \"fp-ts\";\nimport { constFalse } from \"fp-ts/function\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { optionFromUndefined } from \"../globalDomain\";\nimport { optionFromNullable } from \"io-ts-types/optionFromNullable\";\n\nexport const DocumentSetId = t.keyof(\n {\n privacyPolicy: true,\n personalDataProcessing: true,\n overdraftInformation: true,\n marketingConsent: true,\n representativeExample: true,\n creditBureauMemorandum: true,\n dataProcessingRegisters: true,\n loanInsurance: true,\n mtgLoanInsurance: true,\n branchContactData: true,\n PackageInsuranceInfo: true,\n CLcreditBureauMemorandum: true,\n DBN_SD_056: true,\n DBN_SD_059: true,\n \"3PCertificationAtLogin\": true,\n DBN_SD_055: true,\n \"3PCertificationAtLoanStart\": true,\n OVDRepresentativeExample: true,\n },\n \"Docset\"\n);\n\nexport type Docset = t.TypeOf;\n\nexport const eqDocset: eq.Eq = eq.eqStrict;\n\nexport const DocumentMeta = t.type(\n {\n docId: NonEmptyString,\n docTitle: LocalizedString,\n docset: optionFromUndefined(NonEmptyString),\n downloadUrl: optionFromUndefined(NonEmptyString),\n // SBL-45709\n // this is actually used only for /ukonto/documents and it is required there\n // to reuse all the implementation of PrecontractualDocuments, contractualDocument has been added here as Option\n // then PrecontractualDocuments filters documents which have contractualDocument = true or without contractualDocument property\n contractualDocument: optionFromUndefined(t.boolean),\n docType: optionFromUndefined(NonEmptyString),\n },\n \"DocumentMeta\"\n);\n\nexport type DocumentMeta = t.TypeOf;\n\nexport const PreContractualDocumentMeta = t.intersection(\n [\n DocumentMeta,\n t.type({\n signatureRequired: withFallback(t.boolean, true),\n downloadUrl: optionFromUndefined(NonEmptyString),\n // SBL-45709 -> see the comment above\n contractualDocument: optionFromUndefined(t.boolean),\n }),\n ],\n \"PreContractualDocumentMeta\"\n);\nexport type PreContractualDocumentMeta = t.TypeOf<\n typeof PreContractualDocumentMeta\n>;\n\nexport const DocumentTemplatesInput = t.type(\n {\n docsets: nonEmptyArrayCodec(DocumentSetId),\n },\n \"DocumentTemplatesInput\"\n);\n\ninterface DocumentTemplatesInput\n extends t.TypeOf {}\n\nexport const eqDocumentTemplatesInput = eq.getStructEq({\n docsets: nonEmptyArray.getEq(eqDocset),\n});\n\nexport const DocumentTemplatesOutput = nonEmptyArrayCodec(DocumentMeta);\n\nexport interface DocumentTemplatesOutput\n extends t.TypeOf {}\n\nexport const templates = apiCall({\n inputEq: eqDocumentTemplatesInput,\n path: [\"document\", \"templates\"],\n inputCodec: DocumentTemplatesInput,\n outputCodec: DocumentTemplatesOutput,\n});\n\nexport const DocumentContentInput = t.type(\n {\n docId: NonEmptyString,\n },\n \"DocumentContentInput\"\n);\n\nexport const CpiApplicationFormDocumentOutput = t.type({\n pdfContent: FileContent,\n pdfName: LocalizedString,\n});\n\ninterface DocumentContentInput extends t.TypeOf {}\n\nexport const eqDocumentContentInput = eq.getStructEq({\n docId: eq.eqString,\n});\n\nexport const DocumentContentOutput = t.type(\n {\n filename: LocalizedString,\n content: FileContent,\n downloadUrl: optionFromUndefined(NonEmptyString),\n },\n \"DocumentContentOutput\"\n);\n\nexport interface DocumentContentOutput\n extends t.TypeOf {}\n\nexport const content = apiCall({\n inputEq: eqDocumentContentInput,\n path: [\"document\", \"content\"],\n inputCodec: DocumentContentInput,\n outputCodec: DocumentContentOutput,\n});\n\nexport const contentDocMTG = apiCall({\n inputEq: eqDocumentContentInput,\n path: [\n \"packages\",\n \"mortgage\",\n \"additionaldetails\",\n \"health\",\n \"document\",\n \"content\",\n ],\n inputCodec: DocumentContentInput,\n outputCodec: DocumentContentOutput,\n});\n\nexport const contentSealed = apiCall({\n inputEq: eqDocumentContentInput,\n path: [\"document\", \"contentSealed\"],\n inputCodec: DocumentContentInput,\n outputCodec: DocumentContentOutput,\n});\n\nexport const DocumentDownloadInput = t.type(\n {\n docId: NonEmptyString,\n fileName: LocalizedString,\n },\n \"DocumentDownloadInput\"\n);\n\ninterface DocumentDownloadInput\n extends t.TypeOf {}\n\nexport const eqDocumentDownloadInput = eq.getStructEq({\n docId: eq.eqString,\n fileName: eq.eqString,\n});\n\nexport const DocumentDownloadOutput = t.type(\n {\n filePath: t.string,\n },\n \"DocumentDownloadOutput\"\n);\n\nexport interface DocumentDownloadOutput\n extends t.TypeOf {}\n\nexport const downloadDocument = apiCall({\n inputEq: eqDocumentDownloadInput,\n path: [\"document\", \"dde\", \"noauth\", \"static\"],\n inputCodec: DocumentDownloadInput,\n outputCodec: DocumentDownloadOutput,\n});\n\nexport const DocumentMime = t.keyof({\n \"application/pdf\": true,\n \"image/jpeg\": true,\n \"image/tiff\": true,\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": true,\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": true,\n \"application/vnd.ms-outlook\": true,\n \".msg\": true,\n});\nexport type DocumentMime = t.TypeOf;\n\nconst GetDocumentContentOutput = t.type({\n content: FileContent,\n mimeType: DocumentMime,\n filename: NonEmptyString,\n docTypeId: optionFromNullable(NonEmptyString),\n docTypeName: optionFromNullable(NonEmptyString),\n downloadUrl: optionFromUndefined(NonEmptyString),\n});\nexport type GetDocumentContentOutput = t.TypeOf<\n typeof GetDocumentContentOutput\n>;\n\nconst GetDocumentContentInput = t.type({\n documentID: NonEmptyString,\n});\n\nconst eqGetDocumentContent = eq.getStructEq({\n documentID: eq.eqString,\n});\n\nexport const getDocumentContentMortgage = apiCall({\n inputCodec: GetDocumentContentInput,\n inputEq: eqGetDocumentContent,\n outputCodec: GetDocumentContentOutput,\n path: [\"packages\", \"mortgage\", \"document\", \"content\"],\n});\n\nexport const getDocumentContentSL = apiCall({\n inputCodec: GetDocumentContentInput,\n inputEq: eqGetDocumentContent,\n outputCodec: GetDocumentContentOutput,\n path: [\"packages\", \"loans\", \"standard-loan\", \"document\", \"content\"],\n});\n\nexport const downloadDocumentContent = apiCall({\n inputCodec: GetDocumentContentInput,\n inputEq: eq.fromEquals(constFalse),\n outputCodec: t.type({\n /** TODO: Document (download) */\n }),\n path: [\"packages\", \"mortgage\", \"document\", \"download\"],\n});\n\nexport const getCpiApplicationFormDocument = apiCall({\n inputCodec: t.void,\n inputEq: eq.fromEquals(constFalse),\n outputCodec: CpiApplicationFormDocumentOutput,\n path: [\"packages\", \"mortgage\", \"offer\", \"getCpiApplicationFormDocument\"],\n});\n","import { useEffect } from \"react\";\n\ntype Behavior = \"smooth\" | \"auto\";\n\nexport function useScrollTopOnChange(behavior: Behavior, ref?: unknown) {\n useEffect(() => {\n window.scrollTo({\n top: 0,\n behavior,\n });\n }, [ref, behavior]);\n}\n","import { eq } from \"fp-ts\";\nimport * as t from \"io-ts\";\nimport { nonEmptyArray } from \"io-ts-types/lib/nonEmptyArray\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { DocumentMeta, PreContractualDocumentMeta } from \"../documentAPI\";\n\nexport const ContractReadOutput = t.unknown;\nexport type ContractReadOutput = t.TypeOf;\n\nexport const DocumentsListOutput = nonEmptyArray(DocumentMeta);\nexport type DocumentsListOutput = t.TypeOf;\n\nexport const PreContractualDocumentsListOutput = nonEmptyArray(\n PreContractualDocumentMeta\n);\nexport type PreContractualDocumentsListOutput = t.TypeOf<\n typeof PreContractualDocumentsListOutput\n>;\n\nexport const ContractReadInput = t.type({\n docId: NonEmptyString,\n documentRead: t.boolean,\n});\nexport type ContractReadInput = t.TypeOf;\n\nexport const eqContractReadInput = eq.getStructEq({\n docId: eq.eqString,\n});\n\nexport const TermsAndConditionsReceivedOutput = t.unknown;\nexport type TermsAndConditionsReceivedOutput = t.TypeOf<\n typeof TermsAndConditionsReceivedOutput\n>;\n\nexport const MarketingConsentReadInput = t.type({\n accepted: t.boolean,\n});\nexport type MarketingConsentReadInput = t.TypeOf<\n typeof MarketingConsentReadInput\n>;\n\nexport const eqMarketingConsentReadInput = eq.getStructEq({\n accepted: eq.eqBoolean,\n});\n\nexport const ForeignSigningConsentReadInput = t.type({\n accepted: t.boolean,\n});\nexport type ForeignSigningConsentReadInput = t.TypeOf<\n typeof ForeignSigningConsentReadInput\n>;\n\nexport const eqForeignSigningConsentReadInput = eq.getStructEq({\n accepted: eq.eqBoolean,\n});\n\nexport const PhoneNumberOutput = t.type({\n phoneNumber: t.string,\n});\nexport type PhoneNumberOutput = t.TypeOf;\n\nexport const TermsAndConditionsOutput = nonEmptyArray(DocumentMeta);\nexport type TermsAndConditionsOutput = t.TypeOf<\n typeof TermsAndConditionsOutput\n>;\n","import { useMemo } from \"react\";\nimport { useFormatMessage } from \"../../intl\";\nimport { useQuery } from \"../../useAPI\";\nimport { useAppContext } from \"../../useAppContext\";\nimport * as phoneApi from \"./api\";\nimport * as remoteData from \"../../RemoteData\";\nimport { constant, constUndefined, constVoid, pipe } from \"fp-ts/function\";\nimport { array, option, taskEither } from \"fp-ts\";\nimport { CountryFlag } from \"../CountryFlag/CountryFlag\";\nimport { useForm, validators } from \"design-system\";\nimport { Option } from \"fp-ts/Option\";\nimport { useValidators } from \"../useValidators\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { NonEmptyString } from \"io-ts-types/NonEmptyString\";\n\nexport function usePhoneNumberFieldConfig() {\n const formatMessage = useFormatMessage();\n const {\n apiParameters: { tenant },\n } = useAppContext();\n\n const [prefixes] = useQuery(phoneApi.prefixes);\n const prefixOptions = useMemo(\n () =>\n pipe(\n prefixes,\n remoteData.fold(\n constant([]),\n constant([]),\n array.map(prefix => ({\n tenant: prefix.tenant,\n prefix: prefix.prefix,\n label: prefix.label,\n flag: pipe(\n prefix.tenant,\n option.fold(constUndefined, tenant => (\n \n ))\n ),\n }))\n )\n ),\n [prefixes]\n );\n\n return {\n prefixOptions,\n tenant,\n loadingMessage: formatMessage(\"LoadingEllipsis\"),\n };\n}\n\nexport function usePhoneNumberFieldProps(props: {\n initialPhoneNumber: Option;\n onSubmit: (phoneNumer: NonEmptyString) => TaskEither;\n}) {\n const phoneNumberFieldConfig = usePhoneNumberFieldConfig();\n const { validPhone, nonBlankString } = useValidators();\n const { fieldProps, handleSubmit } = useForm(\n {\n initialValues: {\n phoneNumber: pipe(\n props.initialPhoneNumber,\n option.getOrElse(constant(\"\"))\n ),\n },\n fieldValidators: () => ({\n phoneNumber: validators.inSequence(nonBlankString, validPhone),\n }),\n },\n {\n onSubmit: ({ phoneNumber }) =>\n props.onSubmit\n ? props.onSubmit(phoneNumber)\n : taskEither.fromIO(constVoid),\n }\n );\n\n return {\n phoneNumberFieldProps: {\n ...phoneNumberFieldConfig,\n ...fieldProps(\"phoneNumber\"),\n },\n handlePhoneNumberSubmit: handleSubmit,\n };\n}\n","import { FieldProps, LocalizedString, RadioGroupField } from \"design-system\";\nimport { Option } from \"fp-ts/Option\";\nimport { constant, constFalse } from \"fp-ts/function\";\nimport { boolean, option } from \"fp-ts\";\nimport { useFormatMessage } from \"../../intl\";\n\ntype Props = FieldProps> & {\n id?: string;\n value: Option;\n onChange: (value: Option) => unknown;\n description?: LocalizedString;\n cta?: {\n label: LocalizedString;\n action: () => unknown;\n };\n};\n\nexport function YesNoRadioGroupField(props: Props) {\n const formatMessage = useFormatMessage();\n\n const handleOnChange = (value: option.Option) => {\n props.onBlur();\n props.onChange(value);\n };\n\n return (\n value.toString()}\n renderOption={boolean.fold(\n () => formatMessage(\"No\"),\n () => formatMessage(\"Yes\")\n )}\n renderOptionChildren={constant(option.none)}\n isOptionDisabled={constFalse}\n />\n );\n}\n","import { pipe, constTrue, constNull } from \"fp-ts/function\";\nimport { option, set, eq } from \"fp-ts\";\nimport { useFormatMessage } from \"../../intl\";\nimport { PreContractualDocumentMeta } from \"../documentAPI\";\nimport { NonEmptyArray } from \"fp-ts/NonEmptyArray\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { DocumentReadingConfirmProps } from \"./DocumentItem\";\nimport { getDocumentReadingStatus, getFirstUnreadDocument } from \"./utils\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { useEffect, useState } from \"react\";\nimport { Option } from \"fp-ts/Option\";\nimport { DocumentDialog } from \"./DocumentDialog\";\nimport { ForeignDocumentDialog } from \"../../UKontoSecondPart/Foreign/ForeignDocumentDialog\";\nimport { ContractsPanel } from \"./ContractsPanel\";\nimport { useAppContext } from \"../../useAppContext\";\nimport { Box, Space } from \"design-system\";\n\nexport type ReadingConfirmProps =\n | {\n readingConfirmationType: \"none\";\n }\n | {\n readingConfirmationType: \"status\";\n documentsRead: Set;\n }\n | {\n readingConfirmationType: \"checkbox\";\n documentsRead: Set;\n onDocumentRead: (documentId: NonEmptyString) => TaskEither;\n onDocumentUnread: (\n documentId: NonEmptyString\n ) => TaskEither;\n };\n\ntype Props = {\n documents: NonEmptyArray;\n showErrors: boolean;\n isSigningStarted?: boolean;\n hasInsurance?: boolean;\n mustReadAllDocuments?: boolean;\n isForeignClient?: boolean;\n variant?: string;\n} & ReadingConfirmProps;\n\nexport function Contracts(props: Props) {\n const formatMessage = useFormatMessage();\n const {\n config: { enableVirtualCardsLoanImpl },\n } = useAppContext();\n\n const [showContractModal, setShowContractModal] = useState<\n Option\n >(option.none);\n\n const [showForeignContractModal, setShowForeignContractModal] = useState<\n Option\n >(option.none);\n\n function getDocumentReadingConfirmProps(\n docId: NonEmptyString\n ): DocumentReadingConfirmProps {\n switch (props.readingConfirmationType) {\n case \"none\":\n return { readingConfirmationType: \"none\" };\n case \"status\":\n return {\n readingConfirmationType: \"status\",\n readStatus: getDocumentReadingStatus(\n props.documents,\n props.documentsRead\n )(docId),\n };\n case \"checkbox\":\n const isRead = pipe(props.documentsRead, set.elem(eq.eqStrict)(docId));\n return {\n readingConfirmationType: \"checkbox\",\n isRead,\n onRead: props.onDocumentRead(docId),\n onUnread: props.onDocumentUnread(docId),\n disabled:\n !isRead &&\n pipe(\n getFirstUnreadDocument(props.documents, props.documentsRead),\n option.fold(constTrue, d => d.docId !== docId)\n ),\n };\n }\n }\n\n const onDocumentOpen = (document: PreContractualDocumentMeta) => {\n setShowContractModal(option.some(document));\n };\n\n const onForeignDocumentOpen = (document: PreContractualDocumentMeta) => {\n setShowForeignContractModal(option.some(document));\n };\n\n useEffect(() => {\n if (props.readingConfirmationType === \"status\") {\n setShowContractModal(option.none);\n }\n }, [props.readingConfirmationType === \"status\" ? props.documentsRead : null]);\n\n const getUkontoContracts = (\n documents: NonEmptyArray\n ): NonEmptyArray | undefined => {\n const docArray = documents.filter(\n document =>\n option.isSome(document.docType) &&\n (document.docType.value === \"FRAMEWORK_AGREEMENT\" ||\n document.docType.value === \"PRODUCT_CONTRACT_ACCOUNT\" ||\n document.docType.value === \"GDPR_CONSENT\")\n );\n return docArray.length === 0\n ? undefined\n : (docArray as NonEmptyArray);\n };\n\n const getCashLoanContract = (\n documents: NonEmptyArray\n ): undefined | PreContractualDocumentMeta[] => {\n const docArray = documents.filter(\n document =>\n option.isSome(document.docType) &&\n document.docType.value === \"LOAN_PRODUCT_CONTRACT_STANDARDLOAN\"\n );\n return docArray.length === 0 ? undefined : docArray;\n };\n\n const getCurrentAccountContracts = (\n documents: NonEmptyArray\n ): NonEmptyArray | undefined => {\n const docArray = documents.filter(\n document =>\n option.isSome(document.docType) &&\n (document.docType.value === \"FRAMEWORK_AGREEMENT_STANDARDLOAN\" ||\n document.docType.value === \"ACCOUNT_PRODUCT_CONTRACT_STANDARDLOAN\")\n );\n return docArray.length === 0\n ? undefined\n : (docArray as NonEmptyArray);\n };\n\n const getOtherContracts = (\n documents: NonEmptyArray\n ): undefined | NonEmptyArray => {\n const docArray = documents.filter(\n document =>\n option.isSome(document.docType) &&\n document.docType.value !== \"FRAMEWORK_AGREEMENT_STANDARDLOAN\" &&\n document.docType.value !== \"ACCOUNT_PRODUCT_CONTRACT_STANDARDLOAN\" &&\n document.docType.value !== \"LOAN_PRODUCT_CONTRACT_STANDARDLOAN\" &&\n document.docType.value !== \"FRAMEWORK_AGREEMENT\" &&\n document.docType.value !== \"PRODUCT_CONTRACT_ACCOUNT\" &&\n document.docType.value !== \"GDPR_CONSENT\"\n );\n return docArray.length === 0\n ? undefined\n : (docArray as NonEmptyArray);\n };\n\n const getCashLoanAndOtherContracts = (\n documents: NonEmptyArray\n ): NonEmptyArray | undefined => {\n const cashLoanContracts = getCashLoanContract(documents);\n const otherContracts = getOtherContracts(documents);\n let contracts: PreContractualDocumentMeta[] = [];\n if (cashLoanContracts && otherContracts) {\n contracts = otherContracts.concat(cashLoanContracts);\n } else if (cashLoanContracts && !otherContracts) {\n contracts = cashLoanContracts;\n } else if (!cashLoanContracts && otherContracts) {\n contracts = otherContracts;\n }\n return contracts.length === 0\n ? undefined\n : (contracts as NonEmptyArray);\n };\n\n const extendNonEmptyArray = (\n documents1: NonEmptyArray | undefined,\n documents2: NonEmptyArray | undefined\n ): NonEmptyArray | undefined => {\n if (!documents1) return documents2;\n if (!documents2) return documents1;\n const array1 = documents1 as PreContractualDocumentMeta[];\n const array2 = documents2 as PreContractualDocumentMeta[];\n const result = array1.concat(array2);\n return result.length === 0\n ? undefined\n : (result as NonEmptyArray);\n };\n\n const ukontoContracts = getUkontoContracts(props.documents);\n const currentAccountContracts = getCurrentAccountContracts(props.documents);\n const cashLoanContractAndOtherContracts = getCashLoanAndOtherContracts(\n props.documents\n );\n const allContracts = extendNonEmptyArray(\n currentAccountContracts,\n cashLoanContractAndOtherContracts\n );\n const isCf = !!getCashLoanContract(props.documents);\n const isOvd = props.variant === \"OVD\";\n const useVirtualCardsContractLayout = enableVirtualCardsLoanImpl && isCf;\n\n return (\n <>\n {pipe(\n showContractModal,\n option.fold(constNull, document => {\n const confirmation = getDocumentReadingConfirmProps(document.docId);\n return (\n setShowContractModal(option.none)}\n handleConfirm={\n confirmation.readingConfirmationType === \"checkbox\"\n ? () => {\n if (!confirmation.isRead) {\n confirmation.onRead();\n }\n }\n : undefined\n }\n sealed={document.signatureRequired}\n mustReadAllDocuments={props.mustReadAllDocuments}\n isForeignClient={props.isForeignClient}\n />\n );\n })\n )}\n {pipe(\n showForeignContractModal,\n option.fold(constNull, document => (\n setShowForeignContractModal(option.none)}\n title={document.docTitle}\n contractType={pipe(\n document.docType,\n option.fold(\n () => \"PRODUCT_CONTRACT\",\n docType => {\n switch (docType) {\n case \"FRAMEWORK_AGREEMENT\":\n return \"FRAMEWORK_AGREEMENT\";\n case \"PRODUCT_CONTRACT_ACCOUNT\":\n return \"PRODUCT_CONTRACT\";\n default:\n return \"PRODUCT_CONTRACT\";\n }\n }\n )\n )}\n />\n ))\n )}\n {useVirtualCardsContractLayout && currentAccountContracts && (\n \n \n \n \n )}\n {useVirtualCardsContractLayout && cashLoanContractAndOtherContracts && (\n \n )}\n {useVirtualCardsContractLayout && ukontoContracts && (\n \n )}\n {!useVirtualCardsContractLayout && (\n \n )}\n \n );\n}\n","import {\n Box,\n Heading,\n LocalizedString,\n NumberedList,\n Space,\n} from \"design-system\";\nimport { palette } from \"design-system/lib/styleConstants\";\nimport { NonEmptyArray } from \"fp-ts/NonEmptyArray\";\nimport { useFormatMessage } from \"../intl\";\n\ntype Props = {};\n\nexport function DigitalIdInstructions({}: Props) {\n const formatMessage = useFormatMessage();\n\n const instructions: NonEmptyArray = [\n formatMessage(\"DigitalId.Instruction.1\"),\n formatMessage(\"DigitalId.Instruction.2\"),\n formatMessage(\"DigitalId.Instruction.3\"),\n ];\n\n return (\n \n \n {formatMessage(\"DigitalId.Instruction.Title\")}\n \n \n \n \n );\n}\n","import {\n validateDetails as validateDetailsCall,\n ValidateDetailsOutput,\n} from \"./api\";\nimport { constVoid, pipe } from \"fp-ts/function\";\nimport { boolean } from \"fp-ts\";\nimport { UserNotValidatedDialog } from \"./UserNotValidatedDialog\";\nimport * as option from \"fp-ts/Option\";\nimport { Option } from \"fp-ts/Option\";\nimport * as t from \"io-ts\";\nimport { Branded } from \"io-ts\";\nimport {\n Action,\n Box,\n FeedbackBlock,\n FeedbackDialog,\n LocalizedStringBrand,\n} from \"design-system\";\nimport { Reader } from \"fp-ts/Reader\";\nimport { UserNotValidatedError } from \"./UserNotValidatedError\";\nimport { useState } from \"react\";\nimport { ContactChange } from \"../../ClientProfile/ContactChange\";\nimport { useAppContext } from \"../../useAppContext\";\nimport { useFormatMessage } from \"../../intl\";\nimport { useQuery, usePollingEffect } from \"../../useAPI\";\nimport * as remoteData from \"../../RemoteData\";\nimport * as api from \"./api\";\n\ntype Props = {\n validateUser: Reader;\n onDialogExit: Option<() => unknown>;\n onDialogDismiss: Option<() => unknown>;\n dialogTitle: Branded;\n children: JSX.Element | null;\n isModal: boolean;\n skipValidation?: boolean;\n};\n\nconst AddPhoneState = t.keyof(\n {\n Initial: true,\n InProgress: true,\n Completed: true,\n },\n \"AddPhoneState\"\n);\ntype AddPhoneState = t.TypeOf;\n\nconst ValidationState = t.keyof(\n {\n AddPhone: true,\n Validation: true,\n },\n \"ValidationState\"\n);\ntype ValidationState = t.TypeOf;\n\nexport function UserValidation(props: Props) {\n const {\n apiParameters: { channel },\n } = useAppContext();\n const formatMessage = useFormatMessage();\n const [userValidation, refreshUserDetails] = useQuery(validateDetailsCall);\n\n const [addPhoneState, setAddPhoneState] = useState(\"Initial\");\n const [validationState, setValidationState] = useState(\n \"Validation\"\n );\n const canAddPhoneIfMissing =\n channel === \"TLS_Remote\" ||\n channel === \"OB_Remote\" ||\n channel === \"SB_Remote\" ||\n channel === \"PWS_Remote\";\n\n const [poolingDisabled, setPoolingDisabled] = useState(true);\n const [updatePhoneCompleted, setUpdatePhoneCompleted] = useState(false);\n\n usePollingEffect(api.results, {\n intervalMS: 3000,\n shouldPollingContinue: result => result.status === \"PENDING\",\n disabled: poolingDisabled,\n onError: constVoid,\n onSuccess: result => {\n if (result.status === \"DONE\") {\n setUpdatePhoneCompleted(true);\n }\n },\n });\n\n const validate = pipe(\n userValidation,\n remoteData.fold(\n () => (\n \n \n \n ),\n () => (\n constVoid)\n ),\n }}\n />\n ),\n\n result =>\n pipe(\n props.validateUser(result),\n boolean.fold(\n () => {\n if (!result.hasPhoneNumber && canAddPhoneIfMissing) {\n if (updatePhoneCompleted) {\n return props.children;\n }\n if (validationState !== \"AddPhone\") {\n setPoolingDisabled(false);\n setValidationState(\"AddPhone\");\n }\n return null;\n }\n\n return pipe(\n props.isModal,\n boolean.fold(\n () => (\n \n ),\n () => (\n \n )\n )\n );\n },\n () => props.children\n )\n )\n )\n );\n\n const foldValidationState = () => {\n switch (validationState) {\n case \"Validation\":\n return validate;\n case \"AddPhone\":\n return foldPhoneState();\n }\n };\n\n const foldPhoneState = () => {\n switch (addPhoneState) {\n case \"Completed\":\n return (\n {\n setValidationState(\"Validation\");\n setAddPhoneState(\"Initial\");\n },\n },\n ] as [Action]\n }\n />\n );\n case \"InProgress\":\n return (\n {\n refreshUserDetails();\n setAddPhoneState(\"Completed\");\n }}\n onExit={() => setAddPhoneState(\"Initial\")}\n />\n );\n case \"Initial\":\n return (\n setAddPhoneState(\"InProgress\"),\n },\n ] as [Action]\n }\n />\n );\n }\n };\n\n return props.skipValidation ? props.children : foldValidationState();\n}\n\ntype AddPhoneProps = {\n onComplete: () => unknown;\n onExit: () => unknown;\n};\n\nfunction AddPhoneNumber(props: AddPhoneProps) {\n return (\n \n );\n}\n","import { useAuthenticationContext } from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { useAppContext } from \"../useAppContext\";\n\nexport type DeepLink = \"PAL-authorize\" | \"PAL-exit\" | \"CP-authorize\";\n\nexport function useSBDeepLink(link: DeepLink) {\n const { authInfo } = useAuthenticationContext();\n\n const url = (() => {\n switch (link) {\n case \"PAL-authorize\":\n case \"CP-authorize\":\n if (option.isNone(authInfo)) {\n throw new Error(\n \"Trying to call native app for authorization without a flow ID\"\n );\n }\n const flowId = authInfo.value.flowId;\n const biometric = link === \"CP-authorize\" ? \"true\" : \"false\";\n\n return `mb-unicredit://sign/query?section=DBN&reference=${flowId}&biometric=${biometric}`;\n case \"PAL-exit\":\n return \"mb-unicredit://close/query?appSection=online:menu:more\";\n }\n })();\n\n return () => {\n window.location.href = url;\n return \"\";\n };\n}\n\nexport function useAppRedirect() {\n const {\n apiParameters: { tenant },\n config: { environment },\n } = useAppContext();\n\n const redirectUrl =\n (() => {\n switch (environment) {\n case \"sit\":\n case \"uat\":\n return [\"mb\", \"unicredit\", tenant, environment].join(\"-\");\n case \"dev\":\n case \"ci\":\n case \"hf\":\n case \"prod\":\n return [\"mb\", \"unicredit\", tenant].join(\"-\");\n }\n })() + \"://appredirect\";\n\n return () => (window.location.href = redirectUrl);\n}\n","import \"!../../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./FlowAccordion.treat.2EUkUBc.css\";\nexport var stickyStepper = '_2LMDr';\nexport var stickyStepperTop = 'WCppX';\nexport var noPadding = '_27pyl';","import * as t from \"io-ts\";\nimport { apiCall } from \"../../APICall\";\nimport { constFalse, constTrue } from \"fp-ts/function\";\nimport { eq } from \"fp-ts\";\nimport { optionFromNullable } from \"io-ts-types/lib/optionFromNullable\";\n\nexport const ValidateDetailsOutput = t.type(\n {\n hasPasswordForCommunication: t.boolean,\n hasPhoneNumber: t.boolean,\n hasEmailAddress: t.boolean,\n isEmailVerified: t.boolean,\n isPhoneNumberVerified: t.boolean,\n },\n \"ValidateDetailsOutput\"\n);\n\nexport const CheckStatus = t.keyof({\n PENDING: true,\n DONE: true,\n ERROR: true,\n});\n\nexport const results = apiCall({\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n path: [\"clients\", \"personalProfile\", \"results\"],\n outputCodec: t.type({\n id: optionFromNullable(t.string),\n status: CheckStatus,\n }),\n});\n\nexport type ValidateDetailsOutput = t.TypeOf;\n\nexport const validateDetails = apiCall({\n inputCodec: t.void,\n inputEq: eq.fromEquals(constTrue),\n path: [\"clients\", \"identification\", \"validateDetails\"],\n outputCodec: ValidateDetailsOutput,\n});\n","import { Action, FeedbackBlock, LocalizedStringBrand } from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { constant, pipe } from \"fp-ts/function\";\nimport { IO } from \"fp-ts/IO\";\nimport { Option } from \"fp-ts/Option\";\nimport { ValidateDetailsOutput } from \"./api\";\nimport { Branded } from \"io-ts\";\nimport { getDialogTexts } from \"./utils\";\nimport { useFormatMessage } from \"../../intl\";\n\ntype Props = {\n validationResult: ValidateDetailsOutput;\n onDismiss: Option>;\n title: Branded;\n};\n\nexport function UserNotValidatedError(props: Props) {\n const dialogTexts = getDialogTexts(props.validationResult);\n const formatMessage = useFormatMessage();\n return (\n , [] | [Action]>(constant([]), onDismiss => [\n {\n variant: \"primary\",\n label: formatMessage(\"UserValidation.button\"),\n action: onDismiss,\n },\n ])\n )}\n />\n );\n}\n","import { useEffect } from \"react\";\n\nexport const useVirtualFormSubmit = (cb: () => void) => {\n useEffect(() => {\n const handleEnter = (e: KeyboardEvent) => {\n if (e.key === \"Enter\" && e.isTrusted === false) {\n cb();\n }\n };\n document.addEventListener(\"keydown\", handleEnter);\n\n return () => {\n document.removeEventListener(\"keydown\", handleEnter);\n };\n });\n};\n","import { useCommand } from \"../../useAPI\";\nimport { FilePDFDialog } from \"../Dialogs/FilePDFDialog/FilePDFDialog\";\nimport * as documentAPI from \"../documentAPI\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { useFormatMessage } from \"../../intl\";\nimport { option } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { mediationInsuranceDocset } from \"./utils\";\nimport { useState } from \"react\";\nimport { Option } from \"fp-ts/Option\";\nimport { ForeignDocumentDialog } from \"../../UKontoSecondPart/Foreign/ForeignDocumentDialog\";\nimport { LocalizedString } from \"design-system\";\n\ntype Props = {\n document: documentAPI.DocumentMeta;\n handleDismiss: () => unknown;\n handleConfirm?: (id: NonEmptyString) => unknown;\n sealed: boolean;\n mustReadAllDocuments?: boolean;\n isForeignClient?: boolean;\n subtitle?: LocalizedString;\n};\n\nexport function DocumentDialog(props: Props) {\n const { document, sealed, handleDismiss, handleConfirm } = props;\n const formatMessage = useFormatMessage();\n\n const [showForeignContractModal, setShowForeignContractModal] = useState<\n Option\n >(option.none);\n\n const documentDownload = useCommand(\n sealed ? documentAPI.contentSealed : documentAPI.content\n );\n\n const onHandleConfirm = pipe(\n handleConfirm,\n option.fromNullable,\n option.map(handleConfirm => {\n return () => {\n handleConfirm(document.docId);\n handleDismiss();\n };\n })\n );\n\n const isModalInsuranceMediation = pipe(\n props.document.docset,\n option.exists(item => item === mediationInsuranceDocset)\n );\n\n const onForeignDocumentOpen = (document: documentAPI.DocumentMeta) => {\n setShowForeignContractModal(option.some(document));\n };\n\n return pipe(\n showForeignContractModal,\n option.fold(\n () => (\n ({\n action,\n label: isModalInsuranceMediation\n ? formatMessage(\n \"UKonto.ReadDocuments.Modal.confirm.uKontoInsuranceMediation\"\n )\n : formatMessage(\"UKonto.ReadDocuments.Modal.confirm\"),\n })),\n option.toUndefined\n )}\n file={documentDownload({\n docId: document.docId,\n })}\n infoBannerContent={\n isModalInsuranceMediation\n ? formatMessage(\n \"UKonto.ReadDocuments.Modal.description.uKontoInsuranceMediation\"\n )\n : undefined\n }\n mustReadAllDocuments={props.mustReadAllDocuments}\n isForeignClient={props.isForeignClient}\n onForeignDocumentOpen={onForeignDocumentOpen}\n document={props.document}\n />\n ),\n document => (\n setShowForeignContractModal(option.none)}\n title={document.docTitle}\n contractType={pipe(\n document.docType,\n option.fold(\n () => \"PRODUCT_CONTRACT\",\n docType => {\n switch (docType) {\n case \"FRAMEWORK_AGREEMENT\":\n return \"FRAMEWORK_AGREEMENT\";\n case \"PRODUCT_CONTRACT_ACCOUNT\":\n return \"PRODUCT_CONTRACT\";\n default:\n return \"PRODUCT_CONTRACT\";\n }\n }\n )\n )}\n />\n )\n )\n );\n}\n","import { ComponentProps } from \"react\";\nimport { ReadOnlyField } from \"design-system\";\nimport { useFormatMessage } from \"../../intl\";\nimport { constant, pipe, identity } from \"fp-ts/function\";\nimport { option } from \"fp-ts\";\nimport { YesNoRadioGroupField } from \"../YesNoRadioGroup/YesNoRadioGroupField\";\n\ntype Feedback = ComponentProps[\"feedback\"];\n\ntype Props = ComponentProps & {\n edit: boolean;\n feedback?: Feedback;\n};\n\nexport function OptionalEditYesNoField(props: Props) {\n const formatMessage = useFormatMessage();\n const { edit, ...fieldProps } = props;\n\n return edit ? (\n \n ) : (\n \n );\n}\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./OverdraftCardDesktop.treat.2NPmdTk.css\";\nexport var heading = '_3TwMi';\nexport var content = '_1KMbK';","import { pipe } from \"fp-ts/function\";\nimport { TextChildren, LocalizedString, ReadOnlyField } from \"design-system\";\nimport { boolean } from \"fp-ts\";\nimport { useFormatMessage } from \"../../intl\";\nimport { ComponentProps } from \"react\";\n\ntype Props = {\n id?: string;\n size: ComponentProps[\"size\"];\n value: boolean;\n label: TextChildren;\n description?: LocalizedString;\n};\n\nexport function ReadOnlyYesNoField(props: Props) {\n const formatMessage = useFormatMessage();\n return (\n formatMessage(\"No\"),\n () => formatMessage(\"Yes\")\n )\n )}\n />\n );\n}\n","import {\n AutocompleteInputField,\n InternalPhoneNumberField,\n} from \"design-system\";\nimport { usePhoneNumberFieldConfig } from \"./usePhoneNumberFieldProps\";\n\ntype Props = Omit<\n React.ComponentProps,\n \"suggestionsStatus\" | \"onSelectSuggestion\" | \"loadingMessage\"\n>;\n\nexport function PhoneNumberField(props: Props) {\n const config = usePhoneNumberFieldConfig();\n\n return ;\n}\n","import { ErrorBanner, useAuthenticationContext } from \"design-system\";\nimport { pipe } from \"fp-ts/function\";\nimport { useMemo } from \"react\";\nimport { useFormatMessage } from \"../intl\";\nimport * as remoteData from \"../RemoteData\";\nimport { useRemoteData } from \"../useRemoteData\";\nimport { BasicFullScreenLoader } from \"./BasicFullScreenLoader\";\nimport { PortalStatusWrapper } from \"./PortalStatusAlert/PortalStatusWrapper\";\nimport { VersionChecker } from \"../VersionCheck/VersionChecker\";\n\ntype Props = {\n render: () => JSX.Element;\n keepClient?: boolean;\n};\n\nexport function StartNewFlow(props: Props) {\n return (\n \n \n \n );\n}\n\nfunction StartNewFlow_(props: Props) {\n const { startNewFlow, startNewFlowKeepClient } = useAuthenticationContext();\n const startRD = useRemoteData(\n useMemo(\n () => (props.keepClient ? startNewFlowKeepClient : startNewFlow),\n []\n )\n );\n const formatMessage = useFormatMessage();\n return pipe(\n startRD,\n remoteData.fold(\n () => ,\n () => (\n \n \n \n ),\n props.render\n )\n );\n}\n","import { useState } from \"react\";\nimport {\n Banner,\n Box,\n Button,\n buttonLink,\n Checkbox,\n ContentRow,\n ErrorBanner,\n Loader,\n Space,\n Stack,\n useIsMobileLayout,\n LocalizedString,\n} from \"design-system\";\nimport { Contracts, ReadingConfirmProps } from \"./Contracts\";\nimport { option, set, nonEmptyArray, eq } from \"fp-ts\";\nimport { pipe, constant, constNull, flow, constTrue } from \"fp-ts/function\";\n\nimport * as remoteData from \"../../RemoteData\";\nimport {\n reducerConfig,\n startSignatureAction,\n dismissMarketingModalAction,\n} from \"./state\";\nimport { MarketingConsentConfirmationDialog } from \"./MarketingConsentConfirmationDialog\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { MarketingConsentDialog } from \"./MarketingConsentDialog\";\nimport { ReaderTaskEither } from \"fp-ts/ReaderTaskEither\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { useRemoteData } from \"../../useRemoteData\";\nimport { Option } from \"fp-ts/Option\";\nimport * as api from \"./api\";\nimport { useParentSharedReducer } from \"../../BranchExperience/useSharedReducer\";\nimport { useBranchExperienceContext } from \"../../BranchExperience/BranchExperienceContext\";\nimport { DocumentsSignature, SignatureProps } from \"./DocumentsSignature\";\nimport {\n getPreContractualDocumentsActions,\n getSmartKeyInitialMode,\n useFormatError,\n} from \"./utils\";\nimport { useFormatMessage } from \"../../intl\";\nimport { TermsAndConditions } from \"./TermsAndConditions\";\nimport { CheckingRemoteClientSignature } from \"../../StandardLoan/FollowUpAndSignature/LowRiskClient/CheckingRemoteClientSignature\";\nimport { LFStatus } from \"../../StandardLoan/api\";\nimport { usePortalStatusContext } from \"../../PortalStatusContext\";\n\ninterface Props {\n onContinue: () => unknown;\n onContinueRemoteSigning: (status: Option) => unknown;\n onReadContract: ReaderTaskEither;\n onUnreadContract: ReaderTaskEither;\n onTermsAndConditionsReceived: TaskEither;\n onMarketingConsentExpressed: ReaderTaskEither;\n getDocuments: TaskEither;\n onBack: () => unknown;\n getTermsAndConditions: Option<\n TaskEither\n >;\n showReadingConfirm: boolean;\n showMarketingConsent: boolean;\n showContractsAgreement: boolean;\n inlineReadingCheckbox: boolean;\n promotion: Option;\n signatureProps: SignatureProps;\n hasInsurance?: boolean;\n mustReadAllDocuments?: boolean;\n skipContracts: boolean;\n showBackButton: boolean;\n hideDocumentsSignatureBox?: boolean;\n startCheckingRemoteSignature?: boolean;\n shouldVerifySignatureStatus?: boolean;\n onAfterSignature?: () => unknown;\n isForeignClient?: boolean;\n onForeignSigningConsentExpressed?: ReaderTaskEither<\n boolean,\n unknown,\n unknown\n >;\n variant?: string;\n}\n\nexport function PreContractualDocuments(props: Props) {\n const formatMessage = useFormatMessage();\n const formatError = useFormatError();\n const isMobileLayout = useIsMobileLayout();\n const { portalBlocked } = usePortalStatusContext();\n\n const [state, dispatch] = useParentSharedReducer(reducerConfig, {\n type: \"ReadDocuments\",\n documentsRead: set.empty,\n documentsReceivedConfirmation: !props.showContractsAgreement,\n marketingConsent: false,\n isMarketingConsentModalOpen: false,\n error: option.none,\n authenticationMethod: option.some(\n props.signatureProps.authenticationMethod\n ),\n foreignSigningConsent: false,\n });\n\n const [marketingModalOpen, setMarketingModalOpen] = useState(false);\n const preContractualDocuments = useRemoteData(props.getDocuments);\n const { branchExperienceFeaturesActive } = useBranchExperienceContext();\n\n const {\n handleContractRead,\n handleContractUnread,\n handlePreContractualReceived,\n handleMarketingConsentAcceptance,\n handleModalMarketingConsentAcceptance,\n handleForeignSigningConsentAcceptance,\n } = getPreContractualDocumentsActions(dispatch, {\n contractRead: props.onReadContract,\n contractUnread: props.onUnreadContract,\n termsAndConditionsReceived: props.onTermsAndConditionsReceived,\n marketingConsent: props.onMarketingConsentExpressed,\n foreignSigningConsent: props.onForeignSigningConsentExpressed,\n });\n\n return pipe(\n preContractualDocuments,\n remoteData.fold(\n () => (\n \n \n \n ),\n constNull,\n flow(\n nonEmptyArray.filter(({ contractualDocument }) =>\n pipe(contractualDocument, option.getOrElse(constTrue))\n ),\n option.fold(constNull, documents => {\n const documentsRead =\n state.type === \"ReadDocuments\" && props.showReadingConfirm\n ? state.documentsRead\n : pipe(\n documents,\n nonEmptyArray.map(document => document.docId),\n set.fromArray(eq.eqString)\n );\n\n const contractsReadingConfirmationProps: ReadingConfirmProps = props.showReadingConfirm\n ? branchExperienceFeaturesActive\n ? {\n readingConfirmationType: \"status\",\n documentsRead,\n }\n : {\n readingConfirmationType: \"checkbox\",\n documentsRead,\n onDocumentRead: handleContractRead,\n onDocumentUnread: handleContractUnread,\n }\n : { readingConfirmationType: \"none\" };\n\n const ContentWrapper = (props: {\n children: React.ReactElement;\n }) =>\n isMobileLayout ? (\n {props.children}\n ) : (\n props.children\n );\n\n const marketingConsentCheckbox = (\n \n \n setMarketingModalOpen(true),\n formatMessage(\n \"UKonto.ReadDocuments.marketingConsentMoreInfo\"\n )\n ),\n ])}\n value={state.marketingConsent}\n onChange={event =>\n handleMarketingConsentAcceptance(\n event.currentTarget.checked\n )()\n }\n issuesType={option.none}\n disabled={\n state.type === \"SigningDocuments\" ||\n branchExperienceFeaturesActive ||\n portalBlocked\n }\n />\n \n \n );\n\n const documentsSignatureBox = (\n \n dispatch(\n startSignatureAction(\n documents,\n props.showReadingConfirm,\n props.showMarketingConsent,\n props.isForeignClient ? props.isForeignClient : false\n )\n )\n }\n onContinue={\n props.shouldVerifySignatureStatus &&\n props.onAfterSignature !== undefined\n ? props.onAfterSignature\n : props.onContinue\n }\n isSignatureStarted={state.type === \"SigningDocuments\"}\n signatureProps={props.signatureProps}\n smartKeyInitialMode={pipe(\n getSmartKeyInitialMode(state.authenticationMethod),\n option.toUndefined\n )}\n onCancelSignature={() => dispatch({ type: \"CancelSignature\" })}\n otpLength={props.skipContracts ? 6 : undefined}\n hideRequestNotice={props.skipContracts}\n />\n );\n\n const triggerRemoteFinalPage = (\n dispatch({ type: \"CancelSignature\" })}\n />\n );\n\n const contractsAgreementCheckbox = (\n \n \n \n handlePreContractualReceived(event.currentTarget.checked)()\n }\n issuesType={\n state.type === \"ReadDocuments\"\n ? pipe(\n state.error,\n option.filter(\n constant(!state.documentsReceivedConfirmation)\n ),\n option.map(constant(\"error\" as const))\n )\n : option.none\n }\n disabled={\n state.type === \"SigningDocuments\" ||\n branchExperienceFeaturesActive ||\n portalBlocked\n }\n />\n \n \n );\n\n const foreignSigningConsentCheckbox = (\n \n \n \n handleForeignSigningConsentAcceptance(\n event.currentTarget.checked\n )()\n }\n issuesType={\n state.type === \"ReadDocuments\"\n ? pipe(\n state.error,\n option.filter(constant(!state.foreignSigningConsent)),\n option.map(constant(\"error\" as const))\n )\n : option.none\n }\n disabled={\n state.type === \"SigningDocuments\" ||\n branchExperienceFeaturesActive ||\n portalBlocked\n }\n />\n \n \n );\n\n return (\n \n {!props.skipContracts && (\n \n )}\n {pipe(\n props.promotion,\n option.map(promotion => (\n <>\n \n \n \n )),\n option.toNullable\n )}\n {!props.skipContracts &&\n pipe(\n props.getTermsAndConditions,\n option.map(getTermsAndConditions => (\n <>\n \n \n \n )),\n option.toNullable\n )}\n \n \n {props.showContractsAgreement && contractsAgreementCheckbox}\n {props.showMarketingConsent && marketingConsentCheckbox}\n {props.isForeignClient && foreignSigningConsentCheckbox}\n \n {state.type === \"ReadDocuments\"\n ? pipe(\n state.error,\n option.fold(constNull, error => (\n <>\n \n {formatError(error)}\n \n ))\n )\n : null}\n {props.signatureProps.authenticationMethod === \"PIN\" &&\n props.showBackButton ? (\n <>\n \n \n \n ) : (\n \n )}\n {!props.hideDocumentsSignatureBox &&\n props.skipContracts &&\n props.signatureProps.authenticationMethod === \"PIN\" && (\n \n )}\n {!props.hideDocumentsSignatureBox && documentsSignatureBox}\n {props.startCheckingRemoteSignature && triggerRemoteFinalPage}\n {state.type === \"ReadDocuments\" &&\n state.isMarketingConsentModalOpen &&\n !branchExperienceFeaturesActive && (\n \n handleModalMarketingConsentAcceptance(consent)()\n }\n onDismiss={flow(dismissMarketingModalAction, dispatch)}\n />\n )}\n {marketingModalOpen && (\n setMarketingModalOpen(false)}\n />\n )}\n \n );\n })\n )\n )\n );\n}\n","import { useState } from \"react\";\nimport { array, option, nonEmptyArray } from \"fp-ts\";\nimport { Panel, InlineLink, Stack, Box, FileIcon } from \"design-system\";\nimport { useFormatMessage } from \"../../intl\";\nimport { DocumentMeta } from \"../documentAPI\";\nimport { constNull, pipe, constTrue, flow } from \"fp-ts/function\";\nimport { DocumentDialog } from \"./DocumentDialog\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport * as api from \"./api\";\nimport { useRemoteData } from \"../../useRemoteData\";\nimport * as remoteData from \"../../RemoteData\";\n\ntype Props = {\n getTermsAndConditions: TaskEither;\n open?: boolean;\n variant?: string;\n};\n\nfunction Document({ document }: { document: DocumentMeta }) {\n const [showContractModal, setShowContractModal] = useState(false);\n\n return (\n <>\n setShowContractModal(true)}>\n {document.docTitle}\n \n {showContractModal && (\n setShowContractModal(false)}\n sealed={false}\n />\n )}\n \n );\n}\n\nexport function TermsAndConditions(props: Props) {\n const [isOpen, setOpen] = useState(props.open || false);\n const formatMessage = useFormatMessage();\n const termsAndConditions = useRemoteData(props.getTermsAndConditions);\n const isOvd = props.variant === \"OVD\";\n\n const renderContent = () => {\n return pipe(\n termsAndConditions,\n remoteData.fold(\n constNull,\n constNull,\n flow(\n nonEmptyArray.filter(item =>\n pipe(\n item.contractualDocument,\n option.fold(constTrue, item => !item)\n )\n ),\n option.fold(constNull, documents => (\n \n {pipe(\n documents,\n array.map(document => (\n \n ))\n )}\n \n ))\n )\n )\n );\n };\n\n return (\n \n setOpen(!isOpen))}\n headerIcon={option.none}\n title={formatMessage(\n isOvd\n ? \"Overdraft.ReadDocuments.TermsAndConditions.title\"\n : \"UKonto.ReadDocuments.TermsAndConditions.title\"\n )}\n content={renderContent}\n />\n \n );\n}\n","import { option, taskEither } from \"fp-ts\";\nimport { DigitalIdStart } from \"./DigitalIdStart\";\nimport { useState } from \"react\";\nimport { DigitalIdClientProfile } from \"./DigitalIdClientProfile\";\nimport { DigitalIdStatus } from \"./DigitalIdStatus\";\nimport { DigitalIdStop } from \"./DigitalIdStop\";\nimport { FeedbackBlock } from \"design-system\";\nimport { useFormatMessage } from \"../intl\";\nimport { useAppContext } from \"../useAppContext\";\nimport { DigitalIdClientMock } from \"./DigitalIdClientMock\";\n\ntype Props = {\n onClientIdentified: () => unknown;\n applicantIndex?: string;\n};\n\ntype State = \"error\" | \"start\" | \"status\" | \"stop\" | \"clientProfile\";\n\nexport function DigitalId({ onClientIdentified, applicantIndex }: Props) {\n const formatMessage = useFormatMessage();\n const [state, setState] = useState(\"start\");\n const {\n config: { mockScanner },\n } = useAppContext();\n\n return (\n <>\n {state === \"error\" && (\n \n )}\n {state === \"start\" && (\n setState(\"status\")}\n onError={() => setState(\"error\")}\n applicantIndex={applicantIndex}\n />\n )}\n {state === \"status\" && (\n setState(\"clientProfile\")}\n onStop={() => setState(\"stop\")}\n />\n )}\n {state === \"stop\" && (\n setState(\"start\"))} />\n )}\n {state === \"clientProfile\" && (\n <>\n \n {mockScanner && }\n \n )}\n \n );\n}\n","import { taskEither } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { useFormatMessage } from \"../../intl\";\nimport { FilePDFDialog } from \"../Dialogs/FilePDFDialog/FilePDFDialog\";\nimport { useCommand } from \"../../useAPI\";\nimport * as documentAPI from \"../documentAPI\";\n\ntype Props = {\n onDismiss: () => unknown;\n};\n\nexport function MarketingConsentDialog(props: Props) {\n const formatMessage = useFormatMessage();\n\n const marketingConsentTemplates = useCommand(documentAPI.templates);\n const marketingConsentContent = useCommand(documentAPI.content);\n\n return (\n \n marketingConsentContent({ docId: items[0].docId })\n )\n )}\n />\n );\n}\n","import { Loader, Box, LocalizedString } from \"design-system\";\nimport { boolean, option } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { useEffect, useState } from \"react\";\n\nimport { foldPortalStatus } from \"../../globalDomain\";\nimport { useFormatMessage } from \"../../intl\";\nimport { usePortalStatusContext } from \"../../PortalStatusContext\";\nimport PortalStatusMaintenance from \"./PortalStatusMaintenance\";\n\ntype Props = {\n children: JSX.Element;\n redirectWrapper?: boolean;\n};\n\nexport function PortalStatusWrapper(props: Props) {\n const { portalStatus } = usePortalStatusContext();\n const formatMessage = useFormatMessage();\n\n const [initialPortalStatus, setInitialPortalStatus] = useState(portalStatus);\n\n useEffect(() => {\n if (initialPortalStatus.type === \"initial\") {\n setInitialPortalStatus(portalStatus);\n }\n }, [portalStatus]);\n\n return (\n <>\n {foldPortalStatus(\n props.redirectWrapper ? initialPortalStatus : portalStatus,\n {\n onInitial: () => (\n \n \n \n ),\n onNone: () => <>{props.children},\n onActive: (message: LocalizedString) => (\n option.none,\n () =>\n option.some(\n formatMessage(\n \"ClientRedirect.closePageAfterPortalUnblockMessage\"\n )\n )\n )\n )}\n />\n ),\n onScheduled: () => <>{props.children},\n }\n )}\n \n );\n}\n","import * as t from \"io-ts\";\nimport { LocalizedString } from \"design-system\";\nimport { optionFromNullable } from \"io-ts-types/lib/optionFromNullable\";\nimport { apiCall } from \"../../APICall\";\nimport { Tenant } from \"../../globalDomain\";\nimport { constTrue } from \"fp-ts/function\";\nimport { eq } from \"fp-ts\";\n\nconst IDPrefixesOutput = t.array(\n t.type(\n {\n tenant: optionFromNullable(Tenant),\n label: LocalizedString,\n prefix: LocalizedString,\n },\n \"Prefix\"\n ),\n \"Prefixes\"\n);\n\nexport const prefixes = apiCall({\n inputEq: eq.fromEquals(constTrue),\n path: [\"clients\", \"identification\", \"phoneNumber\", \"prefixes\"],\n inputCodec: t.void,\n outputCodec: IDPrefixesOutput,\n});\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { array, boolean, eq, nonEmptyArray, option, set } from \"fp-ts\";\nimport * as zipper from \"fp-ts-contrib/Zipper\";\nimport { Option } from \"fp-ts/Option\";\nimport { NonEmptyArray } from \"fp-ts/NonEmptyArray\";\nimport { constant, pipe } from \"fp-ts/function\";\nimport * as classes from \"./FlowAccordion.treat\";\nimport {\n Box,\n CheckIcon,\n ContentRow,\n LocalizedString,\n MacroStepper,\n Panel,\n PanelHeaderIcon,\n PencilIcon,\n Stack,\n Sticky,\n useIsMobileLayout,\n} from \"design-system\";\nimport { spaceUnit } from \"design-system/lib/styleConstants\";\n\ntype Props = {\n value: Option;\n items: NonEmptyArray;\n onChange: (value: Option) => unknown;\n disableNavigation?: boolean;\n contentRowType?: \"lateral-margins\" | \"full\";\n};\n\ntype PanelProps = React.ComponentProps;\n\ntype FlowAccordionContentProps = {\n down: () => unknown;\n up: (resetNextSteps?: boolean) => unknown;\n move: (index: number, resetNextSteps?: boolean) => unknown;\n resetNextSteps: () => unknown;\n};\n\nexport type FlowAccordionItem = {\n /**\n * Title of the Panel\n */\n title: LocalizedString;\n /**\n * Content of the Panel, to be rendered only when open\n */\n content: (contentProps: FlowAccordionContentProps) => JSX.Element | null;\n /**\n * Alternative key for accordion panels\n */\n key?: React.Key | null;\n disabled?: boolean;\n hideTitle?: boolean;\n};\n\nfunction panelIcon(\n panelStatus: PanelProps[\"status\"],\n stepNumber: number,\n disabled?: boolean\n): JSX.Element {\n switch (panelStatus) {\n case \"complete\":\n return disabled ? (\n \n ) : (\n \n );\n case \"active\":\n case \"static\":\n return disabled ? (\n \n ) : (\n \n );\n case \"hanging\":\n return disabled ? (\n \n ) : (\n \n );\n case \"disabled\":\n return (\n \n );\n }\n}\n\nfunction getStatusFromIndex(\n accordionItemIndex: number,\n currentIndex: Option,\n visitedPanels: Set\n): PanelProps[\"status\"] {\n return pipe(\n currentIndex,\n option.fold(constant(\"disabled\"), currentIndex => {\n if (accordionItemIndex < currentIndex) {\n return \"complete\";\n }\n if (accordionItemIndex === currentIndex) {\n return \"active\";\n }\n if (visitedPanels.has(accordionItemIndex)) {\n return \"hanging\";\n }\n return \"disabled\";\n })\n );\n}\n\nexport function FlowAccordionMacro(props: Props) {\n const { items, onChange } = props;\n const isMobileLayout = useIsMobileLayout();\n\n const [visitedPanels, setVisitedPanels] = useState>(new Set());\n\n const changeIndex = useCallback(\n (index: number, resetNextSteps?: boolean) => {\n if (resetNextSteps) {\n setVisitedPanels(set.filter(i => i < index));\n } else {\n setVisitedPanels(set.insert(eq.eqNumber)(index));\n }\n\n return onChange(option.some(index));\n },\n [onChange]\n );\n\n useEffect(() => {\n pipe(\n props.value,\n option.map(i =>\n setVisitedPanels(oldPanels =>\n pipe(\n array.range(0, i),\n set.fromArray(eq.eqNumber),\n set.union(eq.eqNumber)(oldPanels)\n )\n )\n )\n );\n }, [props.value]);\n\n const onStepSelect = useCallback(\n (index: number) => {\n const status = props.items[index].disabled\n ? \"disabled\"\n : getStatusFromIndex(index, props.value, visitedPanels);\n\n const isOpen = status === \"active\";\n\n return pipe(\n status !== \"disabled\" && !isOpen,\n boolean.fold(\n () => option.none,\n () => option.some(() => changeIndex(index, false))\n )\n );\n },\n [changeIndex, props.items, props.value, visitedPanels]\n );\n\n const panels = useMemo(\n () =>\n items.map((accordionItem, index) => {\n const status = getStatusFromIndex(index, props.value, visitedPanels);\n\n const isOpen = status === \"active\";\n\n const panelKey = pipe(\n !!accordionItem.key || accordionItem.key === 0,\n boolean.fold(\n () => accordionItem.title,\n () => accordionItem.key\n )\n );\n\n return (\n \n accordionItem.content({\n up: resetNextSteps => changeIndex(index - 1, resetNextSteps),\n down: () => changeIndex(index + 1, false),\n move: (index, resetNextSteps = false) =>\n changeIndex(index, resetNextSteps),\n resetNextSteps: () =>\n setVisitedPanels(set.filter(i => i < index)),\n })\n }\n headerIcon={pipe(\n isMobileLayout,\n boolean.fold(\n () =>\n option.some(\n panelIcon(status, index + 1, accordionItem.disabled)\n ),\n () => option.none\n )\n )}\n isOpen={isOpen}\n onSelect={onStepSelect(index)}\n data-test-id={\n status === \"active\" ? \"accordion_panel_active\" : undefined\n }\n stripSurroundingPadding={true}\n />\n );\n }),\n [\n items,\n changeIndex,\n visitedPanels,\n isMobileLayout,\n props.disableNavigation,\n props.value,\n onStepSelect,\n ]\n );\n\n return pipe(\n isMobileLayout,\n boolean.fold(\n () => (\n \n \n {panels}\n \n \n ),\n () => {\n const currentIndex = pipe(\n props.value,\n // on mobile we always have one visible panel, default to 0 in case it's none for some reason\n option.getOrElse(constant(0))\n );\n const steps = pipe(\n items,\n nonEmptyArray.map(item => item.title),\n zipper.fromNonEmptyArray,\n z =>\n pipe(\n zipper.move(constant(currentIndex), z),\n option.getOrElse(constant(z))\n )\n );\n\n return (\n \n \n \n \n {pipe(panels, array.lookup(currentIndex), option.toNullable)}\n \n );\n }\n )\n );\n}\n","import { Loader } from \"design-system\";\nimport { useEffect } from \"react\";\nimport { useCommand } from \"../useAPI\";\nimport * as api from \"./api\";\nimport { pipe } from \"fp-ts/function\";\nimport { taskEither } from \"fp-ts\";\n\ntype Props = {\n onContinue: () => unknown;\n onError: () => unknown;\n applicantIndex?: string;\n};\n\nexport function DigitalIdStart({ onContinue, onError, applicantIndex }: Props) {\n const start = useCommand(api.digitalIdStart);\n\n useEffect(() => {\n pipe(\n start({ applicantIndex }),\n taskEither.fold(\n _ => taskEither.fromIO(onError),\n _ => taskEither.fromIO(onContinue)\n )\n )();\n }, []);\n\n return (\n <>\n \n \n );\n}\n","import { Body, CheckIcon, FileContent, Loader, Stack } from \"design-system\";\nimport { palette, spaceUnit } from \"design-system/lib/styleConstants\";\nimport { useFormatMessage } from \"../intl\";\nimport { ImageViewer } from \"../Common/DocumentViewer/DocumentViewer\";\nimport { useCommand } from \"../useAPI\";\nimport * as api from \"./api\";\nimport { useEffect, useState } from \"react\";\nimport { pipe } from \"fp-ts/function\";\nimport { taskEither } from \"fp-ts\";\nimport { DigitalIdClientIdentified } from \"./api\";\n\ntype Props = {\n onClientIdentified: () => unknown;\n};\n\nexport function DigitalIdClientProfile({ onClientIdentified }: Props) {\n const formatMessage = useFormatMessage();\n const [\n clientIdentified,\n setClientIdentified,\n ] = useState();\n const getClientIdentified = useCommand(api.digitalIdClientIdentified);\n\n useEffect(() => {\n pipe(\n getClientIdentified(),\n taskEither.map(r => {\n setClientIdentified(r);\n onClientIdentified();\n })\n )();\n }, []);\n\n if (!clientIdentified) {\n return ;\n }\n\n return (\n <>\n \n \n \n \n \n {formatMessage(\"DigitalId.ClientIdentified\")}\n \n \n \n \n );\n}\n","import { Body, Box, Loader, LoadingButton, Space, Stack } from \"design-system\";\nimport { useFormatMessage } from \"../intl\";\nimport { useCommand, usePollingEffect } from \"../useAPI\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport * as api from \"./api\";\nimport { useEffect } from \"react\";\nimport { taskEither } from \"fp-ts\";\nimport { useDigitalIdParentReducer } from \"./state\";\nimport { DigitalIdInstructions } from \"./DigitalIdInstructions\";\n\ntype Props = {\n onContinue: () => unknown;\n onStop: () => unknown;\n};\n\nexport function DigitalIdStatus({ onContinue, onStop }: Props) {\n const formatMessage = useFormatMessage();\n const [, setState] = useDigitalIdParentReducer();\n const getQrCode = useCommand(api.digitalIdQrCode);\n\n const getQrCodeAndSave = pipe(\n getQrCode(),\n taskEither.map(qr => setState(qr))\n );\n\n useEffect(() => {\n getQrCodeAndSave();\n return () => setState(undefined);\n }, []);\n\n usePollingEffect(api.digitalIdStatus, {\n intervalMS: 2000,\n shouldPollingContinue: ({ status }) => status === \"RETRY\",\n onError: constNull,\n onSuccess: ({ status }) => {\n if (status === \"CONTINUE\") {\n onContinue();\n } else if (status === \"STOP\") {\n onStop();\n }\n },\n });\n\n return (\n <>\n \n \n \n {formatMessage(\"DigitalId.Message\")}\n \n \n {formatMessage(\"DigitalId.Description\")}\n \n \n \n {formatMessage(\"DigitalId.Button.Message\")}\n \n \n \n \n \n \n \n );\n}\n","import {\n Body,\n Box,\n LoadingButton,\n Space,\n Stack,\n WrongIcon,\n} from \"design-system\";\nimport { useFormatMessage } from \"../intl\";\nimport { DigitalIdInstructions } from \"./DigitalIdInstructions\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { palette, spaceUnit } from \"design-system/lib/styleConstants\";\n\ntype Props = {\n onRetry: TaskEither;\n};\n\nexport function DigitalIdStop({ onRetry }: Props) {\n const formatMessage = useFormatMessage();\n\n return (\n <>\n \n \n \n \n \n \n \n {formatMessage(\"DigitalId.Stop.Message\")}\n \n \n \n \n {formatMessage(\"DigitalId.Stop.Button.Message\")}\n \n \n \n \n \n \n \n );\n}\n","import { option, taskEither } from \"fp-ts\";\nimport {\n Box,\n FormErrors,\n LoadingButton,\n Space,\n TextField,\n unsafeLocalizedString,\n} from \"design-system\";\nimport { useFormatMessage } from \"../intl\";\nimport { useState } from \"react\";\nimport { useCommand } from \"../useAPI\";\nimport { pipe } from \"fp-ts/function\";\nimport { digitalIdSetBirthNumber } from \"./api\";\n\ntype Props = {};\n\nexport function DigitalIdClientMock(_: Props) {\n const formatMessage = useFormatMessage();\n const [birthNumber, setBirthNumber] = useState(\"\");\n const [error, setError] = useState();\n const setCustomerBirthNumber = useCommand(digitalIdSetBirthNumber);\n\n const handleSubmit = birthNumber\n ? pipe(\n setCustomerBirthNumber({ birthNumber: birthNumber }),\n taskEither.fold(\n () => taskEither.fromIO(() => setError(\"Invalid birth number\")),\n () => taskEither.fromIO(() => {})\n )\n )\n : taskEither.left(() => {});\n\n return (\n <>\n \n \n \n {\n setError(undefined);\n setBirthNumber(v);\n }}\n value={birthNumber}\n label={unsafeLocalizedString(\"\")}\n placeholder={formatMessage(\n \"Identification.personalData.birthNumber\"\n )}\n issues={option.none}\n onBlur={() => {}}\n />\n \n \n \n \n \n \n {error ? (\n <>\n \n \n \n \n \n ) : (\n <>\n )}\n \n );\n}\n","import { ComponentProps } from \"react\";\nimport { ReadOnlyDateField } from \"../ReadOnlyDateField/ReadOnlyDateField\";\nimport { pipe } from \"fp-ts/function\";\nimport { option } from \"fp-ts\";\nimport { MonthYearField } from \"../MonthYearField/MonthYearField\";\n\ntype Feedback = ComponentProps[\"feedback\"];\n\ntype Props = ComponentProps & {\n edit: boolean;\n feedback?: Feedback;\n};\n\nexport function OptionalEditMonthYearField(props: Props) {\n const { edit, ...fieldProps } = props;\n\n const finalDate = pipe(\n props.value,\n option.map(({ month, year }) => {\n const finalDate = new Date();\n finalDate.setFullYear(year);\n finalDate.setMonth(month - 1);\n return finalDate;\n })\n );\n\n return edit ? (\n \n ) : (\n \n );\n}\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./OptionalEditTextField.treat.1XiUC1i.css\";\nexport var textAlignment = '_3PM4x';","export function getOnlyDownloadMimes(isSafari: boolean) {\n const mimes = [\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n \"application/vnd.ms-outlook\",\n ];\n if (!isSafari) {\n mimes.push(\"image/tiff\");\n }\n return mimes;\n}\n","import * as t from \"io-ts\";\nimport {\n sharedReducerConfig,\n useChildSharedReducer,\n useParentSharedReducer,\n} from \"../BranchExperience/useSharedReducer\";\nimport { Dispatch } from \"react\";\nimport { pipe } from \"fp-ts/function\";\nimport { option } from \"fp-ts\";\n\nconst State = t.union([\n t.type({\n qrCode: t.string,\n }),\n t.undefined,\n]);\n\nexport type State = t.TypeOf;\n\nconst UpdateAction = t.type({\n type: t.literal(\"UpdateAction\"),\n payload: State,\n});\n\nconst Action = UpdateAction;\n\nexport type Action = t.TypeOf;\n\nfunction reducer(_: State, action: Action): State {\n switch (action.type) {\n case \"UpdateAction\":\n return action.payload;\n }\n}\n\nfunction digitalIdReducerConfig() {\n return sharedReducerConfig(\"DigitalId\", State, Action, reducer);\n}\n\nexport function useDigitalIdParentReducer(\n initState?: State\n): [State, Dispatch] {\n const [state, dispatch] = useParentSharedReducer(\n digitalIdReducerConfig(),\n initState\n );\n const setState = (s: State) => dispatch({ type: \"UpdateAction\", payload: s });\n\n return [state, setState];\n}\n\nexport function useDigitalIdChildReducer(): [State, Dispatch] {\n const [state, dispatch] = useChildSharedReducer(digitalIdReducerConfig());\n const setState = (s: State) => dispatch({ type: \"UpdateAction\", payload: s });\n\n return [\n pipe(\n state,\n option.fold(\n () => undefined,\n state => state\n )\n ),\n setState,\n ];\n}\n","import { AlertDialog, WarningIcon } from \"design-system\";\nimport { useFormatMessage } from \"../../intl\";\n\ntype Props = {\n onAnswer: (answer: boolean) => unknown;\n onDismiss: () => unknown;\n};\n\nexport function MarketingConsentConfirmationDialog(props: Props) {\n const formatMessage = useFormatMessage();\n return (\n props.onAnswer(true)}\n onCancel={() => props.onAnswer(false)}\n onDismiss={props.onDismiss}\n />\n );\n}\n","import { Reader } from \"fp-ts/Reader\";\nimport {\n ExistingClientAuthenticationMethod,\n GenericError,\n} from \"../../globalDomain\";\nimport {\n SmartKey,\n SmartKeyChild,\n SmartKeyProps,\n} from \"../../SmartKey/SmartKey\";\nimport { ExternalPushNotificationCard } from \"./ExternalPushNotificationCard\";\nimport {\n OtpGenerationError,\n OtpGenerationInput,\n OtpGenerationOutput,\n OtpVerifyError,\n OtpVerifyInput,\n} from \"../../OTP/domain\";\nimport { Path } from \"../../APICall\";\nimport * as smartKeyApi from \"../../SmartKey/api\";\nimport { SBAuthorizationButton } from \"./SBAuthorizationButton\";\nimport { IO } from \"fp-ts/IO\";\nimport {\n OTPAuthorization,\n OTPAuthorizationChild,\n} from \"../../OTPAuthorization/OTPAuthorization\";\nimport { ReaderTaskEither } from \"fp-ts/ReaderTaskEither\";\nimport { Option } from \"fp-ts/Option\";\nimport {\n LocalizedString,\n unsafePositiveInteger,\n Banner,\n Stack,\n useIsTouchScreen,\n} from \"design-system\";\nimport { useFormatMessage } from \"../../intl\";\nimport { pipe } from \"fp-ts/function\";\nimport { option, taskEither } from \"fp-ts\";\n\nimport { useBranchExperienceContext } from \"../../BranchExperience/BranchExperienceContext\";\nimport { OTPAuthorizationParent } from \"../../OTPAuthorization/OTPAuthorizationParent\";\nimport { SmartKeyMode } from \"../../SmartKey/SmartKeyState\";\nimport { SmartKeyParent } from \"../../SmartKey/SmartKeyParent\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\n\nexport type IDProps = {\n authenticationMethod: Extract;\n phoneNumber: string;\n generateOtpCommand: ReaderTaskEither<\n OtpGenerationInput,\n OtpGenerationError | GenericError,\n OtpGenerationOutput & { transactionId: Option }\n >;\n verifyOtpCommand: ReaderTaskEither<\n OtpVerifyInput,\n OtpVerifyError | GenericError,\n unknown\n >;\n onSignFailure: () => unknown;\n};\n\nexport type PushNotificationAndQRProps = {\n authenticationMethod: Extract<\n ExistingClientAuthenticationMethod,\n \"PUSH_NOTIFICATION\" | \"QR\"\n >;\n authorizeWithPush: ReaderTaskEither<\n void,\n unknown,\n smartKeyApi.SendPushOutput\n >;\n checkAuthorizationPushPath: Path;\n generateAuthorizationQR: ReaderTaskEither<\n void,\n unknown,\n smartKeyApi.GenerateQRCodeOutput\n >;\n checkAuthorizationQRPath: Path;\n onFailedSignature: () => unknown;\n};\n\nexport type ExternalPushNotificationProps = {\n authenticationMethod: Extract<\n ExistingClientAuthenticationMethod,\n \"EXTERNAL_PUSH_NOTIFICATION\"\n >;\n onApplicationRejected: () => unknown;\n authorizeWithPushTLS: ReaderTaskEither<\n void,\n unknown,\n smartKeyApi.SendPushNoTransactionOutput\n >;\n};\n\nexport type PINProps = {\n authenticationMethod: Extract;\n beforeAuthorizationAction: IO;\n checkAuthorizationPushPath: Path;\n canStartAuthorization?: TaskEither;\n};\n\nexport type SignatureProps =\n | IDProps\n | PushNotificationAndQRProps\n | ExternalPushNotificationProps\n | PINProps;\n\ntype Props = {\n onContinue: () => unknown;\n startSignature: () => unknown;\n onCancelSignature: () => unknown;\n isSignatureStarted: boolean;\n signatureProps: SignatureProps;\n smartKeyInitialMode?: SmartKeyMode;\n otpLength?: number;\n hideRequestNotice?: boolean;\n};\n\nfunction foldPropsAuthenticationMethod(matches: {\n ID: Reader;\n PUSH_NOTIFICATION: Reader;\n QR: Reader;\n EXTERNAL_PUSH_NOTIFICATION: Reader;\n PIN: Reader;\n}): Reader {\n return props => {\n switch (\n props.signatureProps.authenticationMethod // NOSONAR\n ) {\n case \"ID\":\n return matches.ID(props.signatureProps);\n case \"PUSH_NOTIFICATION\":\n return matches.PUSH_NOTIFICATION(props.signatureProps);\n case \"QR\":\n return matches.QR(props.signatureProps);\n case \"PIN\":\n return matches.PIN(props.signatureProps);\n case \"EXTERNAL_PUSH_NOTIFICATION\":\n return matches.EXTERNAL_PUSH_NOTIFICATION(props.signatureProps);\n }\n };\n}\n\nexport function DocumentsSignature(props: Props) {\n const formatMessage = useFormatMessage();\n const { branchExperienceFeaturesActive } = useBranchExperienceContext();\n const isTouchScreen = useIsTouchScreen();\n\n return pipe(\n props,\n foldPropsAuthenticationMethod({\n ID: signatureProps => {\n const otpAuthProps = {\n phoneNumber: signatureProps.phoneNumber,\n onSuccess: taskEither.fromIO(props.onContinue),\n onFailure: signatureProps.onSignFailure,\n requestNotice: props.hideRequestNotice\n ? option.none\n : option.some(\n formatMessage(\"Identification.otp.authorizeWithSMS.subtitle\")\n ),\n otpRequestButtonLabel: formatMessage(\n \"UKonto.ReadDocuments.sendOTPToSign\"\n ),\n otpSubmitButtonLabel: formatMessage(\"Identification.otp.signViaOTP\"),\n otpTitleLabel: formatMessage(\n \"Identification.otp.authorizeWithSMS.title\"\n ),\n onProcessStart: taskEither.fromIO(() => props.startSignature()),\n processStarted: props.isSignatureStarted,\n onGenerateOTP: signatureProps.generateOtpCommand,\n onVerifyOTP: signatureProps.verifyOtpCommand,\n length: props.otpLength\n ? unsafePositiveInteger(props.otpLength)\n : unsafePositiveInteger(4),\n };\n\n if (isTouchScreen) {\n return (\n \n \n \n \n );\n }\n if (branchExperienceFeaturesActive) {\n return ;\n } else {\n return ;\n }\n },\n QR: signatureProps => {\n const smartKeyProps: SmartKeyProps = {\n variant: \"authorization\",\n onSuccess: props.onContinue,\n onProcessStart: props.startSignature,\n processStarted: props.isSignatureStarted,\n authorizeWithPush: signatureProps.authorizeWithPush,\n checkAuthorizationPushPath: signatureProps.checkAuthorizationPushPath,\n generateAuthorizationQR: signatureProps.generateAuthorizationQR,\n checkAuthorizationQRPath: signatureProps.checkAuthorizationQRPath,\n onFailedSignature: signatureProps.onFailedSignature,\n initialMode: props.smartKeyInitialMode,\n };\n if (isTouchScreen) {\n return ;\n }\n if (branchExperienceFeaturesActive) {\n return ;\n } else {\n return ;\n }\n },\n PUSH_NOTIFICATION: signatureProps => {\n const smartKeyProps: SmartKeyProps = {\n variant: \"authorization\",\n onSuccess: props.onContinue,\n onProcessStart: props.startSignature,\n processStarted: props.isSignatureStarted,\n authorizeWithPush: signatureProps.authorizeWithPush,\n checkAuthorizationPushPath: signatureProps.checkAuthorizationPushPath,\n generateAuthorizationQR: signatureProps.generateAuthorizationQR,\n checkAuthorizationQRPath: signatureProps.checkAuthorizationQRPath,\n onFailedSignature: signatureProps.onFailedSignature,\n initialMode: props.smartKeyInitialMode,\n };\n if (isTouchScreen) {\n return ;\n }\n if (branchExperienceFeaturesActive) {\n return ;\n } else {\n return ;\n }\n },\n EXTERNAL_PUSH_NOTIFICATION: signatureProps => {\n return (\n \n );\n },\n PIN: signatureProps => {\n return (\n \n );\n },\n })\n );\n}\n","import { useAppContext } from \"../useAppContext\";\nimport { Currency } from \"../globalDomain\";\n\nexport function useTenantCurrency(): Currency {\n const {\n apiParameters: { tenant },\n } = useAppContext();\n\n switch (tenant) {\n case \"CZ\":\n return \"CZK\";\n case \"SK\":\n return \"EUR\";\n }\n}\n","import { LocalizedStringBrand } from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { constVoid, pipe } from \"fp-ts/function\";\nimport { IO } from \"fp-ts/IO\";\nimport { Option } from \"fp-ts/Option\";\nimport { MainLayout } from \"../MainLayout/MainLayout\";\nimport { PortalStatusAlert } from \"../PortalStatusAlert/PortalStatusAlert\";\nimport { ValidateDetailsOutput } from \"./api\";\nimport { Branded } from \"io-ts\";\nimport { UserNotValidatedError } from \"./UserNotValidatedError\";\nimport { headerActions, MainContent } from \"../MainContent\";\n\ntype Props = {\n validationResult: ValidateDetailsOutput;\n onExit: Option>;\n onDismiss: Option>;\n title: Branded;\n};\n\nexport function UserNotValidatedDialog(props: Props) {\n return (\n headerActions.exit(onExit))\n )}\n title={option.some(props.title)}\n >\n \n \n \n \n \n );\n}\n","import { ValidateDetailsOutput } from \"./api\";\nimport { LocaleKey } from \"../../intl\";\n\nexport function getDialogTexts(\n validationResult: ValidateDetailsOutput\n): { title: LocaleKey; message: LocaleKey } {\n if (!validationResult.hasPhoneNumber) {\n return {\n title: \"UserValidation.missingPhoneNumberTitle\",\n message: \"UserValidation.missingPhoneNumberMessage\",\n };\n } else if (!validationResult.isPhoneNumberVerified) {\n return {\n title: \"UserValidation.phoneNumberNotVerifiedTitle\",\n message: \"UserValidation.phoneNumberNotVerifiedMessage\",\n };\n } else if (!validationResult.hasPasswordForCommunication) {\n return {\n title: \"UserValidation.passwordNotSpecifiedTitle\",\n message: \"UserValidation.passwordNotSpecifiedMessage\",\n };\n } else if (!validationResult.hasEmailAddress) {\n return {\n title: \"UserValidation.missingEmailTitle\",\n message: \"UserValidation.missingEmailMessage\",\n };\n } else if (!validationResult.isEmailVerified) {\n return {\n title: \"UserValidation.emailNotVerifiedTitle\",\n message: \"UserValidation.emailNotVerifiedMessage\",\n };\n } else {\n return {\n title: \"Ok\",\n message: \"Ok\",\n };\n }\n}\n","import { option } from \"fp-ts\";\nimport { ComponentProps, forwardRef } from \"react\";\nimport { Option } from \"fp-ts/Option\";\nimport {\n FieldProps,\n LocalizedString,\n NumberField,\n TextChildren,\n} from \"design-system\";\nimport { useFormatCurrency } from \"../../../intl\";\nimport { Currency, Positive } from \"../../../globalDomain\";\n\ntype Props = FieldProps> & {\n id?: string;\n description?: LocalizedString;\n placeholder: LocalizedString;\n autoFocus?: boolean;\n min?: number;\n max?: number;\n step?: Positive;\n currency: Currency;\n cta?: ComponentProps[\"cta\"];\n assistiveText?: TextChildren;\n decimalDigits?: number;\n};\n\nexport const MoneyField = forwardRef(\n (props, forwardedRef) => {\n const formatCurrency = useFormatCurrency();\n const decimalDigits =\n props.decimalDigits !== undefined ? props.decimalDigits : 3;\n\n return (\n \n );\n }\n);\n","import {\n Box,\n Button,\n Checkbox,\n FileIcon,\n Space,\n Stack,\n StatusLabel,\n useIsMobileLayout,\n} from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { constFalse, pipe } from \"fp-ts/function\";\nimport { useFormatMessage } from \"../../intl\";\nimport { PreContractualDocumentMeta } from \"../documentAPI\";\nimport { DocumentReadStatus, mediationInsuranceDocset } from \"./utils\";\n\nexport type DocumentReadingConfirmProps =\n | {\n readingConfirmationType: \"none\";\n }\n | {\n readingConfirmationType: \"status\";\n readStatus: DocumentReadStatus;\n }\n | {\n readingConfirmationType: \"checkbox\";\n isRead: boolean;\n onRead: () => unknown;\n onUnread: () => unknown;\n disabled: boolean;\n };\n\ntype Props = {\n document: PreContractualDocumentMeta;\n dataTestId: string;\n showErrors: boolean;\n onDocumentOpen: (document: PreContractualDocumentMeta) => unknown;\n isForeignClient?: boolean;\n onForeignDocumentOpen: (document: PreContractualDocumentMeta) => unknown;\n} & DocumentReadingConfirmProps;\n\nexport function DocumentItem(props: Props) {\n const isMobileLayout = useIsMobileLayout();\n const formatMessage = useFormatMessage();\n\n const rightContent = (() => {\n switch (props.readingConfirmationType) {\n case \"none\":\n return null;\n case \"status\":\n switch (props.readStatus) {\n case \"Read\":\n return (\n \n );\n case \"Reading\":\n return (\n \n );\n case \"Unread\":\n return (\n \n );\n }\n case \"checkbox\":\n return (\n item === mediationInsuranceDocset)\n )\n ? formatMessage(\n \"UKonto.ReadDocuments.Modal.checkbox.uKontoInsuranceMediation\"\n )\n : formatMessage(\"UKonto.ReadDocuments.clientHasRead\")\n )}\n value={props.isRead}\n onChange={() => {\n if (props.isRead) {\n props.onUnread();\n } else {\n props.onDocumentOpen(props.document);\n }\n }}\n issuesType={\n props.showErrors && !props.isRead\n ? option.some(\"error\")\n : option.none\n }\n disabled={props.disabled}\n />\n );\n }\n })();\n\n const stackProps = isMobileLayout\n ? {\n column: true,\n units: 6,\n }\n : ({\n column: false,\n fluid: true,\n vAlignContent: \"center\",\n } as\n | { column: boolean; units: number }\n | { column: boolean; fluid: true; vAlignContent: \"center\" });\n\n const isFrameWorkAgreement = (document: PreContractualDocumentMeta) =>\n pipe(\n document.docType,\n option.fold(constFalse, docType => docType === \"FRAMEWORK_AGREEMENT\")\n );\n\n const isProductContract = (document: PreContractualDocumentMeta) =>\n pipe(\n document.docType,\n option.fold(constFalse, docType => docType === \"PRODUCT_CONTRACT_ACCOUNT\")\n );\n\n return (\n \n \n props.onDocumentOpen(props.document)}\n disabled={\n props.readingConfirmationType === \"checkbox\" && props.disabled\n }\n />\n {props.isForeignClient &&\n (isFrameWorkAgreement(props.document) ||\n isProductContract(props.document)) && (\n \n \n props.onForeignDocumentOpen(props.document)}\n disabled={\n props.readingConfirmationType === \"checkbox\" && props.disabled\n }\n />\n \n )}\n \n {rightContent}\n \n );\n}\n","import {\n Body,\n Card,\n Heading,\n LoadingButton,\n SmartphoneIcon,\n Stack,\n} from \"design-system\";\nimport { boolean, taskEither } from \"fp-ts\";\nimport { constVoid, flow, pipe } from \"fp-ts/function\";\nimport { useFormatMessage } from \"../../intl\";\nimport * as api from \"../../SmartKey/api\";\nimport { ReaderTaskEither } from \"fp-ts/ReaderTaskEither\";\n\ntype Props = {\n onContinue: () => unknown;\n onApplicationRejected: () => unknown;\n authorizeWithPushTLS: ReaderTaskEither<\n void,\n unknown,\n api.SendPushNoTransactionOutput\n >;\n};\n\nexport function ExternalPushNotificationCard(props: Props) {\n const formatMessage = useFormatMessage();\n\n return (\n \n \n \n \n \n {formatMessage(\"SmartKey.title.authorization\")}\n \n \n {formatMessage(\"SmartKey.externalAuthorizationMessage\")}\n \n \n applicationRejected,\n boolean.fold(props.onContinue, props.onApplicationRejected)\n )\n )\n )}\n size=\"default\"\n />\n \n \n );\n}\n","import { ContentRow, Box, Button, LocalizedString } from \"design-system\";\nimport { IO } from \"fp-ts/IO\";\nimport { DeepLink, useSBDeepLink } from \"../useSBDeepLink\";\nimport { SBAuthorizationResultWaiting } from \"./SBAuthorizationResultWaiting\";\nimport { useState } from \"react\";\nimport { Path } from \"../../APICall\";\nimport { option, taskEither } from \"fp-ts\";\nimport { constVoid, pipe } from \"fp-ts/function\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { Option } from \"fp-ts/Option\";\nimport { usePortalStatusContext } from \"../../PortalStatusContext\";\n\ntype Props = {\n label: LocalizedString;\n deepLink: DeepLink;\n onProcessStart: () => unknown;\n processStarted: boolean;\n beforeAuthorizationAction: IO;\n onCancelSignature: () => unknown;\n checkAuthorizationPushPath: Path;\n canStartProcess: Option>;\n} & {\n onSuccess: () => unknown;\n};\n\nexport function SBAuthorizationButton(props: Props) {\n const sbAuthorize = useSBDeepLink(props.deepLink);\n const [sbAuthorizeCalled, setSbAuthorizeCalled] = useState(false);\n const { portalBlocked } = usePortalStatusContext();\n\n if (props.processStarted && !sbAuthorizeCalled) {\n setSbAuthorizeCalled(true);\n props.beforeAuthorizationAction();\n sbAuthorize();\n }\n\n const cancelSignatureRequest = () => {\n props.onCancelSignature();\n setSbAuthorizeCalled(false);\n };\n\n const onSignButtonClicked = () =>\n pipe(\n props.canStartProcess,\n option.fold(props.onProcessStart, canStartProcess =>\n pipe(\n canStartProcess,\n taskEither.map(canStartProcess =>\n canStartProcess ? props.onProcessStart() : constVoid\n )\n )()\n )\n );\n\n return (\n \n \n {props.processStarted ? (\n \n ) : (\n \n )}\n \n \n );\n}\n","import { Box, Loader, Space } from \"design-system\";\nimport { IO } from \"fp-ts/IO\";\nimport { useMemo } from \"react\";\nimport { checkPush } from \"../../SmartKey/api\";\nimport { usePollingEffect } from \"../../useAPI\";\nimport { Path } from \"../../APICall\";\n\ntype Props = {\n onSuccess: IO;\n onFailure: IO;\n onCancel: IO;\n checkAuthorizationPushPath: Path;\n};\n\nexport function SBAuthorizationResultWaiting(props: Props) {\n const checkAuthorization = useMemo(\n () => checkPush(props.checkAuthorizationPushPath),\n []\n );\n\n usePollingEffect(checkAuthorization, {\n intervalMS: 3000,\n shouldPollingContinue: ({ status }) => status === \"RETRY\",\n onError: props.onFailure,\n onSuccess: ({ status }) => {\n switch (status) {\n case \"RETRY\":\n return;\n case \"ERR\":\n return props.onFailure();\n case \"OK\":\n return props.onSuccess();\n case \"CANCEL\":\n return props.onCancel();\n }\n },\n });\n\n return (\n \n \n \n \n );\n}\n","import { RestoreNewestLoanApplicationOutput as SLRestoreData } from \"../../StandardLoan/api\";\n\nexport type RestoreDataType = \"latest\" | \"byId\";\n\nexport type RestoreDataObjectSL = {\n restoreData: SLRestoreData;\n restoreDataType: RestoreDataType;\n};\n\nexport function foldRestoreDataType(\n restoreDataType: RestoreDataType,\n match: { onById: () => T; onLatest: () => T }\n) {\n switch (restoreDataType) {\n case \"byId\":\n return match.onById();\n case \"latest\":\n return match.onLatest();\n }\n}\n","import * as classes from \"./PortalStatusMaintenance.treat\";\nimport {\n Box,\n Space,\n ContentRow,\n SettingsIcon,\n useIsMobileLayout,\n Heading,\n LocalizedString,\n Body,\n TextChildren,\n linebreak,\n} from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { Option } from \"fp-ts/Option\";\nimport { useFormatMessage } from \"../../intl\";\nimport { KOError } from \"../KOError/KOError\";\nimport { palette } from \"design-system/lib/styleConstants\";\nimport { constVoid, pipe } from \"fp-ts/function\";\nimport { MainLayout } from \"../MainLayout/MainLayout\";\n\ntype Props = {\n message: LocalizedString;\n additionalMessage: Option;\n};\n\nfunction PortalStatusMaintenance(props: Props) {\n const formatMessage = useFormatMessage();\n const isMobileLayout = useIsMobileLayout();\n\n if (isMobileLayout) {\n return (\n \n \n \n \n \n \n \n \n {formatMessage(\"PortalStatus.maintenance.header.title\")}\n \n \n \n \n \n {props.message}\n \n {pipe(\n props.additionalMessage,\n option.map(msg => (\n <>\n \n \n {msg}\n \n \n )),\n option.toNullable\n )}\n \n \n \n \n );\n }\n\n return (\n \n >(\n () => option.some(props.message),\n msg => option.some([props.message, linebreak, linebreak, msg])\n )\n )}\n action={option.none}\n />\n \n );\n}\n\nexport default PortalStatusMaintenance;\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./PortalStatusMaintenance.treat.2gKkukt.css\";\nexport var container = '_38W6F';","import { pipe, constNull } from \"fp-ts/function\";\nimport { option } from \"fp-ts\";\nimport { getLastSavedLoan } from \"../../StandardLoan/api\";\nimport { Option } from \"fp-ts/Option\";\n\nimport { RestoreDataObjectSL } from \"./domain\";\n\nimport * as remoteData from \"../../RemoteData\";\nimport { useQuery } from \"../../useAPI\";\n\nexport const OpenLoanApplicationWrapperLatest = (props: {\n renderStandardLoan: (restoreData: Option) => JSX.Element;\n}) => {\n const [openLoan] = useQuery(getLastSavedLoan);\n\n return pipe(\n openLoan,\n remoteData.fold(\n constNull,\n () => props.renderStandardLoan(option.none),\n response =>\n props.renderStandardLoan(\n option.some({\n restoreData: response.restoreData,\n restoreDataType: \"latest\",\n })\n )\n )\n );\n};\n"],"sourceRoot":""}