{"version":3,"sources":["UKontoSecondPart/Credentials/api.ts","UKontoFirstPart/state.ts","UKontoSecondPart/SummaryAndDownload/api.ts","UKontoSecondPart/Credentials/CredentialsMainDialog.tsx","UKontoFirstPart/UKontoPackagesSelection/api.ts","UKontoSecondPart/SummaryAndDownload/PendingActions.tsx","UKontoSecondPart/CreateProfileAndReadDocuments/CreateProfile/SecurityPassword.tsx","UKontoSecondPart/SummaryAndDownload/SummaryAndDownloadCommonStyles.treat.ts","UKontoSecondPart/Foreign/ForeignDocumentDialog.tsx","UKontoSecondPart/SummaryAndDownload/SummaryAndDownload.tsx","UKontoSecondPart/Credentials/CredentialsMain.tsx","UKontoSecondPart/CreateProfileAndReadDocuments/api.ts","UKontoSecondPart/SummaryAndDownload/Summary.tsx","UKontoSecondPart/SummaryAndDownload/Download.tsx","UKontoSecondPart/SummaryAndDownload/DownloadAppButton/DownloadAppButton.tsx","UKontoSecondPart/SummaryAndDownload/DownloadAppButton/DownloadAppButton.treat.ts","UKontoSecondPart/CreateProfileAndReadDocuments/CreateProfile/UserID.tsx","UKontoSecondPart/CreateProfileAndReadDocuments/CreateProfile/SecurityPin.tsx","UKontoSecondPart/Credentials/CredentialsApi.ts","UKontoSecondPart/Credentials/hooks.ts","UKontoSecondPart/Credentials/style.treat.ts","UKontoSecondPart/Credentials/CredentialsMainView.tsx","UKontoSecondPart/domain.ts","UKontoSecondPart/SummaryAndDownload/SendContractsViaEmailDialog.tsx","UKontoSecondPart/SummaryAndDownload/PrintDocumentsDialog.tsx","UKontoSecondPart/SummaryAndDownload/Contracts.tsx","UKontoSecondPart/api.ts"],"names":["ReadStatusInput","t","ReadStatusOutput","status","WaitingForConnection","MobileConnected","UserIdCreated","PinCreated","PasswordCreated","ConnectionLost","ReadStatusError","readStatus","apiCall","path","inputCodec","inputEq","eq","fromEquals","constFalse","outputCodec","errorCodec","submittedCredentialsViaMobile","constTrue","ReadRecipientsInput","linkPurpose","ReadRecipientsOutput","MobileRecipientType","MobileRecipientNumber","ReadRecipientsError","readRecipients","ReadLinkInput","id","ReadLinkOutput","flowId","UUID","ReadLinkError","readLink","getStructEq","eqString","ReadParametersInput","ReadParametersOutput","riskyActivitiesOrPep","ReadParametersError","readParameters","SendLinkInput","SendLinkOutput","attemptsLeft","SendLinkError","InvalidFlowId","MaxLinksAttemptsReached","sendLink","UpdateUserIdInput","userId","UpdateUserIdOutput","UpdateUserIdError","updateUserId","UpdatePinInput","securityPin","UpdatePinOutput","UpdatePinError","updatePin","UpdatePasswordInput","passwordForCommunication","UpdatePasswordOutput","UpdatePasswordError","updatePassword","UKontoPackageType","BASIC","MIDDLE","UPPER","UKontoFirstPartState","currentRoute","chosenCard","optionCodec","OneClickJourneyState","FinancialIntermediationState","text","LocalizedString","FinancialIntermediationSubmitState","State","SetRouteAction","type","payload","SetChosenCardAction","SubmitFinancialIntermediationAction","Action","setRouteAction","setChosenCardAction","ukontoPackage","setFinancialIntermediationSubmitAction","reducerConfig","sharedReducerConfig","state","action","PendingActionsInput","checkPendingActions","PendingActionsOutput","emailVerified","crsRelevant","fatcaRelevant","overdraftAvailability","sbRelevant","pendingActions","sendDocumentsCommand","UserEmailOutput","email","userEmail","MobileAppQRCodeInput","component","size","MobileAppQRCodeOutput","FileContent","mobileAppQRCode","OnboardingPending","OnboardingFailure","OnboardingRejected","OnboardingMicropayment","OnboardingRedirectToTheBank","OnboardingContinue","OnboardingNotifyClientOfDelay","OnboardingNotifyClientOfDelayWithErrors","OnboardingSuccess","stepsResults","nonEmptyArray","SUCCESS","ERROR","message","OnboardingResultsOutput","onboardingResults","CredentialsDialogCommonProps","variant","CredentialsBannerCommonProps","title","option","none","actions","onDismiss","CredentialsWaitDialog","props","linksQuota","phoneNumberQuery","onClose","onSendLink","linkResent","setLinkResent","useState","linkResentEnabled","setLinkResentEnabled","formatMessage","useFormatMessage","onLinkResendEnabled","useCallback","linkResendEnablerTask","useTaskDelayed","subtitle","phone","pipe","remoteData","result","Client","phoneNumber","getOrElse","constant","icon","MobileIcon","label","some","units","column","content","isSome","value","isNone","hAlignContent","vAlignContent","weight","color","palette","neutral500","fold","it","count","disabled","start","CredentialsConnectedDialog","CredentialsErrorDialog","onRemoteCredentialsExit","isSLFlow","CredentialsCloseDialog","onCancel","onConfirm","cancelLabel","confirmLabel","CredentialsCloseManager","children","shouldAskConfirm","setShouldAskConfirm","onWillClose","packagesList","PackageListResponse","GetListError","getReservedAccount","GetReservedAccountResponse","choosePackageType","ChoosePackageTypeInput","getFeatureWhitelist","feature","PendingActions","stepNo","isSavingsAccount","branchExperienceFeaturesActive","useBranchExperienceContext","isTouchScreen","useIsTouchScreen","isMobileLayout","useIsMobileLayout","config","enableVirtualCardsImpl","useAppContext","pendingAction","shrink","grow","map","toNullable","neutral700","renderCrsAndFatcaChecks","details","link","computeCrsAndFatcaDetails","constNull","monochromatic","neutral800","pinRelevant","boolean","className","classes","SecurityPassword","clientPasswordCriteria","passwordStrengthLabel","useCriteria","validPassword","passwordMatches","useValidators","numberOfPasswordCriteria","record","keys","a","length","useEffect","setUkontoPasswordStep","fieldProps","handleSubmit","setValues","values","useForm","initialValues","password","strength","repeatedPassword","fieldValidators","onSubmit","onComplete","useVirtualFormSubmit","usePropagateHasChanged","initialValue","equality","equals","b","onHasChanged","formErrors","error","of","submitButton","submitLabel","errors","name","placeholder","showHideButton","hideLabel","showLabel","onChange","criteria","passwordStrengthCalculator","baseCriteria","goodThreshold","strongThreshold","strengthLabel","wrapper","ForeignDocumentDialog","getForeignContent","useCommand","ukontoApi","foreignContent","useRemoteData","useMemo","contractType","renderLoading","renderError","ErrorIcon","pdfName","file","taskEither","fromIO","filename","pdfContent","downloadUrl","SummaryAndDownload","useQuery","summaryApi","isCf","success","isChild","promotion","finalChecksComplete","heading","isSavingAaccount","CredentialsDefaultCustomerModel","hasUserId","hasPin","hasPassword","isRiskyClient","CredentialsRiskyCustomerModel","CredentialsMain","onClosed","otherProps","connectionConfirmed","setConnectionConfirmed","linkSent","syncState","restartPolling","resetLinkSent","useCredentialsMainApi","withCountdown","api","chain","rightIO","maxAttempts","setMaxAttempts","constVoid","recipients","UserIDSuggestionsOutput","NonEmptyString","userIDSuggestions","UserIDValidateInput","ignoreCount","eqUserIDValidateInput","InvalidUserIdError","MaximumInvalidUserIdAttemptsError","UserIDValidationError","validateUserID","Summary","isPrintContractsVisible","setIsPrintContractsVisible","isEmailContractsVisible","setIsEmailContractsVisible","externalCommunication","hidePrintContractsModal","hideEmailContractsModal","printDocumentsDialog","SpinnerIcon","renderActionButtonGroup","array","compact","fromPredicate","renderLoadingContracts","subheading","description","QRCodeImage","qrCode","code","Download","translationPlaceholder","undefined","style","padding","spaceUnit","platform","listStyle","storeButton","locale","fetchButton","tryCatch","img","default","src","backgroundImage","storeLink","tenant","foldTenant","DownloadAppButton","apiParameters","language","fetchStoreButton","downloadAppbutton","button","href","target","rel","downloadAppButton","UserID","isDropDown","setIsDropdown","enhancedMF20","validateUserId","profileAPI","skipTracking","nonBlankString","maxLength","definedNoExtract","validateUserIdText","fromNullable","callback","mapLeft","e","fieldErrors","userIdFromDropdown","fieldIssues","initialUserId","validators","inSequence","minLength","validate","foldPredicate","userIdFromDropDown","onNext","onSubmitR5","userIdFieldProps","suggestions","suggestedUserIds","suggestedUserIdOptions","firstSuggestion","dropDownOptions","v","unsafeLocalizedString","currentSuggestedIDIndex","setCurrentSuggestedIDIndex","currentSuggestedID","sequenceS","lookup","currentSuggestedIDStable","useStableEquality","getEq","suggestedId","cta","index","alt","options","newVal","findFirst","p","flatten","searchable","clearable","noResultsLabel","clearSelectionLabel","filterInputPlaceholder","isMulti","width","SecurityPin","setUkontoPinStep","next","smartKeyActivationModalOpen","setSmarKeyActivationModalOpen","securityPinCriteria","pinStrengthLabel","validPin","pinMatches","numberOfPinCriteria","repeatedSecurityPin","conditionalIssuesProps","issues","max","buttonLink","virtualKeyboardInputType","useCredentialsSyncState","mobileApi","setSyncState","countdownIsStopped","resetCountdown","useCountdown","prevStatus","useRef","restartCountdown","current","pollError","setPollError","restartPolling_","usePollingEffect","intervalMS","shouldPollingContinue","onError","onSuccess","useUpdateEffect","credentialsLink","setLinkSent","setLinksQuota","commands","bimap","useCredentialsLink","useCredentialsMobileApi","flowIdRef","linkQuery","refreshLink","parametersCommand","parametersQuery","setParametersQuery","remoteLoading","authInfo","login","useAuthenticationContext","foldRemoteData","loading","console","constUndefined","remoteFailure","parameters","remoteSuccess","delayMs","task","taskRef","cancel","clearTimeout","setTimeout","useLayoutEffect","useAccordionSteps","steps","stepIndex","setStepIndex","onStepIndex","onStepId","findIndex","onNextStep","Math","min","Credentials","stepDisabled","CredentialsBackground","CredentialsDefaultSteps","lifecycle","CredentialsMainView","conf","flow","mapStepWithLifecycle","toggleStepFeature","mapStepWithConf","items","isPromotedInProgress","setupFirstStep","mapStepWithStyle","computeSteps","shouldShowSendLink","setShouldShowLink","showMaxAttempts","setShowMaxAttempts","newShouldShowSendLink","shouldShowSteps","checkRulesModalOpen","setCheckRulesModalOpen","pinCriteria","toArray","_","pswCriteria","align","divider","margin","idx","cx","Style","iconColor","iconMessage","isNonEmpty","enabled","WarningIcon","warning600","ToDoIcon","ProgressIcon","blue600","SuccessIcon","success800","Profile","optionFromUndefined","pin","CRMLeadStepUkonto","Kyc","Password","SecurityPIN","PersonalDataEdit","CreateProfileInput","profile","NonResidentsAdditionalDocumentsType","TEMPORARY_RESIDENCE_PERMIT","PERMISSION_TO_STUDY","EMPLOYMENT_CONTRACT_WITH_CLIENT_DATA","LEASE_AGREEMENT_SIGNED_ON_CLIENT_NAME","REAL_ESTATE_LAND_REGISTER_EXTRACT","LONG_TERM_RESIDENCE_PERMIT","STUDENT_VISA","MARRIAGE_CERTIFICATE","BUSINESS_CERTIFICATE_AUTHORITY","LONG_TERM_VISA_90_PLUS","SendContractsViaEmailDialog","apis","setStatus","emailQuery","submitHandler","UCWarningIcon","PrintDocumentsDialog","documents","renderDocuments","Contracts","documentDownload","documentAPI","contractDownloading","setContractDownloading","Document","contract","docTitle","docId","bracket","item","documentBase64","downloadFile","convertToBlob","uKontoDocuments","PreContractualDocumentsListOutput","signedContractualDocuments","DocumentsListOutput","PhoneNumberOutput","contractRead","ContractReadInput","eqContractReadInput","ContractReadOutput","termsAndConditionsReceived","TermsAndConditionsReceivedOutput","KYCStatusPending","KYCStatusDone","KYCErrorId","GenericError","RiskyClient","KycAssessmentNotAvailable","KycAssessmentResultNotAvailable","ClientNotOpened","KYCStatusError","optionFromNullable","KYCStatusOutput","kycStatus","marketingConsent","MarketingConsentReadInput","eqMarketingConsentReadInput","foreignSigningConsent","ForeignSigningConsentReadInput","eqForeignSigningConsentReadInput","CheckMarketingConsentOutput","granted","checkMarketingConsent","cancelOverdraftApplication","SetStepInput","step","eqSetStepInput","setCRMLeadStep","otpGeneration","eqOtpGenerationInput","OtpGenerationInput","OTPGenerationOutput","OtpGenerationError","eqOtpVerifyInput","eqWithCoApplicant","otp","otpVerify","OtpVerifyInput","OtpVerifyError","needsCaptcha","NeedCaptchaOutput","linkGenerationNow","eqLinkGenerationInput","LinkGenerationInput","LinkGenerationOutput","LinkGenerationError","QRCodeInput","QRCodeOutput","getQRCode","ForeignDocumentType","IDCard","Passport","CountryDocSelection","country","Country","foreignDocumentType","clientData","ClientDataInput","eqClientDataInput","ClientDataOutput","checkExistingClientUkonto","CheckExistingClientInput","eqCheckExistingClientInput","CheckExistingClientOutput","clientPreparation","createProfile","AccCollectionErrorCode","OverdraftError","checkOverdraft","hasOverdraft","checkOverdraftSelected","checkOverdraftEligibility","isOver18","ExistingClientCheckMinimumAge","underAge","ExistingClientCheckNotes","hasBlockingNotes","ExistingClientPrivateCheck","privateClient","ExistingClientSavingsAccountCheck","hasSavingsAccount","ExistingClientCurrentAccountsCheck","hasCurrentAccounts","ExistingClientCheckKyc","kycNeeded","highRisk","foreign","ExistingClientCheckPhoneAndEmail","phoneNumberNeeded","emailAddressNeeded","existingClientPrivateCheck","CheckExistingSavingsAccountError","existingClientSavingsAccountCheck","existingClientCurrentAccountsCheck","checkExistingClientSavingsAccount","existingClientKYCCheck","existingClientMinimumAgeCheck","existingClientNotesCheck","existingClientPhoneAndEmailCheck","CheckPrimaryIdEnums","KYC_FIXED_EZY","KYC_FIXED_EZY_UPDATE_CONTACTS","UPDATE_CONTACTS","KYC_ID_FIXED_EZY","KYC_ID_FIXED_EZY_UPDATE_CONTACTS","ID_FIXED_EZY","ID_FIXED_EZY_UPDATE_CONTACTS","UPDATE_ID","UPDATE_ID_CONTACTS","UPDATE_ID_MISSING_INFORMATION","UPDATE_ID_OTHER_THAN_AUTH_ID","CA_SYNCED_SONIA_UPDATE_ID","CF_SYNCED_SONIA_UPDATE_ID","CA_SYNCED_SONIA_SUCCESS_UPLOAD_ID","existingClientPrimaryIdCheck","ExistingClientVerificationsStatus","FAIL","ExistingClientVerificationsEnum","MINIMUM_AGE","DIGITAL_CLIENT","SECURITY_PROFILE","CONTACT_DETAILS","PRIMARY_ID","BLOCKING_NOTES","KYC_HIGH_RISK","CLIENT_FROM_PRIVATE_SEGMENT","CLIENT_WITH_SAVING_ACCOUNT","ExistingClientVerificationsInput","requiredVerificationsList","ExistingClientVerificationsOutput","failingVerificationsList","existingClientVerification","ExistingClientBiometricConsent","checkBiometricConsent","emailNext","setExistingCustomer","CAFeSteps","FINANCIAL_INTERMEDIATION","CONTACTS_COLLECTION","UPLOAD_ID","PERSONAL_DATA_CONFIRMATION","ADDITIONAL_ADDRESS","NON_RESIDENTS_ADDITIONAL_DOCUMENTS","PERMANENT_ADDRESS","PROOF_OF_ADDRESS","VIRTUAL_CARDS","ADDITIONAL_INFORMATION","PERSONAL_AND_TAX","TRANSACTIONS","MICROPAYMENT","CLIENT_CREDENTIALS","USERNAME","SIGNATURE","FINAL_PAGE","SavingsAccountStartInput","feStep","startSavingsAccount","SaveApplicationInput","ApplicationStatus","incomeInfo","IncomeInfo","transactionsInfo","TransactionsInfo","saveWithParams","savePhysicalCardValue","PhysicalCardInput","saveApplication","deleteApplication","rejectApplication","closeApplication","DeleteApplicationByIdInput","processId","deleteApplicationById","deleteApplicationByIdWithRestore","DeleteCFApplicationByIdInput","applicationId","deleteExistingCFApplication","RestoreApplicationInput","notStorableResume","ContactsCollectionData","emailAddress","promoCode","AccountPackageType","SAVING","alias","ProofOfAddressDocs","first","ScannedDocument","second","RestoreApplicationData","packageType","requestDate","existingClient","extractDataResult","contactsCollectionData","documentsAlreadyUploaded","biometricConsent","restartDocumentsUpload","overdraftRequested","srbiConsent","nrkiConsent","currentApplicationId","reservedAccountNumber","clientNumber","foreignClient","permanentAddress","Address","proofOfAddress","PersonalDocumentProofOfAddress","proofOfAddressDocs","countryDocSelection","residency","hasAdditionalDocuments","physicalCardChecked","ParallelFlowParameters","hasCFFlowInProgress","hasCFFlowSentToBO","hasCAFlowSentToBO","date","existingApplicationId","RestoreApplicationOutput","restoreApplicationData","parallelFlow","cardProviderChange","RestoreErrorKeys","TOO_EARLY","RestoreError","restoreApplication","GetNewestInProgressInput","productType","ApplicationProductType","getNewestInProgress","getNewestInProgressExcludeCurrentApp","getNewestInProgressByBirthNumber","GetCurrentPackageTypeOutput","getCurrentPackageType","SaveProfileInput","CheckApplicationOutput","resetUpload","ApplicationLockedInput","ApplicationLockedOutput","locked","isApplicationLocked","SignatureType","OtpSms","Click2Sign","GetSignatureTypeOutput","signatureType","getSignatureType","GetForeignClientOutput","fromEu","citizenship","getForeignClient","ContractType","FRAMEWORK_AGREEMENT","PRODUCT_CONTRACT","GetContentOutput","GetContentInput","PermanentAddressSubmitInput","withCoApplicant","AddressWrite","eqPermanentAddressSubmitInput","eqAddressWrite","permanentAddressSubmit","ProofOfAddressSubmitInput","eqProofOfAddressSubmitInput","eqPersonalDocumentOfAddress","ProofOfAddressSubmitError","proofOfAddressSubmit","CountryDocSelectionInput","saveCountryDocSelection","AdditionalRequiredDocument","documentKey","documentKeys","uploaded","GetAdditionalRequiredDocumentsInput","requiredKeys","GetAdditionalRequiredDocumentsOutput","additionalRequiredDocuments","eqAdditionalRequiredDocumentsInput","eqStrict","getAdditionalRequiredDocuments","CheckAllDocsUploadedInput","CheckAllDocsUploadedOutput","allDocsUploaded","eqCheckAllDocsUploadedInput","checkAllDocsUploaded","getPackageType","InitVirtualCardResponse","transitionToMasterCard"],"mappings":"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","file":"static/js/index~819b5d17.4f22bb46.chunk.js","sourcesContent":["import { eq, taskEither } from \"fp-ts\";\nimport * as t from \"io-ts\";\nimport { UUID } from \"io-ts-types/UUID\";\nimport { constFalse, constTrue } from \"fp-ts/function\";\nimport { apiCall } from \"../../APICall\";\nimport { RemoteData } from \"../../RemoteData\";\nimport {\n MobileRecipientNumber,\n MobileRecipientType,\n} from \"../../UploadDocuments/domain\";\n\n// ReadStatus //////////////////////////////////////////////////////////////////\n\nexport const ReadStatusInput = t.void;\nexport const ReadStatusOutput = t.type({\n status: t.keyof({\n WaitingForConnection: null,\n MobileConnected: null,\n UserIdCreated: null,\n PinCreated: null,\n PasswordCreated: null,\n ConnectionLost: null,\n }),\n});\nexport const ReadStatusError = t.unknown;\nexport const readStatus = apiCall({\n path: [\n \"clients\",\n \"identification\",\n \"mobileCreateProfile\",\n \"credentials\",\n \"status\",\n ],\n inputCodec: ReadStatusInput,\n inputEq: eq.fromEquals(constFalse),\n outputCodec: ReadStatusOutput,\n errorCodec: ReadStatusError,\n});\n\nexport type ReadStatusOutput = t.TypeOf;\nexport type ReadStatusOutputType = ReadStatusOutput[\"status\"];\n\n// SubmittedCredentialsViaMobile //////////////////////////////////////////////////////////////\n\nexport const submittedCredentialsViaMobile = apiCall({\n inputCodec: t.void,\n inputEq: eq.fromEquals(constTrue),\n path: [\n \"packages\",\n \"loans\",\n \"standard-loan\",\n \"client\",\n \"submittedCredentialsViaMobile\",\n ],\n outputCodec: t.unknown,\n});\n\n// ReadRecipients //////////////////////////////////////////////////////////////\n\nexport const ReadRecipientsInput = t.type({\n linkPurpose: t.literal(\"addingCredentials\"),\n});\nconst ReadRecipientsOutput = t.record(\n MobileRecipientType,\n MobileRecipientNumber\n);\nexport const ReadRecipientsError = t.unknown;\nexport const readRecipients = apiCall({\n path: [\"clients\", \"identification\", \"mobileCreateProfile\", \"recipients\"],\n inputCodec: ReadRecipientsInput,\n inputEq: eq.fromEquals(constTrue),\n outputCodec: ReadRecipientsOutput,\n errorCodec: ReadRecipientsError,\n});\n\nexport type ReadRecipientsQuery = RemoteData<\n t.TypeOf,\n t.TypeOf\n>;\n\n// ReadLink ////////////////////////////////////////////////////////////////////\n\nexport const ReadLinkInput = t.type({\n id: t.string,\n});\nexport const ReadLinkOutput = t.type({\n flowId: UUID,\n});\nexport const ReadLinkError = t.unknown;\nexport const readLink = apiCall({\n path: [\"clients\", \"identification\", \"mobileCreateProfile\", \"link\", \"verify\"],\n inputCodec: ReadLinkInput,\n inputEq: eq.getStructEq({ id: eq.eqString }),\n outputCodec: ReadLinkOutput,\n errorCodec: ReadLinkError,\n});\n\n// ReadParameters //////////////////////////////////////////////////////////////\n\nexport const ReadParametersInput = t.type({\n id: t.string,\n});\nexport const ReadParametersOutput = t.type({\n riskyActivitiesOrPep: t.boolean,\n});\nexport const ReadParametersError = t.unknown;\nexport const readParameters = apiCall({\n path: [\"clients\", \"identification\", \"mobileCreateProfile\", \"parameters\"],\n inputCodec: ReadParametersInput,\n inputEq: eq.getStructEq({ id: eq.eqString }),\n outputCodec: ReadParametersOutput,\n errorCodec: ReadParametersError,\n});\n\nexport type ReadParametersQuery = RemoteData<\n t.TypeOf,\n t.TypeOf\n>;\n\n// SendLink ////////////////////////////////////////////////////////////////////\n\nexport const SendLinkInput = t.void;\nexport const SendLinkOutput = t.type({\n attemptsLeft: t.number,\n});\nexport const SendLinkError = t.type({\n id: t.keyof({\n InvalidFlowId: null,\n MaxLinksAttemptsReached: null,\n }),\n});\nexport const sendLink = apiCall({\n path: [\"clients\", \"identification\", \"mobileCreateProfile\", \"link\"],\n inputCodec: SendLinkInput,\n inputEq: eq.fromEquals(constFalse),\n outputCodec: SendLinkOutput,\n errorCodec: SendLinkError,\n});\n\n// UpdateUserId ////////////////////////////////////////////////////////////////\n\nexport const UpdateUserIdInput = t.type({\n userId: t.string,\n});\nexport const UpdateUserIdOutput = t.null;\nexport const UpdateUserIdError = t.unknown;\nexport const updateUserId = apiCall({\n path: [\n \"clients\",\n \"identification\",\n \"mobileCreateProfile\",\n \"credentials\",\n \"userId\",\n ],\n inputCodec: UpdateUserIdInput,\n inputEq: eq.fromEquals(constFalse),\n outputCodec: UpdateUserIdOutput,\n errorCodec: UpdateUserIdError,\n});\n\nexport type UpdateUserIdCommand = taskEither.TaskEither<\n t.TypeOf,\n t.TypeOf\n>;\n\n// UpdatePin ///////////////////////////////////////////////////////////////////\n\nexport const UpdatePinInput = t.type({\n securityPin: t.string,\n});\nexport const UpdatePinOutput = t.null;\nexport const UpdatePinError = t.unknown;\nexport const updatePin = apiCall({\n path: [\n \"clients\",\n \"identification\",\n \"mobileCreateProfile\",\n \"credentials\",\n \"securityPin\",\n ],\n inputCodec: UpdatePinInput,\n inputEq: eq.fromEquals(constFalse),\n outputCodec: UpdatePinOutput,\n errorCodec: UpdatePinError,\n});\n\nexport type UpdatePinCommand = taskEither.TaskEither<\n t.TypeOf,\n t.TypeOf\n>;\n\n// UpdatePassword //////////////////////////////////////////////////////////////\n\nexport const UpdatePasswordInput = t.type({\n passwordForCommunication: t.string,\n});\nexport const UpdatePasswordOutput = t.null;\nexport const UpdatePasswordError = t.unknown;\nexport const updatePassword = apiCall({\n path: [\n \"clients\",\n \"identification\",\n \"mobileCreateProfile\",\n \"credentials\",\n \"passwordForCommunication\",\n ],\n inputCodec: UpdatePasswordInput,\n inputEq: eq.fromEquals(constFalse),\n outputCodec: UpdatePasswordOutput,\n errorCodec: UpdatePasswordError,\n});\n\nexport type UpdatePasswordCommand = taskEither.TaskEither<\n t.TypeOf,\n t.TypeOf\n>;\n","import * as t from \"io-ts\";\nimport { sharedReducerConfig } from \"../BranchExperience/useSharedReducer\";\nimport { Option } from \"fp-ts/Option\";\nimport { option as optionCodec } from \"io-ts-types/lib/option\";\nimport { LocalizedString } from \"design-system\";\n\nexport const UKontoPackageType = t.keyof({\n BASIC: true,\n MIDDLE: true,\n UPPER: true,\n});\n\nconst UKontoFirstPartState = t.type({\n currentRoute: t.literal(\"UKontoFirstPart\"),\n chosenCard: optionCodec(UKontoPackageType),\n});\n\nconst OneClickJourneyState = t.type({\n currentRoute: t.literal(\"OneClickJourney\"),\n chosenCard: optionCodec(UKontoPackageType),\n});\n\nconst FinancialIntermediationState = t.type({\n currentRoute: t.literal(\"FinancialIntermediation\"),\n chosenCard: UKontoPackageType,\n text: optionCodec(LocalizedString),\n});\n\nconst FinancialIntermediationSubmitState = t.type({\n currentRoute: t.literal(\"FinancialIntermediationSubmit\"),\n chosenCard: UKontoPackageType,\n text: optionCodec(LocalizedString),\n});\n\nexport type UKontoPackageType = t.TypeOf;\n\nconst State = t.union([\n UKontoFirstPartState,\n OneClickJourneyState,\n FinancialIntermediationState,\n FinancialIntermediationSubmitState,\n]);\n\nexport type State = t.TypeOf;\nconst SetRouteAction = t.type({\n type: t.literal(\"SetRoute\"),\n payload: State,\n});\nconst SetChosenCardAction = t.type({\n type: t.literal(\"SetChosenCard\"),\n payload: optionCodec(UKontoPackageType),\n});\nconst SubmitFinancialIntermediationAction = t.type({\n type: t.literal(\"SubmitFinancialIntermediation\"),\n});\n\nexport const Action = t.union([\n SetRouteAction,\n SetChosenCardAction,\n SubmitFinancialIntermediationAction,\n]);\n\nexport type Action = t.TypeOf;\n\nexport function setRouteAction(payload: State): Action {\n return {\n type: \"SetRoute\",\n payload,\n };\n}\nexport function setChosenCardAction(\n ukontoPackage: Option\n): Action {\n return {\n type: \"SetChosenCard\",\n payload: ukontoPackage,\n };\n}\nexport const setFinancialIntermediationSubmitAction: Action = {\n type: \"SubmitFinancialIntermediation\",\n};\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case \"SetRoute\":\n return action.payload;\n case \"SetChosenCard\":\n if (\n state.currentRoute !== \"FinancialIntermediation\" &&\n state.currentRoute !== \"FinancialIntermediationSubmit\"\n ) {\n return { ...state, chosenCard: action.payload };\n }\n return state;\n case \"SubmitFinancialIntermediation\":\n if (state.currentRoute === \"FinancialIntermediation\") {\n return {\n ...state,\n currentRoute: \"FinancialIntermediationSubmit\",\n };\n }\n return state;\n }\n}\n\nexport const reducerConfig = sharedReducerConfig(\n \"UKontoFirstPart\",\n State,\n Action,\n reducer\n);\n","import * as t from \"io-ts\";\nimport { eq } from \"fp-ts\";\nimport { constFalse, constTrue } from \"fp-ts/function\";\nimport { FileContent, LocalizedString } from \"design-system\";\nimport { apiCall } from \"../../APICall\";\nimport { nonEmptyArray } from \"io-ts-types/lib/nonEmptyArray\";\n\nconst PendingActionsInput = t.type({\n checkPendingActions: t.boolean,\n});\n\nexport type PendingActionsInput = t.TypeOf;\n\nconst PendingActionsOutput = t.type({\n emailVerified: t.boolean,\n crsRelevant: t.boolean,\n fatcaRelevant: t.boolean,\n overdraftAvailability: t.boolean,\n sbRelevant: t.boolean,\n});\n\nexport type PendingActionsOutput = t.TypeOf;\n\nexport const pendingActions = apiCall({\n inputEq: eq.fromEquals(constTrue),\n path: [\"packages\", \"uKonto\", \"pendingActions\"],\n inputCodec: PendingActionsInput,\n outputCodec: PendingActionsOutput,\n});\n\nexport const sendDocumentsCommand = apiCall({\n inputEq: eq.fromEquals(constTrue),\n path: [\"packages\", \"uKonto\", \"documents\", \"email\"],\n inputCodec: t.void,\n});\n\nconst UserEmailOutput = t.type({\n email: t.string,\n});\n\nexport const userEmail = apiCall({\n inputEq: eq.fromEquals(constTrue),\n path: [\"clients\", \"identification\", \"email\"],\n inputCodec: t.void,\n outputCodec: UserEmailOutput,\n});\n\nconst MobileAppQRCodeInput = t.type({\n component: t.string,\n size: t.number,\n});\n\nconst MobileAppQRCodeOutput = FileContent;\n\nexport const mobileAppQRCode = apiCall({\n inputEq: eq.fromEquals(constTrue),\n path: [\"utilities\", \"configurations\", \"noauth\", \"mobileAppQRCode\"],\n inputCodec: MobileAppQRCodeInput,\n outputCodec: MobileAppQRCodeOutput,\n});\n\nconst OnboardingPending = t.type(\n { status: t.literal(\"PENDING\") },\n \"OnboardingPending\"\n);\nexport type OnboardingPending = t.TypeOf;\n\nconst OnboardingFailure = t.type(\n { status: t.literal(\"ERROR\") },\n \"OnboardingError\"\n);\nconst OnboardingRejected = t.type(\n { status: t.literal(\"REJECTED\") },\n \"OnboardingRejected\"\n);\nconst OnboardingMicropayment = t.type(\n { status: t.literal(\"MICROPAYMENT\") },\n \"OnboardingMicropayment\"\n);\nconst OnboardingRedirectToTheBank = t.type(\n { status: t.literal(\"REDIRECT_TO_THE_BANK\") },\n \"OnboardingRedirectToTheBank\"\n);\nconst OnboardingContinue = t.type(\n { status: t.literal(\"CONTINUE\") },\n \"OnboardingContinue\"\n);\nexport type OnboardingContinue = t.TypeOf;\n\nconst OnboardingNotifyClientOfDelay = t.type(\n { status: t.literal(\"NOTIFY_CLIENT_OF_DELAY\") },\n \"OnboardingNotifyClientOfDelay\"\n);\nconst OnboardingNotifyClientOfDelayWithErrors = t.type(\n { status: t.literal(\"NOTIFY_CLIENT_OF_DELAY_ERRORS\") },\n \"OnboardingNotifyClientOfDelayWithErrors\"\n);\n\nconst OnboardingSuccess = t.type(\n {\n status: t.literal(\"DONE\"),\n stepsResults: nonEmptyArray(\n t.type(\n {\n type: t.keyof({ SUCCESS: true, ERROR: true }),\n message: LocalizedString,\n },\n \"OnboardingStepResult\"\n )\n ),\n },\n \"OnboardingPending\"\n);\n\nexport type OnboardingSuccess = t.TypeOf;\n\nexport const OnboardingResultsOutput = t.union([\n OnboardingPending,\n OnboardingFailure,\n OnboardingRejected,\n OnboardingMicropayment,\n OnboardingRedirectToTheBank,\n OnboardingNotifyClientOfDelay,\n OnboardingNotifyClientOfDelayWithErrors,\n OnboardingSuccess,\n OnboardingContinue,\n]);\n\nexport type OnboardingResultsOutput = t.TypeOf;\n\nexport const onboardingResults = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"authorization\", \"onboarding\", \"results\"],\n inputCodec: t.void,\n outputCodec: OnboardingResultsOutput,\n});\n","import {\n Banner,\n Body,\n Box,\n Button,\n Children,\n AlertDialog,\n Dialog,\n MobileIcon,\n Space,\n Stack,\n} from \"design-system\";\nimport { palette } from \"design-system/lib/styleConstants\";\nimport { option } from \"fp-ts\";\nimport { constant, pipe } from \"fp-ts/function\";\nimport { Option } from \"fp-ts/Option\";\nimport { useCallback, useState } from \"react\";\nimport { useFormatMessage } from \"../../intl\";\nimport * as remoteData from \"../../RemoteData\";\nimport { ReadRecipientsQuery } from \"./api\";\nimport { useTaskDelayed } from \"./hooks\";\nimport { IO } from \"fp-ts/IO\";\n\nexport const CredentialsDialogCommonProps = {\n variant: \"center\",\n size: \"medium\",\n} as const;\n\nexport const CredentialsBannerCommonProps = {\n title: option.none,\n actions: option.none,\n onDismiss: option.none,\n};\n\nexport const CredentialsLinkResendDelay = 60 * 1000; // 1 minute.\n// export const CredentialsLinkResendDelay = 3 * 1000; // Enable this in dev mode.\n\nexport type CredentialsWaitDialogProps = {\n linksQuota: Option;\n phoneNumberQuery: ReadRecipientsQuery;\n onClose: () => void;\n onSendLink: () => void;\n};\n\nexport function CredentialsWaitDialog(props: CredentialsWaitDialogProps) {\n const { linksQuota, phoneNumberQuery, onClose, onSendLink } = props;\n const [linkResent, setLinkResent] = useState(false);\n const [linkResentEnabled, setLinkResentEnabled] = useState(true);\n const formatMessage = useFormatMessage();\n const onLinkResendEnabled = useCallback(() => {\n setLinkResentEnabled(true);\n }, []);\n const linkResendEnablerTask = useTaskDelayed(\n CredentialsLinkResendDelay,\n onLinkResendEnabled\n );\n\n function onResendLinkClick() {\n setLinkResent(true);\n setLinkResentEnabled(false);\n linkResendEnablerTask.start();\n\n onSendLink();\n }\n\n return (\n \"{loading...}\",\n () => \"{unknown}\",\n result =>\n pipe(\n result.Client.phoneNumber,\n option.getOrElse(constant(\"{unknown}\"))\n )\n )\n ),\n }\n )}\n icon={MobileIcon}\n actions={[\n {\n variant: \"text\",\n label: formatMessage(\n \"UKonto.CredentialsCreationMobile.Main.waitingCancelAction\"\n ),\n action: onClose,\n },\n ]}\n onDismiss={option.some(onClose)}\n >\n \n \n\n {linkResent && (\n \n )}\n\n {option.isSome(linksQuota) && linksQuota.value <= 1 && (\n \n )}\n\n {(option.isNone(linksQuota) || linksQuota.value > 0) && (\n \n \n {formatMessage(\n \"UKonto.CredentialsCreationMobile.Main.waitingResendLinkDescription\"\n )}\n \n\n \n\n \n formatMessage(\n \"UKonto.CredentialsCreationMobile.Main.waitingResendLinkAction\"\n ),\n it =>\n formatMessage(\n \"UKonto.CredentialsCreationMobile.Main.waitingResendLinkRemainingAction\",\n { count: it }\n )\n )\n )}\n disabled={!linkResentEnabled}\n action={onResendLinkClick}\n />\n \n )}\n \n \n );\n}\n\nexport type CredentialsConnectedDialogProps = {\n onClose: () => void;\n};\n\nexport function CredentialsConnectedDialog(\n props: CredentialsConnectedDialogProps\n) {\n const { onClose } = props;\n const formatMessage = useFormatMessage();\n\n return (\n \n );\n}\n\nexport type CredentialsErrorDialogProps = {\n onClose: () => void;\n onRemoteCredentialsExit: IO;\n isSLFlow: boolean;\n};\n\nexport function CredentialsErrorDialog(props: CredentialsErrorDialogProps) {\n const { onClose, onRemoteCredentialsExit, isSLFlow } = props;\n const formatMessage = useFormatMessage();\n\n return (\n \n );\n}\n\nexport type CredentialsCloseDialogProps = {\n onCancel: () => void;\n onConfirm: () => void;\n};\n\nexport function CredentialsCloseDialog(props: CredentialsCloseDialogProps) {\n const { onCancel, onConfirm } = props;\n const formatMessage = useFormatMessage();\n\n return (\n \n );\n}\n\nexport type CredentialsCloseManagerProps = {\n children: (onWillClose: () => void) => Children;\n onClose: () => void;\n};\n\nexport function CredentialsCloseManager(props: CredentialsCloseManagerProps) {\n const { children, onClose } = props;\n const [shouldAskConfirm, setShouldAskConfirm] = useState(false);\n\n const onWillClose = useCallback(() => {\n setShouldAskConfirm(true);\n }, []);\n\n if (shouldAskConfirm) {\n return (\n setShouldAskConfirm(false)}\n onConfirm={onClose}\n />\n );\n }\n\n return <>{children(onWillClose)};\n}\n","import * as t from \"io-ts\";\nimport { eq } from \"fp-ts\";\nimport { constFalse, constTrue } from \"fp-ts/function\";\nimport { apiCall } from \"../../APICall\";\nimport { UKontoPackageType } from \"../state\";\nimport { LocalizedString } from \"design-system\";\nimport {\n ChoosePackageTypeInput,\n GetListError,\n GetReservedAccountResponse,\n PackageListResponse,\n} from \"../../PackagesSelection/api\";\n\nexport const packagesList = apiCall({\n path: [\"packages\", \"uKonto\", \"list\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: PackageListResponse,\n errorCodec: GetListError,\n});\n\nexport const getReservedAccount = apiCall({\n path: [\"packages\", \"uKonto\", \"getReservedAccount\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: GetReservedAccountResponse,\n errorCodec: GetListError,\n});\n\nexport const choosePackageType = apiCall({\n path: [\"packages\", \"uKonto\", \"type\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: ChoosePackageTypeInput,\n outputCodec: t.unknown,\n});\n\nexport const FinancialIntermediationActText = apiCall({\n path: [\"packages\", \"uKonto\", \"financialIntermediationAct\", \"text\"],\n inputEq: eq.fromEquals(constTrue),\n inputCodec: t.type({\n type: UKontoPackageType,\n }),\n outputCodec: LocalizedString,\n});\n\nexport const FinancialIntermediationActSubmit = apiCall({\n path: [\"packages\", \"uKonto\", \"financialIntermediationAct\", \"submit\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: t.unknown,\n});\n\nexport const getFeatureWhitelist = apiCall({\n path: [\"utilities\", \"configurations\", \"whitelist\", \"feature\"],\n inputEq: eq.fromEquals(constTrue),\n inputCodec: t.type({\n feature: t.string,\n }),\n outputCodec: t.boolean,\n});\n","import {\n Box,\n Space,\n Heading,\n Stack,\n Body,\n AtIcon,\n CardIcon,\n ExpenseLimitIcon,\n SendIcon,\n AppDownloadIcon,\n PanelHeaderIcon,\n useIsTouchScreen,\n LocalizedString,\n link,\n TextChildren,\n useIsMobileLayout,\n} from \"design-system\";\nimport { palette } from \"design-system/lib/styleConstants\";\nimport { boolean, option } from \"fp-ts\";\nimport { pipe, constNull } from \"fp-ts/function\";\nimport { Option } from \"fp-ts/Option\";\nimport * as classes from \"./SummaryAndDownloadCommonStyles.treat\";\nimport { useFormatMessage } from \"../../intl\";\nimport { useBranchExperienceContext } from \"../../BranchExperience/BranchExperienceContext\";\nimport { PendingActionsOutput } from \"./api\";\nimport { useAppContext } from \"../../useAppContext\";\n\ntype CsrAndFatcaDetails = {\n title: LocalizedString;\n content: TextChildren;\n};\n\nexport function PendingActions({\n stepNo,\n pendingActions,\n isSavingsAccount,\n}: {\n stepNo: number;\n pendingActions: PendingActionsOutput;\n isSavingsAccount: boolean;\n}) {\n const formatMessage = useFormatMessage();\n const { branchExperienceFeaturesActive } = useBranchExperienceContext();\n const isTouchScreen = useIsTouchScreen();\n const isMobileLayout = useIsMobileLayout();\n\n const {\n config: { enableVirtualCardsImpl },\n } = useAppContext();\n\n const computeCrsAndFatcaDetails = (\n crsRelevant: boolean,\n fatcaRelevant: boolean\n ): Option => {\n if (crsRelevant && fatcaRelevant) {\n return option.some({\n title: formatMessage(\n \"SummaryAndDownload.Summary.documents.crsfatca.title\"\n ),\n content: [\n formatMessage(\"SummaryAndDownload.Summary.documents.crsfatca.part1\"),\n link(\n formatMessage(\n \"SummaryAndDownload.Summary.documents.crsfatca.link1.url\"\n ),\n formatMessage(\n \"SummaryAndDownload.Summary.documents.crsfatca.link1.description\"\n )\n ),\n formatMessage(\"SummaryAndDownload.Summary.documents.crsfatca.part2\"),\n ],\n });\n } else if (crsRelevant && !fatcaRelevant) {\n return option.some({\n title: formatMessage(\"SummaryAndDownload.Summary.documents.crs.title\"),\n content: [\n formatMessage(\"SummaryAndDownload.Summary.documents.crs.part1\"),\n link(\n formatMessage(\"SummaryAndDownload.Summary.documents.crs.link1.url\"),\n formatMessage(\n \"SummaryAndDownload.Summary.documents.crs.link1.description\"\n )\n ),\n formatMessage(\"SummaryAndDownload.Summary.documents.crs.part2\"),\n ],\n });\n } else if (!crsRelevant && fatcaRelevant) {\n return option.some({\n title: formatMessage(\n \"SummaryAndDownload.Summary.documents.fatca.title\"\n ),\n content: [\n formatMessage(\"SummaryAndDownload.Summary.documents.fatca.part1\"),\n link(\n formatMessage(\n \"SummaryAndDownload.Summary.documents.fatca.link1.url\"\n ),\n formatMessage(\n \"SummaryAndDownload.Summary.documents.fatca.link1.description\"\n )\n ),\n formatMessage(\"SummaryAndDownload.Summary.documents.fatca.part2\"),\n ],\n });\n }\n return option.none;\n };\n\n const pendingAction = (\n icon: JSX.Element,\n title: Option,\n content: TextChildren\n ) => (\n \n {icon}\n \n \n {pipe(\n title,\n option.map(title => (\n \n {title}\n \n )),\n option.toNullable\n )}\n \n \n {content}\n \n \n \n );\n\n const renderCrsAndFatcaChecks = (\n crsRelevant: boolean,\n fatcaRelevant: boolean\n ): JSX.Element | null => {\n const details = computeCrsAndFatcaDetails(crsRelevant, fatcaRelevant);\n return pipe(\n details,\n option.fold(constNull, (details: CsrAndFatcaDetails) => {\n const { title, content } = details;\n return pendingAction(\n ,\n option.some(title),\n content\n );\n })\n );\n };\n\n const pinRelevant = enableVirtualCardsImpl && !isSavingsAccount;\n\n return pipe(\n branchExperienceFeaturesActive && !isTouchScreen,\n boolean.fold(\n () => {\n if (\n pendingActions.emailVerified &&\n !pendingActions.crsRelevant &&\n !pendingActions.fatcaRelevant &&\n !pendingActions.overdraftAvailability &&\n !pinRelevant\n )\n return null;\n else\n return (\n \n \n \n \n \n \n {formatMessage(\"SummaryAndDownload.Summary.pendingAction\")}\n \n \n \n \n {!isMobileLayout && }\n \n {!pendingActions.emailVerified &&\n pendingAction(\n ,\n option.some(\n formatMessage(\n \"SummaryAndDownload.Summary.verify.email.title\"\n )\n ),\n formatMessage(\n \"SummaryAndDownload.Summary.verify.email.description\"\n )\n )}\n {pinRelevant &&\n pendingAction(\n ,\n option.some(\n formatMessage(\n \"SummaryAndDownload.Summary.setPin.title\"\n )\n ),\n formatMessage(\n \"SummaryAndDownload.Summary.setPin.description\"\n )\n )}\n {renderCrsAndFatcaChecks(\n pendingActions.crsRelevant,\n pendingActions.fatcaRelevant\n )}\n {pendingActions.overdraftAvailability &&\n pendingAction(\n ,\n option.some(\n formatMessage(\n \"SummaryAndDownload.Summary.overdraft.title\"\n )\n ),\n formatMessage(\n \"SummaryAndDownload.Summary.overdraft.description\"\n )\n )}\n \n \n \n \n );\n },\n () => {\n return (\n \n {pendingActions.sbRelevant &&\n pendingAction(\n ,\n option.some(\n formatMessage(\n \"SummaryAndDownload.Summary.download.branchExperience.title\"\n )\n ),\n formatMessage(\n \"SummaryAndDownload.Summary.download.branchExperience.description\"\n )\n )}\n {!pendingActions.emailVerified &&\n pendingAction(\n ,\n option.some(\n formatMessage(\n \"SummaryAndDownload.Summary.verify.email.branchExperience.title\"\n )\n ),\n formatMessage(\n \"SummaryAndDownload.Summary.verify.email.branchExperience.description\"\n )\n )}\n {pinRelevant &&\n pendingAction(\n ,\n option.some(\n formatMessage(\"SummaryAndDownload.Summary.setPin.title\")\n ),\n formatMessage(\"SummaryAndDownload.Summary.setPin.description\")\n )}\n {renderCrsAndFatcaChecks(\n pendingActions.crsRelevant,\n pendingActions.fatcaRelevant\n )}\n {pendingActions.overdraftAvailability &&\n pendingAction(\n ,\n option.some(\n formatMessage(\n \"SummaryAndDownload.Summary.overdraft.branchExperience.title\"\n )\n ),\n formatMessage(\n \"SummaryAndDownload.Summary.overdraft.branchExperience.description\"\n )\n )}\n \n );\n }\n )\n );\n}\n","import { useEffect } from \"react\";\nimport {\n Box,\n Space,\n Heading,\n FormSection,\n PasswordFieldWithCriteria,\n PasswordStrength,\n Form,\n FormRow,\n PasswordField,\n LocalizedString,\n useForm,\n passwordStrengthCalculator,\n TextChildren,\n} from \"design-system\";\nimport { palette } from \"design-system/lib/styleConstants\";\nimport { option, nonEmptyArray, record, eq } from \"fp-ts\";\nimport { useFormatMessage } from \"../../../intl\";\nimport { PersonalDataProcessingDisclaimer } from \"../../../Common/PersonalDataProcessingDisclaimer/PersonalDataProcessingDisclaimer\";\nimport { Option } from \"fp-ts/Option\";\nimport { pipe } from \"fp-ts/function\";\nimport { useCriteria } from \"../../../Common/useCriteria\";\nimport { useValidators } from \"../../../Common/useValidators\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { useVirtualFormSubmit } from \"../../../Common/VirtualKeyboard/virtualKeyboardUtils\";\nimport { usePropagateHasChanged } from \"../../../ClientProfile/usePropagateHasChanged\";\n\ntype Props = {\n submitLabel: LocalizedString;\n onComplete: (password: NonEmptyString) => TaskEither;\n error: Option;\n disabled?: boolean;\n setUkontoPasswordStep?: () => unknown;\n onHasChanged?: (hasChanged: boolean) => unknown;\n};\n\nexport function SecurityPassword(props: Props) {\n const formatMessage = useFormatMessage();\n const { clientPasswordCriteria, passwordStrengthLabel } = useCriteria();\n const { validPassword, passwordMatches } = useValidators();\n const numberOfPasswordCriteria = pipe(\n clientPasswordCriteria,\n record.keys,\n a => a.length\n );\n\n useEffect(() => {\n const { setUkontoPasswordStep } = props;\n setUkontoPasswordStep && setUkontoPasswordStep();\n // Reason: call the setUkontoKYCStep function once instead of multiple times\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const { fieldProps, handleSubmit, setValues, values } = useForm(\n {\n initialValues: {\n password: { value: \"\", strength: \"weak\" as PasswordStrength },\n repeatedPassword: \"\",\n },\n fieldValidators: ({ password }) => ({\n password: validPassword,\n repeatedPassword: passwordMatches(password),\n }),\n },\n {\n onSubmit: ({ password }) => props.onComplete(password),\n }\n );\n useVirtualFormSubmit(handleSubmit);\n\n usePropagateHasChanged<{ value: string; strength: PasswordStrength }>({\n initialValue: { value: \"\", strength: \"weak\" as PasswordStrength },\n fieldProps: fieldProps(\"password\"),\n equality: {\n equals: (a, b) => eq.eqString.equals(a.value, b.value),\n },\n onHasChanged: props.onHasChanged,\n });\n\n usePropagateHasChanged({\n initialValue: \"\",\n fieldProps: fieldProps(\"repeatedPassword\"),\n equality: eq.eqString,\n onHasChanged: props.onHasChanged,\n });\n\n const formErrors = pipe(\n props.error,\n option.map(error => nonEmptyArray.of(error))\n );\n\n return (\n \n \n {formatMessage(\"CreateProfile.securityPassword.description.primary\")}\n \n \n\n \n \n \n \n setValues({\n password,\n // re-trigger validation of repeatedPassword\n repeatedPassword: values.repeatedPassword,\n })\n }\n criteria={clientPasswordCriteria}\n strength={passwordStrengthCalculator({\n baseCriteria: [],\n goodThreshold: numberOfPasswordCriteria,\n strongThreshold: numberOfPasswordCriteria,\n })}\n strengthLabel={passwordStrengthLabel}\n disabled={props.disabled}\n />\n \n \n \n \n \n \n \n\n \n \n \n );\n}\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./SummaryAndDownloadCommonStyles.treat.3pUTTJD.css\";\nexport var wrapper = '_2GQwz';","import { pipe } from \"fp-ts/function\";\nimport { option, taskEither } from \"fp-ts\";\nimport { Box, Dialog, ErrorIcon, Loader, LocalizedString } from \"design-system\";\nimport { useMemo } from \"react\";\nimport { useCommand } from \"../../useAPI\";\nimport { FilePDFDialog } from \"../../Common/Dialogs/FilePDFDialog/FilePDFDialog\";\nimport * as ukontoApi from \"../api\";\nimport { DocumentContentOutput } from \"../../Common/documentAPI\";\nimport { useRemoteData } from \"../../useRemoteData\";\nimport * as remoteData from \"../../RemoteData\";\nimport { useFormatMessage } from \"../../intl\";\nimport * as classes from \"../../3PLanding/LoadingDialog.treat\";\n\ntype Props = {\n onDismiss: () => unknown;\n title: LocalizedString;\n contractType: ukontoApi.ContractType;\n};\n\nexport function ForeignDocumentDialog(props: Props) {\n const formatMessage = useFormatMessage();\n const getForeignContent = useCommand(ukontoApi.getForeignContent);\n\n const foreignContent = useRemoteData(\n useMemo(() => {\n return getForeignContent({ contractType: props.contractType });\n }, [props.title, props.contractType])\n );\n\n const renderLoading = ((): JSX.Element => {\n return (\n \n \n \n \n \n );\n })();\n\n const renderError = ((): JSX.Element => {\n return (\n \n );\n })();\n\n return pipe(\n foreignContent,\n remoteData.fold(\n () => renderLoading,\n () => renderError,\n content => (\n (() => ({\n filename: content.pdfName,\n content: content.pdfContent,\n downloadUrl: option.none,\n }))}\n />\n )\n )\n );\n}\n","import {\n Box,\n ContentRow,\n Heading,\n LocalizedString,\n Space,\n Stack,\n useIsTouchScreen,\n} from \"design-system\";\nimport { FormattedMessage, useFormatMessage } from \"../../intl\";\nimport { Summary } from \"./Summary\";\nimport { Download } from \"./Download\";\nimport { boolean } from \"fp-ts\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport { WithPromotionBenefit } from \"../../PhoneAndEmailVerification/WithPromotionBenefit\";\nimport { useBranchExperienceContext } from \"../../BranchExperience/BranchExperienceContext\";\nimport { PendingActions } from \"./PendingActions\";\nimport { useQuery } from \"../../useAPI\";\nimport * as summaryApi from \"./api\";\nimport * as remoteData from \"../../RemoteData\";\n\ntype Props = {\n finalChecksComplete: boolean;\n checkPendingActions: boolean;\n heading: {\n title: LocalizedString;\n description: LocalizedString;\n };\n isChild: boolean;\n isCf?: boolean;\n isSavingAaccount?: boolean;\n};\n\nexport function SummaryAndDownload(props: Props) {\n const formatMessage = useFormatMessage();\n const { branchExperienceFeaturesActive } = useBranchExperienceContext();\n const isTouchScreen = useIsTouchScreen();\n const [pendingActions] = useQuery(summaryApi.pendingActions, {\n checkPendingActions: props.checkPendingActions,\n });\n const isCf = !!props.isCf;\n\n return pipe(\n pendingActions,\n remoteData.fold(\n () => ,\n () => ,\n (success: summaryApi.PendingActionsOutput) => {\n return pipe(\n branchExperienceFeaturesActive && !isTouchScreen,\n boolean.fold(\n () =>\n props.isChild ? (\n \n \n {formatMessage(\"SummaryAndDownload.title\")}\n \n \n \n {success.sbRelevant && }\n \n {promotion => (\n \n )}\n \n \n {props.checkPendingActions && (\n \n )}\n \n \n ) : (\n \n \n \n {formatMessage(\"SummaryAndDownload.title\")}\n \n \n \n {success.sbRelevant && (\n \n )}\n \n {promotion => (\n \n )}\n \n \n {props.checkPendingActions && (\n \n )}\n \n \n \n ),\n () =>\n pipe(\n props.checkPendingActions &&\n (!success.emailVerified ||\n success.crsRelevant ||\n success.fatcaRelevant ||\n success.overdraftAvailability ||\n success.sbRelevant),\n boolean.fold(constNull, () =>\n props.isChild ? (\n \n \n {formatMessage(\n \"SummaryAndDownload.branchExperience.title\"\n )}\n \n \n \n \n ) : (\n \n \n \n {formatMessage(\n \"SummaryAndDownload.branchExperience.title\"\n )}\n \n \n \n \n \n )\n )\n )\n )\n );\n }\n )\n );\n}\n","import { useEffect, useState } from \"react\";\nimport { useCommand } from \"../../useAPI\";\nimport { useCredentialsMainApi } from \"./CredentialsApi\";\nimport {\n CredentialsCloseManager,\n CredentialsConnectedDialog,\n CredentialsErrorDialog,\n CredentialsWaitDialog,\n} from \"./CredentialsMainDialog\";\nimport { CredentialsMainView } from \"./CredentialsMainView\";\nimport * as api from \"./api\";\nimport { constVoid, pipe } from \"fp-ts/function\";\nimport { taskEither } from \"fp-ts\";\nimport { IO } from \"fp-ts/IO\";\nimport * as remoteData from \"../../RemoteData\";\n\nexport type CredentialsStepsModel = {\n hasUserId: boolean;\n hasPin: boolean;\n hasPassword: boolean;\n};\n\nexport type CredentialsCustomerModel = {\n isRiskyClient: boolean;\n};\n\nexport type CredentialsMainModel = CredentialsStepsModel &\n CredentialsCustomerModel;\n\nexport const CredentialsDefaultCustomerModel: CredentialsMainModel = {\n hasUserId: true,\n hasPin: true,\n hasPassword: true,\n isRiskyClient: false,\n};\n\nexport const CredentialsRiskyCustomerModel: CredentialsMainModel = {\n hasUserId: false,\n hasPin: false,\n hasPassword: true,\n isRiskyClient: true,\n};\n\nexport type CredentialsMainProps = CredentialsMainModel & {\n onClose: () => void;\n onComplete: () => void;\n withCountdown: boolean;\n onRemoteCredentialsExit: IO;\n isSLFlow: boolean;\n};\n\nexport function CredentialsMain(props: CredentialsMainProps) {\n const { onClose: onClosed, onComplete, ...otherProps } = props;\n const [connectionConfirmed, setConnectionConfirmed] = useState(false);\n const {\n linkSent,\n linksQuota,\n phoneNumberQuery,\n onSendLink,\n syncState,\n restartPolling,\n resetLinkSent,\n } = useCredentialsMainApi(props.withCountdown);\n\n const submittedCredentialsViaMobile = useCommand(\n api.submittedCredentialsViaMobile\n );\n\n useEffect(() => {\n if (syncState.status !== \"PasswordCreated\") {\n // PasswordCreated is last step.\n return;\n }\n\n // first the BFF requires acknowledgement that Credentials were created\n // then we can proceed as Completed\n pipe(\n submittedCredentialsViaMobile(),\n taskEither.chain(() => taskEither.rightIO(onComplete))\n )();\n }, [syncState.status, onComplete]);\n\n const [maxAttempts, setMaxAttempts] = useState(false);\n\n pipe(\n phoneNumberQuery,\n remoteData.fold(\n constVoid,\n () => constVoid,\n recipients => {\n if (maxAttempts !== recipients.Client.disabled) {\n setMaxAttempts(recipients.Client.disabled);\n }\n }\n )\n );\n\n return (\n <>\n \n\n \n {onClose => {\n switch (syncState.status) {\n case \"WaitingForConnection\": {\n if (!linkSent) {\n // Link has not been sent yet. We don't have to show the retry dialog.\n return null;\n }\n\n // Link has been sent. We show the retry dialog.\n return (\n \n );\n }\n case \"MobileConnected\":\n case \"UserIdCreated\":\n case \"PinCreated\":\n case \"PasswordCreated\": {\n if (connectionConfirmed) {\n // Connection has been confirmed. We don't have to show the confirmation dialog.\n return null;\n }\n\n return (\n setConnectionConfirmed(true)}\n />\n );\n }\n case \"ConnectionLost\": {\n return maxAttempts ? null : (\n {\n restartPolling();\n if (\n syncState.status === \"WaitingForConnection\" ||\n syncState.status === \"ConnectionLost\"\n ) {\n resetLinkSent();\n }\n props.onRemoteCredentialsExit();\n }}\n isSLFlow={props.isSLFlow}\n />\n );\n }\n }\n }}\n \n \n );\n}\n","import * as t from \"io-ts\";\nimport { eq } from \"fp-ts\";\nimport { Eq } from \"fp-ts/Eq\";\nimport { apiCall } from \"../../APICall\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { constTrue } from \"fp-ts/function\";\n\nconst UserIDSuggestionsOutput = t.array(\n NonEmptyString,\n \"UserIDSuggestionsOutput\"\n);\ninterface UserIDSuggestionsOutput\n extends t.TypeOf {}\n\nexport const userIDSuggestions = apiCall({\n inputEq: eq.fromEquals(constTrue),\n path: [\"clients\", \"profile\", \"userId\", \"suggestions\"],\n inputCodec: t.void,\n outputCodec: UserIDSuggestionsOutput,\n});\n\nconst UserIDValidateInput = t.type(\n {\n userId: NonEmptyString,\n ignoreCount: NonEmptyString,\n },\n \"UserIDValidateInput\"\n);\ninterface UserIDValidateInput extends t.TypeOf {}\nconst eqUserIDValidateInput: Eq = eq.getStructEq({\n userId: eq.eqString,\n ignoreCount: eq.eqString,\n});\n\nconst InvalidUserIdError = t.type({ id: t.literal(\"InvalidUserId\") });\nconst MaximumInvalidUserIdAttemptsError = t.type({\n id: t.literal(\"MaximumUserIdAttempts\"),\n});\n\nexport const UserIDValidationError = t.union([\n InvalidUserIdError,\n MaximumInvalidUserIdAttemptsError,\n]);\n\nexport type UserIDValidationError = t.TypeOf;\n\nexport const validateUserID = apiCall({\n inputEq: eqUserIDValidateInput,\n path: [\"clients\", \"profile\", \"userId\", \"validate\"],\n inputCodec: UserIDValidateInput,\n errorCodec: UserIDValidationError,\n});\n","import { useState } from \"react\";\nimport {\n Banner,\n Space,\n Body,\n Stack,\n Heading,\n Box,\n PanelHeaderIcon,\n LoadingStatusProvider,\n Dialog,\n SpinnerIcon,\n useIsTouchScreen,\n LocalizedString,\n ActionButtonGroup,\n Action,\n useIsMobileLayout,\n FeedbackBlock,\n} from \"design-system\";\nimport { palette } from \"design-system/lib/styleConstants\";\nimport { useFormatMessage } from \"../../intl\";\nimport { SendContractsViaEmailDialog } from \"./SendContractsViaEmailDialog\";\nimport { useAppContext } from \"../../useAppContext\";\nimport { PrintDocumentsDialog } from \"./PrintDocumentsDialog\";\nimport { array, option } from \"fp-ts\";\nimport { Option } from \"fp-ts/Option\";\nimport { pipe } from \"fp-ts/function\";\n\ntype Props = {\n stepNo: number;\n finalChecksComplete: boolean;\n promotion: Option;\n heading: {\n title: LocalizedString;\n description: LocalizedString;\n };\n};\n\nexport function Summary(props: Props) {\n const [isPrintContractsVisible, setIsPrintContractsVisible] = useState(false);\n const [isEmailContractsVisible, setIsEmailContractsVisible] = useState(false);\n const isMobileLayout = useIsMobileLayout();\n\n const formatMessage = useFormatMessage();\n\n const {\n config: { externalCommunication },\n } = useAppContext();\n\n const isTouchScreen = useIsTouchScreen();\n\n const showPrintContracts = (): void => {\n setIsPrintContractsVisible(true);\n };\n\n const showEmailContracts = (): void => {\n setIsEmailContractsVisible(true);\n };\n\n const hidePrintContractsModal = (): void => {\n setIsPrintContractsVisible(false);\n };\n\n const hideEmailContractsModal = (): void => {\n setIsEmailContractsVisible(false);\n };\n\n const printDocumentsDialog = props.finalChecksComplete ? (\n \n ) : (\n \n );\n\n const renderActionButtonGroup = (\n externalCommunication)({\n label: formatMessage(\n \"SummaryAndDownload.Summary.email.contracts.label\"\n ),\n variant: \"secondary\",\n action: showEmailContracts,\n disabled: !props.finalChecksComplete,\n }),\n option.fromPredicate(() => !isTouchScreen)({\n label: formatMessage(\n \"SummaryAndDownload.Summary.print.contracts.label\"\n ),\n variant: \"primary\",\n action: showPrintContracts,\n }),\n ]) as [Action] | [Action, Action]\n }\n />\n );\n\n const renderLoadingContracts = (\n \n );\n\n return (\n <>\n \n \n \n \n \n {props.heading.title}\n \n \n \n \n \n \n \n {props.heading.description}\n \n \n \n \n {!isMobileLayout && }\n {props.finalChecksComplete\n ? renderActionButtonGroup\n : renderLoadingContracts}\n \n {pipe(\n props.promotion,\n option.map(promotion => (\n <>\n \n \n \n \n \n \n )),\n option.toNullable\n )}\n \n <>\n {isPrintContractsVisible && printDocumentsDialog}\n {isEmailContractsVisible && (\n \n )}\n \n \n \n );\n}\n","import {\n Box,\n PanelHeaderIcon,\n Stack,\n Space,\n Heading,\n UnorderedList,\n Loader,\n QRCode,\n useIsMobileLayout,\n} from \"design-system\";\nimport { RuntimeLocaleKey, useFormatMessage } from \"../../intl\";\nimport { DownloadAppButton } from \"./DownloadAppButton/DownloadAppButton\";\nimport * as classes from \"./SummaryAndDownloadCommonStyles.treat\";\nimport { useQuery } from \"../../useAPI\";\nimport { mobileAppQRCode } from \"./api\";\nimport * as remoteData from \"../../RemoteData\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport { spaceUnit } from \"design-system/lib/styleConstants\";\n\ntype Props = {\n stepNo: number;\n isCf: boolean;\n};\n\nfunction QRCodeImage() {\n const [qrCode] = useQuery(mobileAppQRCode, {\n component: \"eShopFE\",\n size: 150,\n });\n\n return pipe(\n qrCode,\n remoteData.fold(\n () => ,\n constNull,\n qrCode => \n )\n );\n}\n\nexport function Download(props: Props) {\n const formatMessage = useFormatMessage();\n const isMobileLayout = useIsMobileLayout();\n\n const translationPlaceholder = props.isCf ? \".CF\" : \"\";\n\n return (\n \n \n \n \n {formatMessage(\n `SummaryAndDownload${translationPlaceholder}.Download.title` as RuntimeLocaleKey\n )}\n \n \n \n \n {!isMobileLayout && }\n \n \n {QRCodeImage()}\n \n {!isMobileLayout && }\n \n \n \n \n {!isMobileLayout && }\n \n \n \n \n {!isMobileLayout && }\n \n {formatMessage(\n `SummaryAndDownload${translationPlaceholder}.Download.ListTitle` as RuntimeLocaleKey\n )}\n \n \n \n \n {!isMobileLayout && }\n \n {[\n formatMessage(\n `SummaryAndDownload${translationPlaceholder}.Download.step1` as RuntimeLocaleKey\n ),\n formatMessage(\n `SummaryAndDownload${translationPlaceholder}.Download.step2` as RuntimeLocaleKey\n ),\n formatMessage(\n `SummaryAndDownload${translationPlaceholder}.Download.step3` as RuntimeLocaleKey\n ),\n ]}\n \n \n \n );\n}\n","import { useAppContext } from \"../../../useAppContext\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport * as remoteData from \"../../../RemoteData\";\nimport { Loader, Box } from \"design-system\";\nimport * as classes from \"./DownloadAppButton.treat\";\nimport { Tenant, foldTenant, SupportedLocales } from \"../../../globalDomain\";\nimport { taskEither } from \"fp-ts\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { useMemo } from \"react\";\nimport { useRemoteData } from \"../../../useRemoteData\";\n\ntype Platform = \"iOS\" | \"Android\";\n\nexport type Props = {\n platform: Platform;\n};\n\nfunction image(className: string): (src: string) => JSX.Element {\n return src => (\n \n );\n}\n\nfunction storeButton(\n platform: Platform,\n locale: SupportedLocales\n): TaskEither {\n const fetchButton = (() => {\n switch (platform) {\n case \"iOS\": //NOSONAR\n switch (locale) {\n case \"en\":\n return () => import(\"./app-store-badge-en.svg\");\n case \"cs\":\n return () => import(\"./app-store-badge-cz.svg\");\n case \"sk\":\n return () => import(\"./app-store-badge-sk.svg\");\n }\n case \"Android\":\n switch (locale) {\n case \"en\":\n return () => import(\"./google-play-badge-en.svg\");\n case \"cs\":\n return () => import(\"./google-play-badge-cz.svg\");\n case \"sk\":\n return () => import(\"./google-play-badge-cz.svg\");\n }\n }\n })();\n\n return pipe(\n taskEither.tryCatch(fetchButton, constNull),\n taskEither.map(img => img.default),\n taskEither.map(image(classes.storeButton))\n );\n}\n\nfunction storeLink(platform: Platform, tenant: Tenant): string {\n switch (platform) {\n case \"Android\":\n return foldTenant(\n tenant,\n () =>\n \"https://play.google.com/store/apps/details?id=hr.asseco.android.jimba.mUCI.sk\",\n () =>\n \"https://play.google.com/store/apps/details?id=hr.asseco.android.jimba.mUCI.cz\"\n );\n case \"iOS\":\n return foldTenant(\n tenant,\n () => \"https://apps.apple.com/sk/app/smart-banking/id441496696\",\n () => \"https://apps.apple.com/cz/app/smart-banking/id468057018\"\n );\n }\n}\n\nexport function DownloadAppButton(props: Props) {\n const {\n apiParameters: { tenant, language },\n } = useAppContext();\n\n const fetchStoreButton = useMemo(\n () => storeButton(props.platform, language),\n [props.platform, language]\n );\n\n const downloadAppbutton = pipe(\n useRemoteData(useMemo(() => fetchStoreButton, [fetchStoreButton])),\n remoteData.fold(\n () => ,\n constNull,\n button => button\n )\n );\n\n return (\n \n \n {downloadAppbutton}\n \n \n );\n}\n","import \"!../../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./DownloadAppButton.treat.2hgLxuE.css\";\nexport var downloadAppButton = 'N7D7Q';\nexport var storeButton = '_2VSio';","import { useEffect, useState } from \"react\";\nimport {\n Banner,\n Box,\n DropdownField,\n fieldIssues,\n Form,\n FormSection,\n Heading,\n Issues,\n LocalizedString,\n Space,\n TextField,\n UnorderedList,\n unsafeLocalizedString,\n useForm,\n useIsMobileLayout,\n useIsTouchScreen,\n useStableEquality,\n Validator,\n validators,\n} from \"design-system\";\nimport { palette } from \"design-system/lib/styleConstants\";\nimport { useFormatMessage } from \"../../../intl\";\nimport { Option } from \"fp-ts/Option\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { constant, pipe } from \"fp-ts/function\";\nimport { array, eq, option, taskEither } from \"fp-ts\";\nimport { useCommand, useQuery } from \"../../../useAPI\";\nimport * as profileAPI from \"../api\";\nimport * as remoteData from \"../../../RemoteData\";\nimport { sequenceS } from \"fp-ts/Apply\";\n\nimport { useAppContext } from \"../../../useAppContext\";\nimport { NextButton } from \"../../../Common/NextButton\";\nimport { useValidators } from \"../../../Common/useValidators\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { PersonalDataProcessingDisclaimer } from \"../../../Common/PersonalDataProcessingDisclaimer/PersonalDataProcessingDisclaimer\";\nimport { useVirtualFormSubmit } from \"../../../Common/VirtualKeyboard/virtualKeyboardUtils\";\nimport { usePropagateHasChanged } from \"../../../ClientProfile/usePropagateHasChanged\";\n\ntype Props = {\n initialUserId: Option;\n onNext: (userId: NonEmptyString) => TaskEither;\n disabled?: boolean;\n onHasChanged?: (hasChanged: boolean) => unknown;\n};\n\ntype UserIdDropdownOption = {\n value: string;\n label: LocalizedString;\n};\n\nexport function UserID(props: Props) {\n const formatMessage = useFormatMessage();\n const isTouchScreen = useIsTouchScreen();\n const isMobileLayout = useIsMobileLayout();\n const [isDropDown, setIsDropdown] = useState(false);\n\n const {\n config: { enhancedMF20 },\n } = useAppContext();\n\n const validateUserId = useCommand(profileAPI.validateUserID, {\n skipTracking: false,\n });\n\n const { nonBlankString, maxLength, definedNoExtract } = useValidators();\n\n const onSubmitR5 = ({\n userId,\n userIdFromDropdown,\n }: {\n userId: NonEmptyString;\n userIdFromDropdown: Option;\n }): TaskEither => {\n if (isDropDown) {\n pipe(\n props.onHasChanged,\n option.fromNullable,\n option.map(callback => callback(true))\n );\n let userIdFromDropDown = pipe(\n userIdFromDropdown,\n option.getOrElse(\n () =>\n ({\n value: \"\",\n label: \"\",\n } as UserIdDropdownOption)\n )\n );\n //return props.onNext(userIdFromDropDown.value as NonEmptyString);\n return pipe(\n validateUserIdText(userIdFromDropDown.value as NonEmptyString),\n taskEither.chain(() =>\n props.onNext(userIdFromDropDown.value as NonEmptyString)\n )\n );\n }\n return pipe(\n validateUserIdText(userId),\n taskEither.chain(() => props.onNext(userId))\n );\n };\n\n const requiredDropdownValue = (\n validate: boolean\n ): Validator, Option> =>\n validators.foldPredicate(\n constant(validate),\n constant(values.userIdFromDropdown),\n definedNoExtract()\n );\n\n const validateUserIdText = (userId: NonEmptyString) =>\n pipe(\n validateUserId({\n userId,\n ignoreCount: isDropDown\n ? (\"true\" as NonEmptyString)\n : (\"false\" as NonEmptyString),\n }),\n taskEither.map(userId => {\n pipe(\n props.onHasChanged,\n option.fromNullable,\n option.map(callback => callback(true))\n );\n return userId as NonEmptyString;\n }),\n taskEither.mapLeft(\n (e): Issues => {\n switch (e.id) {\n case \"InvalidUserId\": {\n isDropDown\n ? (fieldErrors.userIdFromDropdown = option.some([\n fieldIssues.error(\n formatMessage(\n \"CreateProfile.UserID.userIdNotValidAnymoreErrorMessage\"\n )\n ),\n ]))\n : (fieldErrors.userId = option.some([\n fieldIssues.error(\n formatMessage(\n \"CreateProfile.UserID.apiValidationErrorMessage\"\n )\n ),\n ]));\n return [\n fieldIssues.error(\n formatMessage(\n \"CreateProfile.UserID.apiValidationErrorMessage\"\n )\n ),\n ];\n }\n case \"MaximumUserIdAttempts\": {\n setIsDropdown(true);\n return [\n fieldIssues.error(\n formatMessage(\n \"CreateProfile.UserID.maximumInvalidUserIdAttemptsErrorMessage\"\n )\n ),\n ];\n }\n case \"GenericError\": {\n isDropDown\n ? (fieldErrors.userIdFromDropdown = option.some([\n fieldIssues.error(\n formatMessage(\"CreateProfile.UserID.genericError\")\n ),\n ]))\n : (fieldErrors.userId = option.some([\n fieldIssues.error(\n formatMessage(\"CreateProfile.UserID.genericError\")\n ),\n ]));\n return [\n fieldIssues.error(\n formatMessage(\"CreateProfile.UserID.genericError\")\n ),\n ];\n }\n }\n }\n )\n );\n\n const { fieldProps, handleSubmit, values, fieldErrors, setValues } = useForm(\n {\n initialValues: {\n userId: pipe(\n props.initialUserId,\n option.getOrElse(() => \"\")\n ),\n userIdFromDropdown: option.none as Option,\n },\n fieldValidators: () => {\n return {\n userId: validators.inSequence(\n nonBlankString,\n validators.minLength(\n 6,\n formatMessage(\"CreateProfile.UserID.feValidationErrorMessage\")\n ),\n maxLength(254)\n ),\n userIdFromDropdown: requiredDropdownValue(isDropDown),\n };\n },\n },\n {\n onSubmit: ({ userId, userIdFromDropdown }) =>\n onSubmitR5({ userId, userIdFromDropdown }),\n }\n );\n\n useVirtualFormSubmit(handleSubmit);\n\n const userIdFieldProps = fieldProps(\"userId\");\n\n usePropagateHasChanged({\n initialValue: pipe(props.initialUserId, option.getOrElse(constant(\"\"))),\n fieldProps: userIdFieldProps,\n equality: eq.eqString,\n onHasChanged: props.onHasChanged,\n });\n\n const [suggestions] = useQuery(profileAPI.userIDSuggestions);\n const suggestedUserIds = pipe(\n suggestions,\n remoteData.fold(constant(option.none), constant(option.none), option.some)\n );\n\n const suggestedUserIdOptions = pipe(\n suggestedUserIds,\n option.getOrElse(() => [] as NonEmptyString[])\n );\n const firstSuggestion = pipe(\n option.fromNullable(suggestedUserIdOptions[0]),\n option.getOrElse(() => \"\")\n );\n useEffect(() => {\n if (firstSuggestion && !values.userId) {\n setValues({ userId: firstSuggestion });\n }\n }, [firstSuggestion]);\n\n const dropDownOptions = suggestedUserIdOptions.map(v => ({\n value: v,\n label: unsafeLocalizedString(v),\n }));\n\n const [currentSuggestedIDIndex, setCurrentSuggestedIDIndex] = useState<\n Option\n >(option.none);\n const currentSuggestedID = pipe(\n sequenceS(option.option)({ suggestedUserIds, currentSuggestedIDIndex }),\n option.chain(({ suggestedUserIds, currentSuggestedIDIndex }) =>\n array.lookup(currentSuggestedIDIndex % suggestedUserIds.length)(\n suggestedUserIds\n )\n )\n );\n\n const [currentSuggestedIDStable] = useStableEquality(\n option.getEq(eq.eqString),\n currentSuggestedID\n );\n\n useEffect(() => {\n pipe(\n currentSuggestedID,\n option.map(suggestedId => userIdFieldProps.onChange(suggestedId))\n );\n }, [currentSuggestedIDStable]);\n\n return (\n \n \n {formatMessage(\"CreateProfile.UserID.description1\")}\n \n \n
\n \n <>\n {!isDropDown && (\n \n pipe(\n currentSuggestedIDIndex,\n option.map(index => index + 1),\n option.alt(() => option.some(1)),\n setCurrentSuggestedIDIndex\n ),\n label: formatMessage(\n \"CreateProfile.UserID.generateLabel\"\n ),\n }\n : undefined\n }\n />\n )}\n {isDropDown && (\n <>\n \n \n \n fieldProps(\"userIdFromDropdown\").onChange(\n pipe(\n newVal,\n option.map(value =>\n pipe(\n dropDownOptions,\n array.findFirst(p => p.value === value.value)\n )\n ),\n option.flatten\n )\n )\n }\n label={formatMessage(\n \"CreateProfile.UserID.suggestedUserId.label\"\n )}\n placeholder={formatMessage(\n \"CreateProfile.UserID.suggestedUserId.placeholder\"\n )}\n searchable\n clearable={false}\n cancelLabel={formatMessage(\"Cancel\")}\n noResultsLabel={formatMessage(\"NoResultsFound\")}\n clearSelectionLabel={formatMessage(\"Dropdown.clearSelection\")}\n filterInputPlaceholder={formatMessage(\n \"Dropdown.filterInputPlaceholder\"\n )}\n isMulti={false}\n disabled={props.disabled}\n />{\" \"}\n \n )}\n \n \n
\n \n \n {[\n formatMessage(\"CreateProfile.UserID.suggestion1\"),\n formatMessage(\"CreateProfile.UserID.suggestion2\"),\n formatMessage(\"CreateProfile.UserID.suggestion3\"),\n ]}\n \n \n {isTouchScreen && (\n \n )}\n \n \n \n
\n
\n );\n}\n","import { useFormatMessage } from \"../../../intl\";\nimport {\n Box,\n buttonLink,\n Form,\n FormRow,\n PasswordField,\n Space,\n Body,\n Heading,\n FormSection,\n PasswordFieldWithCriteria,\n PasswordStrength,\n useIsTouchScreen,\n useForm,\n passwordStrengthCalculator,\n fieldIssues,\n} from \"design-system\";\nimport { palette } from \"design-system/lib/styleConstants\";\nimport { option, record, taskEither } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { NextButton } from \"../../../Common/NextButton\";\nimport { useEffect, useState } from \"react\";\nimport { useCriteria } from \"../../../Common/useCriteria\";\nimport { useValidators } from \"../../../Common/useValidators\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { SmartKeyActivationDialog } from \"../../../Common/Dialogs/SmartKeyActivationDialog\";\nimport { PersonalDataProcessingDisclaimer } from \"../../../Common/PersonalDataProcessingDisclaimer/PersonalDataProcessingDisclaimer\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\n\ntype Props = {\n next: (pin: NonEmptyString) => unknown;\n setUkontoPinStep: () => unknown;\n onComplete?: (password: NonEmptyString) => TaskEither;\n disabled?: boolean;\n};\n\nexport function SecurityPin(props: Props) {\n useEffect(() => {\n const { setUkontoPinStep } = props;\n setUkontoPinStep();\n // Reason: call the setUkontoKYCStep function once instead of multiple times\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const { next, onComplete } = props;\n const formatMessage = useFormatMessage();\n const isTouchScreen = useIsTouchScreen();\n const [\n smartKeyActivationModalOpen,\n setSmarKeyActivationModalOpen,\n ] = useState(false);\n const { securityPinCriteria, pinStrengthLabel } = useCriteria();\n const { validPin, pinMatches } = useValidators();\n const numberOfPinCriteria = pipe(\n securityPinCriteria,\n record.keys,\n a => a.length\n );\n\n const { fieldProps, handleSubmit, setValues, values } = useForm(\n {\n initialValues: {\n securityPin: { value: \"\", strength: \"weak\" as PasswordStrength },\n repeatedSecurityPin: \"\",\n },\n fieldValidators: values => ({\n securityPin: validPin,\n repeatedSecurityPin: pinMatches(values.securityPin),\n }),\n },\n {\n onSubmit:\n onComplete != undefined\n ? ({ securityPin }) => onComplete(securityPin)\n : ({ securityPin }) => taskEither.fromIO(() => next(securityPin)),\n }\n );\n\n const conditionalIssuesProps =\n fieldProps(\"securityPin\").value?.value.length > 8\n ? {\n issues: option.some(\n fieldIssues.errors([\n formatMessage(\"Form.fieldError.maxLength\", { max: 8 }),\n ])\n ),\n }\n : {};\n\n return (\n \n \n \n {formatMessage(\"CreateProfile.securityPin.description.primary\")}\n \n \n \n {[\n formatMessage(\"CreateProfile.securityPin.description.secondary\"),\n formatMessage(\"CreateProfile.securityPin.description.tertiary\"),\n buttonLink(\n () => setSmarKeyActivationModalOpen(true),\n formatMessage(\"CreateProfile.securityPin.description.smartKey\")\n ),\n ]}\n \n \n \n
\n \n \n \n setValues({\n securityPin,\n // re-trigger validation of repeatedSecurityPin\n repeatedSecurityPin: values.repeatedSecurityPin,\n })\n }\n {...conditionalIssuesProps}\n label={formatMessage(\"CreateProfile.securityPin.label\")}\n criteria={securityPinCriteria}\n strength={passwordStrengthCalculator({\n baseCriteria: [],\n goodThreshold: numberOfPinCriteria,\n strongThreshold: numberOfPinCriteria,\n })}\n strengthLabel={pinStrengthLabel}\n virtualKeyboardInputType=\"numeric\"\n showHideButton={\n isTouchScreen\n ? option.some({\n hideLabel: formatMessage(\"Hide\"),\n showLabel: formatMessage(\"Show\"),\n })\n : option.none\n }\n disabled={props.disabled}\n />\n \n \n \n \n \n \n \n
\n \n {isTouchScreen && (\n \n )}\n \n \n \n \n\n {smartKeyActivationModalOpen && (\n setSmarKeyActivationModalOpen(false)}\n />\n )}\n
\n );\n}\n","import { useAuthenticationContext } from \"design-system\";\nimport { option, taskEither } from \"fp-ts\";\nimport { constUndefined, constVoid, pipe } from \"fp-ts/function\";\nimport { Option } from \"fp-ts/Option\";\nimport { UUID } from \"io-ts-types/UUID\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport {\n fold as foldRemoteData,\n remoteFailure,\n remoteLoading,\n remoteSuccess,\n} from \"../../RemoteData\";\nimport { useCommand, usePollingEffect, useQuery } from \"../../useAPI\";\nimport { useCountdown } from \"../../Common/IdleGuard/useCountdown\";\nimport {\n readLink,\n readParameters,\n ReadParametersQuery,\n readRecipients,\n readStatus,\n ReadStatusOutput,\n sendLink,\n updatePassword,\n updatePin,\n updateUserId,\n} from \"./api\";\nimport { useUpdateEffect } from \"react-use\";\n\nconst CONNECTION_LOST: ReadStatusOutput[\"status\"] = \"ConnectionLost\";\nconst WAITING_FOR_CONNECTION: ReadStatusOutput[\"status\"] =\n \"WaitingForConnection\";\n\nexport function useCredentialsSyncState(\n withCountdown: boolean = false,\n mobileApi: boolean\n) {\n const [syncState, setSyncState] = useState({\n status: WAITING_FOR_CONNECTION,\n });\n\n const countdownIsStopped =\n !withCountdown ||\n syncState.status === CONNECTION_LOST ||\n syncState.status === WAITING_FOR_CONNECTION;\n\n const [, resetCountdown] = useCountdown(\n 5 * 60 * 1000,\n () => {\n if (syncState.status !== CONNECTION_LOST) {\n setSyncState({ status: CONNECTION_LOST });\n }\n },\n countdownIsStopped\n );\n\n const prevStatus = useRef(syncState.status);\n\n const restartCountdown = (result: ReadStatusOutput) => {\n if (prevStatus.current !== result.status && withCountdown) {\n resetCountdown();\n prevStatus.current = result.status;\n }\n };\n\n const [pollError, setPollError] = useState(false);\n\n const restartPolling_ = usePollingEffect(readStatus, {\n intervalMS: 3 * 1000, // 3 seconds.\n shouldPollingContinue() {\n return !mobileApi || syncState.status !== CONNECTION_LOST;\n },\n onError() {\n if (pollError) {\n setSyncState({ status: CONNECTION_LOST });\n }\n setPollError(true);\n },\n onSuccess(result) {\n setPollError(false);\n if (\n mobileApi &&\n syncState.status !== WAITING_FOR_CONNECTION &&\n result.status === WAITING_FOR_CONNECTION\n ) {\n setSyncState({ status: CONNECTION_LOST });\n return;\n }\n if (syncState.status !== CONNECTION_LOST) {\n setSyncState(result);\n restartCountdown(result);\n }\n },\n });\n\n useUpdateEffect(() => {\n if (syncState.status === WAITING_FOR_CONNECTION && mobileApi === false) {\n restartPolling_();\n }\n }, [syncState.status]);\n\n const restartPolling = () => {\n if (withCountdown) {\n resetCountdown();\n }\n setSyncState({ status: WAITING_FOR_CONNECTION });\n };\n\n return { syncState, restartPolling };\n}\n\nexport function useCredentialsLink() {\n const [linkSent, setLinkSent] = useState(false);\n const [linksQuota, setLinksQuota] = useState>(option.none);\n\n const commands = {\n sendLink: useCommand(sendLink),\n };\n\n const onSendLink = useCallback(() => {\n setLinkSent(true);\n\n pipe(\n commands.sendLink(),\n taskEither.bimap(\n () => setLinkSent(false),\n result => setLinksQuota(option.of(result.attemptsLeft))\n )\n )();\n }, [commands.sendLink]);\n\n const resetLinkSent = () => {\n setLinkSent(false);\n };\n\n return { linkSent, linksQuota, onSendLink, resetLinkSent };\n}\n\nexport function useCredentialsMainApi(withCountdown: boolean) {\n const [phoneNumberQuery] = useQuery(readRecipients, {\n linkPurpose: \"addingCredentials\",\n });\n const credentialsLink = useCredentialsLink();\n return {\n ...useCredentialsSyncState(\n withCountdown && credentialsLink.linkSent,\n false\n ),\n ...credentialsLink,\n phoneNumberQuery,\n };\n}\n\nexport function useCredentialsMobileApi(id: UUID) {\n // readLink() and readParameters() queries are not side effect free.\n // Even if they are queries, readParameters() must be run after readLink(),\n // otherwise backend fails.\n // We use a command to ensure ordering, still maintaining the semantic of the\n // queries dev side.\n const flowIdRef = useRef(null);\n const [linkQuery, refreshLink] = useQuery(readLink, { id });\n const parametersCommand = useCommand(readParameters);\n const [parametersQuery, setParametersQuery] = useState(\n remoteLoading\n );\n const { authInfo, login } = useAuthenticationContext();\n\n useEffect(() => {\n flowIdRef.current = null;\n setParametersQuery(remoteLoading);\n\n pipe(\n linkQuery,\n foldRemoteData(constVoid, constVoid, (result, loading) => {\n if (loading) {\n // linkQuery is re-fetching, we must wait it to settle.\n return;\n }\n\n const { flowId } = result;\n\n flowIdRef.current = flowId;\n\n pipe(\n authInfo,\n option.fold(\n () => console.error(\"(CredentialsApi): missing Auth Info.\"),\n authInfo => login({ ...authInfo, flowId })\n )\n );\n })\n );\n }, [linkQuery]);\n\n const flowId = pipe(\n authInfo,\n option.fold(constUndefined, authInfo => authInfo.flowId)\n );\n\n useEffect(() => {\n if (flowId !== flowIdRef.current) {\n return;\n }\n\n pipe(\n parametersCommand({ id }),\n taskEither.bimap(\n error => void setParametersQuery(remoteFailure(error, false)),\n parameters => void setParametersQuery(remoteSuccess(parameters, false))\n )\n )();\n }, [flowId /*, id */, linkQuery]);\n // NOTE: id must not be a dependency, otherwise readParameters() command\n // is re-executed before a (possibly) fulfilled linkQuery is re-executed.\n\n return {\n ...useCredentialsSyncState(false, true),\n linkQuery,\n parametersQuery,\n updateUserId: useCommand(updateUserId),\n updatePin: useCommand(updatePin),\n updatePassword: useCommand(updatePassword),\n refreshLink,\n };\n}\n","import { array, option } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { Option } from \"fp-ts/Option\";\nimport { useCallback, useLayoutEffect, useRef, useState } from \"react\";\n\nexport function useTaskDelayed(delayMs: number, task: Function) {\n const taskRef = useRef(null);\n\n const cancel = useCallback(() => {\n if (!taskRef.current) {\n return;\n }\n\n clearTimeout(taskRef.current);\n }, []);\n\n const start = useCallback(() => {\n cancel();\n\n taskRef.current = setTimeout(task, delayMs);\n }, [cancel, task]);\n\n // We use useLayoutEffect() to conform with React 17 hooks lifecycle.\n useLayoutEffect(() => {\n return cancel;\n }, [cancel]);\n\n return { start, cancel };\n}\n\nexport function useAccordionSteps(steps: Array<{ id: I }>) {\n const [stepIndex, setStepIndex] = useState>(option.some(0));\n\n const onStepIndex = setStepIndex;\n\n const onStepId = useCallback(\n (id: I) => {\n setStepIndex(\n pipe(\n steps,\n array.findIndex(it => it.id === id)\n )\n );\n },\n [steps]\n );\n\n const onNextStep = useCallback(() => {\n setStepIndex(\n pipe(\n stepIndex,\n option.map(it => Math.min(steps.length, it + 1))\n )\n );\n }, [steps.length, stepIndex]);\n\n return { onStepId, onStepIndex, onNextStep, stepIndex };\n}\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./style.treat.1zdP0UJ.css\";\nexport var Credentials = {stepDisabled:'_3aEXg'};\nexport var CredentialsBackground = '_3YH_E';","import cx from \"classnames\";\nimport { array, option, record } from \"fp-ts\";\nimport { constVoid, flow, pipe } from \"fp-ts/function\";\nimport {\n ActionButtonGroup,\n Banner,\n Body,\n Box,\n Button,\n Card,\n Dialog,\n Heading,\n ProgressIcon,\n Space,\n Stack,\n SuccessIcon,\n ToDoIcon,\n UnorderedList,\n WarningIcon,\n} from \"design-system\";\nimport { palette, PaletteColor } from \"design-system/lib/styleConstants\";\nimport { useMemo, useState } from \"react\";\nimport { ReadRecipientsQuery, ReadStatusOutput } from \"./api\";\nimport { LocaleKey, useFormatMessage } from \"../../intl\";\nimport { CredentialsMainModel, CredentialsStepsModel } from \"./CredentialsMain\";\nimport * as Style from \"./style.treat\";\nimport { SmartKeyActivationDialog } from \"../../Common/Dialogs/SmartKeyActivationDialog\";\nimport { useCriteria } from \"../../Common/useCriteria\";\nimport { PersonalDataProcessingDisclaimer } from \"../../Common/PersonalDataProcessingDisclaimer/PersonalDataProcessingDisclaimer\";\nimport * as remoteData from \"../../RemoteData\";\nimport { CredentialsBannerCommonProps } from \"./CredentialsMainDialog\";\n\nconst CredentialsDefaultSteps: Array = [\n {\n type: \"UserId\",\n lifecycle: \"Required\",\n message: \"CreateProfile.userIDTitle\",\n },\n {\n type: \"Pin\",\n lifecycle: \"Required\",\n message: \"CreateProfile.securityPINTitle\",\n },\n {\n type: \"Password\",\n lifecycle: \"Required\",\n message: \"CreateProfile.passwordTitle\",\n },\n];\n\nexport interface CredentialsMainViewModel extends CredentialsMainModel {\n syncState: ReadStatusOutput;\n}\n\nexport type CredentialsMainViewProps = CredentialsMainViewModel & {\n linkSent: boolean;\n onSendLink: () => void;\n phoneNumberQuery: ReadRecipientsQuery;\n};\n\nexport function CredentialsMainView(props: CredentialsMainViewProps) {\n const {\n hasUserId,\n hasPin,\n hasPassword,\n isRiskyClient,\n linkSent,\n onSendLink,\n syncState,\n } = props;\n const formatMessage = useFormatMessage();\n\n const steps = useMemo(() => {\n return computeSteps(syncState, { hasUserId, hasPin, hasPassword });\n }, [syncState, hasUserId, hasPin, hasPassword]);\n\n const [shouldShowSendLink, setShouldShowLink] = useState(false);\n const [showMaxAttempts, setShowMaxAttempts] = useState(false);\n\n pipe(\n props.phoneNumberQuery,\n remoteData.fold(\n constVoid,\n () => {\n if (!shouldShowSendLink) setShouldShowLink(true);\n },\n recipients => {\n const newShouldShowSendLink = !recipients.Client.disabled;\n if (shouldShowSendLink !== newShouldShowSendLink) {\n setShouldShowLink(newShouldShowSendLink);\n }\n if (showMaxAttempts !== recipients.Client.disabled) {\n setShowMaxAttempts(recipients.Client.disabled);\n }\n }\n )\n );\n const shouldShowSteps =\n syncState.status !== \"WaitingForConnection\" &&\n syncState.status !== \"ConnectionLost\";\n\n const [\n smartKeyActivationModalOpen,\n setSmarKeyActivationModalOpen,\n ] = useState(false);\n const [checkRulesModalOpen, setCheckRulesModalOpen] = useState(\n false\n );\n const { securityPinCriteria, clientPasswordCriteria } = useCriteria();\n\n const pinCriteria = pipe(\n securityPinCriteria,\n record.toArray,\n array.map(([_, { label }]) => {\n return label;\n })\n );\n\n const pswCriteria = pipe(\n clientPasswordCriteria,\n record.toArray,\n array.map(([_, { label }]) => {\n return label;\n })\n );\n\n return (\n \n \n {formatMessage(\n \"UKonto.CredentialsCreationMobile.Main.stepCredentialsTitle\"\n )}\n \n\n \n\n \n {formatMessage(\n \"UKonto.CredentialsCreationMobile.Main.stepCredentialsDescription\"\n )}\n \n\n \n\n {isRiskyClient && (\n <>\n \n \n \n )}\n\n \n \n \n {formatMessage(\n \"UKonto.CredentialsCreationMobile.Main.stepCredentialsHeading\"\n )}\n \n\n \n \n\n \n {shouldShowSendLink && (\n \n \n {formatMessage(\n \"UKonto.CredentialsCreationMobile.Main.stepSendLinkDescription\"\n )}\n \n\n \n\n \n \n )}\n {showMaxAttempts && (\n \n )}\n {shouldShowSteps && (\n <>\n \n {formatMessage(\n \"UKonto.CredentialsCreationMobile.Main.waitCompletionDescription\"\n )}\n \n\n \n\n \n {steps.map((it, idx) => (\n \n \n \n {formatMessage(it.message)}\n \n \n\n \n\n \n \n\n \n\n \n {formatMessage(it.iconMessage)}\n \n \n \n ))}\n \n \n \n setCheckRulesModalOpen(true),\n label: formatMessage(\n \"CreateProfileParent.checkRules\"\n ),\n },\n {\n variant: \"secondary\",\n action: () => setSmarKeyActivationModalOpen(true),\n label: formatMessage(\n \"CreateProfileParent.checkSmartKey\"\n ),\n },\n ]}\n hAlignContent=\"left\"\n />\n \n \n \n \n \n\n {smartKeyActivationModalOpen && (\n setSmarKeyActivationModalOpen(false)}\n />\n )}\n {checkRulesModalOpen && (\n \n setCheckRulesModalOpen(false)\n )}\n actions={[]}\n >\n \n \n \n {formatMessage(\"CreateProfile.userIDTitle\")}\n \n \n {[\n formatMessage(\"CreateProfile.UserID.suggestion1\"),\n formatMessage(\"CreateProfile.UserID.suggestion2\"),\n formatMessage(\"CreateProfile.UserID.suggestion3\"),\n ]}\n \n \n \n \n {formatMessage(\"CreateProfile.securityPINTitle\")}\n \n {array.isNonEmpty(pinCriteria) && (\n \n {pinCriteria}\n \n )}\n \n \n \n {formatMessage(\"CreateProfile.passwordTitle\")}\n \n {array.isNonEmpty(pswCriteria) && (\n \n {pswCriteria}\n \n )}\n \n \n \n )}\n \n )}\n \n \n \n \n \n );\n}\n\nexport function computeSteps(\n syncState: ReadStatusOutput,\n conf: CredentialsStepsModel\n): Array {\n return pipe(\n CredentialsDefaultSteps,\n array.map(\n flow(\n // 1) Initializes the step.\n it => mapStepWithLifecycle(syncState, it),\n // 2) Overwrites default step from [1].\n it => mapStepWithConf(conf, it)\n )\n ),\n // 3) It must overwrite the step from [2].\n items => setupFirstStep(syncState, items),\n // 4) It needs the actual step.\n array.map(mapStepWithStyle)\n );\n}\n\nfunction mapStepWithLifecycle(\n syncState: ReadStatusOutput,\n it: I\n): I {\n switch (syncState.status) {\n case \"WaitingForConnection\":\n case \"MobileConnected\":\n case \"ConnectionLost\": {\n return it;\n }\n case \"UserIdCreated\": {\n switch (it.type) {\n case \"UserId\": {\n return { ...it, lifecycle: \"Created\" };\n }\n case \"Pin\": {\n return { ...it, lifecycle: \"InProgress\" };\n }\n case \"Password\": {\n return { ...it, lifecycle: \"Required\" };\n }\n }\n }\n case \"PinCreated\": {\n // PinCreated implies the User Id has been created.\n switch (it.type) {\n case \"UserId\": {\n return { ...it, lifecycle: \"Created\" };\n }\n case \"Pin\": {\n return { ...it, lifecycle: \"Created\" };\n }\n case \"Password\": {\n return { ...it, lifecycle: \"InProgress\" };\n }\n }\n }\n case \"PasswordCreated\": {\n // PasswordCreated implies the User Id and the Pin have been created.\n switch (it.type) {\n case \"UserId\": {\n return { ...it, lifecycle: \"Created\" };\n }\n case \"Pin\": {\n return { ...it, lifecycle: \"Created\" };\n }\n case \"Password\": {\n return { ...it, lifecycle: \"Created\" };\n }\n }\n }\n }\n}\n\nfunction mapStepWithConf(\n conf: CredentialsStepsModel,\n it: I\n): I {\n // Features are enabled by default.\n // Only an actual false value disables them.\n switch (it.type) {\n case \"UserId\": {\n return toggleStepFeature(conf.hasUserId, it);\n }\n case \"Pin\": {\n return toggleStepFeature(conf.hasPin, it);\n }\n case \"Password\": {\n return toggleStepFeature(conf.hasPassword, it);\n }\n }\n}\n\nfunction toggleStepFeature(\n enabled: boolean,\n it: I\n): I {\n return {\n ...it,\n lifecycle: enabled ? it.lifecycle : \"Disabled\",\n };\n}\n\nfunction mapStepWithStyle(\n it: I\n): I & CredentialsMainStepWithStyle {\n switch (it.lifecycle) {\n case \"Disabled\": {\n return {\n ...it,\n icon: WarningIcon,\n iconColor: palette.warning600,\n iconMessage: \"CreateProfileParent.error.not.applicable\",\n };\n }\n case \"Required\": {\n return {\n ...it,\n icon: ToDoIcon,\n iconColor: palette.neutral500,\n iconMessage: \"CreateProfileParent.status.following\",\n };\n }\n case \"InProgress\": {\n return {\n ...it,\n icon: ProgressIcon,\n iconColor: palette.blue600,\n iconMessage: \"CreateProfileParent.status.in.progress\",\n };\n }\n case \"Created\": {\n return {\n ...it,\n icon: SuccessIcon,\n iconColor: palette.success800,\n iconMessage: \"CreateProfileParent.status.done\",\n };\n }\n }\n}\n\nfunction setupFirstStep(\n syncState: ReadStatusOutput,\n items: Array\n): Array {\n switch (syncState.status) {\n case \"WaitingForConnection\":\n case \"ConnectionLost\": {\n // In these cases, no step must be promoted as InProgress.\n return items;\n }\n }\n\n let isPromotedInProgress = false;\n\n const nextItems = items.map(it => {\n if (isPromotedInProgress) {\n return it;\n }\n\n switch (it.lifecycle) {\n case \"InProgress\":\n // There is already an InProgress step. No step must be promoted as\n // InProgress.\n isPromotedInProgress = true;\n break;\n case \"Required\":\n // When the the backend signals MobileConnected, the first Required\n // step must be promoted as the one InProgress.\n isPromotedInProgress = true;\n return { ...it, lifecycle: \"InProgress\" };\n }\n\n return it;\n });\n\n return nextItems;\n}\n\nexport type CredentialsMainStepType = \"UserId\" | \"Pin\" | \"Password\";\nexport type CredentialsMainStepLifecycle =\n | \"Disabled\"\n | \"Required\"\n | \"InProgress\"\n | \"Created\";\n\nexport interface CredentialsMainStep {\n type: CredentialsMainStepType;\n lifecycle: CredentialsMainStepLifecycle;\n message: LocaleKey;\n}\n\ninterface CredentialsMainStepWithStyle extends CredentialsMainStep {\n icon: React.ComponentType;\n iconColor: PaletteColor;\n iconMessage: LocaleKey;\n}\n","import * as t from \"io-ts\";\nimport { optionFromUndefined } from \"../globalDomain\";\n\nexport const Profile = t.type({\n userId: optionFromUndefined(t.string),\n pin: optionFromUndefined(t.string),\n password: t.string,\n});\nexport type Profile = t.TypeOf;\n\nexport const CRMLeadStepUkonto = t.keyof({\n Kyc: true,\n Password: true,\n SecurityPIN: true,\n PersonalDataEdit: true,\n});\nexport type CRMLeadStepUkonto = t.TypeOf;\n\nexport const CreateProfileInput = t.type({\n profile: Profile,\n});\nexport type CreateProfileInput = t.TypeOf;\n\nexport const NonResidentsAdditionalDocumentsType = t.keyof({\n TEMPORARY_RESIDENCE_PERMIT: true,\n PERMISSION_TO_STUDY: true,\n EMPLOYMENT_CONTRACT_WITH_CLIENT_DATA: true,\n LEASE_AGREEMENT_SIGNED_ON_CLIENT_NAME: true,\n REAL_ESTATE_LAND_REGISTER_EXTRACT: true,\n LONG_TERM_RESIDENCE_PERMIT: true,\n STUDENT_VISA: true,\n MARRIAGE_CERTIFICATE: true,\n BUSINESS_CERTIFICATE_AUTHORITY: true,\n LONG_TERM_VISA_90_PLUS: true,\n});\n\nexport type NonResidentsAdditionalDocumentsType = t.TypeOf<\n typeof NonResidentsAdditionalDocumentsType\n>;\n","import { useState } from \"react\";\nimport {\n Form,\n ReadOnlyField,\n FormSection,\n FeedbackDialog,\n AlertDialog,\n UCWarningIcon,\n} from \"design-system\";\nimport { taskEither } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { useFormatMessage } from \"../../intl\";\nimport { useCommand, useQuery } from \"../../useAPI\";\nimport * as apis from \"./api\";\nimport * as remoteData from \"../../RemoteData\";\n\ntype Props = {\n onCancel: () => unknown;\n onConfirm: () => unknown;\n};\n\nexport function SendContractsViaEmailDialog(props: Props) {\n const formatMessage = useFormatMessage();\n const sendDocumentsCommand = useCommand(apis.sendDocumentsCommand);\n const [status, setStatus] = useState<\"base\" | \"success\" | \"error\">(\"base\");\n\n const [emailQuery] = useQuery(apis.userEmail);\n\n const userEmail = pipe(\n emailQuery,\n remoteData.fold(\n () => \"\",\n () => \"\",\n ({ email }) => email\n )\n );\n\n const submitHandler = pipe(\n sendDocumentsCommand(),\n taskEither.bimap(\n () => setStatus(\"error\"),\n () => setStatus(\"success\")\n )\n );\n\n switch (status) {\n case \"base\":\n return (\n \n
\n \n \n \n
\n \n );\n case \"error\":\n return (\n \n );\n case \"success\":\n return (\n \n );\n }\n}\n","import { Dialog, ErrorBanner, Loader } from \"design-system\";\nimport { useFormatMessage } from \"../../intl\";\nimport { pipe } from \"fp-ts/function\";\nimport * as remoteData from \"../../RemoteData\";\nimport { Contracts } from \"./Contracts\";\nimport { option } from \"fp-ts\";\nimport { useQuery } from \"../../useAPI\";\nimport * as apis from \"../api\";\n\ntype Props = {\n onDismiss: () => unknown;\n};\n\nexport function PrintDocumentsDialog(props: Props) {\n const formatMessage = useFormatMessage();\n const [documents] = useQuery(apis.signedContractualDocuments);\n\n const renderDocuments = pipe(\n documents,\n remoteData.fold(\n () => ,\n () => ,\n documents => {\n return ;\n }\n )\n );\n\n return (\n \n {renderDocuments}\n \n );\n}\n","import {\n Box,\n Stack,\n Button,\n Heading,\n FileIcon,\n Space,\n InlineLoader,\n convertToBlob,\n downloadFile,\n} from \"design-system\";\nimport { constFalse, pipe } from \"fp-ts/function\";\nimport { array, boolean, option, taskEither } from \"fp-ts\";\nimport { DocumentMeta } from \"../../Common/documentAPI\";\nimport { NonEmptyArray } from \"fp-ts/NonEmptyArray\";\nimport { useFormatMessage } from \"../../intl\";\nimport { useCommand } from \"../../useAPI\";\nimport * as documentAPI from \"../../Common/documentAPI\";\nimport { Option } from \"fp-ts/Option\";\nimport { useState } from \"react\";\n\ntype Props = {\n documents: NonEmptyArray;\n};\n\nexport function Contracts(props: Props) {\n const documentDownload = useCommand(documentAPI.content);\n\n const [contractDownloading, setContractDownloading] = useState<\n Option\n >(option.none);\n\n const Document = ({ contract }: { contract: DocumentMeta }) => {\n const formatMessage = useFormatMessage();\n\n const renderDownloadDocument = () =>\n pipe(\n contractDownloading,\n option.fold(constFalse, ({ docId }) => docId === contract.docId),\n boolean.fold(\n () => (\n \n setContractDownloading(option.some(contract))\n ),\n () =>\n pipe(\n documentDownload({ docId: contract.docId }),\n taskEither.map(item => {\n const { content: documentBase64 } = item;\n downloadFile(\n convertToBlob(documentBase64, \"PDF\"),\n `${contract.docTitle}.pdf`\n );\n })\n ),\n () =>\n taskEither.rightIO(() =>\n setContractDownloading(option.none)\n )\n )\n )}\n />\n ),\n () => (\n \n )\n )\n );\n\n return (\n \n \n \n \n \n \n \n {contract.docTitle}\n \n \n {renderDownloadDocument()}\n \n );\n };\n\n return (\n \n \n {pipe(\n props.documents,\n array.map(contract => (\n \n ))\n )}\n \n \n );\n}\n","import * as t from \"io-ts\";\nimport { apiCall } from \"../APICall\";\nimport { eq, option } from \"fp-ts\";\nimport { Eq } from \"fp-ts/Eq\";\nimport { constFalse, constTrue } from \"fp-ts/function\";\nimport { optionFromNullable } from \"io-ts-types/lib/optionFromNullable\";\nimport {\n ContractReadInput,\n ContractReadOutput,\n DocumentsListOutput,\n eqContractReadInput,\n eqMarketingConsentReadInput,\n MarketingConsentReadInput,\n PhoneNumberOutput,\n PreContractualDocumentsListOutput,\n TermsAndConditionsReceivedOutput,\n ForeignSigningConsentReadInput,\n eqForeignSigningConsentReadInput,\n} from \"../Common/PreContractualDocuments/api\";\nimport { FileContent, LocalizedString } from \"design-system\";\nimport {\n eqLinkGenerationInput,\n eqOtpGenerationInput,\n LinkGenerationError,\n LinkGenerationInput,\n LinkGenerationOutput,\n NeedCaptchaOutput,\n OtpGenerationError,\n OtpGenerationInput,\n OTPGenerationOutput,\n OtpVerifyError,\n OtpVerifyInput,\n} from \"../PhoneAndEmailVerification/api\";\nimport {\n CreateProfileInput,\n CRMLeadStepUkonto,\n NonResidentsAdditionalDocumentsType,\n} from \"./domain\";\nimport {\n ClientDataInput,\n ClientDataOutput,\n eqClientDataInput,\n} from \"../IdUpload/api\";\nimport {\n CheckExistingClientInput,\n CheckExistingClientOutput,\n eqCheckExistingClientInput,\n} from \"../IdUpload/ClientData/api\";\nimport {\n eqWithCoApplicant,\n GenericError,\n optionFromUndefined,\n withCoApplicant,\n} from \"../globalDomain\";\nimport {\n ApplicationProductType,\n ApplicationStatus,\n} from \"../Common/ProcessStoreList/api\";\nimport { UKontoPackageType } from \"../UKontoFirstPart/state\";\nimport { NonEmptyString } from \"io-ts-types/NonEmptyString\";\nimport { IncomeInfo, TransactionsInfo } from \"../KYC/domain\";\nimport {\n Address,\n AddressWrite,\n eqAddressWrite,\n eqPersonalDocumentOfAddress,\n PersonalDocumentProofOfAddress,\n} from \"../IdUpload/domain\";\nimport { Country, ScannedDocument } from \"../UploadDocuments/domain\";\nimport {\n InitVirtualCardResponse,\n PhysicalCardInput,\n} from \"../VirtualCards/api\";\n\nexport const uKontoDocuments = apiCall({\n inputCodec: t.void,\n inputEq: eq.fromEquals(constTrue),\n outputCodec: PreContractualDocumentsListOutput,\n path: [\"packages\", \"uKonto\", \"documents\"],\n});\n\nexport const signedContractualDocuments = apiCall({\n inputCodec: t.void,\n inputEq: eq.fromEquals(constTrue),\n outputCodec: DocumentsListOutput,\n path: [\"packages\", \"uKonto\", \"signedContractualDocumentList\"],\n});\n\nexport const phoneNumber = apiCall({\n inputCodec: t.void,\n inputEq: eq.fromEquals(constTrue),\n outputCodec: PhoneNumberOutput,\n path: [\"clients\", \"identification\", \"phoneNumber\"],\n});\n\nexport const contractRead = apiCall({\n inputCodec: ContractReadInput,\n inputEq: eqContractReadInput,\n outputCodec: ContractReadOutput,\n path: [\"packages\", \"uKonto\", \"markDocumentRead\"],\n});\n\nexport const termsAndConditionsReceived = apiCall({\n inputCodec: t.void,\n inputEq: eq.fromEquals(constTrue),\n outputCodec: TermsAndConditionsReceivedOutput,\n path: [\"packages\", \"uKonto\", \"termsAndConditionsReceived\"],\n});\n\nconst KYCStatusPending = t.type(\n { status: t.literal(\"PENDING\") },\n \"KYCStatusPending\"\n);\nconst KYCStatusDone = t.type({ status: t.literal(\"DONE\") }, \"KYCStatusDone\");\n\nexport const KYCErrorId = t.keyof(\n {\n GenericError: true,\n RiskyClient: true,\n KycAssessmentNotAvailable: true,\n KycAssessmentResultNotAvailable: true,\n ClientNotOpened: true,\n },\n \"KYCErrorId\"\n);\nexport type KYCErrorId = t.TypeOf;\n\nconst KYCStatusError = t.type(\n {\n status: t.literal(\"ERROR\"),\n id: optionFromNullable(KYCErrorId),\n message: optionFromNullable(LocalizedString),\n },\n \"KYCStatusError\"\n);\n\nexport const KYCStatusOutput = t.union([\n KYCStatusPending,\n KYCStatusDone,\n KYCStatusError,\n]);\nexport type KYCStatusOutput = t.TypeOf;\n\nexport const kycStatus = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"knowYourCustomer\", \"status\"],\n inputCodec: t.void,\n outputCodec: KYCStatusOutput,\n});\n\nexport const marketingConsent = apiCall({\n inputCodec: MarketingConsentReadInput,\n inputEq: eqMarketingConsentReadInput,\n path: [\"packages\", \"uKonto\", \"marketing\", \"marketingConsent\"],\n});\n\nexport const foreignSigningConsent = apiCall({\n inputCodec: ForeignSigningConsentReadInput,\n inputEq: eqForeignSigningConsentReadInput,\n path: [\"packages\", \"uKonto\", \"foreign\", \"foreignSigningConsent\"],\n});\n\nexport const CheckMarketingConsentOutput = t.type({\n granted: t.boolean,\n});\nexport type CheckMarketingConsentOutput = t.TypeOf<\n typeof CheckMarketingConsentOutput\n>;\nexport const checkMarketingConsent = apiCall({\n inputCodec: t.void,\n inputEq: eq.fromEquals(constTrue),\n outputCodec: CheckMarketingConsentOutput,\n path: [\"packages\", \"uKonto\", \"checkMarketingConsent\"],\n});\n\nexport const cancelOverdraftApplication = apiCall({\n inputEq: eq.fromEquals(constTrue),\n path: [\"packages\", \"uKonto\", \"cancelOverdraftApplication\"],\n inputCodec: t.void,\n});\n\nconst SetStepInput = t.type(\n {\n step: CRMLeadStepUkonto,\n },\n \"SetStepInput\"\n);\n\ninterface SetStepInput extends t.TypeOf {}\n\nconst eqSetStepInput: Eq = eq.getStructEq({\n step: eq.eqString,\n});\n\nexport const setCRMLeadStep = apiCall({\n inputEq: eqSetStepInput,\n path: [\"packages\", \"uKonto\", \"setStep\"],\n inputCodec: SetStepInput,\n});\n\nexport const otpGeneration = apiCall({\n inputEq: eqOtpGenerationInput,\n path: [\"packages\", \"uKonto\", \"identification\", \"otp\"],\n inputCodec: OtpGenerationInput,\n outputCodec: OTPGenerationOutput,\n errorCodec: OtpGenerationError,\n});\n\nconst eqOtpVerifyInput: Eq = eqWithCoApplicant(\n eq.getStructEq({\n otp: eq.eqString,\n })\n);\n\nexport const otpVerify = apiCall({\n inputEq: eqOtpVerifyInput,\n path: [\"packages\", \"uKonto\", \"identification\", \"otp\", \"verify\"],\n inputCodec: OtpVerifyInput,\n errorCodec: OtpVerifyError,\n});\n\nexport const needsCaptcha = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"identification\", \"needCaptcha\"],\n inputCodec: t.void,\n outputCodec: NeedCaptchaOutput,\n});\n\nexport const linkGenerationNow = apiCall({\n inputEq: eqLinkGenerationInput,\n path: [\"packages\", \"uKonto\", \"email\", \"activationLink\", \"now\"],\n inputCodec: LinkGenerationInput,\n outputCodec: LinkGenerationOutput,\n errorCodec: LinkGenerationError,\n});\n\nconst QRCodeInput = t.type({\n size: t.number,\n});\n\nconst QRCodeOutput = FileContent;\n\nexport const getQRCode = apiCall({\n inputEq: eq.fromEquals(constTrue),\n path: [\"packages\", \"uKonto\", \"microTransaction\", \"QRCode\"],\n inputCodec: QRCodeInput,\n outputCodec: QRCodeOutput,\n});\n\nexport const ForeignDocumentType = t.keyof(\n {\n IDCard: true,\n Passport: true,\n },\n \"ForeignDocumentType\"\n);\nexport type ForeignDocumentType = t.TypeOf;\n\nexport const CountryDocSelection = t.type(\n {\n country: optionFromUndefined(Country),\n foreignDocumentType: optionFromUndefined(NonEmptyString),\n },\n \"CountryDocSelection\"\n);\n\nexport type CountryDocSelection = t.TypeOf;\n\nexport const clientData = apiCall({\n path: [\"packages\", \"uKonto\", \"identification\", \"extractData\"],\n inputCodec: ClientDataInput,\n inputEq: eqClientDataInput,\n outputCodec: ClientDataOutput,\n});\n\nexport const checkExistingClientUkonto = apiCall({\n path: [\"packages\", \"uKonto\", \"client\", \"checkExisting\"],\n inputCodec: CheckExistingClientInput,\n inputEq: eqCheckExistingClientInput,\n outputCodec: CheckExistingClientOutput,\n});\n\nexport const clientPreparation = apiCall({\n path: [\"packages\", \"uKonto\", \"clientPreparation\"],\n inputCodec: t.void,\n inputEq: eq.fromEquals(constFalse),\n});\n\nexport const createProfile = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"profile\", \"submit\"],\n inputCodec: CreateProfileInput,\n});\n\nexport const AccCollectionErrorCode = t.type(\n {\n id: optionFromUndefined(t.string),\n code: t.string,\n },\n \"AccCollectionErrorCode\"\n);\n\nexport const OverdraftError = t.union([AccCollectionErrorCode, GenericError]);\nexport type OverdraftError = t.TypeOf;\n\nexport const checkOverdraft = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"checkOverdraft\"],\n inputCodec: t.void,\n outputCodec: t.type({\n hasOverdraft: t.boolean,\n }),\n errorCodec: OverdraftError,\n});\n\nexport const checkOverdraftSelected = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"checkOverdraftSelected\"],\n inputCodec: t.void,\n outputCodec: t.type({\n hasOverdraft: t.boolean,\n }),\n errorCodec: OverdraftError,\n});\n\nexport const checkOverdraftEligibility = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"checkOverdraftEligibility\"],\n inputCodec: t.void,\n outputCodec: t.type({\n isOver18: t.boolean,\n }),\n});\n\nconst ExistingClientCheckMinimumAge = t.type({\n underAge: t.boolean,\n});\nexport type ExistingClientCheckMinimumAge = t.TypeOf<\n typeof ExistingClientCheckMinimumAge\n>;\n\nconst ExistingClientCheckNotes = t.type({\n hasBlockingNotes: t.boolean,\n});\nexport type ExistingClientCheckNotes = t.TypeOf<\n typeof ExistingClientCheckNotes\n>;\n\nconst ExistingClientPrivateCheck = t.type({\n privateClient: t.boolean,\n});\nexport type ExistingClientPrivateCheck = t.TypeOf<\n typeof ExistingClientPrivateCheck\n>;\n\nconst ExistingClientSavingsAccountCheck = t.type({\n hasSavingsAccount: t.boolean,\n});\nexport type ExistingClientSavingsAccountCheck = t.TypeOf<\n typeof ExistingClientSavingsAccountCheck\n>;\n\nconst ExistingClientCurrentAccountsCheck = t.type({\n hasCurrentAccounts: t.boolean,\n});\nexport type ExistingClientCurrentAccountsCheck = t.TypeOf<\n typeof ExistingClientCurrentAccountsCheck\n>;\n\nconst ExistingClientCheckKyc = t.type({\n kycNeeded: t.boolean,\n highRisk: t.boolean,\n foreign: t.boolean,\n});\nexport type ExistingClientCheckKyc = t.TypeOf;\n\nconst ExistingClientCheckPhoneAndEmail = t.type({\n phoneNumberNeeded: t.boolean,\n emailAddressNeeded: t.boolean,\n});\nexport type ExistingClientCheckPhoneAndEmail = t.TypeOf<\n typeof ExistingClientCheckPhoneAndEmail\n>;\n\nexport const existingClientPrivateCheck = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"savingsAccount\", \"checkPrivateClient\"],\n inputCodec: t.void,\n outputCodec: ExistingClientPrivateCheck,\n errorCodec: GenericError,\n});\n\nexport const CheckExistingSavingsAccountError = t.union([\n AccCollectionErrorCode,\n GenericError,\n]);\nexport type CheckExistingSavingsAccountError = t.TypeOf<\n typeof CheckExistingSavingsAccountError\n>;\n\nexport const existingClientSavingsAccountCheck = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"savingsAccount\", \"checkExistingSavingsAccount\"],\n inputCodec: t.void,\n outputCodec: ExistingClientSavingsAccountCheck,\n errorCodec: GenericError,\n});\n\nexport const existingClientCurrentAccountsCheck = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"checkExistingCurrentAccounts\"],\n inputCodec: t.void,\n outputCodec: ExistingClientCurrentAccountsCheck,\n errorCodec: GenericError,\n});\n\nexport const checkExistingClientSavingsAccount = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"savingsAccount\", \"checkExistingSavingsAccount\"],\n inputCodec: t.void,\n outputCodec: ExistingClientSavingsAccountCheck,\n errorCodec: CheckExistingSavingsAccountError,\n});\napiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"checkExistingCurrentAccounts\"],\n inputCodec: t.void,\n outputCodec: ExistingClientCurrentAccountsCheck,\n errorCodec: CheckExistingSavingsAccountError,\n});\nexport const existingClientKYCCheck = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"checkKyc\"],\n inputCodec: t.void,\n outputCodec: ExistingClientCheckKyc,\n errorCodec: GenericError,\n});\n\nexport const existingClientMinimumAgeCheck = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"checkClientAge\"],\n inputCodec: t.void,\n outputCodec: ExistingClientCheckMinimumAge,\n errorCodec: GenericError,\n});\n\nexport const existingClientNotesCheck = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"checkNotes\"],\n inputCodec: t.void,\n outputCodec: ExistingClientCheckNotes,\n errorCodec: GenericError,\n});\n\nexport const existingClientPhoneAndEmailCheck = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"checkPhoneAndEmail\"],\n inputCodec: t.void,\n outputCodec: ExistingClientCheckPhoneAndEmail,\n errorCodec: GenericError,\n});\n\nexport const CheckPrimaryIdEnums = t.keyof({\n SUCCESS: true,\n KYC_FIXED_EZY: true,\n KYC_FIXED_EZY_UPDATE_CONTACTS: true,\n UPDATE_CONTACTS: true,\n KYC_ID_FIXED_EZY: true,\n KYC_ID_FIXED_EZY_UPDATE_CONTACTS: true,\n ID_FIXED_EZY: true,\n ID_FIXED_EZY_UPDATE_CONTACTS: true,\n UPDATE_ID: true,\n UPDATE_ID_CONTACTS: true,\n UPDATE_ID_MISSING_INFORMATION: true,\n UPDATE_ID_OTHER_THAN_AUTH_ID: true,\n CA_SYNCED_SONIA_UPDATE_ID: true,\n CF_SYNCED_SONIA_UPDATE_ID: true,\n CA_SYNCED_SONIA_SUCCESS_UPLOAD_ID: true,\n});\nexport type CheckPrimaryIdEnums = t.TypeOf;\n\nexport const existingClientPrimaryIdCheck = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"checkExpiredOrStolen\"],\n inputCodec: t.void,\n outputCodec: CheckPrimaryIdEnums,\n errorCodec: GenericError,\n});\n\nexport const ExistingClientVerificationsStatus = t.keyof({\n SUCCESS: true,\n FAIL: true,\n ERROR: true,\n});\nexport type ExistingClientVerificationsStatus = t.TypeOf<\n typeof ExistingClientVerificationsStatus\n>;\n\nexport const ExistingClientVerificationsEnum = t.keyof({\n MINIMUM_AGE: true,\n DIGITAL_CLIENT: true,\n SECURITY_PROFILE: true,\n CONTACT_DETAILS: true,\n PRIMARY_ID: true,\n BLOCKING_NOTES: true,\n KYC_HIGH_RISK: true,\n CLIENT_FROM_PRIVATE_SEGMENT: true,\n CLIENT_WITH_SAVING_ACCOUNT: true,\n});\nexport type ExistingClientVerificationsEnum = t.TypeOf<\n typeof ExistingClientVerificationsEnum\n>;\n\nconst ExistingClientVerificationsInput = t.type({\n requiredVerificationsList: t.array(ExistingClientVerificationsEnum),\n});\nexport type ExistingClientVerificationsInput = t.TypeOf<\n typeof ExistingClientVerificationsInput\n>;\n\nexport const ExistingClientVerificationsOutput = t.type({\n status: ExistingClientVerificationsStatus,\n failingVerificationsList: optionFromNullable(\n t.array(ExistingClientVerificationsEnum)\n ),\n});\nexport type ExistingClientVerificationsOutput = t.TypeOf<\n typeof ExistingClientVerificationsOutput\n>;\n\nexport const existingClientVerification = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"existingClientVerifications\"],\n inputCodec: ExistingClientVerificationsInput,\n outputCodec: ExistingClientVerificationsOutput,\n errorCodec: GenericError,\n});\n\nconst ExistingClientBiometricConsent = t.type({\n granted: t.boolean,\n});\n\nexport const checkBiometricConsent = apiCall({\n path: [\"packages\", \"uKonto\", \"checkBiometricConsent\"],\n inputCodec: t.void,\n inputEq: eq.fromEquals(constFalse),\n outputCodec: ExistingClientBiometricConsent,\n errorCodec: GenericError,\n});\n\nexport const emailNext = apiCall({\n path: [\"packages\", \"uKonto\", \"email\", \"next\"],\n inputCodec: t.void,\n inputEq: eq.fromEquals(constFalse),\n errorCodec: GenericError,\n});\n\nexport const setExistingCustomer = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"setExistingCustomer\"],\n inputCodec: t.void,\n outputCodec: t.unknown,\n});\n\nexport const CAFeSteps = t.keyof(\n {\n FINANCIAL_INTERMEDIATION: true,\n CONTACTS_COLLECTION: true,\n UPLOAD_ID: true,\n PERSONAL_DATA_CONFIRMATION: true,\n ADDITIONAL_ADDRESS: true,\n NON_RESIDENTS_ADDITIONAL_DOCUMENTS: true,\n PERMANENT_ADDRESS: true,\n PROOF_OF_ADDRESS: true,\n VIRTUAL_CARDS: true,\n ADDITIONAL_INFORMATION: true,\n PERSONAL_AND_TAX: true,\n TRANSACTIONS: true,\n MICROPAYMENT: true,\n CLIENT_CREDENTIALS: true,\n USERNAME: true,\n SIGNATURE: true,\n FINAL_PAGE: true,\n },\n \"CAFeSteps\"\n);\nexport type CAFeSteps = t.TypeOf;\n\nexport const SavingsAccountStartInput = t.type({\n feStep: CAFeSteps,\n});\n\nexport const startSavingsAccount = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"savingsAccount\", \"start\"],\n inputCodec: SavingsAccountStartInput,\n outputCodec: t.unknown,\n errorCodec: GenericError,\n});\n\nexport const SaveApplicationInput = t.type({\n feStep: optionFromNullable(CAFeSteps),\n status: optionFromNullable(ApplicationStatus),\n incomeInfo: optionFromNullable(IncomeInfo),\n transactionsInfo: optionFromNullable(TransactionsInfo),\n});\nexport type SaveApplicationInput = t.TypeOf;\n\nexport const saveWithParams = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"saveWithParams\"],\n inputCodec: SaveApplicationInput,\n outputCodec: t.unknown,\n});\n\nexport const savePhysicalCardValue = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\n \"packages\",\n \"uKonto\",\n \"saveRestore\",\n \"virtualCard\",\n \"savePhysicalCardValue\",\n ],\n inputCodec: PhysicalCardInput,\n outputCodec: t.unknown,\n});\n\nexport const saveApplication = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"save\"],\n inputCodec: t.void,\n outputCodec: t.unknown,\n});\n\nexport const deleteApplication = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"delete\"],\n inputCodec: t.void,\n outputCodec: t.unknown,\n});\n\nexport const rejectApplication = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"reject\"],\n inputCodec: t.void,\n outputCodec: t.unknown,\n});\n\nexport const closeApplication = apiCall({\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"close\"],\n inputCodec: t.void,\n inputEq: eq.fromEquals(constFalse),\n});\n\nexport const DeleteApplicationByIdInput = t.type({\n processId: t.string,\n});\nexport type DeleteApplicationByIdInput = t.TypeOf<\n typeof DeleteApplicationByIdInput\n>;\n\nexport const deleteApplicationById = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"deleteById\"],\n inputCodec: DeleteApplicationByIdInput,\n outputCodec: t.unknown,\n});\n\nexport const deleteApplicationByIdWithRestore = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"deleteByIdWithRestore\"],\n inputCodec: DeleteApplicationByIdInput,\n outputCodec: t.unknown,\n});\n\nexport const DeleteCFApplicationByIdInput = t.type({\n applicationId: t.string,\n});\nexport type DeleteCFApplicationByIdInput = t.TypeOf<\n typeof DeleteCFApplicationByIdInput\n>;\n\nexport const deleteExistingCFApplication = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"deleteExistingCFApplication\"],\n inputCodec: DeleteCFApplicationByIdInput,\n outputCodec: t.unknown,\n});\n\nexport const RestoreApplicationInput = t.type({\n applicationId: t.string,\n notStorableResume: t.boolean,\n});\nexport type RestoreApplicationInput = t.TypeOf;\n\nexport const ContactsCollectionData = t.type({\n phoneNumber: t.string,\n emailAddress: t.string,\n promoCode: optionFromNullable(t.string),\n});\nexport type ContactsCollectionData = t.TypeOf;\n\nexport const AccountPackageType = t.keyof({\n BASIC: true,\n MIDDLE: true,\n UPPER: true,\n SAVING: true,\n});\n\nexport type AccountPackageType = t.TypeOf;\n\nconst Profile = t.type({\n alias: optionFromUndefined(t.string),\n pin: optionFromUndefined(t.string),\n password: optionFromUndefined(t.string),\n});\ntype Profile = t.TypeOf;\n\nconst ProofOfAddressDocs = t.type({\n first: optionFromUndefined(ScannedDocument),\n second: optionFromUndefined(ScannedDocument),\n});\ntype ProofOfAddressDocs = t.TypeOf;\n\nexport const RestoreApplicationData = t.type({\n feStep: CAFeSteps,\n packageType: AccountPackageType,\n requestDate: t.number,\n applicationId: t.string,\n existingClient: t.boolean,\n extractDataResult: optionFromNullable(ClientDataOutput),\n contactsCollectionData: optionFromNullable(ContactsCollectionData),\n documentsAlreadyUploaded: t.boolean,\n biometricConsent: optionFromNullable(t.boolean),\n restartDocumentsUpload: t.boolean,\n profile: optionFromNullable(Profile),\n overdraftRequested: optionFromNullable(t.boolean),\n srbiConsent: optionFromNullable(t.boolean),\n nrkiConsent: optionFromNullable(t.boolean),\n incomeInfo: optionFromNullable(IncomeInfo),\n transactionsInfo: optionFromNullable(TransactionsInfo),\n currentApplicationId: optionFromNullable(t.string),\n reservedAccountNumber: optionFromNullable(t.string),\n clientNumber: optionFromNullable(t.string),\n foreignClient: t.boolean,\n permanentAddress: optionFromUndefined(Address),\n proofOfAddress: optionFromUndefined(PersonalDocumentProofOfAddress),\n proofOfAddressDocs: optionFromUndefined(ProofOfAddressDocs),\n countryDocSelection: optionFromUndefined(CountryDocSelection),\n residency: optionFromUndefined(t.boolean),\n hasAdditionalDocuments: optionFromUndefined(t.boolean),\n physicalCardChecked: optionFromNullable(t.boolean),\n});\nexport type RestoreApplicationData = t.TypeOf;\n\nexport const ParallelFlowParameters = t.type({\n hasCFFlowInProgress: t.boolean,\n hasCFFlowSentToBO: t.boolean,\n hasCAFlowSentToBO: t.boolean,\n date: optionFromUndefined(t.number),\n existingApplicationId: optionFromUndefined(t.string),\n});\nexport type ParallelFlowParameters = t.TypeOf;\n\nexport const RestoreApplicationOutput = t.type({\n restoreApplicationData: optionFromNullable(RestoreApplicationData),\n parallelFlow: optionFromUndefined(ParallelFlowParameters),\n cardProviderChange: optionFromUndefined(t.boolean),\n});\nexport type RestoreApplicationOutput = t.TypeOf<\n typeof RestoreApplicationOutput\n>;\n\nexport const RestoreErrorKeys = t.keyof(\n {\n TOO_EARLY: true,\n },\n \"RestoreErrorKeys\"\n);\nexport type RestoreErrorKeys = t.TypeOf;\n\nexport const RestoreError = t.type(\n {\n status: RestoreErrorKeys,\n },\n \"RestoreError\"\n);\nexport type RestoreError = t.TypeOf;\n\nexport const restoreApplication = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"restore\"],\n inputCodec: RestoreApplicationInput,\n outputCodec: RestoreApplicationOutput,\n errorCodec: RestoreError,\n});\n\nexport const restorePersonalData = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"restorePersonalData\"],\n inputCodec: t.void,\n outputCodec: ClientDataOutput,\n});\n\nexport const GetNewestInProgressInput = t.type({\n productType: ApplicationProductType,\n});\nexport type GetNewestInProgressInput = t.TypeOf<\n typeof GetNewestInProgressInput\n>;\n\nexport const getNewestInProgress = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"getNewestInProgress\"],\n inputCodec: GetNewestInProgressInput,\n outputCodec: RestoreApplicationOutput,\n});\n\nexport const getNewestInProgressExcludeCurrentApp = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\n \"packages\",\n \"uKonto\",\n \"saveRestore\",\n \"getNewestInProgressExcludeCurrentApp\",\n ],\n inputCodec: GetNewestInProgressInput,\n outputCodec: RestoreApplicationOutput,\n});\n\nexport const getNewestInProgressByBirthNumber = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\n \"packages\",\n \"uKonto\",\n \"saveRestore\",\n \"getNewestInProgressByBirthNumber\",\n ],\n inputCodec: GetNewestInProgressInput,\n outputCodec: RestoreApplicationOutput,\n});\n\nexport const GetCurrentPackageTypeOutput = t.type({\n packageType: optionFromNullable(UKontoPackageType),\n});\nexport type GetCurrentPackageTypeOutput = t.TypeOf<\n typeof GetCurrentPackageTypeOutput\n>;\n\nexport const getCurrentPackageType = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"noauth\", \"getPackageType\"],\n inputCodec: t.void,\n outputCodec: GetCurrentPackageTypeOutput,\n});\n\nexport const SaveProfileInput = t.type({\n userId: optionFromNullable(NonEmptyString),\n securityPin: optionFromNullable(NonEmptyString),\n});\nexport type SaveProfileInput = t.TypeOf;\n\nexport const saveProfile = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"saveProfile\"],\n inputCodec: SaveProfileInput,\n outputCodec: t.unknown,\n});\n\nexport const CheckApplicationOutput = t.type({\n productType: optionFromNullable(ApplicationProductType),\n feStep: optionFromNullable(CAFeSteps),\n processId: optionFromNullable(t.string),\n});\nexport type CheckApplicationOutput = t.TypeOf;\n\nexport const checkApplication = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"checkApplication\"],\n inputCodec: t.void,\n outputCodec: CheckApplicationOutput,\n});\n\nexport const resetUpload = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"identification\", \"resetUpload\"],\n inputCodec: t.void,\n outputCodec: t.unknown,\n});\n\nconst ApplicationLockedInput = t.type(\n {\n applicationId: t.string,\n },\n \"ApplicationLockedInput\"\n);\n\nexport const ApplicationLockedOutput = t.type({\n locked: t.boolean,\n});\nexport type ApplicationLockedOutput = t.TypeOf;\n\nexport const isApplicationLocked = apiCall({\n path: [\"packages\", \"uKonto\", \"saveRestore\", \"isApplicationLocked\"],\n inputCodec: ApplicationLockedInput,\n inputEq: eq.getStructEq({ applicationId: eq.eqString }),\n outputCodec: ApplicationLockedOutput,\n});\n\nconst SignatureType = t.keyof({\n OtpSms: true,\n Click2Sign: true,\n});\n\nexport type SignatureType = t.TypeOf;\n\nexport const GetSignatureTypeOutput = t.type({\n signatureType: optionFromNullable(SignatureType),\n});\nexport type GetSignatureTypeOutput = t.TypeOf;\n\nexport const getSignatureType = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"identification\", \"getSignatureType\"],\n inputCodec: t.void,\n outputCodec: GetSignatureTypeOutput,\n});\n\nexport const GetForeignClientOutput = t.union([\n t.type({\n fromEu: t.boolean,\n residency: t.boolean,\n citizenship: NonEmptyString,\n foreign: t.literal(true),\n }),\n t.type({\n foreign: t.literal(false),\n }),\n]);\nexport type GetForeignClientOutput = t.TypeOf;\nexport const getForeignClient = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"foreign\", \"client\"],\n inputCodec: t.void,\n outputCodec: GetForeignClientOutput,\n});\n\nexport const ContractType = t.keyof({\n FRAMEWORK_AGREEMENT: true,\n PRODUCT_CONTRACT: true,\n});\n\nexport type ContractType = t.TypeOf;\n\nexport const GetContentOutput = t.type({\n pdfContent: FileContent,\n pdfName: LocalizedString,\n});\n\nexport type GetContentOutput = t.TypeOf;\n\nconst GetContentInput = t.type({\n contractType: ContractType,\n});\n\nexport type GetContentInput = t.TypeOf;\n\nexport const getForeignContent = apiCall({\n inputCodec: GetContentInput,\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"foreign\", \"getContent\"],\n outputCodec: GetContentOutput,\n});\n\nexport const PermanentAddressSubmitInput = withCoApplicant(\n t.type(\n {\n permanentAddress: AddressWrite,\n },\n \"PermanentAddressSubmitInput\"\n )\n);\nexport interface PermanentAddressSubmitInput\n extends t.TypeOf {}\nexport const eqPermanentAddressSubmitInput: Eq = eqWithCoApplicant(\n eq.getStructEq({\n permanentAddress: eqAddressWrite,\n })\n);\nexport const permanentAddressSubmit = apiCall({\n inputEq: eqPermanentAddressSubmitInput,\n path: [\"packages\", \"uKonto\", \"identification\", \"permanentAddress\", \"submit\"],\n inputCodec: PermanentAddressSubmitInput,\n});\n\nexport const ProofOfAddressSubmitInput = withCoApplicant(\n t.type(\n {\n proofOfAddress: PersonalDocumentProofOfAddress,\n },\n \"ProofOfAddressSubmitInput\"\n )\n);\nexport interface ProofOfAddressSubmitInput\n extends t.TypeOf {}\nconst eqProofOfAddressSubmitInput: Eq = eqWithCoApplicant(\n eq.getStructEq({\n proofOfAddress: eqPersonalDocumentOfAddress,\n })\n);\n\nexport const ProofOfAddressSubmitError = t.strict({\n error: LocalizedString,\n});\nexport type ProofOfAddressSubmitError = t.TypeOf<\n typeof ProofOfAddressSubmitError\n>;\nexport const proofOfAddressSubmit = apiCall({\n path: [\"packages\", \"uKonto\", \"identification\", \"proofOfAddress\", \"submit\"],\n inputCodec: ProofOfAddressSubmitInput,\n inputEq: eqProofOfAddressSubmitInput,\n outputCodec: t.unknown,\n errorCodec: ProofOfAddressSubmitError,\n});\n\nconst CountryDocSelectionInput = t.type(\n {\n country: optionFromUndefined(Country),\n foreignDocumentType: optionFromUndefined(ForeignDocumentType),\n },\n \"CountryDocSelection\"\n);\n\ntype CountryDocSelectionInput = t.TypeOf;\n\nexport const saveCountryDocSelection = apiCall({\n path: [\"packages\", \"uKonto\", \"identification\", \"saveCountryDocSelection\"],\n inputCodec: CountryDocSelectionInput,\n inputEq: eq.fromEquals(constFalse),\n outputCodec: t.unknown,\n});\n\nexport const AdditionalRequiredDocument = t.type({\n documentKey: optionFromNullable(NonResidentsAdditionalDocumentsType),\n documentKeys: optionFromNullable(\n t.array(NonResidentsAdditionalDocumentsType)\n ),\n uploaded: t.boolean,\n});\n\nexport type AdditionalRequiredDocument = t.TypeOf<\n typeof AdditionalRequiredDocument\n>;\n\nexport const GetAdditionalRequiredDocumentsInput = t.type({\n requiredKeys: optionFromNullable(\n t.array(NonResidentsAdditionalDocumentsType)\n ),\n});\n\nexport type GetAdditionalRequiredDocumentsInput = t.TypeOf<\n typeof GetAdditionalRequiredDocumentsInput\n>;\n\nexport const GetAdditionalRequiredDocumentsOutput = t.type({\n additionalRequiredDocuments: optionFromUndefined(\n t.array(AdditionalRequiredDocument)\n ),\n});\n\nexport type GetAdditionalRequiredDocumentsOutput = t.TypeOf<\n typeof GetAdditionalRequiredDocumentsOutput\n>;\n\nconst eqAdditionalRequiredDocumentsInput: Eq = eq.getStructEq(\n {\n requiredKeys: option.getEq(eq.eqStrict),\n }\n);\n\nexport const getAdditionalRequiredDocuments = apiCall({\n inputCodec: GetAdditionalRequiredDocumentsInput,\n inputEq: eqAdditionalRequiredDocumentsInput,\n path: [\n \"packages\",\n \"uKonto\",\n \"foreign\",\n \"nonresident\",\n \"additionalRequiredDocuments\",\n ],\n outputCodec: GetAdditionalRequiredDocumentsOutput,\n});\n\nexport const CheckAllDocsUploadedInput = t.type({\n requiredKeys: t.array(NonResidentsAdditionalDocumentsType),\n});\n\nexport type CheckAllDocsUploadedInput = t.TypeOf<\n typeof CheckAllDocsUploadedInput\n>;\n\nexport const CheckAllDocsUploadedOutput = t.type({\n allDocsUploaded: t.boolean,\n});\n\nexport type CheckAllDocsUploadedOutput = t.TypeOf<\n typeof CheckAllDocsUploadedOutput\n>;\n\nconst eqCheckAllDocsUploadedInput: Eq = eq.getStructEq(\n {\n requiredKeys: eq.eqStrict,\n }\n);\n\nexport const checkAllDocsUploaded = apiCall({\n inputCodec: CheckAllDocsUploadedInput,\n inputEq: eqCheckAllDocsUploadedInput,\n path: [\n \"packages\",\n \"uKonto\",\n \"foreign\",\n \"nonresident\",\n \"checkAllDocsUploaded\",\n ],\n outputCodec: CheckAllDocsUploadedOutput,\n});\n\nexport const getPackageType = apiCall({\n path: [\"packages\", \"uKonto\", \"noauth\", \"getPackageType\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n outputCodec: InitVirtualCardResponse,\n});\n\nexport const transitionToMasterCard = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"packages\", \"uKonto\", \"transitionToMasterCard\"],\n inputCodec: t.void,\n outputCodec: t.unknown,\n});\n"],"sourceRoot":""}