{"version":3,"file":"parajett.min.js","sources":["../../js/payment/parajett.js"],"sourcesContent":["document.addEventListener(\"DOMContentLoaded\", function (event) {\n if (!KombiApp.DirectDebit) {\n KombiApp.DirectDebit = {};\n\n const texts = {\n defaultErrorMessage: 'Det gick inte att slutföra din begäran.',\n waitingForBankIdAutoStartToken: 'Försöker öppna mobilt BankID.',\n openBankIdApp: 'Försöker öppna mobilt BankID. Tryck på knappen om BankID appen inte öppnas automatiskt.',\n waitingForBankIdAuth: 'Skriv in din säkerhetskod i BankID- appen och välj Identifiera eller Skriv under.'\n }\n\n const state = {\n directDebitRequestType: 'Registration'\n }\n\n // element references\n const el = {\n form: {\n personalNumberInput: document.querySelector('#RecurringPaymentModel_PersonalIdentityNumber'),\n signature: document.getElementById('DirectDebit_SignatureInput'),\n bankAccount: document.getElementById('DirectDebit_BankAccount'),\n bankSelect: document.getElementById('dd-bank'),\n bankAccountSelect: document.getElementById('dd-bank-account'),\n billectaTermsCheckbox: document.querySelector('[data-ag-terms-input-el]'),\n manualBankAccountClearNr: document.getElementById('DirectDebit_ClearingNumber'),\n manualBankAccountNr: document.getElementById('DirectDebit_AccountNumber'),\n directDebitSessionId: document.getElementById('DirectDebitSessionId')\n },\n bankId: {\n openBankIdButton: document.getElementById('open-bankid-button'),\n qrCodeContainer: document.querySelector('.qr-code-container'),\n qrCodeSpinner: document.querySelector('.qr-code-container .loading-spinner-wrapper'),\n qrCodeImage: document.getElementById('QrCode'),\n sameDeviceBankIdContainer: document.querySelector('.same-device-bankid-container'),\n sameDeviceBankIdText: document.getElementById('same-device-bankid-text'),\n },\n error: {\n personalNumberInputErrorMessage: document.querySelector('#RecurringPaymentModel_PersonalIdentityNumber_ErrorMessage'),\n directDebitErrorContainer: document.getElementById('direct-debit-error'),\n errorMessage: document.getElementById('direct-debit-error-message'),\n },\n buttons: {\n consentButton: document.getElementById('ConsentButton'),\n initializeBankAccountRetrievalBtn = document.getElementById('BankSelected'),\n errorButton: document.getElementById('direct-debit-error-button'),\n },\n paymentTerms: document.getElementById('CampaignSignup_Step2_SignupPaymentChecked'),\n manualBankAccountContainer: document.getElementById('direct-debit-manual-bank-input'),\n directDebitContainer: document.getElementById('direct-debit-container'),\n steps: {\n 1: document.getElementById('direct-debit-step-1'),\n 3: document.getElementById('direct-debit-step-3'),\n bankId: document.getElementById('direct-debit-step-bankid')\n }\n }\n\n function initEventListeners() {\n el.buttons.consentButton.addEventListener('click', signDirectDebitConsent.onInitialiseSignButtonClick);\n el.buttons.initializeBankAccountRetrievalBtn.addEventListener('click', selectBankAccount.initializeBankAccountRetrieval);\n el.buttons.errorButton.addEventListener('click', directDebitErrorButtonClickHandler);\n el.form.bankSelect.addEventListener('change', selectBankAccount.onBankSelectChange);\n el.bankId.openBankIdButton.addEventListener('click', bankId.onOpenBankIdButtonClick);\n \n ['change', 'focusout'].forEach(evt => {\n el.form.bankAccountSelect.addEventListener(evt, signDirectDebitConsent.setConsentButtonState, false)\n el.form.billectaTermsCheckbox.addEventListener(evt, signDirectDebitConsent.setConsentButtonState, false)\n if (el.form.personalNumberInput) {\n el.form.personalNumberInput.addEventListener(evt, signDirectDebitConsent.setConsentButtonState, false)\n }\n el.form.manualBankAccountClearNr.addEventListener(evt, signDirectDebitConsent.setConsentButtonState, false)\n el.form.manualBankAccountNr.addEventListener(evt, signDirectDebitConsent.setConsentButtonState, false)\n KombiApp.Validations.addValidation(el.form.manualBankAccountClearNr, validations.clearNr);\n KombiApp.Validations.addValidation(el.form.manualBankAccountNr, validations.bankAccountNr);\n //el.form.manualBankAccountClearNr.addEventListener(evt, KombiApp.Validations.addValidation(function(), false)\n //el.form.manualBankAccountNr.addEventListener(evt, signDirectDebitConsent.setConsentButtonState, false)\n el.form.bankSelect.addEventListener(evt, signDirectDebitConsent.setConsentButtonState, false)\n });\n\n ['change', 'focusout', 'click'].forEach(evt => {\n el.form.bankSelect.addEventListener(evt, selectBankAccount.setBankAccountRetrievalButtonState, false)\n if (el.form.personalNumberInput) {\n el.form.personalNumberInput.addEventListener(evt, selectBankAccount.setBankAccountRetrievalButtonState, false);\n }\n });\n }\n\n var mobilebankIdHasBeenOpen = false;\n function init() { \n if (!el.directDebitContainer) {\n console.log('No direct debit container found');\n return;\n }\n initEventListeners();\n if (!selectBankAccount.bankHasBeenChoosen()) {\n initializeBankAccountRetrievalBtn.disabled = true;\n }\n if (el.form.personalNumberInput) {\n KombiApp.Validations.personalNumberLiveFormatter(el.form.personalNumberInput, el.error.personalNumberInputErrorMessage);\n }\n var sessionId = getDirectDebitSessionId();\n if (sessionId) {\n api.getDirectDebitState(sessionId).then(res => {\n if (res) {\n mobilebankIdHasBeenOpen = true;\n if (res.state == 1) {\n bankId.displayBankId();\n selectBankAccount.getBankAccounts(res.id);\n }\n if (res.state == 2) {\n signDirectDebitConsent.getSignature(res.id);\n bankId.displayBankId();\n }\n }\n })\n }\n }\n\n const selectBankAccount = {\n setBankAccountRetrievalButtonState: function setConsentButtonState() {\n var isPersonalIdentityNumberValid = KombiApp.Validations.validatePersonalIdentityNumber(getSocialSecurityNumber());\n var bankAccountSelected = el.form.bankSelect.selectedIndex > 0;\n el.buttons.initializeBankAccountRetrievalBtn.disabled = !(isPersonalIdentityNumberValid && bankAccountSelected);\n },\n\n bankHasBeenChoosen: function bankHasBeenChoosen() {\n return el.form.bankSelect.selectedIndex > 0;\n return false;\n },\n\n isManualSetBankAccount: function isManualSetBankAccount() {\n const selectedBankChoice = el.form.bankSelect.value;\n return selectedBankChoice === 'Custom';\n },\n\n isManualBankAccountIsValid: function isBankAccountIsValid(account) {\n var accountRegex = RegExp('^[0-9]*$');\n var match = accountRegex.exec(account);\n return match !== null;\n },\n\n isManualClearNrIsValid: function isManualClearNrIsValid(account) {\n var accountRegex = RegExp('^[0-9]{4,5}$');\n var match = accountRegex.exec(account);\n return match !== null;\n },\n\n getSelectedBankAccountNr: function () {\n if (selectBankAccount.isManualSetBankAccount()) {\n return el.form.manualBankAccountClearNr.value + '-' + el.form.manualBankAccountNr.value;\n }\n else if (el.form.bankAccountSelect.value) {\n return el.form.bankAccountSelect.value;\n }\n else return el.form.bankAccount.value;\n },\n\n onBankSelectChange: function onBankSelectChange(e) {\n if (e.target.value === 'Custom')\n bankId.displayManualBankInput();\n else\n bankId.hideManualBankInput();\n hideErrorMessage();\n },\n\n initializeBankAccountRetrieval: async function initializeBankAccountRetrieval() {\n if (!selectBankAccount.bankHasBeenChoosen()) {\n return; \n }\n\n setButtonLoadingStatus(el.buttons.initializeBankAccountRetrievalBtn, true);\n\n var bank = el.form.bankSelect.value;\n var socialSecurityNumber = getSocialSecurityNumber();\n\n if (el.paymentTerms && el.paymentTerms.checked) {\n el.paymentTerms.disabled = true;\n }\n\n mobilebankIdHasBeenOpen = false;\n\n try {\n const formData = formDataState.getFormData();\n var response = await api.initiateBankAccountRetrieval(\n bank,\n socialSecurityNumber,\n isPhone(),\n state.directDebitRequestType,\n formData\n );\n\n if (response.isSuccess) {\n bankId.displayBankId();\n updateQueryString(response.data.id);\n el.form.directDebitSessionId.value = response.data.id;\n selectBankAccount.getBankAccounts(response.data.id);\n } else {\n if (response.errorCode === \"INVALID_SSN\") {\n el.error.personalNumberInputErrorMessage.style.display = 'block';\n displayStep1();\n }\n else {\n showErrorMessage(response.message, false);\n }\n }\n }\n catch (err) {\n console.error(err);\n showErrorMessage(null, false);\n }\n finally {\n setButtonLoadingStatus(el.buttons.initializeBankAccountRetrievalBtn, false);\n }\n },\n\n getBankAccounts: async function getBankAccounts(directDebitSessionId) {\n try {\n var response = await api.getBankAccounts(directDebitSessionId, window.location.href);\n if (response.isError) {\n showErrorMessage(response.message);\n return;\n }\n var data = response.data;\n if (data.pollAgain) {\n bankId.handleBankIdPoll(data);\n setTimeout(function () { selectBankAccount.getBankAccounts(directDebitSessionId); }, 2000);\n } else if (data.status === 'Failed' || data.status === 'Unknown' || data.status === 2) {\n showErrorMessage(data.errorMessage);\n bankId.hideBankId();\n } else {\n displayStep3(data);\n }\n }\n catch (err) {\n console.error(err);\n showErrorMessage(null);\n bankId.hideBankId();\n }\n },\n\n setBankAccountOptions: function setBankAccountOptions(accounts) {\n $(\"#dd-bank-account\").empty();\n let defaultOption = document.createElement('option');\n defaultOption.text = \"Var god välj konto\";\n defaultOption.value = \"\";\n defaultOption.disabled = true;\n defaultOption.selected = true;\n el.form.bankAccountSelect.options.add(defaultOption);\n\n accounts.forEach(function (data) {\n let option = document.createElement('option');\n option.text = data.name + ' (' + data.number + ')';\n option.value = data.number;\n el.form.bankAccountSelect.options.add(option);\n });\n }\n }\n\n const signDirectDebitConsent = {\n setConsentButtonState: function setConsentButtonState() {\n var isPersonalIdentityNumberValid = KombiApp.Validations.validatePersonalIdentityNumber(getSocialSecurityNumber());\n const termsChecked = el.form.billectaTermsCheckbox.checked;\n const bankAccountSelected = el.form.bankAccountSelect.selectedIndex > 0;\n const isManualSetBankAccount = selectBankAccount.isManualSetBankAccount();\n const isManualSetBankAccountValid = selectBankAccount.isManualClearNrIsValid(el.form.manualBankAccountClearNr.value) && selectBankAccount.isManualBankAccountIsValid(el.form.manualBankAccountNr.value);\n\n if (isManualSetBankAccount) {\n el.buttons.consentButton.disabled = !(termsChecked && isPersonalIdentityNumberValid && isManualSetBankAccountValid);\n }\n else {\n el.buttons.consentButton.disabled = !(termsChecked && isPersonalIdentityNumberValid && bankAccountSelected);\n }\n },\n onInitialiseSignButtonClick: function onInitialiseSignButtonClick() {\n if (el.form.billectaTermsCheckbox.checked) {\n signDirectDebitConsent.initialiseSignRequest();\n }\n },\n\n initialiseSignRequest: async function initialiseSignRequest() {\n hideErrorMessage();\n if (selectBankAccount.isManualSetBankAccount()) {\n var bankAccount = selectBankAccount.getSelectedBankAccountNr();\n el.buttons.consentButton.disabled = true;\n var response = await api.isBankAccountValid(bankAccount);\n el.buttons.consentButton.disabled = false;\n if (response.isBankAccountValid) {\n signDirectDebitConsent.startSignRequest();\n } else {\n showErrorMessage(response.errorMessage, false);\n }\n } else {\n signDirectDebitConsent.startSignRequest();\n }\n },\n\n startSignRequest: async function startSignRequest() {\n const directDebitSessionId = getDirectDebitSessionId();\n const bankAccountNr = selectBankAccount.getSelectedBankAccountNr();\n const personalIdentityNumber = getSocialSecurityNumber();\n const formData = formDataState.getFormData();\n setButtonLoadingStatus(el.buttons.consentButton, true);\n try {\n var response = await api.initialiseSignRequest(directDebitSessionId, bankAccountNr, personalIdentityNumber, state.directDebitRequestType, formData);\n if (response.isError) {\n showErrorMessage(response.message);\n return;\n }\n else {\n updateQueryString(response.data.id);\n el.form.directDebitSessionId.value = response.data.id;\n signDirectDebitConsent.getSignature(response.data.id);\n mobilebankIdHasBeenOpen = false;\n }\n }\n catch (err) {\n console.error(err);\n showErrorMessage(null);\n return;\n }\n finally {\n setButtonLoadingStatus(el.buttons.consentButton, false);\n hide(el.buttons.consentButton);\n }\n bankId.displayBankId();\n },\n\n getSignature: async function getSignature(directDebitSessionId) {\n try {\n const response = await api.getSignature(directDebitSessionId, window.location.href);\n\n const data = response.data;\n if (data.pollAgain) {\n bankId.handleBankIdPoll(data);\n setTimeout(function () { signDirectDebitConsent.getSignature(directDebitSessionId); }, 2000);\n } else {\n var status = data.status;\n if (!status || status.toLowerCase() == \"error\" || !data.signature) {\n showErrorMessage(data.errorMessage);\n }\n else {\n el.form.signature.value = data.signature;\n if (el.form.personalNumberInput) {\n el.form.personalNumberInput.value = data.personalIdentityNumber;\n }\n signDirectDebitConsent.submitSignature();\n }\n }\n }\n catch (err) {\n console.error(err);\n showErrorMessage(null);\n }\n },\n\n submitSignature: function submitSignature() {\n const paymentForm = document.getElementById(\"payment-form\");\n el.form.bankAccount.value = selectBankAccount.getSelectedBankAccountNr();\n if (paymentForm) {\n let signupPaymentChecked = document.getElementById('CampaignSignup_Step2_SignupPaymentChecked');\n signupPaymentChecked.disabled = false;\n paymentForm.submit();\n }\n\n const registrationForm = document.getElementById(\"registration-form\");\n if (registrationForm) {\n registrationForm.submit();\n }\n }\n }\n\n const bankId = {\n\n handleBankIdPoll: function handleBankIdPoll(data) {\n if (isPhone()) {\n\n }\n else if (data.bankIdQRCode) {\n bankId.showQrCode(data.bankIdQRCode);\n }\n else if (!data.bankIdQRCode) {\n bankId.hideQrCode();\n }\n\n bankId.setAutoStartToken(data.bankIdAutoStartLink, isPhone());\n },\n setAutoStartToken: function (autoStartLink, tryToOpen) {\n el.bankId.openBankIdButton.href = autoStartLink;\n if (autoStartLink) {\n el.bankId.sameDeviceBankIdText.innerText = texts.openBankIdApp;\n if (mobilebankIdHasBeenOpen) {\n el.bankId.sameDeviceBankIdText.innerText = texts.waitingForBankIdAuth;\n }\n else if (!mobilebankIdHasBeenOpen && tryToOpen) {\n mobilebankIdHasBeenOpen = true;\n window.location.replace(autoStartLink);\n }\n setTimeout(() => {\n show(el.bankId.openBankIdButton);\n }, 300)\n }\n else {\n el.bankId.sameDeviceBankIdText.innerText = texts.waitingForBankIdAutoStartToken;\n hide(el.bankId.openBankIdButton);\n }\n },\n onOpenBankIdButtonClick: function onOpenBankIdButtonClick() {\n mobilebankIdHasBeenOpen = true;\n el.bankId.sameDeviceBankIdText.innerText = texts.waitingForBankIdAuth;\n },\n\n showQrCode: function showQrCode(qrCode) {\n hide(el.bankId.qrCodeSpinner);\n el.bankId.qrCodeImage.setAttribute('src', qrCode);\n show(el.bankId.qrCodeImage);\n show(el.bankId.qrCodeContainer);\n },\n\n hideQrCode: function hideQrCode() {\n show(el.bankId.qrCodeSpinner);\n el.bankId.qrCodeImage.setAttribute('src', '');\n hide(el.bankId.qrCodeImage);\n },\n\n displayBankId: function displayBankId() {\n hideAllSteps();\n hidePaymentsListContainer();\n hideUserWarningMessageStep1(\"UserWarningMessageStep1\");\n hideUserWarningMessageStep1(\"UserWarningMessageStep1BankId\");\n hide(el.bankId.openBankIdButton);\n show(el.steps.bankId)\n if (isPhone()) {\n hide(el.bankId.qrCodeContainer);\n show(el.bankId.sameDeviceBankIdContainer);\n }\n else {\n show(el.bankId.qrCodeContainer);\n hide(el.bankId.sameDeviceBankIdContainer);\n }\n },\n\n hideBankId: function hideBankId() {\n hide(el.steps.bankId);\n $('#QrCode').hide();\n },\n\n displayManualBankInput: function displayManualBankInput() {\n hide(el.form.bankAccountSelect);\n hide(el.steps.bankId);\n hide(el.buttons.initializeBankAccountRetrievalBtn);\n show(el.manualBankAccountContainer);\n show(el.steps[3]);\n show(el.buttons.consentButton);\n },\n\n hideManualBankInput: function hideManualBankInput() {\n hide(el.manualBankAccountContainer);\n hide(el.steps.bankId);\n hide(el.steps[3]);\n hide(el.buttons.consentButton);\n show(el.form.bankAccountSelect);\n show(el.buttons.initializeBankAccountRetrievalBtn);\n }\n }\n\n const validations = {\n clearNr: function clearNr(evt) {\n const regex = /^[0-9]{4,5}$/;\n const isValid = regex.test(evt);\n return {\n isValid: isValid,\n errorMessage: 'Du måste ange ett giltigt clearnr på fyra eller fem siffror'\n }\n },\n\n bankAccountNr: function clearNr(evt) {\n const regex = /^[0-9]*$/;\n const isValid = regex.test(evt);\n return {\n isValid: isValid,\n errorMessage: 'Du måste ange ett giltigt kontonummer bestående av enbart siffror'\n }\n }\n }\n\n function directDebitErrorButtonClickHandler() {\n hideErrorMessage();\n displayStep1();\n if (selectBankAccount.isManualSetBankAccount()) {\n bankId.displayManualBankInput();\n }\n showPaymentsListContainer();\n }\n\n function getSocialSecurityNumber() {\n var socialSecurityNumberField = document.getElementById('CampaignSignup_Step1_PersonalIdentityNumber');\n var socialSecurityNumber = socialSecurityNumberField ? socialSecurityNumberField.value : '';\n if (socialSecurityNumber === '') { // depending on form\n socialSecurityNumberField = document.getElementById('RecurringPaymentModel_PersonalIdentityNumber');\n socialSecurityNumber = socialSecurityNumberField ? socialSecurityNumberField.value : '';\n }\n return socialSecurityNumber;\n }\n\n function isPhone() {\n return /Android|webOS|iPhone|iPad|iPod|IEMobile|Opera Mini/i.test(navigator.userAgent);\n }\n\n function updateQueryString(directDebitSessionId) {\n KombiApp.UrlHelpers.updateQueryStringParam('ag-id', directDebitSessionId);\n }\n\n function getDirectDebitSessionId(directDebitSessionId) {\n return KombiApp.UrlHelpers.getQueryStringParam('ag-id');\n }\n\n function hideUserWarningMessageStep1(id) {\n var userMessage = document.getElementById(id);\n if (userMessage) {\n userMessage.innerHTML = \"\";\n }\n\n }\n\n function showErrorMessage(message, showRetryButton = true) {\n bankId.hideBankId();\n if (el.error.directDebitErrorContainer) {\n el.error.errorMessage.innerHTML = message || texts.defaultErrorMessage;\n show(el.error.directDebitErrorContainer);\n if (showRetryButton) {\n show(el.buttons.errorButton);\n }\n else {\n hide(el.buttons.errorButton);\n }\n \n }\n }\n\n function hideErrorMessage() {\n hide(el.error.directDebitErrorContainer)\n }\n\n function showPaymentsListContainer() {\n if ($('#payments-list-container').length > 0) {\n $('#payments-list-container').show();\n }\n }\n\n function hidePaymentsListContainer() {\n if ($('#payments-list-container').length > 0) {\n $('#payments-list-container').hide();\n }\n }\n\n function displayStep1() {\n hideAllSteps();\n $('#direct-debit-step-1').show();\n $('#BankSelected').attr(\"disabled\", false);\n $('#BankSelected').show();\n }\n\n function hideStep1() {\n $('#direct-debit-step-1').hide();\n $('#BankSelected').attr(\"disabled\", true);\n $('#BankSelected').hide();\n }\n\n function hideStep3() {\n $('#direct-debit-step-3').hide();\n }\n function displayStep3(response) {\n hideAllSteps();\n $('#direct-debit-step-3').show();\n\n\n if ($('#ConsentHeader').length > 0) {\n $('#ConsentHeader').show();\n }\n showConsentButton();\n selectBankAccount.setBankAccountOptions(response.accounts);\n }\n\n function hide(el) {\n if (el) {\n el.style.display = 'none';\n }\n }\n\n function show(el, type = 'block') {\n if (el) {\n el.style.display = type;\n }\n }\n\n function setButtonLoadingStatus(buttonEl, isLoading) {\n if (isLoading) {\n buttonEl.setAttribute('disabled', '');\n buttonEl.classList.add('is-loading');\n }\n else {\n buttonEl.removeAttribute('disabled');\n buttonEl.classList.remove('is-loading');\n }\n }\n\n function hideAllSteps() {\n hideStep1();\n bankId.hideBankId();\n hideStep3();\n }\n \n function showConsentButton() {\n if ($('#ConsentButton').length > 0) {\n $('#ConsentButton').show();\n }\n }\n\n const formDataState = {\n formDataFns =[],\n registerFormDataDelegate: function registerFormDataDelegate(fn) {\n formDataState.formDataFns.push(fn)\n },\n getFormData: function getFormData() {\n const formData = formDataState.formDataFns.map(x => x());\n return formData;\n }\n }\n\n function setDirectDebitRequestType(directDebitRequestType) {\n state.directDebitRequestType = directDebitRequestType;\n }\n\n KombiApp.DirectDebit.RegisterFormDataDelegate = formDataState.registerFormDataDelegate;\n KombiApp.DirectDebit.SetDirectDebitRequestType = setDirectDebitRequestType;\n\n const api = KombiApp.DirectDebit.Api = {\n getDirectDebitState: async function (id) {\n var response = await fetch(`/umbraco/api/billecta/GetDirectDebitState?id=${id}`);\n var data = await response.text();\n if (!data) {\n return null;\n }\n return JSON.parse(data);\n },\n initiateBankAccountRetrieval: async function (\n bank,\n personalIdentityNumber,\n isPhone,\n directDebitRequestType,\n formData\n ) {\n var response = await fetch('/umbraco/api/billecta/InitiateBankAccountRetrieval', {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n },\n body: JSON.stringify({\n bank: bank,\n personalIdentityNumber: personalIdentityNumber,\n isPhone: isPhone,\n formData: formData,\n directDebitRequestType: directDebitRequestType\n })\n })\n return await response.json();\n },\n getBankAccounts: async function (id, bankIdRedirectUrl) {\n var response = await fetch(`/umbraco/api/billecta/GetBankAccounts?id=${id}&bankIdRedirectUrl=${encodeURIComponent(bankIdRedirectUrl)}`, {\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n });\n return await response.json();\n },\n initialiseSignRequest: async function (id, bankAccountNr, personalIdentityNumber, directDebitRequestType, formData) {\n var response = await fetch('/umbraco/api/billecta/InitialiseSignRequest?id=' + (id || ''), {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n },\n body: JSON.stringify({\n bankAccountNr: bankAccountNr,\n directDebitRequestType: directDebitRequestType,\n personalIdentityNumber: personalIdentityNumber,\n formData: formData\n })\n });\n return await response.json();\n },\n getSignature: async function (id, bankIdRedirectUrl) {\n var response = await fetch(`/umbraco/api/billecta/getSignature?id=${id}&bankIdRedirectUrl=${encodeURIComponent(bankIdRedirectUrl)}`, {\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n })\n var data = await response.json();\n return data;\n },\n isBankAccountValid: async function (bankAccountNr) {\n var response = await fetch(`/umbraco/api/billecta/IsBankAccountValid`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n },\n body: JSON.stringify({\n bankAccountNr: bankAccountNr\n })\n });\n var data = await response.json();\n return data;\n },\n }\n\n init();\n }\n});\n"],"names":["document","addEventListener","event","KombiApp","DirectDebit","texts","defaultErrorMessage","waitingForBankIdAutoStartToken","openBankIdApp","waitingForBankIdAuth","state","directDebitRequestType","el","form","personalNumberInput","querySelector","signature","getElementById","bankAccount","bankSelect","bankAccountSelect","billectaTermsCheckbox","manualBankAccountClearNr","manualBankAccountNr","directDebitSessionId","bankId","openBankIdButton","qrCodeContainer","qrCodeSpinner","qrCodeImage","sameDeviceBankIdContainer","sameDeviceBankIdText","error","personalNumberInputErrorMessage","directDebitErrorContainer","errorMessage","buttons","consentButton","initializeBankAccountRetrievalBtn","errorButton","paymentTerms","manualBankAccountContainer","directDebitContainer","steps","1","3","mobilebankIdHasBeenOpen","selectBankAccount","setBankAccountRetrievalButtonState","isPersonalIdentityNumberValid","Validations","validatePersonalIdentityNumber","getSocialSecurityNumber","bankAccountSelected","selectedIndex","disabled","bankHasBeenChoosen","isManualSetBankAccount","value","isManualBankAccountIsValid","account","RegExp","exec","isManualClearNrIsValid","getSelectedBankAccountNr","onBankSelectChange","e","target","displayManualBankInput","hideManualBankInput","hideErrorMessage","initializeBankAccountRetrieval","async","setButtonLoadingStatus","bank","socialSecurityNumber","checked","formData","formDataState","getFormData","response","await","api","initiateBankAccountRetrieval","isPhone","isSuccess","displayBankId","updateQueryString","data","id","getBankAccounts","errorCode","style","display","displayStep1","showErrorMessage","message","err","console","window","location","href","isError","pollAgain","handleBankIdPoll","setTimeout","status","hideBankId","hideAllSteps","$","show","length","setBankAccountOptions","accounts","empty","let","defaultOption","createElement","text","selected","options","add","forEach","option","name","number","signDirectDebitConsent","setConsentButtonState","termsChecked","isManualSetBankAccountValid","onInitialiseSignButtonClick","initialiseSignRequest","isBankAccountValid","startSignRequest","getDirectDebitSessionId","bankAccountNr","personalIdentityNumber","getSignature","hide","toLowerCase","submitSignature","paymentForm","registrationForm","submit","bankIdQRCode","showQrCode","hideQrCode","setAutoStartToken","bankIdAutoStartLink","autoStartLink","tryToOpen","innerText","replace","onOpenBankIdButtonClick","qrCode","setAttribute","hideUserWarningMessageStep1","validations","clearNr","evt","isValid","test","directDebitErrorButtonClickHandler","socialSecurityNumberField","navigator","userAgent","UrlHelpers","updateQueryStringParam","getQueryStringParam","userMessage","innerHTML","showRetryButton","attr","type","buttonEl","isLoading","classList","removeAttribute","remove","formDataFns","registerFormDataDelegate","fn","push","map","x","RegisterFormDataDelegate","SetDirectDebitRequestType","Api","getDirectDebitState","fetch","JSON","parse","method","headers","Content-Type","body","stringify","json","bankIdRedirectUrl","encodeURIComponent","addValidation","personalNumberLiveFormatter","sessionId","then","res","log"],"mappings":"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"}