{"version":3,"sources":["BranchExperience/sharedReducerDomain.ts","Common/MainContent/Stepper.treat.ts","Common/FixAndroidScrollInput/FixAndroidScrollInput.tsx","Common/FixAndroidScrollInput/useFixAndroidScrollInput.ts","Common/MenuDropdown/MenuDropdown.treat.ts","Common/MainContent/MainLayout.treat.ts","Common/NextButton.tsx","Common/Dialogs/FilePDFDialog/FilePDFDialog.tsx","AppProvider.tsx","Common/CompanyField/api.ts","Common/MainContent/Logo.tsx","Common/MainContent/LogoOpen.tsx","Common/MainContent/grid/Container.treat.ts","Common/MainContent/HeaderCZ.treat.ts","AnonymousAuthProvider.tsx","Common/MainLayout/MainLayout.tsx","Common/CompanyField/utils.tsx","ClientProfile/domain.ts","Common/EnvBadge/EnvBadge.tsx","Common/BasicFullScreenLoader.tsx","Common/MainContent/headerActionIcon.ts","AppContext.tsx","BuildConfigContext.ts","Common/Dialogs/IFrameDialog.treat.ts","Common/MenuDropdown/Dropdown.treat.ts","Common/MainContent/Footer.treat.ts","Common/MainContent/grid/Container.tsx","Common/IdleGuard/useCountdown.ts","Common/EnvBadge/logger.ts","Common/CompanyField/CompanyField.tsx","Common/MainContent/HeaderTouchScreen.treat.ts","Common/MainContent/Footer.tsx","ClientProfile/api.ts","ClientProfile/usePropagateHasChanged.tsx","Common/HelplineSupportDocumentId/HelplineSupportDocumentId.tsx","Common/MainContent/HeaderCZ.tsx","Common/CookiesConsent/CookiesConsent.tsx","Common/IdleGuard/IdleGuard.tsx","Common/MainContent/grid/ContainerRowC.tsx","Common/MainContent/MainLayoutCZ.tsx","Common/Dialogs/VirtualCardsDialog/state.ts","Common/Dialogs/DocumentReviewDialog/state.ts","Common/EnvBadge/EnvBadge.treat.ts","Common/EnvBadge/EnvInfoDialog.tsx","BuildConfigProvider.tsx","Common/CompanyField/domain.ts","Common/Dialogs/IFrameDialog.tsx","BranchExperience/useSharedReducer.ts","Common/MenuDropdown/MenuDropdown.tsx","Common/MainContent/HeaderMobile.tsx","Common/MainContent/HeaderMobile.treat.ts","Common/MainContent/HeaderTouchScreen.tsx","Common/MainContent/grid/ContainerRowA.tsx","Common/MainContent/headerHeight.ts","Common/MainContent/grid/ContainerRowB.tsx","Common/MainContent/Stepper.tsx","Common/MainContent/Zipper.ts","Common/MainContent/stepSize.ts","Common/IdleGuard/useIdleCountdown.ts","Common/DocumentViewer/DocumentViewer.tsx","Common/Dialogs/FileImageDialog.tsx","ClientProfile/utils.ts","Common/InfoTooltip/InfoTooltip.tsx","Common/DropdownField/DropdownField.tsx","Common/Dialogs/DocumentUploadDialog/AddDocumentNote.tsx","Common/Dialogs/DocumentUploadDialog/DocumentUploadErrorBanner.tsx","Common/Dialogs/DocumentUploadDialog/DocumentUploadDialog.tsx","ClientProfile/ContactChange.tsx","Common/Dialogs/SmartKeyActivationDialog.tsx","Common/CountryFlag/CountryFlag.tsx","Common/Dialogs/DocumentReviewDialog/DocumentReviewDialogChild.tsx","BankerLanding/api.ts","Common/Dialogs/DocumentUploadDialog/utils.ts","Common/MonthYearField/MonthYearField.tsx","Common/Dialogs/ApplicationLockedPopup.tsx","BankerLanding/domain.ts","Common/KOError/KOError.tsx","BranchExperience/BranchExperienceParentSwitch.tsx","Common/IframePortal/IframePortal.tsx","Common/IframePortal/IframePortal.treat.ts","Common/MainContent/index.ts","Common/Dialogs/DocumentViewDialog/DocumentViewDialog.tsx","BranchExperience/BranchExperienceContext.tsx","Common/AuthMethodCalculateBySignatureType.tsx","Common/MaritalStatusDropdown/MaritalStatusDropdown.tsx","Common/BackButton/BackButton.tsx","AuthenticationContext.tsx","Common/Dialogs/VirtualCardsDialog/VirtualCardsDialogChild.tsx","Common/MainContent/MainContent.tsx","Common/Dialogs/FilePDFDialog/FilePDFDialog.treat.ts","Common/DocumentViewer/DocumentViewer.treat.ts","Common/CountryFlag/cz.svg","Common/CountryFlag/sk.svg","Common/CountryFlag/CountryFlag.treat.ts","Common/Dialogs/FileImageDialog.treat.ts","Common/InfoTooltip/InfoTooltip.treat.ts"],"names":["ReducerId","t","_","InitRequestMessage","type","reducerId","InitResponseMessage","stateCodec","initialState","InitializedMessage","DispatchedActionMessage","actionCodec","action","MessageToParent","MessageToChild","dispatchedActionMessage","id","stepper","step","stepIndicator","stepIndicatorVariant","done","active","next","stepVariant","stepLabel","stepLabelCursor","clickable","nonClickable","stepLabelColor","FixAndroidScrollInput","useFixAndroidScrollInput","isAndroid","useDeviceUA","height","useWindowSize","useEffect","pipe","document","activeElement","option","fromNullable","map","e","HTMLInputElement","HTMLTextAreaElement","scrollIntoView","block","menuWrapper","menu","heading","openMenuIcon","containerRowB","mobileContainer","mobileContent","desktopContent","macroStepperContainer","touchScreenContainer","NextButton","props","formatMessage","useFormatMessage","variant","labels","normal","success","error","loading","size","data-test-id","disabled","FilePDFDialog","isBranchExperienceTouchScreen","useIsTouchScreen","isMobile","useIsMobileLayout","file","useRemoteData","useMemo","heightLimits","useDialogDimensionLimits","maxHeight","hasReadAll","setHasReadAll","useState","mustReadAllDocuments","actions","remoteData","constant","push","label","icon","DownloadIcon","downloadFile","URL","createObjectURL","convertToBlob","content","getDownloadUrl","filename","onConfirm","slice","dialogContent","subtitle","hAlignContent","marginBottom","weight","vAlignContent","className","classes","column","grow","style","minHeight","spaceUnit","name","DocumentType","Pdf","data","onLastPageReach","infoBannerContent","units","bottom","none","onDismiss","title","width","errorBannerContent","isForeignClient","docType","fold","constFalse","isFrameWorkAgreement","isProductContract","FileIcon","onForeignDocumentOpen","constVoid","some","getPersistedLocale","either","tryCatch","localStorage","getItem","toError","chainW","SupportedLocales","decode","fromEither","constLoading","appFailure","msg","children","unsafeLocalizedString","AppProvider","apiEndpoint","useAPIEndpoint","taskEither","fetch","replace","method","headers","Accept","then","body","json","chainEitherKW","Tenant","getTenant","tenant","TenantAppProvider","locale","setLocale","alt","localeFromUrl","getOrElse","forceLocalLang","defaultLocaleFromTenant","defaultBrowserLocale","forceUpdateRemoteConfig","setForceUpdateRemoteConfig","updateRemoteConfig","useCallback","n","remoteConfigOverride","setRemoteConfigOverride","remoteConfig","importConfigurations","forceUpdateTranslations","setForceUpdateTranslations","updateTranslations","buildVersion","getCurrentBuildVersion","console","log","bimap","text","appContext","sequenceS","config","apiParameters","channel","language","isSome","setItem","value","removeItem","setPersistedLocale","moment","lang","Promise","resolve","messages","importMessages","mapLeft","importTranslations","dismissedHostMessage","setDismissedHostMessage","canShowHostDialog","env","dbnQaOrProd","window","location","hostname","includes","Provider","authInfo","potentialClientToken","of","Loading","environment","WarningIcon","CompanySuggestionsInput","eqCompanySuggestionsInput","eq","getStructEq","eqString","CompanySuggestionsOutput","CompanySuggestion","companySuggestion","apiCall","inputEq","path","inputCodec","outputCodec","autocompleteInputStatusFromRemoteData","query","suggestionsMap","status","suggestions","isLoading","Logo","viewBox","stroke","strokeWidth","fill","fillRule","transform","d","LogoOpen","y","x","xlinkHref","container","withStepper","withoutStepper","topLeftCorner","logoArea","logoAreaClickable","productArea","centerContentArea","exit","AnonymousAuth","useQuery","api","useCommand","showRefreshPageModal","setShowRefreshPageModal","constNull","flowId","onLogout","cta","reload","AnonymousAuthProvider","MainLayout","otherProps","isTouchScreen","isSBChannel","useIsSBChannel","footer","fromPredicate","hideHeaderOnMobile","useCompanyFields","activeQueryTerms","useRef","ico","Name","onValidationChange","for","queryString","current","onChange","ICO","onCompanyIcoValidationChange","removeDiacritics","normalize","useCompanyNameAndIcoValidators","fetchCompanySuggestions","companyApi","skipTracking","validator","key","errorMessage","validators","validateIfNonEmpty","toLowerCase","filterOrElseW","array","suggestion","toString","fieldIssues","errors","validName","validIco","UserStatus","A","B","C","L","HousingType","Owner","Renter","Other","Parents","Cooperative","CarOwnershipType","DONT_OWN","OWN","OWN_WITH_LEASING_OR_LOAN","COMPANY_CAR","SectionStatus","OK","NOK","SoniaStatus","updated","withFallback","updateDate","optionFromUndefined","DateFromSQLString","PersonalProfilePersonalDocument","PersonalDocumentOCR","documentType","issuerTown","issuerCountry","expired","stolen","recalled","formStateFromPersonalProfilePersonalDocument","idNumber","dateOfIssuing","validableDate","fromDate","validUntil","authority","issuer","authorityMandatory","issuerMandatory","ContactStatus","VERIFIED","NOTVERIFIED","CORRUPTED","EXPIRED","MISSING","ClientData","personalData","PersonalDataOCR","contactData","phoneNumber","optionFromNullable","NonEmptyString","phoneNumberStatus","email","emailStatus","subSectionStatus","idDocuments","primaryDocument","secondaryDocument","soniaStatus","addresses","permanentAddress","AddressOCR","contactAddress","currentAddress","otherDocumentUsedForAuth","sectionStatus","IncomeSourceExtended","IncomeSource","SourceOfIncomeId","AdditionalData","monthlyIncome","NonNegative","sourceOfIncome","companyName","companyIco","housingType","carOwnership","AdditionalInformation","additionalData","marketingConsent","marketingConsentValue","BankIdStatus","SecurityProfile","credentialsAndStatus","userId","hasPasswordForCommunication","hasSecurityPin","biometricConsent","biometricConsentValue","hasAssecoMtoken","bankIdStatus","PersonalProfile","clientData","additionalInformation","securityProfile","clientNumber","nuntioUrl","MiFID","validTo","progress","total","completed","OtherDocumentType","PERMANENT_RESIDENCE_PERMIT","TEMPORARY_RESIDENCE_PERMIT","LONG_TERM_RESIDENCE_PERMIT","CONFIRMATION_FROM_MATRIKA","BIRTH_CERTIFICATE","SCANNED_ID_CARD","CFExistingErrorTypeKeys","CheckPrimaryIdEnumsCF","invalidAgeCF","foreignClientCF","hasBlockingNotesCF","highRiskClientCF","hasNotPasswordForCommunicationCF","privateClient","phoneNumberNotVerifiedCF","phoneNumberMissingCF","NewUkontoErrorTypeKeys","GenericError","CheckPrimaryIdEnums","invalidAge","hasBlockingNotes","highRiskClient","hasNotPasswordForCommunication","phoneNumberNotVerified","phoneNumberMissing","hasSavingsAccount","hasCurrentAccounts","nonDigitalClient","nonDigitalClientSA","isTL","match","preapprovedLimits","TL","producttype","isCL","CL","foldPreapprovedLimits","matches","whenTl","whenCl","whenEmpty","foldCLPreapprovedLimits","whenNotCL","NewMortgageErrorTypeKeys","NewMortgageCheckClientStatus","EnvBadge","useAppContext","useAuthenticationContext","infoVisible","setInfoVisible","info","useLogger","useMessageEventLogs","windowMessageEventsLogs","onClick","onContextMenu","preventDefault","params","URLSearchParams","search","has","delete","set","newUrl","protocol","host","pathname","history","replaceState","toggleTranslations","alert","BasicFullScreenLoader","position","top","left","right","onExit","tag","onMenu","actionIcon","AppContext","createContext","BuildConfigContext","iframeStyle","iframeStyleMobile","contentMobile","optionSelected","no","footerBody","Container","hasStepper","stepperWrapperRef","stepperContainerRef","stepperProps","ref","leftPlaceholderWidth","boolean","stepSize","stepsNo","steps","lefts","length","rights","activeStepElement","querySelector","buttonHeight","buttonMargins","buttonOffset","getBoundingClientRect","offset","stepperWrapperHeight","activeElementTop","activeStepMiddleDelta","Math","ceil","scrollTop","newTop","shrink","background","contentBackground","useCountdown","durationMs","onCountdownEnd","stopped","end","Date","now","displayEnd","setDisplayEnd","updateState","forceUpdate","timer","setTimeout","clearTimeout","difference","floor","max","newEnd","logAPI","logs","fromEquals","enabled","interval","setInterval","_logs","eShopLogs","splice","clearInterval","addEventListener","message","timeStamp","CompanyField","lastSelectedTerm","setLastSelectedTerm","termEquals","previousTerm","currentTerm","term","queryTerms","useDebounceState","undefined","companySuggestions","showNativeTooltip","suggestionsStatus","onSelectSuggestion","s","select","loadingMessage","header","Footer","isMobileLayout","component","fluid","substring","MarketingConsentUpdateInput","eqMarketingConsentUpdateInput","eqBoolean","CheckStatus","PENDING","DONE","ERROR","UpdateEmailInput","emailAddress","UpdateUserIdInput","newAlias","UpdatePasswordForCommunicationInput","passwordForCommunication","UpdateUserStatusInput","newStatus","UpdateBiometricConsentInput","UpdateAdditionalInformationInput","sourceOfIncomeLabelNew","LocalizedString","sourceOfIncomeLabelOld","housingTypeLabelNew","housingTypeLabelOld","carOwnershipLabelNew","carOwnershipLabelOld","ExistingClientPrivateCheck","checkPrivateClient","errorCodec","personalProfileRead","constTrue","getPersonalProfile","updateMarketingConsent","updatePhoneNumber","OtpGenerationInput","LinkGenerationOutput","attemptsLeft","NonNegativeInteger","updateEmailAndLinkGenerationNow","LinkGenerationError","updateEmailAndLinkGenerationLater","generateOTP","OTPGenerationOutput","OtpGenerationError","verifyOTP","OtpVerifyInput","OtpVerifyError","verifyEsawOTP","updateUserId","updatePasswordForCommunication","updateUserStatus","updateBiometricConsent","results","createAdditionalAddress","IDAddressSubmitInput","eqIDAddressSubmitInput","savePermanentAddress","PermanentAddressSubmitInput","eqPermanentAddressSubmitInput","updateAdditionalAddress","RemoveAdditionalAddressInput","addressType","AddressType","eqAdditionalAddressInput","eqAddressType","removeAdditionalAddress","updateAdditionalInformation","resetSecurityPin","uploadPrimaryIdDocument","uploadSecondaryIdDocument","UploadAdditionalDocumentInput","fileContent","CompressedFileContent","uploadAdditionalDocument","ClientProfileSectionName","PhoneNumber","EmailAddress","PermanentAddress","CurrentAdditionAddress","ContactAdditionalAddress","BiometricConsent","UserId","PasswordForCommunication","MarketingConsent","SecondaryIdDocument","PrimaryIdDocument","AdditionalDocuments","SecurityPIN","SaveProcessInfoInput","sectionName","saveProcessInfo","emailVerification","withCoApplicant","EmailVerificationOutput","clientLogout","usePropagateHasChanged","initialValue","fieldProps","equality","onHasChanged","callback","equals","HelpLineSupportDocumentId","align","link","HeaderCZ","isHeader","leftColor","palette","white","centerColor","red800","rightColor","red900","leftContent","cx","onLogoClick","toUndefined","centerContent","rightContent","color","iconAction","menuOptions","dropdownHeading","options","toNullable","CookiesConsent","setStatus","getPersistedCookieConsent","url","cookiesConsentInfoUrl","infoText","buttonLink","button","setPersistedCookieConsent","IdleStatusProvider","countdown","showWarning","dismissWarning","IdleGuard","useIdleCountdownHook","minutesBeforeIdle","minutesWarningDuration","onIdle","renderWarning","useIdleCountdown","useContext","ContainerRowC","foldBreakpoints","useBreakpoints","paddingX","ifDesktopWide","ifDesktop","ifTablet","ifMobileLandscape","ifMobilePortrait","maxWidth","containerRowMaxWidth","margin","justifyContent","paddingLeft","paddingRight","MainLayoutCZ","desktopLayout","onStepClick","isStepClickable","backgroundImageURL","imageUrl","mobileLayout","zIndex","hasSidebar","State","open","OpenAction","CloseAction","onOpenAction","onCloseAction","Action","reducerConfig","sharedReducerConfig","state","envBadge","EnvInfoDialog","getApplicationId","copyToClipboard","useCopyToClipboard","appId","setAppId","InfoIcon","applicationId","BuildConfigProvider","apiPort","IFrameDialog","src","frameBorder","contentClassName","reducer","reducerWithInit","baseReducer","isInitAction","payload","currentState","useSharedDispatch","localDispatch","postMessage","useBranchExperienceContext","encode","useParentSharedReducer","internalReducer","dispatch","useReducer","sharedDispatch","isInitializing","setIsInitializing","useEvent","useChildSharedReducer","isNone","useInterval","MenuDropdown","menuRef","setOpen","useClickAway","optionClass","headingClass","HeaderMobileCZ","HeaderTouchScreen","backgroundColor","SideContent","paddingSide","sidePaddingX","paddingStyle","CenterContent","basis","ContainerRowA","headerHeight","ContainerRowB","backgroundImage","Step","data-step-state","number","Stepper","forwardRef","mapWithIndexAndOrdering","ordering","index","zipper","f","fa","l","i","a","sign","idleTime","showWarningBefore","idle","useIdle","setShowWarning","resetTimer","Jpeg","Png","Tiff","Docx","Xlsx","Msg","Msg2","DocumentViewer","fallback","onSupportDetected","isTypeSupported","setIsTypeSupported","mimeType","PdfViewer","onError","ImageViewer","onLoad","pdfLoading","setPdfLoading","hasError","setHasError","setkey","random","DocumentLoading","DocumentError","onPdfLoaded","numPages","onContentLoaded","onPdfError","workerSrc","Styles","dataUrlFor","FileImageDialog","foldCitizenship","citizenship","CZE","SVK","OTHER","sectionStatusToPanelStatus","foldDocumentPurpose","documentPurpose","onPrimary","onSecondary","missingFieldsToTitleLocaleKey","missingFields","missingFieldsToMessageLocaleKey","missingFieldsToConfirmLocaleKey","foldIssue","issue","selectDocumentIssue","primaryIssue","secondaryIssue","InfoTooltip","inline","getOrElseW","DropdownField","cancelLabel","noResultsLabel","clearSelectionLabel","filterInputPlaceholder","ctaLabel","isMulti","AddDocumentNote","noteUploadErrors","setNoteUploadErrors","maxLength","useValidators","handleSubmit","setValues","useForm","initialValues","note","fieldValidators","validateIfDefined","inSequence","nonBlankString","notRegex","maxLengthNote","onSubmit","fromIO","chain","onDocumentConfirm","err","goToUploadedSuccessfully","cancelProcess","SuccessNoCircleIcon","noteStr","rows","autogrow","isNoteMandatory","placeholder","uploadErrors","fileSizeMax","DocumentUploadErrorBanner","types","fileTypesExts","filter","elem","self","indexOf","join","DocumentUpload","setUploadErrors","documentName","isProofOfIncome","accept","acceptableFileTypes","uploaderLabel","orLabel","buttonLabel","onSelected","goToDocumentUploading","onDocumentUpload","goBackWithError","goToDocumentNote","CancelProcessDialog","goBack","iconColor","CloseIcon","DocumentUploadingDialog","DocumentUploadedSuccessfully","BadgeIcon","UploadModeDialog","isRemote","useIsRemoteChannel","recipients","mobileRecipients","coApplicant","linkPurpose","translationPrefix","getTranslationProductPrefix","productType","mode","setMode","uploadMode","chooseFilesystem","chooseMobile","submit","optionKey","identity","isOptionDisabled","opt","Client","Banker","renderOption","renderOptionChildren","flow","renderOptionIcon","issuesType","KOGoToBranch","DocumentUploadDialog","initialStep","mobileUploadEnabled","setStep","isMainApplicant","selectedApplicant","docTypeId","appElementId","applicationElementID","clientId","clientID","docTypeName","documentTypeName","section","translationCode","onSelect","recipient","onUploadAgain","onMockScannerUpload","onSelectRecipient","onUploadFromSameDevice","mobileRecipientType","flowType","documentIdentificationFlow","onMaxAttemptsReached","onUploadCompleted","task","skipNotes","uploadBySmsLink","fromStage","shouldWaitForSealing","onDocumentCancel","parameters","ContactChange","useScrollTopOnChange","startUpdateEmailProcess","phoneAndEmailVerificationApi","generateLinkNow","generateLinkLater","updatePhoneNumberAndGenerateOTP","skipVerification","useIsInPersonChannel","AngleLeftIcon","contactType","description","initialPhoneNumber","operationType","contactDetailsDuplicityCheck","canEdit","onPhoneVerified","onComplete","layout","onMaxNumberChangesReached","initialEmail","initialPromoCode","onRequestLink","processName","handleRequestLink","verificationAPI","SmartKeyActivationDialog","paragraph","countryIcons","CZ","czFlag","SK","skFlag","CountryFlag","DocumentReviewDialogChild","BankerActionsOutput","bankerActions","bankerDetails","BankerDetails","ApplicationAuthorizationInput","ExistingClientAuthenticationMode","ID_IN_BRANCH","SMARTKEY","PotentialClientAuthenticationMode","SMS_OTP","AuthenticationMode","ApplicationAuthorizationOutput","userAuthorized","clientAuthenticationRequired","allowedClientAuthenticationTypes","nonEmptyArray","clientPhoneNumber","eqApplicationAuthorization","applicationAuthorization","ApplicationClientAuthenticatedInput","eqApplicationClientAuthenticated","ApplicationClientAuthenticatedOutput","clientAuthenticated","applicationClientAuthenticated","ApplicationOtpGenerationInput","ApplicationOtpVerifyInput","otp","OTP","unsafePositiveInteger","bankerLogout","whenLoans","whenMortgage","whenPersonalProfile","foldVariantReduced","getMonthYearOption","month","year","dropdownOptionToValue","getMonthYearString","String","padStart","MonthYearField","formatMonth","useFormatMonth","monthOptions","months","yearOptions","range","minYear","maxYear","ascending","reverse","setMonth","selectedDropdownOption","setYear","monthDropdownRef","yearDropdownRef","onBlurDropdown","inputRef","onBlur","onChangeDropdown","monthYear","issues","assistiveText","labelId","isDisabled","aria-labelledby","issueType","fieldLabel","autoFocus","ApplicationLockedPopup","onClose","BankerActionName","AUT_ID","AUT_SK_PUSH","AUT_SK_QR","CA_OPEN","MTG_OPEN","CF_OPEN","PERSONAL_PROFILE_EDIT","SECURITY_PROFILE_EDIT","IDENTIFICATION_CLIENT_ENABLE","BankerAction","firstName","lastName","lastLogin","KOError","subheading","BranchExperienceParentSwitch","context","setLoading","refPrev","setTempDisabled","prev","IframePortal","forwardedRef","iframe","setIframe","contentWindow","source","onMessageReceived","headerActions","DocumentViewDialog","documentId","documentContent","whenSL","foldProduct","documentID","docContent","BranchExperienceContext","branchExperienceFeaturesActive","isPotentialClientLoginCompleted","openChildWindow","AuthMethodCalculateBySignatureType","getSignatureType","loanApi","renderChild","signature","signatureType","MaritalStatusDropdown","formatMaritalStatus","useFormatMaritalStatus","isForeign","record","keys","MaritalStatusCZ","foldTenant","MaritalStatusSK","maritalStatus","searchable","BackButton","v4","uuid","require","newTabUuid","setPersistedAuthInfo","sessionStorageKey","sessionStorage","JSON","stringify","AuthenticationInfo","getPersistedTabLock","lock","parse","removeTabLock","currentLock","canOpenAnotherTab","tabLock","lastTimestamp","isNaN","getTime","skipTabLock","ReassignTokenResponse","UUID","AuthenticationContextProvider","isTouchscreen","LOCAL_STORAGE_KEY","trackSubmission","resetSubmissionCount","useLoadingStatusWrite","parentAuthContext","getPersistedAuthInfo","parseJSON","login","newAuthInfo","logout","resetRefreshStatus","propsAuthInfoStableEqWithCurrent","useStableEquality","getEq","token","eqStrict","refreshToken","propsAuthInfoStableEq","tokenInfo","isChangingPassword","setShowTabLock","showTabLock","retrieveCurrentPortalStatus","checkPortalBlocked","setAlertModalVisible","usePortalStatusContext","startNewFlow","keepClient","fetchAPI","is3P","bodyType","orElse","UnauthorizedError","PortalBlocked","leftIO","r","response","transitionToPotentialClient","setLatestTokenInfo","authenticated","lastFlowId","startNewFlowKeepClient","uuidFromStorage","setTabLock","removeEventListener","VirtualCardsDialogChild","MainContent","pageHeading","contentRowType","loadingWrapper","image","flag","imageStyle","infoIcon"],"mappings":"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","file":"static/js/index~06837ae4.97c7908e.chunk.js","sourcesContent":["import * as t from \"io-ts\";\n\nexport type ReducerIdBrand = string & {\n readonly ReducerId: unique symbol;\n};\nexport const ReducerId = t.brand(\n t.string,\n (_): _ is t.Branded => true,\n \"ReducerId\"\n);\nexport type ReducerId = t.TypeOf;\n\nexport const InitRequestMessage = t.type({\n type: t.literal(\"Init\"),\n reducerId: ReducerId,\n});\n\nexport const InitResponseMessage = (stateCodec: S) =>\n t.type({\n type: t.literal(\"Init\"),\n reducerId: ReducerId,\n initialState: stateCodec,\n });\n\nexport const InitializedMessage = t.type({\n type: t.literal(\"Initialized\"),\n reducerId: ReducerId,\n});\n\nexport const DispatchedActionMessage = (actionCodec: A) =>\n t.type({\n type: t.literal(\"ActionDispatched\"),\n reducerId: ReducerId,\n action: actionCodec,\n });\n\nexport const MessageToParent = (actionCodec: A) =>\n t.union([\n InitRequestMessage,\n InitializedMessage,\n DispatchedActionMessage(actionCodec),\n ]);\n\nexport const MessageToChild = (\n stateCodec: S,\n actionCodec: A\n) =>\n t.union([\n InitResponseMessage(stateCodec),\n DispatchedActionMessage(actionCodec),\n ]);\n\nexport const dispatchedActionMessage = (\n reducerId: ReducerId,\n action: t.OutputOf\n) => ({\n type: \"ActionDispatched\" as const,\n reducerId,\n action,\n});\n\nexport const reducerId = (id: string): ReducerId => {\n return id as ReducerId;\n};\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./Stepper.treat.22YOfOs.css\";\nexport var stepper = '_2WeEy';\nexport var step = '_1pP2J';\nexport var stepIndicator = '_3sA-B';\nexport var stepIndicatorVariant = {done:'_2JtQb',active:'_1oJMR',next:'_3ylTV'};\nexport var stepVariant = {done:'_3tI5x',active:'_3LPdf',next:'_2Qnrh'};\nexport var stepLabel = '_1Vigz';\nexport var stepLabelCursor = {clickable:'_2XzNJ',nonClickable:'_2jT5F'};\nexport var stepLabelColor = {active:'duixM',done:'_2leTn',next:'_28rIT'};","import { useFixAndroidScrollInput } from \"./useFixAndroidScrollInput\";\n\nexport const FixAndroidScrollInput = () => {\n useFixAndroidScrollInput();\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useWindowSize } from \"react-use\";\nimport { pipe } from \"fp-ts/function\";\nimport { option } from \"fp-ts\";\nimport { useDeviceUA } from \"design-system\";\n\nexport const useFixAndroidScrollInput = () => {\n const { isAndroid } = useDeviceUA();\n const { height } = useWindowSize();\n\n useEffect(() => {\n pipe(\n document.activeElement,\n option.fromNullable,\n option.map(e => {\n const shouldScroll =\n isAndroid &&\n (document.activeElement instanceof HTMLInputElement ||\n document.activeElement instanceof HTMLTextAreaElement);\n if (shouldScroll) {\n e.scrollIntoView({ block: \"center\" });\n }\n })\n );\n }, [height]);\n};\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./MenuDropdown.treat.2EZP4zT.css\";\nexport var menuWrapper = '_2ya4p';\nexport var menu = '_2j-ap';\nexport var option = 'UwDIC';\nexport var heading = '_1yj9n';\nexport var openMenuIcon = '_3CMDf';","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./MainLayout.treat.3g3U934.css\";\nexport var containerRowB = '_1tVia';\nexport var mobileContainer = '_34Ciq';\nexport var mobileContent = '_2ZamC';\nexport var desktopContent = '_24ijS';\nexport var macroStepperContainer = '_1w_LW';\nexport var touchScreenContainer = 'IVkT7';","import { LoadingButton } from \"design-system\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { useFormatMessage } from \"../intl\";\n\ntype Props = {\n action: TaskEither;\n disabled?: boolean;\n};\n\nexport function NextButton(props: Props) {\n const formatMessage = useFormatMessage();\n return (\n \n );\n}\n","import { option } from \"fp-ts\";\nimport {\n Action,\n Banner,\n Body,\n Box,\n Button,\n convertToBlob,\n Dialog,\n downloadFile,\n DownloadIcon,\n ErrorBanner,\n FileIcon,\n Loader,\n LocalizedString,\n Space,\n Sticky,\n useDialogDimensionLimits,\n useIsMobileLayout,\n useIsTouchScreen,\n} from \"design-system\";\nimport * as classes from \"./FilePDFDialog.treat\";\nimport { useFormatMessage } from \"../../../intl\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { useRemoteData } from \"../../../useRemoteData\";\nimport * as remoteData from \"../../../RemoteData\";\nimport { pipe, constant, constFalse, constVoid } from \"fp-ts/function\";\nimport { DocumentContentOutput, DocumentMeta } from \"../../documentAPI\";\nimport { useMemo, useState } from \"react\";\nimport { DocumentReviewDialogChild } from \"../DocumentReviewDialog/DocumentReviewDialogChild\";\nimport {\n DocumentType,\n DocumentViewer,\n} from \"../../DocumentViewer/DocumentViewer\";\nimport { spaceUnit } from \"design-system/lib/styleConstants\";\n\ntype Props = {\n title: LocalizedString;\n subtitle?: LocalizedString;\n onDismiss?: () => unknown;\n onConfirm?: {\n label: LocalizedString;\n action: () => unknown;\n };\n file: TaskEither;\n downloadAction?: TaskEither;\n infoBannerContent?: LocalizedString;\n errorBannerContent?: LocalizedString;\n mustReadAllDocuments?: boolean;\n isForeignClient?: boolean;\n onForeignDocumentOpen?: (document: DocumentMeta) => unknown;\n document?: DocumentMeta;\n};\n\nexport function FilePDFDialog(props: Props) {\n const formatMessage = useFormatMessage();\n const isBranchExperienceTouchScreen = useIsTouchScreen();\n const isMobile = useIsMobileLayout();\n const file = useRemoteData(useMemo(() => props.file, []));\n const { heightLimits } = useDialogDimensionLimits();\n\n const { maxHeight } = heightLimits();\n\n const [hasReadAll, setHasReadAll] = useState(\n !props.mustReadAllDocuments\n );\n\n const getDownloadUrl = (file: DocumentContentOutput) =>\n URL.createObjectURL(convertToBlob(file.content, \"PDF\"));\n\n const isFrameWorkAgreement = (document: DocumentMeta) =>\n pipe(\n document.docType,\n option.fold(constFalse, docType => docType === \"FRAMEWORK_AGREEMENT\")\n );\n\n const isProductContract = (document: DocumentMeta) =>\n pipe(\n document.docType,\n option.fold(constFalse, docType => docType === \"PRODUCT_CONTRACT_ACCOUNT\")\n );\n\n const actions = pipe(\n file,\n remoteData.fold<\n unknown,\n DocumentContentOutput,\n React.ComponentProps[\"actions\"]\n >(constant([]), constant([]), file => {\n const actions: Array = [];\n\n if (!isBranchExperienceTouchScreen) {\n actions.push({\n disabled: !hasReadAll,\n variant: \"text\" as const,\n label: formatMessage(\"Download.buttonLabel\"),\n icon: DownloadIcon,\n action() {\n downloadFile(getDownloadUrl(file), file.filename);\n },\n });\n }\n\n if (props.onConfirm) {\n actions.push({\n disabled: !hasReadAll,\n variant: \"primary\",\n label: props.onConfirm.label || formatMessage(\"Confirm.buttonLabel\"),\n action: props.onConfirm.action,\n });\n }\n\n return actions.slice(0, 2) as [] | [Action] | [Action, Action];\n })\n );\n\n const dialogContent = (\n <>\n {props.subtitle && (\n \n \n {props.subtitle}\n \n \n )}\n {pipe(\n file,\n remoteData.fold(\n () => (\n \n \n \n ),\n () => {formatMessage(\"GenericError\")},\n file => (\n \n {\n if (!hasReadAll && props.mustReadAllDocuments) {\n setHasReadAll(true);\n }\n }}\n />\n {props.infoBannerContent && (\n <>\n \n \n \n \n \n \n )}\n {props.errorBannerContent && (\n <>\n \n \n \n \n \n \n )}\n \n )\n )\n )}\n {props.isForeignClient &&\n props.document &&\n (isFrameWorkAgreement(props.document) ||\n isProductContract(props.document)) && (\n \n \n \n props.onForeignDocumentOpen && props.document\n ? props.onForeignDocumentOpen(props.document)\n : constVoid\n }\n />\n \n )}\n \n );\n\n return (\n <>\n {isMobile ? (\n \n {dialogContent}\n \n ) : (\n \n {dialogContent}\n \n )}\n {isBranchExperienceTouchScreen && }\n \n );\n}\n","import { useCallback, useMemo, useState } from \"react\";\nimport {\n defaultBrowserLocale,\n defaultLocaleFromTenant,\n importMessages,\n IntlProvider,\n localeFromUrl,\n LocaleMessages,\n} from \"./intl\";\nimport { either, option, taskEither } from \"fp-ts\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { pipe } from \"fp-ts/function\";\nimport { AppContext } from \"./AppContext\";\nimport { useRemoteData } from \"./useRemoteData\";\nimport * as remoteData from \"./RemoteData\";\nimport { useAPIEndpoint } from \"./useAPIEndpoint\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport {\n APIParameters,\n Channel,\n SupportedLocales,\n Tenant,\n} from \"./globalDomain\";\nimport { importConfigurations, RemoteConfig } from \"./ConfigBlocks\";\nimport {\n Dialog,\n ErrorBanner,\n LoadingStatusProvider,\n LocalizedString,\n Space,\n unsafeLocalizedString,\n WarningIcon,\n} from \"design-system\";\nimport { DocumentTitle } from \"./DocumentTitle\";\nimport { BasicFullScreenLoader } from \"./Common/BasicFullScreenLoader\";\nimport { PortalStatusProvider } from \"./PortalStatusContext\";\nimport { AuthenticationContextProvider } from \"./AuthenticationContext\";\nimport { sequenceS } from \"fp-ts/Apply\";\nimport { getCurrentBuildVersion } from \"./VersionCheck/Utils\";\n\ntype Props = {\n channel: Channel;\n children: JSX.Element;\n locale?: SupportedLocales;\n forceLocalLang?: boolean;\n};\n\nfunction importTranslations(\n apiEndpoint: NonEmptyString,\n tenant: APIParameters[\"tenant\"],\n locale: SupportedLocales,\n channel: Channel\n): TaskEither {\n return pipe(\n importMessages(apiEndpoint, tenant, locale, channel),\n taskEither.mapLeft(error => {\n console.error(error);\n return error;\n })\n );\n}\n\nfunction importMomentLocale(lang: SupportedLocales): Promise {\n // english is the default in moment\n if (lang === \"en\") {\n return Promise.resolve();\n }\n // import the right language\n return import(\"moment/locale/\" + lang + \".js\");\n}\n\nconst LOCALE_STORAGE_KEY = \"locale\";\n\nexport function setPersistedLocale(locale: option.Option) {\n if (option.isSome(locale)) {\n localStorage.setItem(LOCALE_STORAGE_KEY, locale.value);\n } else {\n localStorage.removeItem(LOCALE_STORAGE_KEY);\n }\n}\n\nexport function getPersistedLocale(): option.Option {\n return pipe(\n either.tryCatch(\n () => localStorage.getItem(LOCALE_STORAGE_KEY),\n either.toError\n ),\n either.chainW(SupportedLocales.decode),\n option.fromEither\n );\n}\n\nfunction getTenant(apiEndpoint: NonEmptyString): TaskEither {\n return pipe(\n taskEither.tryCatch(\n () =>\n fetch(\n `${apiEndpoint.replace(\n /\\/+$/,\n \"\"\n )}/utilities/tenant/noauth?component=eShopFE`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n }\n ).then(body => body.json()),\n () => \"Failed to retrieve tenant\"\n ),\n taskEither.chainEitherKW(Tenant.decode)\n );\n}\n\nconst constLoading = () => ;\n\nconst appFailure = (msg: string) => (\n <>\n \n \n \n);\n\nexport function AppProvider(props: Props) {\n const apiEndpoint = useAPIEndpoint();\n\n return pipe(\n useRemoteData(useMemo(() => getTenant(apiEndpoint), [apiEndpoint])),\n remoteData.fold(\n constLoading,\n () => appFailure(\"Internal server error while fetching tenant\"),\n tenant => \n )\n );\n}\n\nfunction TenantAppProvider(props: Props & { tenant: Tenant }) {\n const apiEndpoint = useAPIEndpoint();\n\n const [locale, setLocale] = useState(\n pipe(\n props.locale,\n option.fromNullable,\n option.alt(localeFromUrl),\n option.alt(getPersistedLocale),\n option.getOrElse(() =>\n props.forceLocalLang\n ? defaultLocaleFromTenant(props.tenant)\n : defaultBrowserLocale()\n )\n )\n );\n\n const [forceUpdateRemoteConfig, setForceUpdateRemoteConfig] = useState(1);\n\n const updateRemoteConfig = useCallback(\n () => setForceUpdateRemoteConfig(n => n + 1),\n []\n );\n\n const [remoteConfigOverride, setRemoteConfigOverride] = useState<\n Partial\n >({});\n\n const remoteConfig = useRemoteData(\n useMemo(\n () => importConfigurations(apiEndpoint, locale, remoteConfigOverride),\n [apiEndpoint, locale, forceUpdateRemoteConfig, remoteConfigOverride]\n )\n );\n\n const [forceUpdateTranslations, setForceUpdateTranslations] = useState(1);\n const updateTranslations = useCallback(\n () => setForceUpdateTranslations(n => n + 1),\n []\n );\n\n const buildVersion = useRemoteData(\n useMemo(\n () =>\n pipe(\n taskEither.tryCatch(getCurrentBuildVersion, () => {\n console.log(\"Rejected retrieving initial build version\");\n return \"\";\n }),\n taskEither.bimap(\n () => \"\",\n text => text\n )\n ),\n []\n )\n );\n\n const appContext = useMemo(\n () =>\n pipe(\n { remoteConfig, buildVersion },\n sequenceS(remoteData.remoteData),\n remoteData.map(({ remoteConfig: config, buildVersion }) => ({\n config,\n locale,\n apiParameters: {\n tenant: props.tenant,\n channel: props.channel,\n language: locale,\n },\n buildVersion,\n setLocale: (locale: SupportedLocales) => {\n setPersistedLocale(option.some(locale));\n setLocale(locale);\n import(\"moment\").then(moment => {\n importMomentLocale(locale).then(() => {\n moment.locale(locale);\n });\n });\n },\n updateTranslations,\n updateRemoteConfig,\n setRemoteConfigOverride,\n }))\n ),\n [\n locale,\n props.channel,\n remoteConfig,\n props.tenant,\n updateTranslations,\n buildVersion,\n ]\n );\n\n const messages = useMemo(\n () => importTranslations(apiEndpoint, props.tenant, locale, props.channel),\n [apiEndpoint, props.tenant, locale, forceUpdateTranslations, props.channel]\n );\n\n const [dismissedHostMessage, setDismissedHostMessage] = useState(false);\n const canShowHostDialog = (env: string) => {\n const dbnQaOrProd =\n window.location.hostname.includes(\"dbnocpqa\") ||\n window.location.hostname.includes(\"dbnocpprod\");\n return !dismissedHostMessage && env === \"uat\" && dbnQaOrProd;\n };\n\n return pipe(\n useRemoteData(messages),\n remoteData.fold(\n constLoading,\n () => appFailure(\"Internal server error while fetching messages\"),\n messages =>\n pipe(\n appContext,\n remoteData.fold(\n constLoading,\n () => appFailure(\"Internal server error while fetching settings\"),\n appContext => (\n \n \n {/* This AuthenticationContextProvider is added here to provide authContext\n to PortalStatusProvider requests when the user is logged in */}\n \n \n <>\n {canShowHostDialog(appContext.config.environment) && (\n \n setDismissedHostMessage(true)\n )}\n actions={[\n {\n variant: \"primary\",\n label: \"OK\" as LocalizedString,\n action: () => setDismissedHostMessage(true),\n },\n ]}\n icon={WarningIcon}\n />\n )}\n \n {props.children}\n \n\n \n \n \n \n \n \n )\n )\n )\n )\n );\n}\n","import * as t from \"io-ts\";\nimport { eq } from \"fp-ts\";\nimport { apiCall } from \"../../APICall\";\nimport { Eq } from \"fp-ts/Eq\";\nimport { CompanySuggestion } from \"./domain\";\nimport { RemoteData } from \"../../RemoteData\";\nimport { DropdownOption, SuggestionsStatus } from \"design-system\";\nimport { pipe, constant } from \"fp-ts/function\";\nimport * as remoteData from \"../../RemoteData\";\n\nexport const CompanySuggestionsInput = t.type(\n {\n text: t.string,\n },\n \"CompanySuggestionsInput\"\n);\n\nexport interface CompanySuggestionsInput\n extends t.TypeOf {}\n\nexport const eqCompanySuggestionsInput: Eq = eq.getStructEq(\n {\n text: eq.eqString,\n }\n);\n\nexport const CompanySuggestionsOutput = t.array(\n CompanySuggestion,\n \"CompanySuggestionsOutput\"\n);\nexport interface CompanySuggestionsOutput\n extends t.TypeOf {}\n\nexport const companySuggestion = apiCall({\n inputEq: eqCompanySuggestionsInput,\n path: [\"utilities\", \"company\", \"search\"],\n inputCodec: CompanySuggestionsInput,\n outputCodec: CompanySuggestionsOutput,\n});\n\nexport function autocompleteInputStatusFromRemoteData(\n query: RemoteData,\n suggestionsMap: (suggestion: I) => DropdownOption\n): SuggestionsStatus {\n return pipe(\n query,\n remoteData.fold(\n constant({\n status: \"loading\",\n } as SuggestionsStatus),\n constant({ status: \"ready\", suggestions: [] }),\n (suggestions, isLoading) =>\n isLoading\n ? {\n status: \"loading\",\n }\n : {\n status: \"ready\",\n suggestions: suggestions.map(suggestionsMap),\n }\n )\n );\n}\n","type Props = {\n height: number;\n};\n\nconst ratio = 184 / 24;\n\nexport function Logo(props: Props) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","type Props = {\n height: number;\n};\n\nconst ratio = 60 / 22;\n\nexport function LogoOpen(props: Props) {\n return (\n \n \n \n );\n}\n","import \"!../../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./Container.treat.pyDWcm5.css\";\nexport var container = 'u2aCZ';\nexport var stepper = 'BZQMJ';\nexport var content = {withStepper:'gTrcq',withoutStepper:'Ba9JY'};\nexport var topLeftCorner = '_36Zup';","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./HeaderCZ.treat.3FocDCn.css\";\nexport var centerArea = 'Dy41t';\nexport var logoArea = '_3OWZY';\nexport var logoAreaClickable = 'rrtv1';\nexport var productArea = 'w2nd8';\nexport var centerContentArea = '_11f7e';\nexport var productTitle = '_3mtF3';\nexport var exit = 'L5vnD';","import * as api from \"./authorizationApi\";\nimport { useCommand, useQuery } from \"./useAPI\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport * as remoteData from \"./RemoteData\";\nimport { AppProvider } from \"./AppProvider\";\nimport { AuthenticationContextProvider } from \"./AuthenticationContext\";\nimport { option, taskEither } from \"fp-ts\";\nimport { EnvBadge } from \"./Common/EnvBadge/EnvBadge\";\nimport { useState } from \"react\";\nimport { FeedbackDialog } from \"design-system\";\nimport { useFormatMessage } from \"./intl\";\n\ntype Props = React.ComponentProps;\n\nfunction AnonymousAuth(props: { children: JSX.Element }) {\n const [authInfo] = useQuery(api.anonymousToken);\n const potentialClientToken = useCommand(api.potentialClientToken);\n\n const [showRefreshPageModal, setShowRefreshPageModal] = useState(false);\n const formatMessage = useFormatMessage();\n\n return pipe(\n authInfo,\n remoteData.fold(constNull, constNull, authInfo => (\n setShowRefreshPageModal(true)}\n >\n {props.children}\n \n\n {showRefreshPageModal && (\n window.location.reload(),\n }}\n />\n )}\n \n ))\n );\n}\n\nexport function AnonymousAuthProvider(props: Props) {\n return (\n \n {props.children}\n \n );\n}\n","import { Omit, useIsTouchScreen } from \"design-system\";\nimport { ComponentProps } from \"react\";\nimport { option } from \"fp-ts\";\nimport { constant, pipe } from \"fp-ts/function\";\nimport { useFormatMessage } from \"../../intl\";\nimport { SnackbarProvider } from \"../Snackbar/SnackbarProvider\";\nimport { CookiesConsent } from \"../CookiesConsent/CookiesConsent\";\nimport { useIsSBChannel } from \"../../useChannel\";\nimport { MainLayoutCZ } from \"../MainContent/MainLayoutCZ\";\n\ntype Props = Omit, \"footer\">;\n\nexport function MainLayout(props: Props) {\n const formatMessage = useFormatMessage();\n const { children, ...otherProps } = props;\n const isTouchScreen = useIsTouchScreen();\n const isSBChannel = useIsSBChannel();\n\n return (\n \n \n {children}\n \n );\n}\n","import { ComponentType, ComponentProps, useMemo, useRef } from \"react\";\nimport { useCommand } from \"../../useAPI\";\nimport { CompanyField } from \"./CompanyField\";\nimport { CompanySuggestion } from \"./domain\";\nimport * as companyApi from \"./api\";\nimport {\n Validator,\n validators,\n LocalizedString,\n fieldIssues,\n} from \"design-system\";\nimport { constant, constFalse, pipe } from \"fp-ts/function\";\nimport { array, taskEither } from \"fp-ts\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\n\ntype CompanyFieldProps = ComponentProps;\ntype UseCompanyFieldProps = Omit & {\n onValidationChange?: (error: boolean) => unknown;\n onCompanyIcoValidationChange?: (error: boolean) => unknown;\n};\n\ntype UseCompanyFieldsReturn = {\n Name: ComponentType;\n ICO: ComponentType;\n};\n\nexport function useCompanyFields(): UseCompanyFieldsReturn {\n const activeQueryTerms = useRef({\n name: \"\",\n ico: \"\",\n });\n\n return useMemo(\n () => ({\n Name: (props: UseCompanyFieldProps) => (\n {\n activeQueryTerms.current = {\n ...activeQueryTerms.current,\n name: value,\n };\n props.onChange(value);\n }}\n />\n ),\n ICO: (props: UseCompanyFieldProps) => (\n {\n activeQueryTerms.current = {\n ...activeQueryTerms.current,\n ico: value,\n };\n props.onChange(value);\n }}\n />\n ),\n }),\n []\n );\n}\n\nexport const removeDiacritics = (text: string) =>\n text.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n\nexport const useCompanyNameAndIcoValidators = () => {\n const fetchCompanySuggestions = useCommand(companyApi.companySuggestion, {\n skipTracking: true,\n });\n\n const validator = (key: keyof CompanySuggestion) => (\n errorMessage: LocalizedString\n ): Validator =>\n validators.validateIfNonEmpty(text =>\n pipe(\n fetchCompanySuggestions({\n text: pipe(text.toLowerCase(), removeDiacritics),\n }),\n taskEither.filterOrElseW(\n suggestions =>\n pipe(\n suggestions,\n array.some(suggestion => suggestion[key] === text.toString())\n ),\n constFalse\n ),\n taskEither.bimap(\n constant(fieldIssues.errors([errorMessage])),\n constant(text)\n )\n )\n );\n\n return { validName: validator(\"name\"), validIco: validator(\"id\") };\n};\n","import { option } from \"fp-ts\";\nimport { constant, constFalse, pipe } from \"fp-ts/function\";\nimport * as t from \"io-ts\";\nimport { fromNullable } from \"io-ts-types/lib/fromNullable\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\nimport { optionFromNullable } from \"io-ts-types/lib/optionFromNullable\";\nimport { withFallback } from \"io-ts-types/lib/withFallback\";\nimport {\n DateFromSQLString,\n DocumentPurpose,\n GenericError,\n NonNegative,\n optionFromUndefined,\n} from \"../globalDomain\";\nimport { CheckPrimaryIdEnums } from \"../UKontoSecondPart/api\";\nimport {\n AddressOCR,\n PersonalDataOCR,\n PersonalDocumentOCR,\n} from \"../IdUpload/domain\";\nimport { IncomeSource, SourceOfIncomeId } from \"../KYC/domain\";\nimport { DocumentType } from \"../UploadDocuments/domain\";\nimport { IO } from \"fp-ts/IO\";\nimport { Reader } from \"fp-ts/Reader\";\nimport * as standardLoanSaleAPI from \"../StandardLoan/api\";\nimport { FormState } from \"../IdUpload/ClientData/PersonalDocumentForm/PersonalDocumentForm\";\nimport { NewMortgageCheckClientStatus } from \"../MortgageDashboard/api\";\nimport { validableDate } from \"design-system\";\nimport { Option } from \"fp-ts/Option\";\nimport { CheckPrimaryIdEnumsCF } from \"../StandardLoan/api\";\n\nexport const UserStatus = t.keyof({ A: true, B: true, C: true, L: true });\n\nexport type UserStatus = t.TypeOf;\n\nexport const HousingType = t.keyof(\n {\n Owner: true,\n Renter: true,\n Other: true,\n Parents: true,\n Cooperative: true,\n },\n \"HousingType\"\n);\nexport type HousingType = t.TypeOf;\n\nexport const CarOwnershipType = t.keyof(\n {\n DONT_OWN: true,\n OWN: true,\n OWN_WITH_LEASING_OR_LOAN: true,\n COMPANY_CAR: true,\n },\n \"CarOwnership\"\n);\nexport type CarOwnershipType = t.TypeOf;\n\nexport const SectionStatus = t.keyof(\n {\n OK: true,\n NOK: true,\n },\n \"SectionStatus\"\n);\nexport type SectionStatus = t.TypeOf;\n\nexport const SoniaStatus = t.type(\n {\n updated: withFallback(t.boolean, false),\n updateDate: optionFromUndefined(DateFromSQLString),\n },\n \"SoniaStatus\"\n);\nexport type SoniaStatus = t.TypeOf;\n\nconst PersonalProfilePersonalDocument = t.intersection(\n [\n PersonalDocumentOCR,\n t.type({\n documentType: DocumentType,\n issuerTown: optionFromUndefined(t.string),\n issuerCountry: optionFromUndefined(t.string),\n expired: withFallback(t.boolean, false),\n stolen: withFallback(t.boolean, false),\n recalled: withFallback(t.boolean, false),\n }),\n ],\n \"PersonalProfilePersonalDocument\"\n);\n\nexport type PersonalProfilePersonalDocument = t.TypeOf<\n typeof PersonalProfilePersonalDocument\n>;\n\nexport function formStateFromPersonalProfilePersonalDocument(\n document: PersonalProfilePersonalDocument\n): FormState {\n return {\n idNumber: pipe(document.idNumber, option.getOrElse(constant(\"\"))),\n dateOfIssuing: pipe(\n document.dateOfIssuing,\n option.map(validableDate.fromDate)\n ),\n validUntil: pipe(document.validUntil, option.map(validableDate.fromDate)),\n authority: document.issuer,\n authorityMandatory: document.authorityMandatory,\n issuer: document.issuerTown,\n issuerMandatory: document.issuerMandatory,\n };\n}\n\nconst ContactStatus = t.keyof({\n VERIFIED: true,\n NOTVERIFIED: true,\n CORRUPTED: true,\n EXPIRED: true,\n MISSING: true,\n});\nexport type ContactStatus = t.TypeOf;\n\nexport const ClientData = t.type(\n {\n personalData: PersonalDataOCR,\n contactData: t.type(\n {\n phoneNumber: optionFromNullable(NonEmptyString),\n phoneNumberStatus: fromNullable(ContactStatus, \"NOTVERIFIED\"),\n email: optionFromNullable(NonEmptyString),\n emailStatus: fromNullable(ContactStatus, \"NOTVERIFIED\"),\n subSectionStatus: SectionStatus,\n },\n \"ContactData\"\n ),\n idDocuments: t.type({\n primaryDocument: optionFromNullable(PersonalProfilePersonalDocument),\n secondaryDocument: optionFromNullable(PersonalProfilePersonalDocument),\n subSectionStatus: SectionStatus,\n soniaStatus: optionFromUndefined(SoniaStatus),\n }),\n addresses: t.type({\n permanentAddress: optionFromUndefined(AddressOCR),\n contactAddress: optionFromUndefined(AddressOCR),\n currentAddress: optionFromUndefined(AddressOCR),\n subSectionStatus: SectionStatus,\n }),\n otherDocumentUsedForAuth: t.boolean,\n sectionStatus: SectionStatus,\n },\n \"ClientData\"\n);\nexport type ClientData = t.TypeOf;\nexport const IncomeSourceExtended = t.union([IncomeSource, SourceOfIncomeId]);\nexport type IncomeSourceExtended = t.TypeOf;\n\nexport const AdditionalData = t.type(\n {\n monthlyIncome: optionFromNullable(NonNegative),\n sourceOfIncome: optionFromNullable(IncomeSourceExtended),\n companyName: optionFromNullable(NonEmptyString),\n companyIco: optionFromNullable(NonEmptyString),\n housingType: optionFromNullable(HousingType),\n carOwnership: optionFromNullable(CarOwnershipType),\n subSectionStatus: SectionStatus,\n },\n \"AdditionalData\"\n);\nexport type AdditionalData = t.TypeOf;\n\nexport const AdditionalInformation = t.type(\n {\n additionalData: AdditionalData,\n marketingConsent: t.type({\n marketingConsentValue: fromNullable(t.boolean, false),\n subSectionStatus: SectionStatus,\n }),\n sectionStatus: SectionStatus,\n },\n \"AdditionalInformation\"\n);\nexport type AdditionalInformation = t.TypeOf;\n\nexport const BankIdStatus = t.type({\n active: t.boolean,\n});\nexport type BankIdStatus = t.TypeOf;\n\nexport const SecurityProfile = t.type({\n credentialsAndStatus: t.type({\n userId: optionFromNullable(NonEmptyString),\n status: fromNullable(UserStatus, \"B\"),\n subSectionStatus: SectionStatus,\n hasPasswordForCommunication: t.boolean,\n hasSecurityPin: t.boolean,\n }),\n biometricConsent: t.type({\n biometricConsentValue: optionFromUndefined(t.boolean),\n subSectionStatus: SectionStatus,\n }),\n sectionStatus: SectionStatus,\n hasAssecoMtoken: t.boolean,\n bankIdStatus: optionFromNullable(BankIdStatus),\n});\nexport type SecurityProfile = t.TypeOf;\n\nexport const PersonalProfile = t.type({\n clientData: ClientData,\n additionalInformation: AdditionalInformation,\n securityProfile: SecurityProfile,\n clientNumber: t.string,\n nuntioUrl: NonEmptyString,\n MiFID: t.type({ validTo: optionFromUndefined(DateFromSQLString) }),\n progress: t.type({\n total: fromNullable(t.number, 0),\n completed: fromNullable(t.number, 0),\n }),\n});\nexport type PersonalProfile = t.TypeOf;\n\nexport const OtherDocumentType = t.keyof({\n PERMANENT_RESIDENCE_PERMIT: true,\n TEMPORARY_RESIDENCE_PERMIT: true,\n LONG_TERM_RESIDENCE_PERMIT: true,\n CONFIRMATION_FROM_MATRIKA: true,\n BIRTH_CERTIFICATE: true,\n SCANNED_ID_CARD: true,\n});\n\nexport type OtherDocumentType = t.TypeOf;\n\nexport const CFExistingErrorTypeKeys = t.union([\n CheckPrimaryIdEnumsCF,\n t.keyof({\n invalidAgeCF: true,\n foreignClientCF: true,\n hasBlockingNotesCF: true,\n highRiskClientCF: true,\n hasNotPasswordForCommunicationCF: true,\n privateClient: true,\n phoneNumberNotVerifiedCF: true,\n phoneNumberMissingCF: true,\n }),\n]);\n\nexport const CFExistingErrorType = t.union([\n GenericError,\n t.type({ id: CFExistingErrorTypeKeys }),\n]);\n\nexport type CFExistingErrorType = t.TypeOf;\n\nexport const NewUkontoErrorTypeKeys = t.union([\n CheckPrimaryIdEnums,\n t.keyof({\n invalidAge: true,\n hasBlockingNotes: true,\n highRiskClient: true,\n hasNotPasswordForCommunication: true,\n phoneNumberNotVerified: true,\n phoneNumberMissing: true,\n privateClient: true,\n hasSavingsAccount: true,\n hasCurrentAccounts: true,\n nonDigitalClient: true,\n nonDigitalClientSA: true,\n }),\n]);\n\nexport const NewUkontoErrorType = t.union([\n GenericError,\n t.type({ id: NewUkontoErrorTypeKeys }),\n]);\n\nexport type NewUkontoErrorType = t.TypeOf;\n\nexport type PrimaryDocumentIssue =\n | \"DifferentDocument\"\n | \"PrimaryDocumentExpired\"\n | \"PrimaryDocumentLostOrStolen\"\n | \"NoPrimaryDocument\";\n\nexport type SecondaryDocumentIssue =\n | \"SecondaryDocumentExpired\"\n | \"SecondaryDocumentLostOrStolen\";\n\nexport type DocumentIssue = {\n documentPurpose: DocumentPurpose;\n issue: PrimaryDocumentIssue | SecondaryDocumentIssue;\n};\n\nexport type EmptyLimitData = { preapprovedLimits: {} };\nexport type TlLimitData = {\n preapprovedLimits: {\n TL: Option;\n CL: Option;\n };\n};\nexport type ClLimitData = {\n preapprovedLimits: {\n CL: Option;\n };\n};\n\nexport type LimitData = TlLimitData | ClLimitData | EmptyLimitData;\n\nexport function isTL(data: LimitData): data is TlLimitData {\n const match = data as TlLimitData;\n\n return (\n match.preapprovedLimits.TL &&\n pipe(\n match.preapprovedLimits.TL,\n option.fold(constFalse, TL => TL.producttype && TL.producttype === \"TL\")\n )\n );\n}\n\nexport function isCL(data: LimitData): data is ClLimitData {\n const match = data as ClLimitData;\n\n return (\n match.preapprovedLimits.CL &&\n pipe(\n match.preapprovedLimits.CL,\n option.fold(constFalse, CL => CL.producttype && CL.producttype === \"CL\")\n )\n );\n}\n\nexport function foldPreapprovedLimits(matches: {\n whenEmpty: IO;\n whenTl: Reader;\n whenCl: Reader;\n}): Reader {\n return data => {\n if (isTL(data)) {\n return matches.whenTl(data);\n } else if (isCL(data)) {\n return matches.whenCl(data);\n } else {\n return matches.whenEmpty();\n }\n };\n}\n\nexport function foldCLPreapprovedLimits(matches: {\n whenNotCL: IO;\n whenCl: Reader;\n}): Reader {\n return data => {\n if (isCL(data)) {\n return matches.whenCl(data);\n } else {\n return matches.whenNotCL();\n }\n };\n}\n\nexport const NewMortgageErrorTypeKeys = t.union([\n CheckPrimaryIdEnums,\n NewMortgageCheckClientStatus,\n]);\nexport const NewMortgageErrorType = t.union([\n GenericError,\n t.type({ id: NewMortgageErrorTypeKeys }),\n t.type({ id: t.literal(\"phoneNumberNotVerified\") }),\n]);\n\nexport type NewMortgageErrorType = t.TypeOf;\n","import {\n Box,\n useAuthenticationContext,\n unsafeLocalizedString,\n} from \"design-system\";\nimport { useAppContext } from \"../../useAppContext\";\nimport * as classes from \"./EnvBadge.treat\";\nimport { useEffect, useState } from \"react\";\nimport { useLogger, useMessageEventLogs } from \"./logger\";\nimport { EnvInfoDialog } from \"./EnvInfoDialog\";\nimport { constVoid } from \"fp-ts/function\";\n\nexport function EnvBadge() {\n const {\n config,\n updateTranslations,\n setRemoteConfigOverride,\n } = useAppContext();\n const { authInfo } = useAuthenticationContext();\n const [infoVisible, setInfoVisible] = useState(false);\n\n function refreshTranslations(e: React.SyntheticEvent) {\n e.preventDefault();\n const disabled = toggleTranslations();\n updateTranslations();\n alert((disabled ? \"Disable\" : \"Updating\") + \" translations\");\n }\n\n function toggleTranslations() {\n const translationsKey = \"translations\";\n const params = new URLSearchParams(window.location.search);\n if (params.has(translationsKey)) {\n params.delete(translationsKey);\n } else {\n params.set(translationsKey, \"false\");\n }\n var newUrl =\n window.location.protocol +\n \"//\" +\n window.location.host +\n window.location.pathname +\n (params.toString() ? \"?\" + params.toString() : \"\");\n window.history.replaceState({ path: newUrl }, \"\", newUrl);\n return params.has(translationsKey);\n }\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n (window as any).setRemoteConfigOverride = setRemoteConfigOverride;\n if (config.environment !== \"prod\") {\n console.info(\"Configuration settings\", config);\n }\n }\n }, [config.environment]);\n\n useLogger(true);\n\n // log received events to debug SBL-43948\n useMessageEventLogs(config.windowMessageEventsLogs);\n\n switch (config.environment) {\n case \"dev\":\n case \"sit\":\n case \"uat\":\n case \"hf\":\n case \"ci\":\n return (\n {\n if (!infoVisible) {\n setInfoVisible(true);\n }\n }}\n onContextMenu={!infoVisible ? refreshTranslations : constVoid}\n >\n {unsafeLocalizedString(config.environment)}\n {infoVisible && (\n setInfoVisible(false)}\n />\n )}\n \n );\n case \"prod\":\n return null;\n }\n}\n","import { Box, Loader } from \"design-system\";\n\nexport function BasicFullScreenLoader() {\n return (\n \n \n \n );\n}\n","import { MenuOption } from \"../MenuDropdown/MenuDropdown\";\n\nexport type ActionIconProps = Exit | Menu;\n\ntype Exit = {\n tag: \"exit\";\n onExit: () => unknown;\n};\n\ntype Menu = {\n tag: \"menu\";\n menu: [MenuOption, ...MenuOption[]];\n};\n\nexport function exit(onExit: () => unknown): ActionIconProps {\n return { tag: \"exit\", onExit };\n}\n\nexport function menu(menu: [MenuOption, ...MenuOption[]]): ActionIconProps {\n return { tag: \"menu\", menu };\n}\n\nexport function fold(\n onMenu: (onMenu: [MenuOption, ...MenuOption[]]) => T,\n onExit: (onExit: () => unknown) => T\n): (actionIcon: ActionIconProps) => T {\n return actionIcon => {\n switch (actionIcon.tag) {\n case \"menu\":\n return onMenu(actionIcon.menu);\n case \"exit\":\n return onExit(actionIcon.onExit);\n }\n };\n}\n","import { createContext } from \"react\";\nimport { Option } from \"fp-ts/Option\";\nimport { APIParameters, SupportedLocales } from \"./globalDomain\";\nimport { RemoteConfig } from \"./ConfigBlocks\";\nimport { option } from \"fp-ts\";\n\nexport interface AppContext {\n config: RemoteConfig;\n apiParameters: APIParameters;\n locale: SupportedLocales;\n buildVersion: string;\n setLocale: (locale: SupportedLocales) => void;\n updateTranslations: () => unknown;\n updateRemoteConfig: () => unknown;\n setRemoteConfigOverride: (override: Partial) => unknown;\n}\n\nexport const AppContext = createContext>(option.none);\n","import { BuildConfig } from \"./ConfigBlocks\";\nimport { createContext } from \"react\";\nimport { Option } from \"fp-ts/Option\";\nimport { option } from \"fp-ts\";\n\nexport const BuildConfigContext = createContext>(\n option.none\n);\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./IFrameDialog.treat.I8Z2gJp.css\";\nexport var iframeStyle = 'r646e';\nexport var iframeStyleMobile = '_2A3Jf';\nexport var contentMobile = '_3eFpF';","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./Dropdown.treat.2sG3rKN.css\";\nexport var menuWrapper = '_39Eze';\nexport var menu = '_2bHke';\nexport var option = '_2LjA1';\nexport var optionSelected = {no:'kGR0a'};","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./Footer.treat.qpaYuoG.css\";\nexport var footer = '_1Aicb';\nexport var footerBody = 'inOBi';","import { boolean, option } from \"fp-ts\";\nimport { Option } from \"fp-ts/Option\";\nimport { pipe } from \"fp-ts/function\";\nimport * as classes from \"./Container.treat\";\nimport { useEffect, useRef } from \"react\";\nimport { Box, Children } from \"design-system\";\nimport { Stepper } from \"../Stepper\";\nimport { stepSize } from \"../stepSize\";\n\ntype Props = {\n children: Children;\n stepper: Option>;\n contentBackground?: string;\n};\n\nexport function Container(props: Props) {\n const hasStepper = pipe(props.stepper, option.isSome);\n\n const stepperWrapperRef = useRef(null);\n const stepperContainerRef = useRef(null);\n\n const stepper = pipe(\n props.stepper,\n option.fold(\n () => null,\n stepperProps => (\n \n \n \n )\n )\n );\n\n const leftPlaceholderWidth = pipe(\n hasStepper,\n boolean.fold(\n () => 0,\n () => stepSize\n )\n );\n\n useEffect(() => {\n if (stepperContainerRef.current && stepperWrapperRef.current) {\n const stepsNo = option.isSome(props.stepper)\n ? props.stepper.value.steps.lefts.length +\n props.stepper.value.steps.rights.length +\n 1\n : 0; // 1 is the focus length\n\n const activeStepElement = stepperContainerRef.current.querySelector(\n \"[data-step-state='active']\"\n );\n\n let buttonHeight = 0,\n buttonMargins = 0,\n buttonOffset = 0;\n\n if (activeStepElement) {\n buttonHeight = activeStepElement.getBoundingClientRect().height;\n buttonMargins = 8;\n buttonOffset = buttonHeight + buttonMargins;\n const offset = buttonOffset / 2;\n stepperContainerRef.current.style.height = `${\n buttonOffset * stepsNo + offset\n }px`;\n }\n\n const stepperWrapperHeight = stepperWrapperRef.current.getBoundingClientRect()\n .height;\n const stepperContainerHeight = stepperContainerRef.current.getBoundingClientRect()\n .height;\n\n if (stepperContainerHeight > stepperWrapperHeight) {\n if (activeStepElement) {\n const activeElementTop = activeStepElement.getBoundingClientRect().y;\n if (activeElementTop > stepperWrapperHeight / 2) {\n const activeStepMiddleDelta = Math.ceil(\n activeElementTop - stepperWrapperHeight / 2\n );\n\n stepperWrapperRef.current.scrollTop +=\n activeStepMiddleDelta + buttonOffset;\n }\n }\n } else {\n const newTop =\n stepperWrapperRef.current.getBoundingClientRect().height / 2 -\n stepperContainerRef.current.getBoundingClientRect().height / 2;\n stepperContainerRef.current.style.top = `${newTop}px`;\n stepperContainerRef.current.style.position = `relative`;\n }\n }\n }, [props.stepper]);\n\n return (\n \n \n {stepper}\n \n {props.children}\n \n \n );\n}\n","import { useEffect, useState, useCallback, useRef } from \"react\";\n\nexport function useCountdown(\n durationMs: number,\n onCountdownEnd: () => void,\n stopped: boolean = false\n) {\n const end = useRef(Date.now() + durationMs);\n const [displayEnd, setDisplayEnd] = useState(Date.now() + durationMs);\n const [, updateState] = useState();\n const forceUpdate = useCallback(() => updateState({}), []);\n\n useEffect(() => {\n if (end.current > Date.now() && !stopped) {\n const timer = setTimeout(forceUpdate, 1000);\n return () => clearTimeout(timer);\n } else if (!stopped) {\n onCountdownEnd();\n return () => {};\n }\n\n return () => {};\n });\n\n const difference = Math.floor((displayEnd - Date.now()) / 1000);\n\n return [\n Math.max(0, difference),\n () => {\n const newEnd = Date.now() + durationMs;\n end.current = newEnd;\n setDisplayEnd(newEnd);\n },\n ] as const;\n}\n","import { useEffect } from \"react\";\nimport { apiCall } from \"../../APICall\";\nimport * as t from \"io-ts\";\nimport { eq } from \"fp-ts\";\nimport { constFalse } from \"fp-ts/function\";\nimport { useCommand } from \"../../useAPI\";\n\nconst logAPI = apiCall({\n path: [\"gateway\", \"noauth\", \"logError\"],\n inputCodec: t.type({ logs: t.array(t.unknown) }),\n inputEq: eq.fromEquals(constFalse),\n});\n\nexport function useLogger(enabled: boolean): void {\n const log = useCommand(logAPI, { skipTracking: true });\n useEffect(() => {\n const interval = window.setInterval(() => {\n try {\n const _logs = (window as any).eShopLogs as Array | undefined;\n if (typeof _logs === \"undefined\" || _logs.length === 0) return;\n const logs = _logs.splice(0, _logs.length);\n if (!enabled) return;\n log({ logs })();\n } catch (e) {\n console.error(e);\n }\n }, 5000);\n return () => window.clearInterval(interval);\n }, [log]);\n}\n\nexport function useMessageEventLogs(enabled: boolean): void {\n if (enabled) {\n window.addEventListener(\"message\", message => {\n console.log(message.timeStamp, message.data);\n });\n }\n}\n","import { useMemo, useState } from \"react\";\nimport { constant, constFalse, constVoid, pipe } from \"fp-ts/function\";\nimport { useCommand } from \"../../useAPI\";\nimport * as companyApi from \"./api\";\nimport * as remoteData from \"../../RemoteData\";\nimport { AutocompleteInputField } from \"design-system\";\nimport { array, option, taskEither } from \"fp-ts\";\nimport { useRemoteData } from \"../../useRemoteData\";\nimport { useFormatMessage } from \"../../intl\";\nimport { autocompleteInputStatusFromRemoteData } from \"./api\";\nimport { CompanySuggestion } from \"./domain\";\nimport { useDebounceState } from \"../useDebounceState\";\nimport { Option } from \"fp-ts/Option\";\nimport { removeDiacritics } from \"./utils\";\n\ntype Props = Omit<\n React.ComponentProps,\n \"suggestionsStatus\" | \"onSelectSuggestion\" | \"loadingMessage\"\n> & {\n onSelectSuggestion: (value: CompanySuggestion) => unknown;\n onValidationChange?: (value: boolean) => unknown;\n for: \"Name\" | \"ICO\";\n queryString?: string;\n};\n\nconst MIN_COMPANY_SEARCH_TERM_LENGTH = 2;\n\nexport function CompanyField(props: Props) {\n const formatMessage = useFormatMessage();\n const fetchCompanySuggestions = useCommand(companyApi.companySuggestion, {\n skipTracking: true,\n });\n\n const [lastSelectedTerm, setLastSelectedTerm] = useState>(\n option.none\n );\n\n const termEquals = (\n previousTerm: Option,\n currentTerm: string\n ): boolean => {\n return pipe(\n previousTerm,\n option.fold(constFalse, term => term === currentTerm)\n );\n };\n\n const queryTerms = useDebounceState(\n props.queryString !== undefined ? props.queryString : props.value,\n 500\n );\n\n const companySuggestions = useRemoteData(\n useMemo(\n () =>\n queryTerms.length >= MIN_COMPANY_SEARCH_TERM_LENGTH &&\n !termEquals(lastSelectedTerm, queryTerms)\n ? pipe(\n fetchCompanySuggestions({\n text: removeDiacritics(queryTerms.toLowerCase()),\n }),\n taskEither.map(option.some)\n )\n : taskEither.right(option.none),\n [queryTerms]\n )\n );\n\n if (\n queryTerms.length >= MIN_COMPANY_SEARCH_TERM_LENGTH &&\n !termEquals(lastSelectedTerm, queryTerms)\n ) {\n pipe(\n companySuggestions,\n remoteData.fold(constVoid, constVoid, suggestions => {\n if (props.onValidationChange) {\n if (option.isSome(suggestions)) {\n pipe(\n suggestions.value,\n array.some(\n suggestion =>\n suggestion[props.for === \"Name\" ? \"name\" : \"id\"] ===\n props.queryString\n ),\n props.onValidationChange\n );\n } else if (\n props.queryString !== undefined &&\n props.queryString !== \"\"\n ) {\n props.onValidationChange(false);\n }\n }\n })\n );\n }\n\n return (\n ([]))\n )\n ),\n suggestion => ({\n value: suggestion,\n label: formatMessage(\"Form.companyField.autocompleteLabel\", {\n name: suggestion.name,\n ico: suggestion.id,\n }),\n })\n )}\n onSelectSuggestion={s => {\n const select = props.for === \"Name\" ? s.value.name : s.value.id;\n props.onChange(select);\n setLastSelectedTerm(option.some(select));\n props.onSelectSuggestion(s.value);\n if (props.onValidationChange) {\n props.onValidationChange(true);\n }\n }}\n loadingMessage={formatMessage(\"LoadingEllipsis\")}\n />\n );\n}\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./HeaderTouchScreen.treat.FD6TdCQ.css\";\nexport var header = '_1kC5D';\nexport var logoArea = '_2zKA_';","import * as classes from \"./Footer.treat\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport { option } from \"fp-ts\";\nimport {\n Body,\n ContentRow,\n Space,\n Stack,\n TextChildren,\n unsafeLocalizedString,\n useAuthenticationContext,\n useIsMobileLayout,\n} from \"design-system\";\n\ntype Props = {\n children: TextChildren;\n};\n\nexport function Footer(props: Props) {\n const { authInfo } = useAuthenticationContext();\n const isMobileLayout = useIsMobileLayout();\n return (\n \n \n {!isMobileLayout && (\n \n {props.children}\n \n )}\n {!isMobileLayout && }\n {pipe(\n authInfo,\n option.fold(constNull, ({ flowId }) => (\n \n {unsafeLocalizedString(flowId.substring(0, 8))}\n \n ))\n )}\n \n \n );\n}\n","import { eq } from \"fp-ts\";\nimport { constFalse, constTrue } from \"fp-ts/function\";\nimport * as t from \"io-ts\";\nimport { optionFromNullable } from \"io-ts-types/optionFromNullable\";\nimport { apiCall } from \"../APICall\";\n\nimport {\n LinkGenerationError,\n OtpGenerationError,\n OtpVerifyInput,\n OtpGenerationInput,\n OTPGenerationOutput,\n OtpVerifyError,\n EmailVerificationOutput,\n} from \"../PhoneAndEmailVerification/api\";\nimport {\n GenericError,\n CompressedFileContent,\n withCoApplicant,\n} from \"../globalDomain\";\nimport {\n UserStatus,\n CarOwnershipType,\n HousingType,\n OtherDocumentType,\n PersonalProfile,\n IncomeSourceExtended,\n} from \"./domain\";\nimport {\n IDAddressSubmitInput,\n eqIDAddressSubmitInput,\n PermanentAddressSubmitInput,\n eqPermanentAddressSubmitInput,\n} from \"../IdUpload/api\";\nimport { AddressType, eqAddressType } from \"../IdUpload/domain\";\nimport {\n NonNegative,\n NonNegativeInteger,\n LocalizedString,\n} from \"design-system\";\nimport { NonEmptyString } from \"io-ts-types/lib/NonEmptyString\";\n\nconst MarketingConsentUpdateInput = t.type({\n marketingConsent: t.boolean,\n});\n\nexport type MarketingConsentUpdateInput = t.TypeOf<\n typeof MarketingConsentUpdateInput\n>;\n\nexport const eqMarketingConsentUpdateInput = eq.getStructEq({\n marketingConsent: eq.eqBoolean,\n});\n\nexport const CheckStatus = t.keyof({\n PENDING: true,\n DONE: true,\n ERROR: true,\n});\n\nconst UpdateEmailInput = t.type({\n emailAddress: t.string,\n});\nexport type UpdateEmailInput = t.TypeOf;\n\nconst UpdateUserIdInput = t.type({\n newAlias: t.string,\n});\nconst UpdatePasswordForCommunicationInput = t.type({\n passwordForCommunication: t.string,\n});\nconst UpdateUserStatusInput = t.type({\n newStatus: UserStatus,\n});\nconst UpdateBiometricConsentInput = t.type({\n biometricConsent: t.boolean,\n});\n\nconst UpdateAdditionalInformationInput = t.type({\n companyName: optionFromNullable(NonEmptyString),\n companyIco: optionFromNullable(NonEmptyString),\n monthlyIncome: optionFromNullable(NonNegative),\n sourceOfIncome: optionFromNullable(IncomeSourceExtended),\n housingType: optionFromNullable(HousingType),\n carOwnership: optionFromNullable(CarOwnershipType),\n sourceOfIncomeLabelNew: optionFromNullable(LocalizedString),\n sourceOfIncomeLabelOld: optionFromNullable(LocalizedString),\n housingTypeLabelNew: optionFromNullable(LocalizedString),\n housingTypeLabelOld: optionFromNullable(LocalizedString),\n carOwnershipLabelNew: optionFromNullable(LocalizedString),\n carOwnershipLabelOld: optionFromNullable(LocalizedString),\n});\nexport type UpdateAdditionalInformationInput = t.TypeOf<\n typeof UpdateAdditionalInformationInput\n>;\n\nconst ExistingClientPrivateCheck = t.type({\n privateClient: t.boolean,\n});\nexport type ExistingClientPrivateCheck = t.TypeOf<\n typeof ExistingClientPrivateCheck\n>;\n\nexport const checkPrivateClient = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"checkPrivateClient\"],\n inputCodec: t.void,\n outputCodec: ExistingClientPrivateCheck,\n errorCodec: GenericError,\n});\n\nexport const personalProfileRead = apiCall({\n inputCodec: t.void,\n inputEq: eq.fromEquals(constTrue),\n path: [\"clients\", \"personalProfile\"],\n outputCodec: PersonalProfile,\n errorCodec: GenericError,\n});\n\nexport const getPersonalProfile = apiCall({\n inputCodec: t.void,\n inputEq: eq.fromEquals(constTrue),\n path: [\"clients\", \"personalProfile\", \"get\"],\n outputCodec: PersonalProfile,\n errorCodec: GenericError,\n});\n\nexport const updateMarketingConsent = apiCall({\n inputCodec: MarketingConsentUpdateInput,\n inputEq: eqMarketingConsentUpdateInput,\n path: [\"clients\", \"personalProfile\", \"marketingConsent\"],\n});\n\nexport const updatePhoneNumber = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"personalProfile\", \"phoneNumber\"],\n inputCodec: OtpGenerationInput,\n errorCodec: GenericError,\n});\n\nconst LinkGenerationOutput = t.type({\n success: t.boolean,\n attemptsLeft: optionFromNullable(NonNegativeInteger),\n});\n\nexport const updateEmailAndLinkGenerationNow = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"personalProfile\", \"email\", \"now\"],\n inputCodec: UpdateEmailInput,\n outputCodec: LinkGenerationOutput,\n errorCodec: LinkGenerationError,\n});\n\nexport const updateEmailAndLinkGenerationLater = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"personalProfile\", \"email\", \"later\"],\n inputCodec: UpdateEmailInput,\n outputCodec: LinkGenerationOutput,\n errorCodec: LinkGenerationError,\n});\n\nexport const generateOTP = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"authorization\", \"otp\"],\n inputCodec: OtpGenerationInput,\n outputCodec: OTPGenerationOutput,\n errorCodec: OtpGenerationError,\n});\n\nexport const verifyOTP = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"personalProfile\", \"authorization\", \"otp\", \"verify\"],\n inputCodec: OtpVerifyInput,\n errorCodec: OtpVerifyError,\n});\n\nexport const verifyEsawOTP = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"authorization\", \"esaw\", \"verify\"],\n inputCodec: OtpVerifyInput,\n errorCodec: OtpVerifyError,\n});\n\nexport const updateUserId = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"personalProfile\", \"userId\"],\n inputCodec: UpdateUserIdInput,\n errorCodec: GenericError,\n});\n\nexport const updatePasswordForCommunication = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"personalProfile\", \"passwordForCommunication\"],\n inputCodec: UpdatePasswordForCommunicationInput,\n errorCodec: GenericError,\n});\n\nexport const updateUserStatus = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"personalProfile\", \"userStatus\"],\n inputCodec: UpdateUserStatusInput,\n errorCodec: GenericError,\n});\n\nexport const updateBiometricConsent = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"personalProfile\", \"biometricConsent\"],\n inputCodec: UpdateBiometricConsentInput,\n errorCodec: GenericError,\n});\n\nexport const results = apiCall({\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n path: [\"clients\", \"personalProfile\", \"results\"],\n outputCodec: t.type({\n id: optionFromNullable(t.string),\n status: CheckStatus,\n }),\n});\n\nexport const createAdditionalAddress = apiCall({\n path: [\"clients\", \"personalProfile\", \"additionalAddress\"],\n inputCodec: IDAddressSubmitInput,\n inputEq: eqIDAddressSubmitInput,\n});\n\nexport const savePermanentAddress = apiCall({\n path: [\"clients\", \"personalProfile\", \"permanentAddress\"],\n inputCodec: PermanentAddressSubmitInput,\n inputEq: eqPermanentAddressSubmitInput,\n});\n\nexport const updateAdditionalAddress = apiCall({\n path: [\"clients\", \"personalProfile\", \"additionalAddress\", \"update\"],\n inputCodec: IDAddressSubmitInput,\n inputEq: eqIDAddressSubmitInput,\n});\n\nconst RemoveAdditionalAddressInput = t.type({\n addressType: AddressType,\n});\nconst eqAdditionalAddressInput = eq.getStructEq({\n addressType: eqAddressType,\n});\n\nexport const removeAdditionalAddress = apiCall({\n path: [\"clients\", \"personalProfile\", \"additionalAddress\", \"delete\"],\n inputCodec: RemoveAdditionalAddressInput,\n inputEq: eqAdditionalAddressInput,\n});\n\nexport const updateAdditionalInformation = apiCall({\n path: [\"clients\", \"personalProfile\", \"additionalInformation\"],\n inputCodec: UpdateAdditionalInformationInput,\n inputEq: eq.fromEquals(constFalse),\n});\n\nexport const resetSecurityPin = apiCall({\n inputEq: eq.fromEquals(constFalse),\n inputCodec: t.void,\n path: [\"clients\", \"personalProfile\", \"otp\", \"pinReset\"],\n errorCodec: GenericError,\n});\n\nexport const uploadPrimaryIdDocument = apiCall({\n path: [\"clients\", \"personalProfile\", \"primaryIdDocument\"],\n inputCodec: t.void,\n inputEq: eq.fromEquals(constFalse),\n});\n\nexport const uploadSecondaryIdDocument = apiCall({\n path: [\"clients\", \"personalProfile\", \"secondaryIdDocument\"],\n inputCodec: t.void,\n inputEq: eq.fromEquals(constFalse),\n});\n\nconst UploadAdditionalDocumentInput = t.type({\n fileContent: CompressedFileContent,\n documentType: OtherDocumentType,\n});\n\ntype UploadAdditionalDocumentInput = t.TypeOf<\n typeof UploadAdditionalDocumentInput\n>;\n\nexport const uploadAdditionalDocument = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"personalProfile\", \"uploadAdditionalClientDocuments\"],\n inputCodec: UploadAdditionalDocumentInput,\n});\n\nexport const ClientProfileSectionName = t.keyof({\n PhoneNumber: true,\n EmailAddress: true,\n PermanentAddress: true,\n CurrentAdditionAddress: true,\n ContactAdditionalAddress: true,\n AdditionalInformation: true,\n BiometricConsent: true,\n UserStatus: true,\n UserId: true,\n PasswordForCommunication: true,\n MarketingConsent: true,\n SecondaryIdDocument: true,\n PrimaryIdDocument: true,\n AdditionalDocuments: true,\n SecurityPIN: true,\n});\nexport type ClientProfileSectionName = t.TypeOf<\n typeof ClientProfileSectionName\n>;\n\nconst SaveProcessInfoInput = t.type({\n sectionName: ClientProfileSectionName,\n clientNumber: t.string,\n});\n\nexport const saveProcessInfo = apiCall({\n path: [\"clients\", \"personalProfile\", \"saveProcessStep\"],\n inputEq: eq.fromEquals(constFalse),\n inputCodec: SaveProcessInfoInput,\n});\n\nexport const emailVerification = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"clients\", \"personalProfile\", \"checkEmailVerified\"],\n inputCodec: withCoApplicant(t.type({})),\n outputCodec: EmailVerificationOutput,\n});\n\nexport const clientLogout = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"authorization\", \"client\", \"logout\"],\n inputCodec: t.void,\n});\n","import { ComputedFieldProps } from \"design-system\";\nimport { eq, option } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { useEffect } from \"react\";\n\nexport const usePropagateHasChanged: (props: {\n enabled?: boolean;\n initialValue: T;\n fieldProps: ComputedFieldProps;\n equality: eq.Eq;\n onHasChanged?: (hasChanged: boolean) => unknown;\n}) => void = ({\n enabled = true,\n initialValue,\n fieldProps,\n equality,\n onHasChanged,\n}) => {\n useEffect(() => {\n if (!enabled) {\n return;\n }\n\n pipe(\n onHasChanged,\n option.fromNullable,\n option.map(callback =>\n callback(!equality.equals(initialValue, fieldProps.value))\n )\n );\n }, [fieldProps.value]);\n};\n","import { Body, link, Stack, useIsMobileLayout } from \"design-system\";\nimport { useFormatMessage } from \"../../intl\";\n\nexport function HelpLineSupportDocumentId() {\n const formatMessage = useFormatMessage();\n const isMobileLayout = useIsMobileLayout();\n return (\n \n \n {formatMessage(\"Helpline.support.scanning.id.document.description\")}\n \n \n {isMobileLayout\n ? [\n formatMessage(\"Helpline.support.scanning.id.document.suffix\"),\n link(\n `tel:${formatMessage(\n \"Helpline.support.scanning.id.document.phoneNumber\"\n ).replace(/\\s/g, \"\")}`,\n formatMessage(\n \"Helpline.support.scanning.id.document.phoneNumber\"\n )\n ),\n ]\n : [\n formatMessage(\"Helpline.support.scanning.id.document.suffix\"),\n formatMessage(\n \"Helpline.support.scanning.id.document.phoneNumber\"\n ),\n ]}\n \n \n );\n}\n","import {\n Body,\n Box,\n Children,\n CloseIcon,\n Heading,\n LocalizedString,\n Space,\n useIsMobileLayout,\n useIsTouchScreen,\n} from \"design-system\";\nimport * as classes from \"./HeaderCZ.treat\";\nimport { Logo } from \"./Logo\";\nimport { Option } from \"fp-ts/Option\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport { option } from \"fp-ts\";\nimport { ActionIconProps, fold } from \"./headerActionIcon\";\nimport { MenuDropdown } from \"../MenuDropdown/MenuDropdown\";\nimport { HeaderMobileCZ } from \"./HeaderMobile\";\nimport { HeaderTouchScreen } from \"./HeaderTouchScreen\";\nimport cx from \"classnames\";\nimport { LogoOpen } from \"./LogoOpen\";\nimport { palette } from \"design-system/lib/styleConstants\";\nimport { ContainerRowA } from \"./grid/ContainerRowA\";\nimport { CommonProps } from \"./CommonProps\";\n\ntype Props = CommonProps & {\n title: Option[\"children\"]>;\n subtitle?: React.ComponentProps[\"children\"];\n onLogoClick: Option<() => unknown>;\n iconAction: Option;\n dropdownHeading: Option;\n centerContent?: Children;\n};\n\nexport function HeaderCZ(props: Props) {\n const isMobileLayout = useIsMobileLayout();\n const isTouchScreen = useIsTouchScreen();\n\n const renderCenterContent = () => {\n if (!props.centerContent) return <>;\n return (\n \n {props.centerContent}\n \n );\n };\n\n if (isMobileLayout) {\n return ;\n } else if (isTouchScreen) {\n return ;\n } else {\n return (\n \n \n \n \n \n }\n centerContent={renderCenterContent()}\n rightContent={\n \n \n {pipe(\n props.title,\n option.fold(constNull, title => (\n \n {title}\n \n ))\n )}\n {props.subtitle && (\n \n {props.subtitle}\n \n )}\n \n {pipe(\n props.iconAction,\n option.map(\n fold(\n menuOptions => (\n \n ),\n onExit => (\n \n \n \n )\n )\n ),\n option.map(actionIcon => (\n <>\n \n {actionIcon}\n \n )),\n option.toNullable\n )}\n \n }\n />\n );\n }\n}\n","import {\n CookieBanner,\n buttonLink,\n Space,\n useIsMobileLayout,\n} from \"design-system\";\nimport { useState } from \"react\";\nimport { useFormatMessage } from \"../../intl\";\nimport { useAppContext } from \"../../useAppContext\";\nimport { IFrameDialog } from \"../Dialogs/IFrameDialog\";\n\nconst COOKIECONSENT_STORAGE_KEY = \"cookieconsent\";\n\nfunction setPersistedCookieConsent() {\n try {\n localStorage.setItem(COOKIECONSENT_STORAGE_KEY, \"true\");\n } catch (e) {\n console.error(\"LocalStorage Error\", e);\n }\n}\n\nfunction getPersistedCookieConsent(): boolean {\n try {\n return localStorage.getItem(COOKIECONSENT_STORAGE_KEY) === \"true\";\n } catch (e) {\n return false;\n }\n}\n\ntype TriState = \"hide\" | \"show\" | \"info\";\n\nexport function CookiesConsent() {\n const formatMessage = useFormatMessage();\n const [status, setStatus] = useState(\n getPersistedCookieConsent() ? \"hide\" : \"show\"\n );\n const appContext = useAppContext();\n const isMobileLayout = useIsMobileLayout();\n\n switch (status) {\n case \"hide\":\n return null;\n case \"info\":\n return (\n setStatus(\"show\")}\n />\n );\n case \"show\":\n return (\n <>\n {isMobileLayout && }\n setStatus(\"info\"),\n formatMessage(\"CookiesConsent.moreInfo\")\n ),\n ]}\n button={{\n label: formatMessage(\"CookiesConsent.action\"),\n onDismiss: () => {\n setPersistedCookieConsent();\n setStatus(\"hide\");\n },\n }}\n />\n \n );\n }\n}\n","import { createContext, useContext } from \"react\";\nimport { useIdleCountdown as useIdleCountdownHook } from \"./useIdleCountdown\";\nimport { Children } from \"design-system\";\n\ntype Props = {\n minutesBeforeIdle: number;\n minutesWarningDuration: number;\n onIdle: () => void;\n children: Children;\n renderWarning: (\n dismissIdle: () => void,\n remainingTime: number\n ) => JSX.Element;\n};\n\ntype IdleStatusProviderProps = {\n countdown: number;\n showWarning: boolean;\n dismissWarning: () => void;\n};\n\nconst IdleStatusProvider = createContext({\n countdown: 0,\n showWarning: false,\n dismissWarning: () => {},\n});\n\nexport function IdleGuard(props: Props) {\n const minutesToMs = 60e3;\n const { countdown, showWarning, dismissWarning } = useIdleCountdownHook(\n props.minutesBeforeIdle * minutesToMs,\n props.minutesWarningDuration * minutesToMs,\n props.onIdle\n );\n\n return (\n \n {props.children}\n {showWarning && props.renderWarning(dismissWarning, countdown)}\n \n );\n}\n\nexport function useIdleCountdown() {\n return useContext(IdleStatusProvider);\n}\n","import { constant } from \"fp-ts/function\";\nimport { ComponentProps } from \"react\";\nimport { containerRowMaxWidth } from \"design-system/lib/styleConstants\";\nimport { Box, Children, useBreakpoints, useIsTouchScreen } from \"design-system\";\n\ntype Props = {\n content: Children;\n component?: keyof JSX.IntrinsicElements;\n grow?: ComponentProps[\"grow\"];\n};\n\nexport function ContainerRowC(props: Props) {\n const { foldBreakpoints } = useBreakpoints();\n const isTouchScreen = useIsTouchScreen();\n const paddingX = isTouchScreen\n ? 0\n : foldBreakpoints({\n ifDesktopWide: constant(\"10%\"),\n ifDesktop: constant(\"10%\"),\n ifTablet: constant(\"10%\"),\n ifMobileLandscape: constant(\"8%\"),\n ifMobilePortrait: constant(\"6%\"),\n });\n return (\n \n \n {props.content}\n \n \n );\n}\n","import {\n Children,\n CommonProps,\n LocalizedString,\n} from \"design-system/lib//util\";\nimport {\n Box,\n LayoutContext,\n MacroStepper,\n Sticky,\n useIsMobileLayout,\n useIsTouchScreen,\n} from \"design-system\";\nimport { Option } from \"fp-ts/Option\";\nimport { Stepper } from \"./Stepper\";\nimport * as classes from \"./MainLayout.treat\";\nimport { HeaderCZ } from \"./HeaderCZ\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport { boolean, option } from \"fp-ts\";\nimport { Footer } from \"./Footer\";\nimport cx from \"classnames\";\nimport { ContainerRowC } from \"./grid/ContainerRowC\";\nimport { ContainerRowB } from \"./grid/ContainerRowB\";\nimport { Container } from \"./grid/Container\";\n\ntype HeaderProps = React.ComponentProps;\n\ntype Props = CommonProps & {\n steps: Option[\"steps\"]>;\n children: Children;\n title: HeaderProps[\"title\"];\n subtitle?: HeaderProps[\"subtitle\"];\n backgroundImageURL: Option;\n onLogoClick: HeaderProps[\"onLogoClick\"];\n onStepClick: (index: number) => unknown;\n iconAction: HeaderProps[\"iconAction\"];\n dropdownHeading?: LocalizedString;\n contentBackground?: string;\n footer: Option;\n hideHeaderOnMobile?: boolean;\n isStepClickable?: (index: number) => boolean;\n};\n\nexport function MainLayoutCZ(props: Props) {\n const isMobileLayout = useIsMobileLayout();\n const isTouchScreen = useIsTouchScreen();\n\n const header = (\n \n );\n\n const footer = pipe(\n props.footer,\n option.fold(constNull, footer =>
{footer}
)\n );\n\n const desktopLayout = (\n ({\n steps,\n onStepClick: props.onStepClick,\n isStepClickable: props.isStepClickable,\n }))\n )}\n contentBackground={props.contentBackground}\n >\n {header}\n {pipe(\n props.backgroundImageURL,\n option.map(url => (\n \n )),\n option.toNullable\n )}\n \n \n {props.children}\n \n {footer}\n \n }\n />\n \n );\n\n const mobileLayout = (\n \n {!props.hideHeaderOnMobile && header}\n {pipe(\n props.steps,\n option.fold(constNull, steps => (\n \n \n \n ))\n )}\n \n {props.children}\n \n {footer}\n \n );\n\n return (\n \n {pipe(\n isMobileLayout,\n boolean.fold(\n () => desktopLayout,\n () => mobileLayout\n )\n )}\n \n );\n}\n","import * as t from \"io-ts\";\nimport { sharedReducerConfig } from \"../../../BranchExperience/useSharedReducer\";\n\nconst State = t.type({\n open: t.boolean,\n});\n\ntype State = t.TypeOf;\n\nconst OpenAction = t.type({\n type: t.literal(\"OpenAction\"),\n});\nconst CloseAction = t.type({\n type: t.literal(\"CloseAction\"),\n});\n\nexport const onOpenAction: Action = {\n type: \"OpenAction\",\n};\nexport const onCloseAction: Action = {\n type: \"CloseAction\",\n};\n\nconst Action = t.union([OpenAction, CloseAction]);\nexport type Action = t.TypeOf;\n\nfunction reducer(state: State, action: Action): State {\n if (action.type === \"OpenAction\") {\n return { ...state, open: true };\n }\n if (action.type === \"CloseAction\") {\n return { ...state, open: false };\n }\n return state;\n}\n\nexport const reducerConfig = sharedReducerConfig(\n \"VirtualCardsModal\",\n State,\n Action,\n reducer\n);\n","import * as t from \"io-ts\";\nimport { sharedReducerConfig } from \"../../../BranchExperience/useSharedReducer\";\n\nconst Initial = t.type(\n {\n open: t.boolean,\n },\n \"Initial\"\n);\n\nconst State = Initial;\nexport type State = t.TypeOf;\n\nconst OpenAction = t.type({\n type: t.literal(\"OpenAction\"),\n});\nconst CloseAction = t.type({\n type: t.literal(\"CloseAction\"),\n});\nconst Action = t.union([OpenAction, CloseAction]);\nexport type Action = t.TypeOf;\n\nexport const onOpenAction: Action = {\n type: \"OpenAction\",\n};\nexport const onCloseAction: Action = {\n type: \"CloseAction\",\n};\n\nfunction reducer(_: State, action: Action): State {\n switch (action.type) {\n case \"OpenAction\":\n return { open: true };\n case \"CloseAction\":\n return { open: false };\n }\n}\n\nexport const reducerConfig = sharedReducerConfig(\n \"FilePDFDialog\",\n State,\n Action,\n reducer\n);\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./EnvBadge.treat.37eqTkE.css\";\nexport var envBadge = '_1n3fZ';","import {\n unsafeLocalizedString,\n Dialog,\n AuthenticationInfo,\n LocalizedString,\n InfoIcon,\n} from \"design-system\";\nimport { option } from \"fp-ts\";\nimport * as api from \"../../StandardLoan/api\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport { useQuery } from \"../../useAPI\";\nimport * as remoteData from \"../../RemoteData\";\nimport { Option } from \"fp-ts/Option\";\nimport { useEffect, useState } from \"react\";\nimport { useCopyToClipboard } from \"react-use\";\n\ntype Props = {\n authInfo: Option;\n onDismiss: () => void;\n};\n\nexport function EnvInfoDialog(props: Props) {\n const [getApplicationId] = useQuery(api.getApplicationId);\n const [, copyToClipboard] = useCopyToClipboard();\n\n const msgWithoutFlowId = \"No Flow ID available\";\n const msgWithFlowId = \"Flow ID already copied to clipboard\";\n const msgWithFlowIdAndAppId =\n \"Flow ID and Application ID already copied to clipboard\";\n\n const flowId = pipe(\n props.authInfo,\n option.fold(\n () => \"\",\n authInfo => authInfo.flowId\n )\n );\n\n const [appId, setAppId] = useState(\"\");\n\n useEffect(() => {\n copyToClipboard(flowId + \" \" + appId);\n }, [appId]);\n\n return pipe(\n getApplicationId,\n remoteData.fold(\n constNull,\n () => (\n \n ),\n applicationId =>\n pipe(\n applicationId.applicationId,\n option.fold(\n () => (\n \n ),\n applicationId => {\n if (appId === \"\") {\n setAppId(applicationId);\n }\n return (\n \n );\n }\n )\n )\n )\n );\n}\n","import { BuildConfigContext } from \"./BuildConfigContext\";\nimport { BuildConfig } from \"./ConfigBlocks\";\nimport { option } from \"fp-ts\";\n\ntype Props = BuildConfig & {\n children: JSX.Element;\n};\n\nexport function BuildConfigProvider({ apiEndpoint, apiPort, children }: Props) {\n return (\n \n {children}\n \n );\n}\n","import * as t from \"io-ts\";\nimport { LocalizedString } from \"design-system\";\n\nexport const CompanySuggestion = t.type(\n {\n name: LocalizedString,\n id: LocalizedString,\n },\n \"CompanySuggestion\"\n);\nexport type CompanySuggestion = t.TypeOf;\n","import * as classes from \"./IFrameDialog.treat\";\nimport cx from \"classnames\";\nimport { Dialog, useIsMobileLayout, LocalizedString } from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { useFormatMessage } from \"../../intl\";\n\ntype Props = {\n id?: string;\n title: LocalizedString;\n onDismiss: () => unknown;\n url: string;\n};\n\nexport function IFrameDialog(props: Props) {\n const formatMessage = useFormatMessage();\n const isMobileLayout = useIsMobileLayout();\n\n const children = (\n \n );\n\n return (\n \n );\n}\n","import { Reducer, useReducer, Dispatch, useState } from \"react\";\nimport { either, option } from \"fp-ts\";\nimport { constant, constNull, pipe } from \"fp-ts/function\";\nimport { useEvent, useInterval } from \"react-use\";\nimport { useBranchExperienceContext } from \"./BranchExperienceContext\";\nimport {\n DispatchedActionMessage,\n dispatchedActionMessage,\n InitializedMessage,\n InitRequestMessage,\n InitResponseMessage,\n MessageToChild,\n MessageToParent,\n ReducerId,\n reducerId,\n} from \"./sharedReducerDomain\";\nimport * as t from \"io-ts\";\nimport { Option } from \"fp-ts/Option\";\n\ntype InitAction = {\n type: \"InitState\";\n payload: t.TypeOf;\n};\ntype InternalAction =\n | t.TypeOf
\n | InitAction;\n\nconst isInitAction = (\n action: InternalAction\n): action is InitAction => {\n return \"type\" in action && action.type === \"InitState\";\n};\n\ntype BaseReducer = Reducer<\n t.TypeOf,\n t.TypeOf\n>;\ntype SharedReducerConfig = {\n reducerId: ReducerId;\n stateCodec: S;\n actionCodec: A;\n reducer: BaseReducer;\n};\nexport const sharedReducerConfig = (\n id: string,\n stateCodec: S,\n actionCodec: A,\n reducer: BaseReducer\n): SharedReducerConfig => {\n return {\n reducerId: reducerId(id),\n stateCodec,\n actionCodec,\n reducer,\n };\n};\n\ntype SharedState = Option>;\n\ntype SharedReducer = Reducer<\n SharedState,\n InternalAction\n>;\n\nfunction reducerWithInit(\n baseReducer: BaseReducer\n): SharedReducer {\n return (state, action) => {\n if (isInitAction(action)) {\n return option.some(action.payload);\n } else {\n return pipe(\n state,\n option.map(currentState => baseReducer(currentState, action))\n );\n }\n };\n}\n\nfunction useSharedDispatch(\n reducerId: ReducerId,\n actionCodec: A,\n localDispatch: Dispatch>\n): Dispatch> {\n const { postMessage } = useBranchExperienceContext();\n return action => {\n localDispatch(action);\n postMessage(\n DispatchedActionMessage(actionCodec).encode(\n dispatchedActionMessage(reducerId, action)\n )\n );\n };\n}\n\nexport function useParentSharedReducer(\n reducerConfig: SharedReducerConfig,\n initialState: t.TypeOf\n): [t.TypeOf, Dispatch>, boolean] {\n const { stateCodec, actionCodec, reducer, reducerId } = reducerConfig;\n const { postMessage } = useBranchExperienceContext();\n const internalReducer = reducerWithInit(reducer);\n const [state, dispatch] = useReducer(\n internalReducer,\n option.some(initialState)\n );\n const sharedDispatch = useSharedDispatch(reducerId, actionCodec, dispatch);\n const [isInitializing, setIsInitializing] = useState(true);\n\n useEvent(\"message\", (message: MessageEvent) => {\n pipe(\n message.data,\n MessageToParent(actionCodec).decode,\n either.map(message => {\n if (message.reducerId !== reducerId) return;\n switch (message.type) {\n case \"Init\":\n setIsInitializing(true);\n postMessage(\n InitResponseMessage(stateCodec).encode({\n type: \"Init\",\n reducerId,\n initialState: pipe(\n state,\n option.getOrElse(() => initialState)\n ),\n })\n );\n break;\n case \"Initialized\":\n setIsInitializing(false);\n break;\n case \"ActionDispatched\":\n dispatch(message.action);\n break;\n }\n })\n );\n });\n\n return [\n pipe(state, option.getOrElse(initialState)),\n sharedDispatch,\n isInitializing,\n ];\n}\n\nexport function useChildSharedReducer(\n reducerConfig: SharedReducerConfig\n): [SharedState, Dispatch>] {\n const { stateCodec, actionCodec, reducer, reducerId } = reducerConfig;\n const internalReducer = reducerWithInit(reducer);\n const [state, dispatch] = useReducer(internalReducer, option.none);\n const sharedDispatch = useSharedDispatch(reducerId, actionCodec, dispatch);\n const { postMessage } = useBranchExperienceContext();\n\n useEvent(\"message\", (message: MessageEvent) => {\n pipe(\n message.data,\n MessageToChild(stateCodec, actionCodec).decode,\n either.map(message => {\n if (message.reducerId !== reducerId) return;\n switch (message.type) {\n case \"Init\":\n if (option.isNone(state)) {\n dispatch({\n type: \"InitState\",\n payload: message.initialState,\n });\n postMessage(\n InitializedMessage.encode({ type: \"Initialized\", reducerId })\n );\n }\n break;\n case \"ActionDispatched\":\n dispatch(message.action);\n break;\n }\n })\n );\n });\n\n useInterval(() => {\n if (option.isNone(state)) {\n postMessage(InitRequestMessage.encode({ type: \"Init\", reducerId }));\n }\n }, pipe(state, option.fold(constant(50), constNull)));\n\n return [state, sharedDispatch];\n}\n","import { useState, useRef } from \"react\";\nimport {\n menuWrapper,\n menu,\n option as optionClass,\n heading as headingClass,\n openMenuIcon,\n} from \"./MenuDropdown.treat\";\nimport {\n AngleUpIcon,\n AngleDownIcon,\n Box,\n Space,\n Body,\n LocalizedString,\n Children,\n} from \"design-system\";\nimport { useClickAway } from \"react-use\";\nimport * as classes from \"./Dropdown.treat\";\nimport cx from \"classnames\";\nimport { Option } from \"fp-ts/Option\";\nimport { pipe } from \"fp-ts/function\";\nimport { option } from \"fp-ts\";\nimport { CommonProps } from \"../MainContent/CommonProps\";\n\nexport type MenuOption = {\n label: LocalizedString;\n action: () => unknown;\n icon: (props: { size: \"small\" }) => Children;\n};\n\ntype Props = CommonProps & {\n options: [MenuOption, ...MenuOption[]];\n heading: Option;\n};\n\nexport function MenuDropdown(props: Props) {\n const menuRef = useRef(null);\n const [open, setOpen] = useState(false);\n useClickAway(menuRef, () => setOpen(false));\n\n return (\n <>\n setOpen(!open)}>\n {open ? (\n \n ) : (\n \n )}\n \n \n {open && (\n \n {pipe(\n props.heading,\n option.fold(\n () => null,\n heading => (\n \n \n {heading}\n \n \n )\n )\n )}\n {props.options.map(option => (\n {\n option.action();\n setOpen(false);\n }}\n vAlignContent=\"center\"\n >\n {option.icon({ size: \"small\" })}\n \n {option.label}\n \n ))}\n \n )}\n \n \n );\n}\n","import { option } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { ComponentProps } from \"react\";\nimport { Box, Space } from \"design-system\";\nimport { HeaderCZ } from \"./HeaderCZ\";\nimport * as classes from \"./HeaderMobile.treat\";\nimport { Logo } from \"./Logo\";\nimport { LogoOpen } from \"./LogoOpen\";\n\ntype Props = Pick, \"onLogoClick\">;\n\nexport function HeaderMobileCZ(props: Props) {\n return (\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}!./HeaderMobile.treat.2Stftuz.css\";\nexport var header = '_3D_Hr';","import { ComponentProps } from \"react\";\nimport {\n containerRowMaxWidth,\n palette,\n spaceUnit,\n} from \"design-system/lib/styleConstants\";\nimport { HeaderCZ } from \"./HeaderCZ\";\nimport { Logo } from \"./Logo\";\nimport * as classes from \"./HeaderTouchScreen.treat\";\nimport { option } from \"fp-ts\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport { Space, Box, Heading } from \"design-system\";\nimport { LogoOpen } from \"./LogoOpen\";\n\ntype Props = Pick, \"title\">;\n\nexport function HeaderTouchScreen(props: Props) {\n return (\n \n \n \n \n \n \n \n \n \n {pipe(\n props.title,\n option.fold(constNull, title => (\n \n {title}\n \n ))\n )}\n \n \n \n \n );\n}\n","import { constant, constNull } from \"fp-ts/function\";\n\nimport cx from \"classnames\";\nimport {\n containerRowMaxWidth,\n PaletteColor,\n spaceUnit,\n} from \"design-system/lib/styleConstants\";\nimport { Box, Children, useBreakpoints } from \"design-system\";\nimport { headerHeight } from \"../headerHeight\";\nimport * as classes from \"./Container.treat\";\n\ntype Props = {\n leftContent: Children;\n rightContent: Children;\n leftColor: PaletteColor;\n centerColor: PaletteColor;\n centerContent?: Children;\n rightColor: PaletteColor;\n component?: keyof JSX.IntrinsicElements;\n isHeader?: boolean;\n};\n\nfunction SideContent({\n content,\n paddingSide,\n color,\n}: {\n content?: Children;\n paddingSide: \"left\" | \"right\";\n color: PaletteColor;\n}) {\n const { foldBreakpoints } = useBreakpoints();\n\n const sidePaddingX =\n foldBreakpoints({\n ifDesktopWide: constant(10),\n ifDesktop: constant(10),\n ifTablet: constant(10),\n ifMobileLandscape: constant(10),\n ifMobilePortrait: constant(6),\n }) * spaceUnit;\n\n const paddingStyle = (() => {\n switch (paddingSide) {\n case \"left\":\n return {\n paddingLeft: sidePaddingX,\n };\n case \"right\":\n return {\n paddingRight: sidePaddingX,\n };\n }\n })();\n return (\n \n {content}\n \n );\n}\n\nfunction CenterContent({\n centerColor,\n centerContent,\n}: {\n centerColor: PaletteColor;\n centerContent?: Children;\n}) {\n return (\n \n {centerContent}\n \n );\n}\n\nexport function ContainerRowA(props: Props) {\n const { foldBreakpoints } = useBreakpoints();\n const paddingX = foldBreakpoints({\n ifDesktopWide: constant(\"10%\"),\n ifDesktop: constant(\"10%\"),\n ifTablet: constant(\"8%\"),\n ifMobileLandscape: constant(\"8%\"),\n ifMobilePortrait: constant(\"6%\"),\n });\n\n return (\n \n \n \n \n \n {foldBreakpoints({\n ifDesktopWide: constant(\n \n ),\n ifDesktop: constant(\n \n ),\n ifTablet: constant(\n \n ),\n ifMobileLandscape: constant(\n \n ),\n ifMobilePortrait: constNull,\n })}\n \n \n \n \n \n );\n}\n","export const headerHeight = 64;\n","import { containerRowMaxWidth } from \"design-system/lib/styleConstants\";\nimport { Box } from \"design-system/\";\nimport { CommonProps } from \"../CommonProps\";\n\ntype Props = CommonProps & {\n imageUrl: string;\n};\n\nexport function ContainerRowB(props: Props) {\n return (\n \n );\n}\n","import * as classes from \"./Stepper.treat\";\nimport cx from \"classnames\";\nimport * as zipper from \"fp-ts-contrib/lib/Zipper\";\nimport { Zipper } from \"fp-ts-contrib/lib/Zipper\";\nimport {\n Body,\n Box,\n CheckIcon,\n Space,\n Stack,\n LocalizedString,\n unsafeLocalizedString,\n} from \"design-system\";\nimport { pipe } from \"fp-ts/function\";\nimport { forwardRef } from \"react\";\nimport { mapWithIndexAndOrdering } from \"./Zipper\";\nimport { CommonProps } from \"./CommonProps\";\n\ntype Props = CommonProps & {\n /**\n * The list of steps, divided in `lefts` (already \"done\" steps),\n * `focus` (the \"current\" step) and `rights` (steps still to do)\n */\n steps: Zipper;\n onStepClick: (index: number) => unknown;\n isStepClickable?: (index: number) => boolean;\n};\n\ntype StepData = { onClick?: () => unknown } & (\n | { type: \"done\"; label: LocalizedString }\n | { type: \"active\" | \"next\"; number: number; label: LocalizedString }\n);\n\nfunction Step(props: StepData) {\n return (\n \n \n {props.type === \"done\" ? (\n \n ) : (\n {unsafeLocalizedString(props.number)}\n )}\n \n \n \n \n {props.label}\n \n \n \n );\n}\n\nexport const Stepper = forwardRef((props, ref) => {\n const steps = pipe(\n props.steps,\n mapWithIndexAndOrdering((ordering, index, label) => {\n switch (ordering) {\n case -1:\n return (\n props.onStepClick(index)\n : undefined\n }\n />\n );\n case 0:\n return (\n props.onStepClick(index)}\n />\n );\n case 1:\n return (\n props.onStepClick(index)}\n />\n );\n }\n }),\n zipper.toArray\n );\n\n return (\n \n {steps}\n \n );\n});\n","import { Zipper } from \"fp-ts-contrib/lib/Zipper\";\nimport * as zipper from \"fp-ts-contrib/lib/Zipper\";\nimport { ordering } from \"fp-ts\";\nimport { Ordering } from \"fp-ts/Ordering\";\nimport { pipe } from \"fp-ts/function\";\n\nexport function mapWithIndexAndOrdering(\n f: (ordering: Ordering, index: number, a: A) => B\n): (fa: Zipper) => Zipper {\n return fa => {\n const l = fa.lefts.length;\n return pipe(\n fa,\n zipper.mapWithIndex((i, a) => f(ordering.sign(i - l), i, a))\n );\n };\n}\n","import { spaceUnit } from \"design-system/lib/styleConstants\";\n\nexport const stepSize = 20 * spaceUnit;\n","import { useEffect, useState } from \"react\";\nimport { useIdle } from \"react-use\";\nimport { useCountdown } from \"./useCountdown\";\n\nexport function useIdleCountdown(\n idleTime: number,\n showWarningBefore: number,\n onCountdownEnd: () => void\n) {\n const idle = useIdle(1000);\n const [showWarning, setShowWarning] = useState(false);\n const [countdown, resetTimer] = useCountdown(\n idleTime,\n onCountdownEnd,\n !idle && !showWarning\n );\n\n useEffect(() => {\n if (!idle && !showWarning) {\n resetTimer();\n }\n }, [idle]);\n\n useEffect(() => {\n if (countdown * 1000 < showWarningBefore) {\n setShowWarning(true);\n }\n }, [idle, showWarning, countdown]);\n\n const dismissWarning = () => {\n resetTimer();\n setShowWarning(false);\n };\n\n return { countdown, showWarning, dismissWarning };\n}\n","import {\n Box,\n Children,\n ErrorBanner,\n FileContent,\n Loader,\n PdfViewer as InnerPdfViewer,\n ValueOf,\n} from \"design-system\";\nimport { useEffect, useState } from \"react\";\nimport { useFormatMessage } from \"../../intl\";\nimport * as Styles from \"./DocumentViewer.treat\";\n// eslint-disable-next-line no-restricted-imports\nimport \"design-system/lib/pdf_viewer.css\";\n\nexport const DocumentType = {\n Pdf: \"application/pdf\",\n // Image.\n Jpeg: \"image/jpeg\",\n Png: \"image/png\",\n Tiff: \"image/tiff\",\n // Office.\n Docx:\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n Xlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n // Outlook.\n Msg: \"application/vnd.ms-outlook\",\n Msg2: \".msg\",\n} as const;\n\nexport type DocumentType = ValueOf;\n\nexport type DocumentModel = {\n name: string;\n data: FileContent;\n};\n\nexport type DocumentEnvelopeModel = DocumentModel & {\n type: DocumentType;\n};\n\nexport type DocumentViewerProps = DocumentEnvelopeModel & {\n fallback?: (props: DocumentEnvelopeModel) => Children;\n onSupportDetected?: (supported: boolean) => void;\n onContentLoaded?: (numPages?: number) => unknown;\n onLastPageReach?: () => void;\n};\n\nexport function DocumentViewer(props: DocumentViewerProps) {\n const { type, data, fallback, onSupportDetected, ...otherProps } = props;\n const [isTypeSupported, setIsTypeSupported] = useState(true);\n\n useEffect(() => {\n // By default we assume a media type is supported. In case of error there\n // will be an handler which overwrites this assumption.\n // For example, TIFF image format is supported by IE and Edge Legacy on\n // Windows, and by Safari on MacOS, but not by other browsers.\n setIsTypeSupported(true);\n }, [type, data]);\n\n useEffect(() => {\n if (!onSupportDetected) {\n return;\n }\n\n onSupportDetected(isTypeSupported);\n }, [isTypeSupported, onSupportDetected]);\n\n useEffect(() => {\n if (isTypeSupported) {\n return;\n }\n\n logMediaUnsupported(type);\n }, [isTypeSupported, type]);\n\n if (!isTypeSupported) {\n return <>{fallback && fallback({ ...otherProps, type, data })};\n }\n\n switch (type) {\n case DocumentType.Pdf: {\n return (\n setIsTypeSupported(false)}\n />\n );\n }\n case DocumentType.Jpeg:\n case DocumentType.Png:\n case DocumentType.Tiff: {\n return (\n setIsTypeSupported(false)}\n onLoad={() => setIsTypeSupported(true)}\n />\n );\n }\n }\n\n setIsTypeSupported(false);\n\n return null;\n}\n\nexport type PdfViewerProps = DocumentModel & {\n onError?: () => void;\n onContentLoaded?: (numPages?: number) => unknown;\n onLastPageReach?: () => void;\n};\n\nexport function PdfViewer(props: PdfViewerProps) {\n const [pdfLoading, setPdfLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const [key, setkey] = useState(Math.random());\n\n const handleOnContentLoaded = (numPages?: number) => {\n setPdfLoading(false);\n props.onContentLoaded && props.onContentLoaded(numPages);\n };\n\n const handleOnError = () => {\n setPdfLoading(false);\n setHasError(true);\n props.onError && props.onError();\n };\n\n useEffect(() => {\n setPdfLoading(true);\n setHasError(false);\n setkey(Math.random());\n }, [props.data]);\n\n return (\n \n {pdfLoading && }\n {!pdfLoading && hasError && }\n \n \n );\n}\n\nexport type ImageViewerProps = DocumentEnvelopeModel & {\n onError?: () => void;\n onLoad?: () => void;\n};\n\nexport function ImageViewer(props: ImageViewerProps) {\n const { type, data, onError, onLoad } = props;\n\n return (\n \n );\n}\n\nexport type DownloadDocumentButtonProps = DocumentEnvelopeModel;\n\nexport function DocumentLoading() {\n return (\n \n \n \n );\n}\n\nexport function DocumentError() {\n const formatMessage = useFormatMessage();\n\n return (\n {formatMessage(\"DocumentViewer.DisplayError\")}\n );\n}\n\nexport function dataUrlFor(mimeType: string, data: string) {\n return `data:${mimeType};base64,` + data;\n}\n\nexport function logMediaUnsupported(mimeType: string) {\n console.log(\n \"DocumentViewer:\",\n \"browser seams to not support mimetype\",\n mimeType\n );\n}\n","import { option } from \"fp-ts\";\nimport {\n FileContent,\n Box,\n Dialog,\n Loader,\n LocalizedString,\n convertToBlob,\n} from \"design-system\";\nimport * as classes from \"./FileImageDialog.treat\";\nimport cx from \"classnames\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { useRemoteData } from \"../../useRemoteData\";\nimport * as remoteData from \"../../RemoteData\";\n\nimport { constNull, pipe } from \"fp-ts/function\";\n\ntype Props = {\n id?: string;\n /**\n * Title of the Modal\n */\n title: LocalizedString;\n /**\n * Action to be performed when the modal is dismissed\n */\n onDismiss: () => unknown;\n\n /**\n * Name of the file (without extension) that gets downloaded\n */\n fileName: string;\n\n /** How to retrieve the file when the modal is opened */\n file: TaskEither;\n};\n\nexport function FileImageDialog(props: Props) {\n const file = useRemoteData(props.file);\n\n return (\n \n {pipe(\n file,\n remoteData.fold(\n () => ,\n constNull,\n file => {\n const imageUrl = `${URL.createObjectURL(\n convertToBlob(file, \"Image\")\n )}`;\n return (\n \n \n \n );\n }\n )\n )}\n \n );\n}\n","import { Option } from \"fp-ts/Option\";\nimport { NonEmptyArray } from \"fp-ts/NonEmptyArray\";\nimport { DocumentPurpose } from \"../globalDomain\";\nimport { LocaleKey } from \"../intl\";\nimport {\n DocumentIssue,\n PrimaryDocumentIssue,\n SecondaryDocumentIssue,\n SectionStatus,\n} from \"./domain\";\nimport { pipe } from \"fp-ts/function\";\nimport { option } from \"fp-ts\";\nimport { CitizenshipOrOther } from \"../IdUpload/domain\";\n\nexport const foldCitizenship: (match: {\n CZE: () => T;\n SVK: () => T;\n OTHER: (citizenship: CitizenshipOrOther) => T;\n}) => (citizenship: CitizenshipOrOther) => T = match => citizenship => {\n if (citizenship === \"CZE\") {\n return match.CZE();\n } else if (citizenship === \"SVK\") {\n return match.SVK();\n } else {\n return match.OTHER(citizenship);\n }\n};\n\nexport function sectionStatusToPanelStatus(\n status: SectionStatus\n): \"complete\" | \"active\" {\n return status === \"OK\" ? \"complete\" : \"active\";\n}\n\nexport function foldDocumentPurpose(\n documentPurpose: DocumentPurpose,\n match: {\n onPrimary: () => T;\n onSecondary: () => T;\n }\n): T {\n switch (documentPurpose) {\n case \"Primary\":\n return match.onPrimary();\n case \"Secondary\":\n return match.onSecondary();\n }\n}\n\nexport type MissableSecurityData =\n | \"user-id\"\n | \"smart-key\"\n | \"security-pin\"\n | \"password-for-communication\";\n\nexport function missingFieldsToTitleLocaleKey(\n missingFields: NonEmptyArray\n): LocaleKey {\n if (missingFields.includes(\"user-id\")) {\n return \"ClientProfile.missingSecurityData.title.userId\";\n } else if (missingFields.includes(\"smart-key\")) {\n return \"ClientProfile.missingSecurityData.title.smartKey\";\n } else if (missingFields.includes(\"security-pin\")) {\n return \"ClientProfile.missingSecurityData.title.securityPin\";\n } else {\n return \"ClientProfile.missingSecurityData.title.password\";\n }\n}\n\nexport function missingFieldsToMessageLocaleKey(\n missingFields: NonEmptyArray\n): LocaleKey {\n if (missingFields.includes(\"user-id\")) {\n return \"ClientProfile.missingSecurityData.message.userId\";\n } else if (missingFields.includes(\"smart-key\")) {\n if (missingFields.includes(\"security-pin\")) {\n if (missingFields.includes(\"password-for-communication\")) {\n return \"ClientProfile.missingSecurityData.message.smartKey&securityPin&password\";\n } else {\n return \"ClientProfile.missingSecurityData.message.smartKey&securityPin\";\n }\n } else {\n if (missingFields.includes(\"password-for-communication\")) {\n return \"ClientProfile.missingSecurityData.message.smartKey&password\";\n } else {\n return \"ClientProfile.missingSecurityData.message.smartKey\";\n }\n }\n } else if (missingFields.includes(\"security-pin\")) {\n if (missingFields.includes(\"password-for-communication\")) {\n return \"ClientProfile.missingSecurityData.message.securityPin&password\";\n } else {\n return \"ClientProfile.missingSecurityData.message.securityPin\";\n }\n } else {\n return \"ClientProfile.missingSecurityData.message.password\";\n }\n}\n\nexport function missingFieldsToConfirmLocaleKey(\n missingFields: NonEmptyArray\n): LocaleKey {\n if (missingFields.includes(\"user-id\")) {\n return \"ClientProfile.missingUserId.confirm\";\n } else {\n return \"ClientProfile.missingSecurityData.confirm\";\n }\n}\n\nexport function foldIssue<\n I extends PrimaryDocumentIssue | SecondaryDocumentIssue,\n T\n>(issue: I, match: Record T>) {\n return match[issue]();\n}\n\nexport const selectDocumentIssue: (\n primaryIssue: Option,\n secondaryIssue: Option\n) => Option = (primaryIssue, secondaryIssue) =>\n pipe(\n primaryIssue,\n option.fold(\n () =>\n pipe(\n secondaryIssue,\n option.map(issue => ({ documentPurpose: \"Secondary\", issue }))\n ),\n issue =>\n option.some({\n documentPurpose: \"Primary\",\n issue,\n })\n )\n );\n","import { InfoIcon, Tooltip, LocalizedString, IconSize } from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport * as classes from \"./InfoTooltip.treat\";\n\ntype Props = {\n content: LocalizedString;\n size?: IconSize;\n inline?: boolean;\n};\n\nexport const InfoTooltip = (props: Props) => (\n true)\n )}\n >\n \"default\" as IconSize)\n )}\n className={classes.infoIcon}\n />\n \n);\n","import {\n DropdownField as DSDropdownField,\n DropdownFieldProps as DSDropdownFieldProps,\n Omit,\n} from \"design-system\";\nimport { useFormatMessage } from \"../../intl\";\n\nexport type DropdownFieldProps = Omit<\n DSDropdownFieldProps,\n | \"cancelLabel\"\n | \"noResultsLabel\"\n | \"clearSelectionLabel\"\n | \"filterInputPlaceholder\"\n | \"ctaLabel\"\n>;\n\nexport function DropdownField(props: DropdownFieldProps) {\n const formatMessage = useFormatMessage();\n return (\n \n );\n}\n","import {\n Dialog,\n Space,\n SuccessNoCircleIcon,\n TextareaField,\n useForm,\n Banner,\n Box,\n validators,\n PositiveInteger,\n} from \"design-system\";\n\nimport { useState } from \"react\";\nimport { option, taskEither } from \"fp-ts\";\nimport { Option } from \"fp-ts/Option\";\nimport { pipe } from \"fp-ts/function\";\nimport { DocumentNoteUploadError } from \"./domain\";\nimport { NonEmptyString } from \"io-ts-types/NonEmptyString\";\nimport { useFormatMessage } from \"../../../intl\";\nimport { useValidators } from \"../../useValidators\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { DocumentUploadErrorBanner } from \"./DocumentUploadErrorBanner\";\n\nexport const AddDocumentNote = (props: {\n cancelProcess: () => void;\n goToUploadedSuccessfully: () => void;\n onDocumentConfirm: (\n note: Option\n ) => TaskEither;\n maxLengthNote: PositiveInteger;\n fileSizeMax: number;\n isNoteMandatory?: boolean;\n}) => {\n const [noteUploadErrors, setNoteUploadErrors] = useState<\n Option\n >(option.none);\n const formatMessage = useFormatMessage();\n\n const { maxLength } = useValidators();\n const { fieldProps, handleSubmit, setValues } = useForm(\n {\n initialValues: {\n note: option.none as Option,\n },\n fieldValidators: () => ({\n note: validators.validateIfDefined(\n validators.inSequence(\n validators.nonBlankString(\n formatMessage(\n \"Mortgage.Documents.documentUploadDialog.documentNote.error.noBlankString\"\n )\n ),\n validators.notRegex(\n /[\\\\/:*?\"<>|]+/,\n formatMessage(\n \"Mortgage.Documents.documentUploadDialog.documentNote.error.noSpecialCharacters\"\n )\n ),\n maxLength(props.maxLengthNote)\n )\n ),\n }),\n },\n {\n onSubmit: ({ note }) =>\n pipe(\n taskEither.fromIO(() =>\n setNoteUploadErrors(option.none)\n ),\n taskEither.chain(() => props.onDocumentConfirm(note)),\n taskEither.bimap(\n err => setNoteUploadErrors(option.some(err)),\n props.goToUploadedSuccessfully\n )\n ),\n }\n );\n return (\n \n \n \n setValues({\n note: pipe(NonEmptyString.decode(noteStr), option.fromEither),\n })\n }\n value={pipe(\n fieldProps(\"note\").value,\n option.getOrElse(() => \"\")\n )}\n rows={2}\n autogrow={false}\n label={formatMessage(\n props.isNoteMandatory\n ? \"Mortgage.Documents.documentUploadDialog.documentNote.note.label.mandatory\"\n : \"Mortgage.Documents.documentUploadDialog.documentNote.note.label\"\n )}\n placeholder={formatMessage(\n \"Mortgage.Documents.documentUploadDialog.documentNote.note.placeholder\"\n )}\n />\n \n \n \n \n \n );\n};\n","import { Space, Banner } from \"design-system\";\n\nimport { option } from \"fp-ts\";\nimport { Option } from \"fp-ts/Option\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport { DocumentUploadError } from \"./domain\";\nimport { useFormatMessage } from \"../../../intl\";\nimport { fileTypesExts } from \"../../../MortgageDashboard/Documents/domain\";\n\nexport const DocumentUploadErrorBanner = (props: {\n uploadErrors: Option;\n fileSizeMax: number; //only for UnsupportedDocumentSize error\n}) => {\n const formatMessage = useFormatMessage();\n return pipe(\n props.uploadErrors,\n option.fold(constNull, error => (\n <>\n \n {\n switch (error) {\n case \"GenericError\":\n return formatMessage(\n \"Documents.documentUploadDialog.upload.error.GenericError\"\n );\n case \"UnsupportedDocumentFormat\":\n return formatMessage(\n \"Documents.documentUploadDialog.upload.error.UnsupportedDocumentFormat\",\n {\n types: fileTypesExts\n .filter(\n (elem, index, self) => index === self.indexOf(elem)\n )\n .join(\", \"),\n }\n );\n case \"POIUnsupportedDocumentFormat\":\n return formatMessage(\n \"Documents.documentUploadDialog.upload.error.UnsupportedDocumentFormat\",\n {\n types: \".pdf\",\n }\n );\n case \"UnsupportedDocumentSize\":\n return formatMessage(\n \"Documents.documentUploadDialog.upload.error.UnsupportedDocumentSize\",\n {\n size: props.fileSizeMax,\n }\n );\n }\n })()}\n title={option.none}\n actions={option.none}\n type=\"error\"\n />\n \n ))\n );\n};\n","import {\n Dialog,\n FileUploader,\n Body,\n Space,\n CloseIcon,\n SpinnerIcon,\n BadgeIcon,\n Heading,\n Box,\n RadioGroup,\n LocalizedString,\n FileIcon,\n SmartphoneIcon,\n Children,\n Stack,\n PositiveInteger,\n useIsMobileLayout,\n link,\n} from \"design-system\";\n\nimport { Suspense, useState } from \"react\";\nimport { option, taskEither, task } from \"fp-ts\";\nimport { Option } from \"fp-ts/Option\";\nimport { flow, constNull, identity, pipe, constant } from \"fp-ts/function\";\nimport { NonEmptyArray } from \"fp-ts/NonEmptyArray\";\nimport { Step, DocumentUploadError, DocumentNoteUploadError } from \"./domain\";\nimport { MobileUploadStatusDialogPOI as MobileUploadStatusDialog } from \"../../../UploadDocuments/MobileUploadStatusDialogPOI\";\nimport { NonEmptyString } from \"io-ts-types/NonEmptyString\";\nimport { LocaleKey, RuntimeLocaleKey, useFormatMessage } from \"../../../intl\";\nimport * as documentApi from \"../../documentAPI\";\nimport { fileTypesExts } from \"../../../MortgageDashboard/Documents/domain\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport {\n isMainApplicant,\n SelectedApplicant,\n} from \"../../../MortgageDashboard/mortgageDashboardUtils\";\nimport { ChooseMobileDeviceDialog } from \"../../../UploadDocuments/ChooseMobileDeviceDialog\";\nimport { useIsRemoteChannel } from \"../../../useChannel\";\nimport { RemoteMobileDeviceDialog } from \"../../../UploadDocuments/RemoteMobileDeviceDialog\";\nimport { mobileRecipients } from \"../../../UploadDocuments/api\";\nimport {\n CoApplicantInput,\n UploadDocumentFlowType,\n} from \"../../../globalDomain\";\nimport { useQuery } from \"../../../useAPI\";\nimport * as remoteData from \"../../../RemoteData\";\nimport { ProofOfIncomeUploadSameDeviceDialog } from \"../../../UploadDocuments/MobileIdUpload/ProofOfIncomeUploadFlow/ProofOfIncomeUploadSameDeviceDialog\";\nimport { WaitingUploadedStatusDialog } from \"../../../StandardLoan/UploadDocuments/WaitingUploadedStatusDialog\";\nimport { DocumentUploadErrorBanner } from \"./DocumentUploadErrorBanner\";\nimport { AddDocumentNote } from \"./AddDocumentNote\";\nimport { getTranslationProductPrefix } from \"./utils\";\n\ntype DocumentUploadProps = {\n onDismiss: () => void;\n goToDocumentUploading: () => void;\n goToDocumentNote: () => void;\n onDocumentUpload: (file: File) => TaskEither;\n goBackWithError: (error: Option) => void;\n error: Option;\n acceptableFileTypes: documentApi.DocumentMime[];\n fileSizeMax: number;\n documentName?: string;\n isProofOfIncome: boolean;\n};\n\nconst DocumentUpload = (props: DocumentUploadProps) => {\n const formatMessage = useFormatMessage();\n const [uploadErrors, setUploadErrors] = useState>(\n props.error\n );\n\n return (\n \n \n \n {formatMessage(\n \"Documents.documentUploadDialog.upload.maxSizeAllowed\",\n {\n size: props.fileSizeMax,\n }\n )}\n \n \n {formatMessage(\n \"Documents.documentUploadDialog.upload.supportedFormats\",\n {\n types: fileTypesExts\n .filter((elem, index, self) => index === self.indexOf(elem))\n .join(\", \"),\n }\n )}\n \n {props.documentName ? (\n \n {formatMessage(\n \"Documents.documentUploadDialog.upload.documentName.label\",\n {\n documentName: props.documentName,\n }\n )}\n \n ) : (\n <>\n )}\n {props.isProofOfIncome && (\n \n {[\n formatMessage(\n \"CF.Documents.documentUploadDialog.upload.ProofOfIncome.template\"\n ),\n link(\n formatMessage(\n \"CF.Documents.documentUploadDialog.upload.ProofOfIncome.template.link\"\n ),\n formatMessage(\n \"CF.Documents.documentUploadDialog.upload.ProofOfIncome.template.linkLabel\"\n )\n ),\n ]}\n \n )}\n {props.isProofOfIncome && (\n \n {[\n formatMessage(\n \"CF.Documents.documentUploadDialog.upload.ProofOfIncome.manual\"\n ),\n link(\n formatMessage(\n \"CF.Documents.documentUploadDialog.upload.ProofOfIncome.manual.link\"\n ),\n formatMessage(\n \"CF.Documents.documentUploadDialog.upload.ProofOfIncome.manual.linkLabel\"\n )\n ),\n ]}\n \n )}\n \n \n pipe(\n taskEither.fromIO(() =>\n setUploadErrors(option.none)\n ),\n taskEither.chain(() => {\n props.goToDocumentUploading();\n return props.onDocumentUpload(file);\n }),\n taskEither.bimap(error => {\n props.goBackWithError(option.some(error));\n }, props.goToDocumentNote)\n )()\n }\n />\n \n \n \n );\n};\n\nconst CancelProcessDialog = (props: {\n onDismiss: () => void;\n goBack: () => void;\n}) => {\n const formatMessage = useFormatMessage();\n return (\n \n );\n};\n\nconst DocumentUploadingDialog = (props: { cancelProcess: () => void }) => {\n const formatMessage = useFormatMessage();\n return (\n \n \n \n \n {formatMessage(\n \"Documents.documentUploadDialog.upload.uploadingTitle\"\n )}\n \n \n \n );\n};\n\nconst DocumentUploadedSuccessfully = (props: { onDismiss: () => void }) => {\n const formatMessage = useFormatMessage();\n return (\n \n );\n};\n\ntype UploadMode = \"Filesystem\" | \"Mobile\";\ntype UploadModeDialogProps = {\n onDismiss: () => unknown;\n chooseFilesystem: () => unknown;\n chooseMobile: () => unknown;\n productType: UploadDocumentFlowType;\n} & CoApplicantInput;\n\nexport function UploadModeDialog(props: UploadModeDialogProps) {\n const formatMessage = useFormatMessage();\n const isRemote = useIsRemoteChannel();\n\n const [recipients] = useQuery(mobileRecipients, {\n coApplicant: props.coApplicant,\n linkPurpose: \"proofOfIncome\",\n });\n const translationPrefix = getTranslationProductPrefix(props.productType);\n const formatUploadModeTitle = (uploadMode: UploadMode): LocalizedString => {\n switch (uploadMode) {\n case \"Filesystem\":\n return formatMessage(\n `${translationPrefix}.Documents.documentUploadDialog.uploadMode.title.Filesystem` as LocaleKey\n );\n case \"Mobile\":\n return formatMessage(\n `${translationPrefix}.Documents.documentUploadDialog.uploadMode.title.Mobile` as LocaleKey\n );\n }\n };\n\n const formatUploadModeDescription = (\n uploadMode: UploadMode\n ): LocalizedString => {\n switch (uploadMode) {\n case \"Filesystem\":\n return formatMessage(\n `${translationPrefix}.Documents.documentUploadDialog.uploadMode.subtitle.Filesystem` as LocaleKey\n );\n case \"Mobile\":\n return formatMessage(\n `${translationPrefix}.Documents.documentUploadDialog.uploadMode.subtitle.Mobile` as LocaleKey\n );\n }\n };\n\n const formatUploadModeIcon = (uploadMode: UploadMode): Children => {\n switch (uploadMode) {\n case \"Filesystem\":\n return ;\n case \"Mobile\":\n return ;\n }\n };\n\n const submit = (uploadMode: UploadMode) => {\n switch (uploadMode) {\n case \"Filesystem\":\n return props.chooseFilesystem();\n case \"Mobile\":\n return props.chooseMobile();\n }\n };\n\n const [mode, setMode] = useState(\"Filesystem\");\n const options: NonEmptyArray = [\"Filesystem\", \"Mobile\"];\n\n return (\n submit(mode),\n label: formatMessage(\n `${translationPrefix}.Documents.documentUploadDialog.uploadMode.button.upload` as LocaleKey\n ),\n },\n ]}\n >\n \n pipe(\n recipients,\n remoteData.fold(\n () => opt === \"Mobile\",\n () => opt === \"Mobile\",\n recipients => {\n if (isRemote) {\n return opt === \"Mobile\" && recipients.Client.disabled;\n } else {\n return (\n opt === \"Mobile\" &&\n recipients.Banker.disabled &&\n recipients.Client.disabled\n );\n }\n }\n )\n )\n }\n renderOption={formatUploadModeTitle}\n renderOptionChildren={flow(formatUploadModeDescription, option.some)}\n renderOptionIcon={flow(formatUploadModeIcon, option.some)}\n issuesType={option.none}\n />\n \n );\n}\n\nconst KOGoToBranch = (props: {\n goBack: () => unknown;\n productType: UploadDocumentFlowType;\n}) => {\n const formatMessage = useFormatMessage();\n const translationPrefix = getTranslationProductPrefix(props.productType);\n return (\n \n );\n};\n\nexport type MobileUploadProp =\n | {\n mobileUploadEnabled: false;\n }\n | {\n mobileUploadEnabled: true;\n docTypeId: NonEmptyString;\n applicationElementID: Option;\n clientID?: Option;\n documentTypeName?: Option;\n section?: Option;\n translationCode?: Option;\n };\n\nexport type DocumentUploadDialogProps = {\n onDismiss: () => void;\n mobileUploadEnabled: boolean;\n onDocumentUpload: (file: File) => TaskEither;\n onDocumentConfirm: (\n note: Option\n ) => TaskEither;\n onDocumentCancel: () => void;\n selectedApplicant: SelectedApplicant;\n acceptableFileTypes: documentApi.DocumentMime[];\n skipNotes?: boolean;\n maxLengthNote: Option;\n fileSizeMax: number;\n productType: Option;\n documentName?: string;\n isNoteMandatory?: boolean;\n} & MobileUploadProp;\n\nexport const DocumentUploadDialog = (props: DocumentUploadDialogProps) => {\n const initialStep: Step = props.mobileUploadEnabled\n ? { id: \"chooseHowToUpload\" }\n : { id: \"filesystemUpload\", error: option.none };\n const [step, setStep] = useState(initialStep);\n const isRemote = useIsRemoteChannel();\n const isMobileLayout = useIsMobileLayout();\n\n const coApplicant = isMainApplicant(props.selectedApplicant)\n ? option.none\n : option.some(props.selectedApplicant);\n\n const docTypeId = props.mobileUploadEnabled\n ? option.some(props.docTypeId)\n : option.some(\"\" as NonEmptyString);\n\n const appElementId = props.mobileUploadEnabled\n ? props.applicationElementID\n : option.some(\"\" as NonEmptyString);\n\n const clientId =\n props.mobileUploadEnabled && props.clientID\n ? props.clientID\n : option.some(\"\" as NonEmptyString);\n\n const docTypeName =\n props.mobileUploadEnabled && props.documentTypeName\n ? props.documentTypeName\n : option.some(\"\" as NonEmptyString);\n\n const section =\n props.mobileUploadEnabled && props.section\n ? props.section\n : option.some(\"\" as NonEmptyString);\n\n const translationCode =\n props.mobileUploadEnabled && props.translationCode\n ? props.translationCode\n : option.some(\"\" as RuntimeLocaleKey);\n\n switch (step.id) {\n case \"chooseHowToUpload\":\n return (\n \n setStep({ id: \"filesystemUpload\", error: option.none })\n }\n chooseMobile={() =>\n setStep({\n id:\n isRemote || isMobileLayout\n ? \"remoteChooseRecipient\"\n : \"inPersonChooseRecipient\",\n })\n }\n onDismiss={props.onDismiss}\n coApplicant={coApplicant}\n productType={pipe(\n props.productType,\n option.getOrElse(constant(\"MORTGAGE\" as UploadDocumentFlowType))\n )}\n />\n );\n case \"inPersonChooseRecipient\":\n return (\n \n setStep({ id: \"remoteUploadStatus\", recipient })\n }\n onDismiss={props.onDismiss}\n onUploadAgain={option.none}\n onMockScannerUpload={option.none}\n coApplicant={coApplicant}\n />\n );\n case \"remoteChooseRecipient\":\n return (\n \n setStep({ id: \"remoteUploadStatus\", recipient })\n }\n onUploadFromSameDevice={() =>\n setStep({ id: \"mobileUploadSameDevice\" })\n }\n onMockScannerUpload={option.none}\n mobileRecipientType=\"Client\"\n type=\"DocumentUpload\"\n coApplicant={coApplicant}\n />\n );\n case \"remoteUploadStatus\":\n return (\n {\n if (isRemote) {\n setStep({ id: \"KOGoToBranch\" });\n } else {\n setStep({\n id: \"chooseHowToUpload\",\n });\n }\n }}\n onUploadCompleted={task.fromIO(() =>\n props.skipNotes\n ? setStep({ id: \"uploadedSuccessfully\" })\n : setStep({\n id: \"documentNote\",\n uploadBySmsLink: true,\n })\n )}\n coApplicant={coApplicant}\n docTypeId={\n props.mobileUploadEnabled\n ? option.some(props.docTypeId)\n : option.none\n }\n applicationElementID={\n props.mobileUploadEnabled ? props.applicationElementID : option.none\n }\n />\n );\n case \"KOGoToBranch\":\n return (\n setStep({ id: \"chooseHowToUpload\" })}\n productType={pipe(\n props.productType,\n option.getOrElse(constant(\"MORTGAGE\" as UploadDocumentFlowType))\n )}\n />\n );\n case \"filesystemUpload\":\n return (\n setStep({ id: \"documentUploading\" })}\n onDocumentUpload={props.onDocumentUpload}\n goToDocumentNote={() =>\n props.skipNotes\n ? setStep({ id: \"uploadedSuccessfully\" })\n : setStep({\n id: \"documentNote\",\n uploadBySmsLink: false,\n })\n }\n goBackWithError={error => setStep({ id: \"filesystemUpload\", error })}\n error={step.error}\n acceptableFileTypes={props.acceptableFileTypes}\n fileSizeMax={props.fileSizeMax}\n documentName={props.documentName}\n isProofOfIncome={props.mobileUploadEnabled}\n />\n );\n case \"documentUploading\":\n return (\n \n setStep({\n id: \"cancelProcess\",\n fromStage: { id: \"documentUploading\" },\n })\n }\n />\n );\n case \"documentNote\":\n const shouldWaitForSealing =\n step.uploadBySmsLink === true &&\n option.isSome(props.productType) &&\n (props.productType.value === \"SL\" ||\n props.productType.value === \"CL\" ||\n props.productType.value === \"TL\" ||\n props.productType.value === \"RL\" ||\n props.productType.value === \"RPL\");\n\n return (\n \n setStep({\n id: \"cancelProcess\",\n fromStage: {\n id: \"documentNote\",\n uploadBySmsLink: step.uploadBySmsLink,\n },\n })\n }\n maxLengthNote={pipe(\n props.maxLengthNote,\n option.getOrElse(() => 252 as PositiveInteger)\n )}\n goToUploadedSuccessfully={() =>\n shouldWaitForSealing\n ? setStep({ id: \"waitingUploadedStatus\" })\n : setStep({ id: \"uploadedSuccessfully\" })\n }\n onDocumentConfirm={props.onDocumentConfirm}\n fileSizeMax={props.fileSizeMax}\n isNoteMandatory={props.isNoteMandatory}\n />\n );\n case \"cancelProcess\":\n return (\n {\n props.onDocumentCancel();\n props.onDismiss();\n }}\n goBack={() => setStep(step.fromStage)}\n />\n );\n case \"uploadedSuccessfully\":\n return ;\n case \"waitingUploadedStatus\":\n return (\n setStep({ id: \"uploadedSuccessfully\" })}\n />\n );\n case \"mobileUploadSameDevice\":\n return (\n \n \n \n );\n }\n};\n","import {\n AngleLeftIcon,\n Box,\n Button,\n ContentRow,\n ErrorBanner,\n Space,\n useIsMobileLayout,\n} from \"design-system\";\nimport { option, taskEither } from \"fp-ts\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { useFormatMessage } from \"../intl\";\nimport { useCommand } from \"../useAPI\";\nimport { EmailVerification } from \"../PhoneAndEmailVerification/EmailVerification/EmailVerification\";\nimport {\n EmailVerification as EmailVerificationType,\n EmailVerificationError,\n} from \"../PhoneAndEmailVerification/EmailVerification/state\";\nimport { PhoneVerification } from \"../PhoneAndEmailVerification/PhoneVerification/PhoneVerification\";\nimport * as api from \"./api\";\nimport * as phoneAndEmailVerificationApi from \"./../PhoneAndEmailVerification/api\";\nimport {\n OtpGenerationError,\n OtpGenerationInput,\n} from \"./../PhoneAndEmailVerification/api\";\nimport { ContactChangeDataStatus } from \"./ClientProfileState\";\nimport { pipe } from \"fp-ts/function\";\nimport { useScrollTopOnChange } from \"../Common/useScrollTopOnChange\";\nimport { PageHeading } from \"../Common/PageHeading/PageHeading\";\nimport { useIsInPersonChannel } from \"../useChannel\";\nimport { useAppContext } from \"../useAppContext\";\n\ntype Props = {\n data: ContactChangeDataStatus;\n onExit: () => unknown;\n onComplete: () => unknown;\n onHasChanged?: (hasChanged: boolean) => unknown;\n onMaxNumberChangesReached?: (error: OtpGenerationError) => unknown;\n};\n\nexport function ContactChange(props: Props) {\n useScrollTopOnChange(\"auto\");\n const formatMessage = useFormatMessage();\n\n const {\n apiParameters: { channel },\n } = useAppContext();\n\n const updatePhoneNumber = useCommand(api.updatePhoneNumber);\n\n const generateOTP = useCommand(api.generateOTP);\n const verifyOTP = useCommand(api.verifyOTP);\n\n const startUpdateEmailProcess = useCommand(\n phoneAndEmailVerificationApi.startProcess\n );\n const generateLinkNow = useCommand(api.updateEmailAndLinkGenerationNow);\n const generateLinkLater = useCommand(api.updateEmailAndLinkGenerationLater);\n\n const updatePhoneNumberAndGenerateOTP = (data: OtpGenerationInput) =>\n pipe(\n updatePhoneNumber(data),\n taskEither.chain(_ => generateOTP(data))\n );\n const isInPerson = useIsInPersonChannel();\n\n const skipVerification = isInPerson;\n\n const handleRequestLink = (\n emailAddress: string\n ): TaskEither =>\n pipe(\n { emailAddress },\n skipVerification ? generateLinkLater : generateLinkNow,\n taskEither.bimap(\n error => error.id,\n ({ attemptsLeft }) => ({\n type: skipVerification ? \"SkipVerification\" : \"VerifyNow\",\n attemptsLeft,\n })\n )\n );\n\n const isMobileLayout = useIsMobileLayout();\n\n const content = (\n \n \n {isMobileLayout && (\n \n \n \n \n \n )}\n \n \n \n {(() => {\n switch (props.data.contactType) {\n case \"phoneNumber\":\n if (channel !== \"OB_Remote\") {\n const initialPhoneNumber =\n props.data.operationType === \"edit\"\n ? props.data.value\n : option.some(props.data.value);\n return (\n \n );\n } else\n return (\n \n );\n case \"email\":\n return (\n \n pipe(\n startUpdateEmailProcess({\n processName: \"emailVerification\",\n }),\n taskEither.mapLeft(\n () => \"GenericError\"\n ),\n taskEither.chain(() => handleRequestLink(emailAddress))\n )\n }\n onComplete={props.onComplete}\n layout=\"standalone\"\n heading={formatMessage(\"Identification.email.verifyEmail\")}\n verificationAPI={api.emailVerification}\n onHasChanged={props.onHasChanged}\n />\n );\n }\n })()}\n {!isMobileLayout && (\n <>\n \n \n \n \n \n )}\n \n \n \n );\n\n return content;\n}\n","import { Body, Dialog, Stack } from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { LocaleKey, useFormatMessage } from \"../../intl\";\n\ntype Props = {\n onDismiss: () => unknown;\n};\n\nexport function SmartKeyActivationDialog(props: Props) {\n const formatMessage = useFormatMessage();\n\n const paragraph = (title: LocaleKey, text: LocaleKey) => (\n <>\n \n {formatMessage(title)}\n \n \n {formatMessage(text)}\n \n \n );\n\n return (\n \n \n {paragraph(\"SecurityPin.Modal.title1\", \"SecurityPin.Modal.text1\")}\n {paragraph(\"SecurityPin.Modal.title2\", \"SecurityPin.Modal.text2\")}\n {paragraph(\"SecurityPin.Modal.title3\", \"SecurityPin.Modal.text3\")}\n {paragraph(\"SecurityPin.Modal.title4\", \"SecurityPin.Modal.text4\")}\n {paragraph(\"SecurityPin.Modal.title5\", \"SecurityPin.Modal.text5\")}\n \n \n );\n}\n","import { Tenant } from \"../../globalDomain\";\nimport czFlag from \"./cz.svg\";\nimport skFlag from \"./sk.svg\";\nimport * as classes from \"./CountryFlag.treat\";\n\nconst countryIcons: { [K in Tenant]: string } = {\n CZ: czFlag,\n SK: skFlag,\n};\n\ntype Props = {\n tenant: Tenant;\n};\n\nexport function CountryFlag(props: Props) {\n return (\n \n );\n}\n","import { useEffect } from \"react\";\nimport { useChildSharedReducer } from \"../../../BranchExperience/useSharedReducer\";\nimport { onCloseAction, onOpenAction, reducerConfig } from \"./state\";\n\nexport function DocumentReviewDialogChild() {\n const [, dispatch] = useChildSharedReducer(reducerConfig);\n useEffect(() => {\n dispatch(onOpenAction);\n return () => dispatch(onCloseAction);\n }, []);\n return null;\n}\n","import { OTP, unsafePositiveInteger } from \"design-system\";\nimport * as t from \"io-ts\";\nimport { apiCall } from \"../APICall\";\nimport { BankerDetails } from \"./domain\";\nimport { eq } from \"fp-ts\";\nimport { constFalse } from \"fp-ts/function\";\nimport { NonEmptyString } from \"io-ts-types/NonEmptyString\";\nimport { optionFromUndefined } from \"../globalDomain\";\nimport { withFallback } from \"io-ts-types/lib/withFallback\";\nimport { OtpGenerationError, OtpVerifyError } from \"../OTP/domain\";\nimport { nonEmptyArray } from \"io-ts-types/lib/nonEmptyArray\";\nconst BankerActionsOutput = t.type(\n {\n actions: t.array(\n t.type({ action: t.string, enabled: t.boolean }, \"BankerAction\")\n ),\n },\n \"bankerActionsOutput\"\n);\n\nexport type BankerActionsOutput = t.TypeOf;\n\nexport const bankerActions = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"authorization\", \"bankerActions\"],\n inputCodec: t.void,\n outputCodec: BankerActionsOutput,\n});\n\nexport type BankerDetailsOutput = t.TypeOf;\n\nexport const bankerDetails = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"authorization\", \"banker\", \"details\"],\n inputCodec: t.void,\n outputCodec: BankerDetails,\n});\n\nexport const ApplicationAuthorizationInput = t.type({\n applicationId: NonEmptyString,\n});\n\nexport type ApplicationAuthorizationInput = t.TypeOf<\n typeof ApplicationAuthorizationInput\n>;\n\nexport const ExistingClientAuthenticationMode = t.keyof(\n {\n ID_IN_BRANCH: true,\n SMARTKEY: true,\n },\n \"ExistingClientAuthenticationMode\"\n);\nexport type ExistingClientAuthenticationMode = t.TypeOf<\n typeof ExistingClientAuthenticationMode\n>;\n\nexport const PotentialClientAuthenticationMode = t.keyof(\n {\n SMS_OTP: true,\n },\n \"PotentialClientAuthenticationMode\"\n);\nexport type PotentialClientAuthenticationMode = t.TypeOf<\n typeof PotentialClientAuthenticationMode\n>;\n\nexport const AuthenticationMode = t.union([\n ExistingClientAuthenticationMode,\n PotentialClientAuthenticationMode,\n]);\n\nexport type AuthenticationMode = t.TypeOf;\n\nexport const ApplicationAuthorizationOutput = t.type({\n userAuthorized: t.boolean,\n clientAuthenticationRequired: withFallback(t.boolean, false),\n allowedClientAuthenticationTypes: optionFromUndefined(\n nonEmptyArray(AuthenticationMode)\n ),\n clientPhoneNumber: optionFromUndefined(NonEmptyString),\n});\n\nexport type ApplicationAuthorizationOutput = t.TypeOf<\n typeof ApplicationAuthorizationOutput\n>;\n\nconst eqApplicationAuthorization = eq.getStructEq({\n applicationId: eq.eqString,\n});\n\nexport const applicationAuthorization = apiCall({\n inputEq: eqApplicationAuthorization,\n path: [\"authorization\", \"application\", \"checkAuthorization\"],\n inputCodec: ApplicationAuthorizationInput,\n outputCodec: ApplicationAuthorizationOutput,\n});\n\nexport const ApplicationClientAuthenticatedInput = t.type({\n applicationId: NonEmptyString,\n});\n\nexport type ApplicationClientAuthenticatedInput = t.TypeOf<\n typeof ApplicationClientAuthenticatedInput\n>;\n\nconst eqApplicationClientAuthenticated = eq.getStructEq({\n applicationId: eq.eqString,\n});\n\nexport const ApplicationClientAuthenticatedOutput = t.type({\n clientAuthenticated: t.boolean,\n});\n\nexport type ApplicationClientAuthenticatedOutput = t.TypeOf<\n typeof ApplicationClientAuthenticatedOutput\n>;\n\nexport const applicationClientAuthenticated = apiCall({\n inputEq: eqApplicationClientAuthenticated,\n path: [\"authorization\", \"application\", \"checkClientAuthentication\"],\n inputCodec: ApplicationClientAuthenticatedInput,\n outputCodec: ApplicationClientAuthenticatedOutput,\n});\n\n// generateOTP can be called limitless so no output is returned\n\nexport const ApplicationOtpGenerationInput = t.type({\n phoneNumber: t.string,\n applicationId: t.string,\n});\n\nexport type ApplicationOtpGenerationInput = t.TypeOf<\n typeof ApplicationOtpGenerationInput\n>;\n\nexport const generateOTP = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"authorization\", \"branch\", \"client\", \"identification\", \"otp\"],\n inputCodec: ApplicationOtpGenerationInput,\n outputCodec: t.unknown,\n errorCodec: OtpGenerationError,\n});\n\nexport const ApplicationOtpVerifyInput = t.type({\n // 1 since not really used for encoding in input to API\n otp: OTP(unsafePositiveInteger(1)),\n applicationId: t.string,\n});\n\nexport type ApplicationOtpVerifyInput = t.TypeOf<\n typeof ApplicationOtpVerifyInput\n>;\n\nexport const verifyOTP = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"authorization\", \"branch\", \"client\", \"identification\", \"verify\"],\n inputCodec: ApplicationOtpVerifyInput,\n errorCodec: OtpVerifyError,\n});\n\nexport const bankerLogout = apiCall({\n inputEq: eq.fromEquals(constFalse),\n path: [\"authorization\", \"banker\", \"logout\"],\n inputCodec: t.void,\n});\n","import { UploadDocumentFlowType } from \"../../../globalDomain\";\n\nexport function foldVariantReduced(\n productType: UploadDocumentFlowType,\n whenLoans: () => unknown,\n whenMortgage: () => unknown,\n whenPersonalProfile: () => unknown\n) {\n switch (productType) {\n case \"MORTGAGE\":\n return whenMortgage();\n case \"PersonalProfile\":\n return whenPersonalProfile();\n case \"TL\":\n case \"CL\":\n case \"SL\":\n case \"RL\":\n case \"RPL\":\n return whenLoans();\n }\n}\n\nexport function getTranslationProductPrefix(\n productType: UploadDocumentFlowType\n) {\n return foldVariantReduced(\n productType,\n () => \"StandardLoan\",\n () => \"Mortgage\",\n () => \"Mortgage\"\n );\n}\n","import { useRef, useState } from \"react\";\nimport { option, array } from \"fp-ts\";\nimport { identity, pipe } from \"fp-ts/function\";\nimport { Option } from \"fp-ts/Option\";\nimport { sequenceS } from \"fp-ts/Apply\";\nimport {\n Dropdown,\n DropdownOption,\n fieldIssues,\n Stack,\n unsafePositiveInteger,\n LocalizedString,\n unsafeLocalizedString,\n TextChildren,\n FieldProps,\n Field,\n} from \"design-system\";\nimport { MonthYear } from \"../../globalDomain\";\nimport { months, useFormatMessage, useFormatMonth } from \"../../intl\";\nimport {\n dropdownOptionToValue,\n selectedDropdownOption,\n} from \"../selectDropdownOption\";\n\ntype Props = FieldProps> & {\n id?: string;\n clearable: boolean;\n /**\n * Optional, longer description for the input field\n */\n description?: LocalizedString;\n /**\n * Whether to automatically focus the input upon first render.\n * Only a single input element in a given view should have this prop set to true,\n * otherwise the last rendered one obtains the focus.\n */\n autoFocus?: boolean;\n assistiveText?: TextChildren;\n minYear: number;\n maxYear: number;\n ascending?: boolean;\n searchable: boolean;\n};\n\ntype MonthDropdownOption = DropdownOption;\ntype YearDropdownOption = DropdownOption;\n\ntype MonthYearDropdownState = {\n month: Option;\n year: Option;\n};\n\nconst getMonthYearOption = ({ month, year }: MonthYearDropdownState) =>\n pipe(\n { month: dropdownOptionToValue(month), year: dropdownOptionToValue(year) },\n sequenceS(option.option)\n );\n\n/**\n * Helpers\n */\nexport function getMonthYearString(data: { month: number; year: number }) {\n return `${data.year}${String(data.month).padStart(2, \"0\")}`;\n}\n\nexport function MonthYearField(props: Props) {\n const formatMessage = useFormatMessage();\n const formatMonth = useFormatMonth();\n\n const monthOptions = months.map(month => ({\n value: month,\n label: formatMonth(month),\n }));\n\n const yearOptions: YearDropdownOption[] = pipe(\n array.range(props.minYear, props.maxYear),\n props.ascending ? identity : array.reverse\n ).map(year => ({\n value: unsafePositiveInteger(year),\n label: unsafeLocalizedString(year),\n }));\n\n const [month, setMonth] = useState>(\n selectedDropdownOption(\n pipe(\n props.value,\n option.map(value => value.month)\n ),\n monthOptions\n )\n );\n const [year, setYear] = useState>(\n selectedDropdownOption(\n pipe(\n props.value,\n option.map(value => value.year)\n ),\n yearOptions\n )\n );\n\n const monthDropdownRef = useRef(null);\n const yearDropdownRef = useRef(null);\n\n const onBlurDropdown = () => {\n setTimeout(() => {\n if (\n document.activeElement !==\n (monthDropdownRef.current &&\n (monthDropdownRef.current as any).select &&\n (monthDropdownRef.current as any).select.inputRef) &&\n document.activeElement !==\n (yearDropdownRef.current &&\n (yearDropdownRef.current as any).select &&\n (yearDropdownRef.current as any).select.inputRef)\n ) {\n props.onBlur();\n }\n }, 0);\n };\n\n const onChangeDropdown = (monthYear: MonthYearDropdownState) =>\n pipe(monthYear, getMonthYearOption, props.onChange);\n\n return (\n \n {labelId => (\n \n {\n setMonth(value);\n onChangeDropdown({ year, month: value });\n }}\n onBlur={onBlurDropdown}\n isDisabled={props.disabled}\n aria-labelledby={labelId}\n placeholder={formatMessage(\"Month\")}\n issueType={pipe(props.issues, option.map(fieldIssues.issuesType))}\n fieldLabel={props.label}\n cancelLabel={formatMessage(\"Cancel\")}\n clearSelectionLabel={formatMessage(\"Dropdown.clearSelection\")}\n filterInputPlaceholder={formatMessage(\n \"Dropdown.filterInputPlaceholder\"\n )}\n noResultsLabel={formatMessage(\"NoResults\")}\n />\n {\n setYear(value);\n onChangeDropdown({ year: value, month });\n }}\n onBlur={onBlurDropdown}\n isDisabled={props.disabled}\n autoFocus={false}\n aria-labelledby={labelId}\n placeholder={formatMessage(\"Year\")}\n issueType={pipe(props.issues, option.map(fieldIssues.issuesType))}\n fieldLabel={props.label}\n cancelLabel={formatMessage(\"Cancel\")}\n clearSelectionLabel={formatMessage(\"Dropdown.clearSelection\")}\n filterInputPlaceholder={formatMessage(\n \"Dropdown.filterInputPlaceholder\"\n )}\n noResultsLabel={formatMessage(\"NoResults\")}\n />\n \n )}\n \n );\n}\n","import { FeedbackDialog } from \"design-system\";\nimport { useFormatMessage } from \"../../intl\";\n\ntype Props = {\n onClose: () => void;\n};\n\nexport function ApplicationLockedPopup(props: Props) {\n const formatMessage = useFormatMessage();\n\n return (\n \n );\n}\n","import * as t from \"io-ts\";\nimport { optionFromUndefined } from \"../globalDomain\";\n\nexport const BankerActionName = t.keyof(\n {\n AUT_ID: true,\n AUT_SK_PUSH: true,\n AUT_SK_QR: true,\n CA_OPEN: true,\n MTG_OPEN: true,\n CF_OPEN: true,\n PERSONAL_PROFILE_EDIT: true,\n SECURITY_PROFILE_EDIT: true,\n IDENTIFICATION_CLIENT_ENABLE: true,\n },\n \"BankerActionName\"\n);\n\nexport type BankerActionName = t.TypeOf;\n\nexport const BankerAction = t.type(\n {\n enabled: t.boolean,\n action: BankerActionName,\n },\n \"BankerAction\"\n);\n\nexport type BankerAction = t.TypeOf;\n\nexport const BankerDetails = t.type({\n firstName: t.string,\n lastName: t.string,\n userId: t.string,\n lastLogin: optionFromUndefined(t.string),\n});\n\nexport type BankerDetails = t.TypeOf;\n","import { Option } from \"fp-ts/Option\";\nimport { constant, pipe } from \"fp-ts/function\";\nimport {\n FeedbackBlock,\n Action,\n LocalizedString,\n TextChildren,\n} from \"design-system\";\nimport { option } from \"fp-ts\";\n\ntype Props = {\n title: LocalizedString;\n description: Option;\n action: Option<{ onClick: () => unknown; label: LocalizedString }>;\n};\n\nexport function KOError(props: Props) {\n return (\n \n [\n {\n variant: \"primary\",\n action: action.onClick,\n label: action.label,\n },\n ] as [Action]\n ),\n option.getOrElseW(constant([] as []))\n )}\n />\n );\n}\n","import { useEffect, useRef, useState } from \"react\";\nimport { useBranchExperienceContext } from \"./BranchExperienceContext\";\n\ntype Props = {\n children: JSX.Element;\n disabled: boolean;\n};\n\nexport function BranchExperienceParentSwitch({ children, disabled }: Props) {\n const context = useBranchExperienceContext();\n const [loading, setLoading] = useState(true);\n const refPrev = useRef();\n\n useEffect(() => {\n if (context) {\n context.setTempDisabled(prev => {\n refPrev.current = prev;\n return disabled;\n });\n }\n setLoading(false);\n return () => {\n if (context && refPrev.current !== undefined) {\n context.setTempDisabled(refPrev.current);\n }\n };\n }, []);\n\n if (loading) {\n return <>;\n }\n\n return <>{children};\n}\n","import { forwardRef, useState } from \"react\";\nimport * as classes from \"./IframePortal.treat\";\nimport { useEvent } from \"react-use\";\n\ntype Props = {\n src: string;\n onMessageReceived: (message: unknown) => void;\n width: number;\n height: number;\n};\n\nexport const IframePortal = forwardRef(\n (props, forwardedRef) => {\n const [iframe, setIframe] = useState(null);\n const iframRef = (iframe: HTMLIFrameElement | null) => {\n setIframe(iframe);\n if (forwardedRef && typeof forwardedRef === \"function\") {\n forwardedRef(iframe);\n } else {\n forwardedRef!.current = iframe;\n }\n };\n\n useEvent(\"message\", (message: MessageEvent) => {\n if (\n iframe &&\n iframe.contentWindow &&\n iframe.contentWindow === message.source\n ) {\n props.onMessageReceived(message.data);\n }\n });\n\n return (\n \n \n \n );\n }\n);\n","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./IframePortal.treat.1mfYLrT.css\";\nexport var iframe = '_3vi7K';","import { exit, menu, fold } from \"./headerActionIcon\";\n\nexport * from \"./MainContent\";\nexport * from \"./Footer\";\n\nexport const headerActions = {\n exit,\n menu,\n fold,\n};\n","import {\n Box,\n convertToBlob,\n Dialog,\n downloadFile,\n DownloadIcon,\n unsafeLocalizedString,\n useDialogDimensionLimits,\n} from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { useFormatMessage } from \"../../../intl\";\nimport { DocumentViewer } from \"../../DocumentViewer/DocumentViewer\";\nimport * as remoteData from \"../../../RemoteData\";\nimport * as api from \"../../documentAPI\";\nimport { constNull, pipe } from \"fp-ts/function\";\nimport { useQuery } from \"../../../useAPI\";\nimport { spaceUnit } from \"design-system/lib/styleConstants\";\nimport { NonEmptyString } from \"io-ts-types/NonEmptyString\";\n\ntype ProductType = \"SL\" | \"Mortgage\";\n\nexport type DocumentViewDialogProps = {\n documentId: NonEmptyString;\n onClose: () => void;\n productType: ProductType;\n};\n\nfunction foldProduct(\n productType: ProductType,\n match: { whenSL: () => T; whenMortgage: () => T }\n) {\n switch (productType) {\n case \"Mortgage\":\n return match.whenMortgage();\n case \"SL\":\n return match.whenSL();\n }\n}\n\nexport const DocumentViewDialog = (props: DocumentViewDialogProps) => {\n const { documentId, onClose } = props;\n const formatMessage = useFormatMessage();\n\n const { heightLimits } = useDialogDimensionLimits();\n\n const { maxHeight } = heightLimits();\n\n const [documentContent] = useQuery(\n foldProduct(props.productType, {\n whenSL: () => api.getDocumentContentSL,\n whenMortgage: () => api.getDocumentContentMortgage,\n }),\n {\n documentID: documentId,\n }\n );\n\n const getDownloadUrl = (file: api.GetDocumentContentOutput) =>\n URL.createObjectURL(convertToBlob(file.content, file.mimeType));\n\n return pipe(\n documentContent,\n remoteData.fold(constNull, constNull, docContent => (\n \n \n \n \n \n ))\n );\n};\n","import { createContext, useContext } from \"react\";\nimport { constVoid } from \"fp-ts/function\";\n\nexport interface BranchExperienceContext {\n branchExperienceFeaturesActive: boolean;\n isPotentialClientLoginCompleted: boolean;\n openChildWindow: () => void;\n postMessage: (message: unknown) => void;\n setTempDisabled: (\n tempDisabled: boolean | ((prev: boolean) => boolean)\n ) => void;\n}\n\nexport const BranchExperienceContext = createContext({\n branchExperienceFeaturesActive: false,\n isPotentialClientLoginCompleted: false,\n openChildWindow: constVoid,\n postMessage: constVoid,\n setTempDisabled: constVoid,\n});\n\nexport function useBranchExperienceContext(): BranchExperienceContext {\n return useContext(BranchExperienceContext);\n}\n","import { Loader } from \"design-system\";\nimport { option } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { Option } from \"fp-ts/Option\";\nimport { ExistingClientAuthenticationMethod } from \"../globalDomain\";\nimport * as remoteData from \"../RemoteData\";\nimport { useQuery } from \"../useAPI\";\nimport * as loanApi from \"../StandardLoan/api\";\nimport { StandardLoanFlowType } from \"../StandardLoan/domain\";\nimport { SignatureType } from \"../StandardLoan/api\";\n\ntype Props = {\n renderChild: (signatureType: Option) => JSX.Element;\n defaultAuthenticationMethod: Option;\n flowType: StandardLoanFlowType;\n};\n\nexport const AuthMethodCalculateBySignatureType = (props: Props) => {\n const [getSignatureType] = useQuery(loanApi.getSignatureType);\n\n return pipe(\n getSignatureType,\n remoteData.fold(\n () => ,\n () => props.renderChild(option.none),\n signature =>\n pipe(\n signature.signatureType,\n option.fold(\n () => props.renderChild(option.none),\n signatureType => props.renderChild(option.some(signatureType))\n )\n )\n )\n );\n};\n","import { DropdownOption } from \"design-system\";\nimport {\n foldTenant,\n MaritalStatus,\n MaritalStatusCZ,\n MaritalStatusSK,\n} from \"../../globalDomain\";\nimport { pipe } from \"fp-ts/function\";\nimport { record, array } from \"fp-ts\";\nimport { useFormatMaritalStatus } from \"../../intl\";\nimport { Option } from \"fp-ts/Option\";\nimport {\n dropdownOptionToValue,\n selectedDropdownOption,\n} from \"../selectDropdownOption\";\nimport { useAppContext } from \"../../useAppContext\";\nimport {\n DropdownField,\n DropdownFieldProps,\n} from \"../DropdownField/DropdownField\";\n\ntype Props = Omit<\n DropdownFieldProps,\n \"options\" | \"value\" | \"onChange\" | \"searchable\"\n> & {\n value: Option;\n onChange: (maritalStatus: Option) => unknown;\n isForeign?: boolean;\n};\n\nexport function MaritalStatusDropdown(props: Props) {\n const formatMaritalStatus = useFormatMaritalStatus();\n\n const {\n apiParameters: { tenant },\n } = useAppContext();\n\n const options = pipe(\n props.isForeign\n ? record.keys(MaritalStatusCZ.keys)\n : foldTenant(\n tenant,\n () => record.keys(MaritalStatusSK.keys),\n () => record.keys(MaritalStatusCZ.keys)\n ),\n array.map(maritalStatus => ({\n value: maritalStatus,\n label: formatMaritalStatus(maritalStatus),\n }))\n );\n\n const value = selectedDropdownOption(props.value, options);\n\n const onChange = (value: Option>) => {\n props.onChange(dropdownOptionToValue(value));\n };\n\n return (\n \n );\n}\n","import { Button, AngleLeftIcon, useIsMobileLayout } from \"design-system\";\nimport { boolean } from \"fp-ts\";\nimport { pipe } from \"fp-ts/function\";\nimport { useFormatMessage } from \"../../intl\";\n\ntype Props = {\n action: () => unknown;\n disabled?: boolean;\n className?: string;\n};\n\nexport function BackButton(props: Props) {\n const formatMessage = useFormatMessage();\n const isMobileLayout = useIsMobileLayout();\n\n return (\n AngleLeftIcon,\n () => undefined\n )\n )}\n label={formatMessage(\"Back\")}\n action={props.action}\n disabled={props.disabled}\n className={props.className}\n />\n );\n}\n","import { useState, useCallback, useMemo, useRef, useEffect } from \"react\";\nimport { Option } from \"fp-ts/Option\";\nimport { pipe } from \"fp-ts/function\";\nimport { option, either, taskEither, eq, boolean } from \"fp-ts\";\nimport {\n Children,\n useLoadingStatusWrite,\n AuthenticationContext,\n TokenInfo,\n AuthenticationInfo,\n useAuthenticationContext,\n useStableEquality,\n useIsTouchScreen,\n} from \"design-system\";\nimport { UUID } from \"io-ts-types/lib/UUID\";\nimport * as t from \"io-ts\";\nimport { fetchAPI, resetRefreshStatus, setLatestTokenInfo } from \"./APICall\";\nimport { useAPIEndpoint } from \"./useAPIEndpoint\";\nimport { useAppContext } from \"./useAppContext\";\nimport { TaskEither } from \"fp-ts/TaskEither\";\nimport { PortalBlocked, UnauthorizedError } from \"./globalDomain\";\nimport { IO } from \"fp-ts/IO\";\nimport { usePortalStatusContext } from \"./PortalStatusContext\";\nimport { TabLock } from \"./Common/TabLock/TabLock\";\nimport { useIsSBChannel } from \"./useChannel\";\n\nconst { v4: uuid } = require(\"uuid\");\nconst newTabUuid = uuid();\n\ntype Props = {\n children: Children;\n authInfo: Option;\n is3P?: boolean;\n isChangingPassword?: boolean;\n potentialClientToken: TaskEither>;\n onLogout?: IO;\n};\n\nfunction getPersistedAuthInfo(\n sessionStorageKey: string\n): Option {\n return pipe(\n either.tryCatch(\n () => sessionStorage.getItem(sessionStorageKey),\n either.toError\n ),\n either.chainW(t.string.decode),\n either.chainW(s => either.parseJSON(s, either.toError)),\n either.chainW(AuthenticationInfo.decode),\n option.fromEither\n );\n}\n\nfunction setPersistedAuthInfo(\n sessionStorageKey: string,\n value: Option\n) {\n pipe(\n value,\n option.fold(\n () => option.tryCatch(() => sessionStorage.removeItem(sessionStorageKey)),\n value =>\n option.tryCatch(() =>\n sessionStorage.setItem(\n sessionStorageKey,\n JSON.stringify(AuthenticationInfo.encode(value))\n )\n )\n )\n );\n}\n\nfunction setTabLock(uuid: String) {\n const lock = { value: uuid, lastTimestamp: new Date().getTime() };\n try {\n localStorage.setItem(\"tabLock\", JSON.stringify(lock));\n } catch (e) {\n console.error(\"LocalStorage Error\", e);\n }\n}\n\nfunction getPersistedTabLock() {\n try {\n let lock = localStorage.getItem(\"tabLock\");\n return lock != null ? JSON.parse(lock) : 0;\n } catch (e) {\n console.error(\"LocalStorage Error\", e);\n }\n}\n\nfunction removeTabLock() {\n const currentLock = getPersistedTabLock();\n //check if it is this tab's own lock\n if (!!currentLock && currentLock.value !== newTabUuid) {\n return;\n }\n\n try {\n localStorage.removeItem(\"tabLock\");\n } catch (e) {\n console.error(\"LocalStorage Error\", e);\n }\n}\n\nfunction canOpenAnotherTab(uuid: String): boolean {\n const tabLock = getPersistedTabLock();\n const lastTimestamp = tabLock[\"lastTimestamp\"];\n if (tabLock[\"value\"] === undefined || tabLock[\"value\"] === uuid) {\n //same tab\n return true;\n }\n return !isNaN(lastTimestamp)\n ? new Date().getTime() - lastTimestamp > 10000\n : true;\n}\n\nfunction isEmailVerificationLink() {\n return window.location.toString().includes(\"emailverification\");\n}\n\nfunction isBranchExperienceDualSession() {\n return window.location.toString().includes(\"screen=external\");\n}\n\nfunction isDocumentsUploadLink() {\n return window.location.toString().includes(\"uploaddocumentsclient\");\n}\n\nfunction isMobileUploadLink() {\n return window.location.toString().includes(\"mobileUpload\");\n}\n\nfunction skipTabLock() {\n return (\n isBranchExperienceDualSession() ||\n isEmailVerificationLink() ||\n isDocumentsUploadLink() ||\n isMobileUploadLink()\n );\n}\n\nconst ReassignTokenResponse = t.type({ flowId: UUID }, \"ReassignTokenResponse\");\n\nexport const AuthenticationContextProvider = (props: Props) => {\n const isTouchscreen = useIsTouchScreen();\n const isSBChannel = useIsSBChannel();\n\n const LOCAL_STORAGE_KEY = isTouchscreen ? \"auth-touch\" : \"auth\";\n\n const { trackSubmission, resetSubmissionCount } = useLoadingStatusWrite();\n const parentAuthContext = useAuthenticationContext();\n\n const authInfo = useRef>(\n pipe(\n props.authInfo,\n option.alt(() => getPersistedAuthInfo(LOCAL_STORAGE_KEY))\n )\n );\n\n const [, updateState] = useState();\n const forceUpdate = useCallback(() => updateState({}), []);\n\n function login(newAuthInfo: AuthenticationInfo) {\n authInfo.current = option.some(newAuthInfo);\n setPersistedAuthInfo(LOCAL_STORAGE_KEY, option.some(newAuthInfo));\n parentAuthContext.login(newAuthInfo);\n forceUpdate();\n }\n\n function logout() {\n authInfo.current = option.none;\n setPersistedAuthInfo(LOCAL_STORAGE_KEY, option.none);\n parentAuthContext.logout();\n resetRefreshStatus();\n forceUpdate();\n resetSubmissionCount();\n if (props.onLogout) props.onLogout();\n }\n\n const [propsAuthInfoStableEqWithCurrent] = useStableEquality(\n option.getEq(\n eq.getStructEq({\n token: eq.eqStrict,\n refreshToken: eq.eqStrict,\n flowId: eq.eqStrict,\n })\n ),\n authInfo.current\n );\n\n const [propsAuthInfoStableEq] = useStableEquality(\n option.getEq(\n eq.getStructEq({\n token: eq.eqStrict,\n refreshToken: eq.eqStrict,\n flowId: eq.eqStrict,\n })\n ),\n props.authInfo\n );\n useEffect(() => {\n if (option.isSome(props.authInfo) && !props.isChangingPassword) {\n login(props.authInfo.value);\n }\n }, [propsAuthInfoStableEq]);\n\n useEffect(() => {\n if (!(skipTabLock() || isSBChannel)) {\n if (!canOpenAnotherTab(newTabUuid)) {\n setShowTabLock(true);\n } else {\n setShowTabLock(false);\n }\n }\n }, [canOpenAnotherTab(newTabUuid)]);\n\n function refreshToken(tokenInfo: TokenInfo) {\n if (option.isSome(authInfo.current)) {\n const newAuthInfo = option.some({\n ...tokenInfo,\n flowId: authInfo.current.value.flowId,\n });\n authInfo.current = newAuthInfo;\n setPersistedAuthInfo(LOCAL_STORAGE_KEY, newAuthInfo);\n parentAuthContext.refreshToken(tokenInfo);\n forceUpdate();\n }\n }\n\n const apiEndpoint = useAPIEndpoint();\n const { apiParameters } = useAppContext();\n const [showTabLock, setShowTabLock] = useState(\n !(skipTabLock() || isSBChannel) && !canOpenAnotherTab(newTabUuid)\n );\n const {\n retrieveCurrentPortalStatus: checkPortalBlocked,\n setAlertModalVisible,\n } = usePortalStatusContext();\n\n const onPortalBlocked = () => {\n checkPortalBlocked();\n setAlertModalVisible(true);\n };\n\n const startNewFlow = (keepClient: boolean) =>\n pipe(\n authInfo,\n authInfo => authInfo.current,\n option.fold(\n () => taskEither.left(\"Not authenticated yet\"),\n ({ token, refreshToken, flowId }) =>\n pipe(\n !(skipTabLock() || isSBChannel)\n ? canOpenAnotherTab(newTabUuid)\n : true,\n boolean.fold(\n () =>\n taskEither.fromIO(() => {\n setShowTabLock(true);\n }),\n () => {\n setShowTabLock(false);\n return pipe(\n fetchAPI({\n apiParameters,\n tokenInfo: option.some({ token, refreshToken }),\n apiEndpoint,\n url: props.is3P\n ? [\n \"authorization\",\n \"3P\",\n keepClient ? \"reassignKeepClient\" : \"reassign\",\n ]\n : [\n \"authorization\",\n \"token\",\n keepClient ? \"reassignKeepClient\" : \"reassign\",\n ],\n bodyType: \"JSON\",\n body: {\n flowId,\n },\n flowId: option.fromNullable(flowId),\n }),\n taskEither.orElse(err =>\n pipe(\n err,\n UnauthorizedError.decode,\n either.fold(\n () =>\n pipe(\n err,\n PortalBlocked.decode,\n either.fold(\n () => taskEither.left(err),\n () => {\n return pipe(\n taskEither.fromIO(() => onPortalBlocked()),\n taskEither.chain(() => taskEither.left(err))\n );\n }\n )\n ),\n () => taskEither.leftIO(logout)\n )\n )\n ),\n taskEither.chain(r => {\n if (\n r.response.status === 401 ||\n r.response.status === 403 ||\n r.response.status === 500\n ) {\n return taskEither.leftIO(logout);\n }\n return taskEither.right(r.response.body);\n }),\n taskEither.chainEitherKW(ReassignTokenResponse.decode),\n taskEither.chainW(({ flowId }) =>\n taskEither.fromIO(() => {\n login({ flowId, token, refreshToken });\n })\n )\n );\n }\n )\n )\n ),\n trackSubmission\n );\n\n const transitionToPotentialClient = pipe(\n props.potentialClientToken,\n taskEither.chain(\n option.fold(\n () => taskEither.of>(option.none),\n tokenInfo =>\n taskEither.fromIO(() => {\n refreshToken(tokenInfo);\n setLatestTokenInfo(option.some(tokenInfo));\n return option.some(tokenInfo);\n })\n )\n )\n );\n\n const authenticated = option.isSome(authInfo.current);\n const lastFlowId = pipe(\n authInfo.current,\n option.fold(\n () => \"\",\n a => a.flowId\n )\n );\n\n // Only update the consumers if the state changes from logged in to logged out, or viceversa.\n // Every other update (token changed, refreshToken changed) would cause too many re-renders for no reason,\n // since the latest token/refreshToken are also tracked by APICall itself\n const value = useMemo(() => {\n return {\n authInfo: authInfo.current,\n login,\n logout,\n startNewFlow: startNewFlow(false),\n startNewFlowKeepClient: startNewFlow(true),\n refreshToken,\n transitionToPotentialClient,\n };\n // eslint-disable-next-line\n }, [authenticated, lastFlowId, propsAuthInfoStableEqWithCurrent]);\n\n useEffect(() => {\n if (!(skipTabLock() || isSBChannel)) {\n const tabLock = getPersistedTabLock();\n const uuidFromStorage = tabLock[\"value\"];\n if (\n authenticated &&\n (uuidFromStorage === undefined ||\n uuidFromStorage === newTabUuid ||\n new Date().getTime() - tabLock[\"lastTimestamp\"] > 10000)\n ) {\n const interval = window.setInterval(() => {\n setTabLock(newTabUuid);\n }, 5000);\n return () => window.clearInterval(interval);\n }\n }\n return;\n }, []);\n\n useEffect(() => {\n window.addEventListener(\"beforeunload\", removeTabLock);\n window.addEventListener(\"unload\", removeTabLock);\n return () => {\n window.removeEventListener(\"beforeunload\", removeTabLock);\n window.removeEventListener(\"unload\", removeTabLock);\n };\n }, []);\n\n return (\n \n {props.children}\n {showTabLock && }\n \n );\n};\n","import { useEffect } from \"react\";\nimport { useChildSharedReducer } from \"../../../BranchExperience/useSharedReducer\";\nimport { onCloseAction, onOpenAction, reducerConfig } from \"./state\";\n\nexport function VirtualCardsDialogChild() {\n const [, dispatch] = useChildSharedReducer(reducerConfig);\n useEffect(() => {\n dispatch(onOpenAction);\n return () => dispatch(onCloseAction);\n }, []);\n return null;\n}\n","import { ComponentProps } from \"react\";\nimport {\n Box,\n Children,\n ContentRow,\n PageHeading,\n useIsMobileLayout,\n} from \"design-system\";\nimport { CommonProps } from \"./CommonProps\";\n\ntype Props = CommonProps & {\n pageHeading?: ComponentProps;\n children: Children;\n};\n\nexport function MainContent({ pageHeading, children }: Props) {\n const isMobileLayout = useIsMobileLayout();\n return (\n \n \n {pageHeading && !isMobileLayout && (\n \n )}\n {children}\n \n \n );\n}\n","import \"!../../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./FilePDFDialog.treat.2jj-ZGD.css\";\nexport var loadingWrapper = '_3bcOQ';","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./DocumentViewer.treat.1v1u8Ci.css\";\nexport var native = '_14jEs';\nexport var image = 'Zmt7a';\nexport var page = '_3GBQ1';","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5MDAgNjAwIj4KPHJlY3Qgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiIGZpbGw9IiNkNzE0MWEiLz4KPHJlY3Qgd2lkdGg9IjkwMCIgaGVpZ2h0PSIzMDAiIGZpbGw9IiNmZmYiLz4KPHBhdGggZD0iTSA0NTAsMzAwIDAsMCBWIDYwMCB6IiBmaWxsPSIjMTE0NTdlIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5IDYiPgogIDxyZWN0IHdpZHRoPSI5IiBoZWlnaHQ9IjYiIGZpbGw9IiNlZTFjMjUiIC8+CiAgPHJlY3Qgd2lkdGg9IjkiIGhlaWdodD0iNCIgZmlsbD0iIzBiNGVhMiIgLz4KICA8cmVjdCB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBmaWxsPSIjZmZmIiAvPgogIDxnPgogICAgPHBhdGggZmlsbD0iI2ZmZiIKICAgICAgZD0iTTMuMTYyNTUsNC42MzVjLTAuNTM3ODEtMC4yNTkwNS0xLjMwNzEtMC43NzMyMy0xLjMwNzEtMS43OTAzMywwLTEuMDE3MTEsMC4wNDg2My0xLjQ3OTY3LDAuMDQ4NjMtMS40Nzk2N2gxLjI1ODQ3LDEuMjU4NXMwLjA0ODY0LDAuNDYyNTYsMC4wNDg2NCwxLjQ3OTY3YzAsMS4wMTcxLTAuNzY5MjksMS41MzEyOC0xLjMwNzE0LDEuNzkwMzN6IiAvPgogICAgPHBhdGggZmlsbD0iI2VlMWMyNSIKICAgICAgZD0iTTMuMTYyNTUsNC41Yy0wLjQ5MzQtMC4yMzc2Ni0xLjE5OTE3LTAuNzA5MzgtMS4xOTkxNy0xLjY0MjUxLDAtMC45MzMxMjgsMC4wNDQ2MTItMS4zNTc0OSwwLjA0NDYxMi0xLjM1NzQ5aDEuMTU0NTYsMS4xNTQ1OXMwLjA0NDYyNiwwLjQyNDM2NSwwLjA0NDYyNiwxLjM1NzQ5YzAsMC45MzMxMjgtMC43MDU3NzYsMS40MDQ4NS0xLjE5OTIxLDEuNjQyNTF6IiAvPgogICAgPHBhdGggZmlsbD0iI2ZmZiIKICAgICAgZD0ibTMuMjY4MDgsMi42MTI4NGMwLjEzMzU5OSwwLjAwMjE2LDAuMzk0MjU1LDAuMDA3MzksMC42MjYzNTItMC4wNzAyNzMsMCwwLTAuMDA2MTMsMC4wODMwNTUtMC4wMDYxMywwLjE3OTgwNSwwLDAuMDk2NzczLDAuMDA2MTMsMC4xNzk4MjIsMC4wMDYxMywwLjE3OTgyMi0wLjIxMjg5LTAuMDcxMjUtMC40NzU4LTAuMDcyNzMtMC42MjYzNS0wLjA3MDgydjAuNTE1MzkxaC0wLjIxMTAzM3YtMC41MTUzOTFjLTAuMTUwNTQ1LTAuMDAxOTEtMC40MTM0NS0wLjAwMDQyNTItMC42MjYzNTIsMC4wNzA4MTUsMCwwLDAuMDA2MTMtMC4wODMwNDksMC4wMDYxMy0wLjE3OTgyMiwwLTAuMDk2NzUtMC4wMDYxMy0wLjE3OTgwNS0wLjAwNjEzLTAuMTc5ODA1LDAuMjMyMSwwLjA3NzY2NSwwLjQ5Mjc1MywwLjA3MjQzMiwwLjYyNjM1MiwwLjA3MDI3M3YtMC4zMjM2NzZjLTAuMTIxNzY2LTAuMDAxMDgtMC4yOTcyMzQsMC4wMDQ3My0wLjQ5NTYzLDAuMDcxMTI2LDAsMCwwLjAwNjEzLTAuMDgzMDU1LDAuMDA2MTMtMC4xNzk4MjIsMC0wLjA5Njc1Ni0wLjAwNjEzLTAuMTc5ODExLTAuMDA2MTMtMC4xNzk4MTEsMC4xOTgxMDMsMC4wNjYyODMsMC4zNzMzNTYsMC4wNzIxOTIsMC40OTUwODgsMC4wNzExMzctMC4wMDYyNi0wLjIwNDk4LTAuMDY1OTctMC40NjMzMi0wLjA2NTk3LTAuNDYzMzJzMC4xMjI4OSwwLjAwOTU5LDAuMTcyMDE2LDAuMDA5NTljMC4wNDkxNzgsMCwwLjE3MjAzMS0wLjAwOTU5LDAuMTcyMDMxLTAuMDA5NTlzLTAuMDU5Njk1LDAuMjU4MzQ2LTAuMDY1OTY0LDAuNDYzMzAxYzAuMTIxNzQxLDAuMDAxMDYsMC4yOTY5ODktMC4wMDQ4NSwwLjQ5NTA4Ni0wLjA3MTEzNywwLDAtMC4wMDYxMywwLjA4MzA1NS0wLjAwNjEzLDAuMTc5ODExLDAsMC4wOTY3NjcsMC4wMDYxMywwLjE3OTgyMiwwLjAwNjEzLDAuMTc5ODIyLTAuMTk4Mzg4LTAuMDY2MzkyLTAuMzczODYzLTAuMDcyMjA3LTAuNDk1NjI3LTAuMDcxMTI2djAuMzIzNjc2eiIgLz4KICAgIDxwYXRoIGZpbGw9IiMwYjRlYTIiCiAgICAgIGQ9Im0zLjE2MjUsMy4yOTA5NGMtMC4yNDg0NywwLTAuMzgxNTYyLDAuMzQ0Njg4LTAuMzgxNTYyLDAuMzQ0Njg4cy0wLjA3MzgzNC0wLjE2MzQzOC0wLjI3NjU2Mi0wLjE2MzQzOGMtMC4xMzcxNjEsMC0wLjIzODI0MywwLjEyMjAxLTAuMzAyNSwwLjIzNSwwLjI0OTU0LDAuMzk3MDUsMC42NDc2OCwwLjY0MjA3LDAuOTYwNjIsMC43OTI4MSwwLjMxMjk5LTAuMTUwNzUsMC43MTEzOS0wLjM5NTcxLDAuOTYwOTQtMC43OTI4MS0wLjA2NDI1Ni0wLjExMjk5LTAuMTY1MzM5LTAuMjM1LTAuMzAyNS0wLjIzNS0wLjIwMjczNCwwLTAuMjc2ODc1LDAuMTYzNDM4LTAuMjc2ODc1LDAuMTYzNDM4cy0wLjEzMzA3My0wLjM0NDY4OC0wLjM4MTU2Mi0wLjM0NDY4OHoiIC8+CiAgPC9nPgo8L3N2Zz4=\"","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./CountryFlag.treat.2VsDNVK.css\";\nexport var flag = '_1hawo';","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./FileImageDialog.treat.JLbTz_c.css\";\nexport var imageStyle = '_3TW7w';","import \"!../../../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js!css-loader?{\\\"modules\\\":false,\\\"url\\\":false}!./InfoTooltip.treat.U4J2OaM.css\";\nexport var infoIcon = '_3SZhc';"],"sourceRoot":""}