{"version":3,"file":"js/app.9520763d.js","mappings":"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","sources":["webpack://visma-ekrav/./src/plugins/bootstrapVue.ts","webpack://visma-ekrav/./src/plugins/i18n.ts","webpack://visma-ekrav/./src/plugins/cookies.ts","webpack://visma-ekrav/./src/plugins/csvImport.ts","webpack://visma-ekrav/./src/store/modules/creditorsAPI.ts","webpack://visma-ekrav/./src/models/alerts.ts","webpack://visma-ekrav/./src/mockdata/authentications.ts","webpack://visma-ekrav/./src/models/validations.ts","webpack://visma-ekrav/./src/store/modules/authentications.ts","webpack://visma-ekrav/./src/mockdata/caseActions.ts","webpack://visma-ekrav/./src/models/formatting.ts","webpack://visma-ekrav/./src/store/modules/caseActions.ts","webpack://visma-ekrav/./src/models/costs.ts","webpack://visma-ekrav/./src/mockdata/caseCosts.ts","webpack://visma-ekrav/./src/store/modules/caseCosts.ts","webpack://visma-ekrav/./src/models/debtors.ts","webpack://visma-ekrav/./src/mockdata/caseDebtors.ts","webpack://visma-ekrav/./src/store/modules/caseDebtors.ts","webpack://visma-ekrav/./src/models/debts.ts","webpack://visma-ekrav/./src/mockdata/caseDebts.ts","webpack://visma-ekrav/./src/store/modules/caseDebts.ts","webpack://visma-ekrav/./src/models/documents.ts","webpack://visma-ekrav/./src/mockdata/caseDocuments.ts","webpack://visma-ekrav/./src/store/modules/caseDocuments.ts","webpack://visma-ekrav/./src/mockdata/caseHistoryLogs.ts","webpack://visma-ekrav/./src/store/modules/caseHistoryLogs.ts","webpack://visma-ekrav/./src/models/messages.ts","webpack://visma-ekrav/./src/mockdata/caseMessages.ts","webpack://visma-ekrav/./src/store/modules/caseMessages.ts","webpack://visma-ekrav/./src/models/payments.ts","webpack://visma-ekrav/./src/mockdata/casePayments.ts","webpack://visma-ekrav/./src/store/modules/casePayments.ts","webpack://visma-ekrav/./src/models/cases.ts","webpack://visma-ekrav/./src/mockdata/cases.ts","webpack://visma-ekrav/./src/store/modules/cases.ts","webpack://visma-ekrav/./src/mockdata/creditorDepartments.ts","webpack://visma-ekrav/./src/store/modules/creditorDepartments.ts","webpack://visma-ekrav/./src/mockdata/creditors.ts","webpack://visma-ekrav/./src/store/modules/creditors.ts","webpack://visma-ekrav/./src/mockdata/creditorUserDepartmentAccesses.ts","webpack://visma-ekrav/./src/store/modules/creditorUserDepartmentAccesses.ts","webpack://visma-ekrav/./src/mockdata/creditorUserMessageGroups.ts","webpack://visma-ekrav/./src/store/modules/creditorUserMessageGroups.ts","webpack://visma-ekrav/./src/mockdata/creditorUserMessages.ts","webpack://visma-ekrav/./src/store/modules/creditorUserMessages.ts","webpack://visma-ekrav/./src/mockdata/creditorUserMessageSubjects.ts","webpack://visma-ekrav/./src/store/modules/creditorUserMessageSubjects.ts","webpack://visma-ekrav/./src/mockdata/creditorUsers.ts","webpack://visma-ekrav/./src/store/modules/creditorUsers.ts","webpack://visma-ekrav/./src/store/modules/dashboards.ts","webpack://visma-ekrav/./src/models/menus.ts","webpack://visma-ekrav/./src/store/modules/navigation.ts","webpack://visma-ekrav/./src/store/index.ts","webpack://visma-ekrav/./src/views/Onboarding/DesignView.vue","webpack://visma-ekrav/./src/views/Onboarding/DesignView.vue?c0a9","webpack://visma-ekrav/./src/views/Onboarding/DesignView.vue?ea38","webpack://visma-ekrav/./src/views/Onboarding/OnboardingBankIDView.vue","webpack://visma-ekrav/./src/views/Onboarding/OnboardingBankIDView.vue?af6a","webpack://visma-ekrav/./src/views/Onboarding/OnboardingBankIDView.vue?484a","webpack://visma-ekrav/./src/views/Onboarding/OnboardingBankIDView.vue?4d3d","webpack://visma-ekrav/./src/views/Onboarding/OnboardingCookiesView.vue","webpack://visma-ekrav/./src/views/Onboarding/OnboardingCookiesView.vue?8966","webpack://visma-ekrav/./src/views/Onboarding/OnboardingCookiesView.vue?8324","webpack://visma-ekrav/./src/views/Onboarding/OnboardingCookiesView.vue?150c","webpack://visma-ekrav/./src/views/Onboarding/OnboardingLoginView.vue","webpack://visma-ekrav/./src/views/Onboarding/OnboardingLoginView.vue?b93d","webpack://visma-ekrav/./src/views/Onboarding/OnboardingLoginView.vue?ec51","webpack://visma-ekrav/./src/views/Onboarding/OnboardingLoginView.vue?b97e","webpack://visma-ekrav/./src/views/Onboarding/OnboardingLogoutView.vue","webpack://visma-ekrav/./src/views/Onboarding/OnboardingLogoutView.vue?d43b","webpack://visma-ekrav/./src/views/Onboarding/OnboardingLogoutView.vue?2f60","webpack://visma-ekrav/./src/views/Onboarding/OnboardingLogoutView.vue?fea7","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupSuccessView.vue","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupSuccessView.vue?1617","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupSuccessView.vue?d9e5","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupSuccessView.vue?78e2","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupContactView.vue","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupContactView.vue?589e","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupContactView.vue?95d0","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupContactView.vue?46a8","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupCreditorView.vue","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupCreditorView.vue?474e","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupCreditorView.vue?0339","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupCreditorView.vue?2067","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupStartView.vue","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupStartView.vue?982a","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupStartView.vue?b070","webpack://visma-ekrav/./src/views/Onboarding/OnboardingSignupStartView.vue?5cde","webpack://visma-ekrav/./src/views/Onboarding/OnboardingStartView.vue","webpack://visma-ekrav/./src/views/Onboarding/OnboardingStartView.vue?1916","webpack://visma-ekrav/./src/views/Onboarding/OnboardingStartView.vue?de26","webpack://visma-ekrav/./src/views/Onboarding/OnboardingStartView.vue?d6d6","webpack://visma-ekrav/./src/views/Cases/CaseActionStartView.vue","webpack://visma-ekrav/./src/views/Cases/CaseActionStartView.vue?c597","webpack://visma-ekrav/./src/views/Cases/CaseActionStartView.vue?02f2","webpack://visma-ekrav/./src/views/Cases/CaseActionStartView.vue?e92e","webpack://visma-ekrav/./src/views/Cases/CaseActionSuccessView.vue","webpack://visma-ekrav/./src/views/Cases/CaseActionSuccessView.vue?aaa3","webpack://visma-ekrav/./src/views/Cases/CaseActionSuccessView.vue?7fa3","webpack://visma-ekrav/./src/views/Cases/CaseActionSuccessView.vue?bb92","webpack://visma-ekrav/./src/views/Cases/CaseDebtorsView.vue","webpack://visma-ekrav/./src/views/Cases/CaseDebtorsView.vue?766d","webpack://visma-ekrav/./src/views/Cases/CaseDebtorsView.vue?b1b3","webpack://visma-ekrav/./src/views/Cases/CaseDebtorsView.vue?03e8","webpack://visma-ekrav/./src/views/Cases/CaseDebtsView.vue","webpack://visma-ekrav/./src/views/Cases/CaseDebtsView.vue?2176","webpack://visma-ekrav/./src/views/Cases/CaseDebtsView.vue?cd3b","webpack://visma-ekrav/./src/views/Cases/CaseDebtsView.vue?5f34","webpack://visma-ekrav/./src/views/Cases/CaseHistoryView.vue","webpack://visma-ekrav/./src/views/Cases/CaseHistoryView.vue?6d12","webpack://visma-ekrav/./src/views/Cases/CaseHistoryView.vue?5b38","webpack://visma-ekrav/./src/views/Cases/CaseHistoryView.vue?8544","webpack://visma-ekrav/./src/views/Cases/CaseMessagesView.vue","webpack://visma-ekrav/./src/views/Cases/CaseMessagesView.vue?de34","webpack://visma-ekrav/./src/views/Cases/CaseMessagesView.vue?de1f","webpack://visma-ekrav/./src/views/Cases/CaseMessagesView.vue?5d12","webpack://visma-ekrav/./src/views/Cases/CaseDetailsView.vue","webpack://visma-ekrav/./src/views/Cases/CaseDetailsView.vue?f6ad","webpack://visma-ekrav/./src/views/Cases/CaseDetailsView.vue?487b","webpack://visma-ekrav/./src/views/Cases/CaseDetailsView.vue?d8ce","webpack://visma-ekrav/./src/views/Cases/CaseDocumentsView.vue","webpack://visma-ekrav/./src/views/Cases/CaseDocumentsView.vue?c65e","webpack://visma-ekrav/./src/views/Cases/CaseDocumentsView.vue?039c","webpack://visma-ekrav/./src/views/Cases/CaseDocumentsView.vue?707b","webpack://visma-ekrav/./src/views/Cases/CasePaymentStartView.vue","webpack://visma-ekrav/./src/views/Cases/CasePaymentStartView.vue?4847","webpack://visma-ekrav/./src/views/Cases/CasePaymentStartView.vue?144e","webpack://visma-ekrav/./src/views/Cases/CasePaymentStartView.vue?eb4b","webpack://visma-ekrav/./src/views/Cases/CasePaymentSuccessView.vue","webpack://visma-ekrav/./src/views/Cases/CasePaymentSuccessView.vue?ca1e","webpack://visma-ekrav/./src/views/Cases/CasePaymentSuccessView.vue?4d5f","webpack://visma-ekrav/./src/views/Cases/CasePaymentSuccessView.vue?9b73","webpack://visma-ekrav/./src/views/Cases/CasesClosedView.vue","webpack://visma-ekrav/./src/views/Cases/CasesClosedView.vue?5ade","webpack://visma-ekrav/./src/views/Cases/CasesClosedView.vue?1935","webpack://visma-ekrav/./src/views/Cases/CasesClosedView.vue?28c1","webpack://visma-ekrav/./src/views/Cases/CasesOngoingView.vue","webpack://visma-ekrav/./src/views/Cases/CasesOngoingView.vue?ee6b","webpack://visma-ekrav/./src/views/Cases/CasesOngoingView.vue?6c79","webpack://visma-ekrav/./src/views/Cases/CasesOngoingView.vue?b5cf","webpack://visma-ekrav/./src/views/Cases/CasesOverviewsView.vue","webpack://visma-ekrav/./src/views/Cases/CasesOverviewsView.vue?a3a6","webpack://visma-ekrav/./src/views/Cases/CasesOverviewsView.vue?4ac7","webpack://visma-ekrav/./src/views/Cases/CasesOverviewsView.vue?156e","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentsView.vue","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentsView.vue?2584","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentsView.vue?9a97","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentsView.vue?0f75","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentEditView.vue","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentEditView.vue?18a7","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentEditView.vue?30ce","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentEditView.vue?fee8","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentSuccessView.vue","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentSuccessView.vue?c880","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentSuccessView.vue?5b7f","webpack://visma-ekrav/./src/views/Creditors/CreditorDepartmentSuccessView.vue?6bae","webpack://visma-ekrav/./src/views/Creditors/CreditorOverviewView.vue","webpack://visma-ekrav/./src/views/Creditors/CreditorOverviewView.vue?ee60","webpack://visma-ekrav/./src/views/Creditors/CreditorOverviewView.vue?8f9a","webpack://visma-ekrav/./src/views/Creditors/CreditorOverviewView.vue?2d61","webpack://visma-ekrav/./src/views/Creditors/CreditorUserDepartmentAccessesView.vue","webpack://visma-ekrav/./src/views/Creditors/CreditorUserDepartmentAccessesView.vue?821e","webpack://visma-ekrav/./src/views/Creditors/CreditorUserDepartmentAccessesView.vue?daa8","webpack://visma-ekrav/./src/views/Creditors/CreditorUserDepartmentAccessesView.vue?41ce","webpack://visma-ekrav/./src/views/Creditors/CreditorUsersView.vue","webpack://visma-ekrav/./src/views/Creditors/CreditorUsersView.vue?b835","webpack://visma-ekrav/./src/views/Creditors/CreditorUsersView.vue?a75d","webpack://visma-ekrav/./src/views/Creditors/CreditorUsersView.vue?0907","webpack://visma-ekrav/./src/views/Creditors/CreditorUserEditView.vue","webpack://visma-ekrav/./src/views/Creditors/CreditorUserEditView.vue?a409","webpack://visma-ekrav/./src/views/Creditors/CreditorUserEditView.vue?f72f","webpack://visma-ekrav/./src/views/Creditors/CreditorUserEditView.vue?3ed6","webpack://visma-ekrav/./src/views/Creditors/CreditorUserSuccessView.vue","webpack://visma-ekrav/./src/views/Creditors/CreditorUserSuccessView.vue?3842","webpack://visma-ekrav/./src/views/Creditors/CreditorUserSuccessView.vue?4d22","webpack://visma-ekrav/./src/views/Creditors/CreditorUserSuccessView.vue?43d0","webpack://visma-ekrav/./src/views/Enroll/EnrollCreditorView.vue","webpack://visma-ekrav/./src/views/Enroll/EnrollCreditorView.vue?c628","webpack://visma-ekrav/./src/views/Enroll/EnrollCreditorView.vue?b5d5","webpack://visma-ekrav/./src/views/Enroll/EnrollCreditorView.vue?e8a3","webpack://visma-ekrav/./src/views/Enroll/EnrollStartView.vue","webpack://visma-ekrav/./src/views/Enroll/EnrollStartView.vue?718c","webpack://visma-ekrav/./src/views/Enroll/EnrollStartView.vue?d553","webpack://visma-ekrav/./src/views/Enroll/EnrollStartView.vue?9570","webpack://visma-ekrav/./src/views/Enroll/EnrollSuccessView.vue","webpack://visma-ekrav/./src/views/Enroll/EnrollSuccessView.vue?ebd6","webpack://visma-ekrav/./src/views/Enroll/EnrollSuccessView.vue?f394","webpack://visma-ekrav/./src/views/Enroll/EnrollSuccessView.vue?19a2","webpack://visma-ekrav/./src/views/Messages/MessagesArchivedView.vue","webpack://visma-ekrav/./src/views/Messages/MessagesArchivedView.vue?95db","webpack://visma-ekrav/./src/views/Messages/MessagesArchivedView.vue?cc40","webpack://visma-ekrav/./src/views/Messages/MessagesArchivedView.vue?70d3","webpack://visma-ekrav/./src/views/Messages/MessagesInboxView.vue","webpack://visma-ekrav/./src/views/Messages/MessagesInboxView.vue?d5f0","webpack://visma-ekrav/./src/views/Messages/MessagesInboxView.vue?eead","webpack://visma-ekrav/./src/views/Messages/MessagesInboxView.vue?a7fa","webpack://visma-ekrav/./src/views/Messages/MessagesSentView.vue","webpack://visma-ekrav/./src/views/Messages/MessagesSentView.vue?64d1","webpack://visma-ekrav/./src/views/Messages/MessagesSentView.vue?a73a","webpack://visma-ekrav/./src/views/Messages/MessagesSentView.vue?f435","webpack://visma-ekrav/./src/views/Register/RegisterImportPreviewView.vue","webpack://visma-ekrav/./src/views/Register/RegisterImportPreviewView.vue?4549","webpack://visma-ekrav/./src/views/Register/RegisterImportPreviewView.vue?17f6","webpack://visma-ekrav/./src/views/Register/RegisterImportPreviewView.vue?c4ff","webpack://visma-ekrav/./src/views/Register/RegisterImportStartView.vue","webpack://visma-ekrav/./src/views/Register/RegisterImportStartView.vue?d88c","webpack://visma-ekrav/./src/views/Register/RegisterImportStartView.vue?270b","webpack://visma-ekrav/./src/views/Register/RegisterImportStartView.vue?3325","webpack://visma-ekrav/./src/views/Register/RegisterImportSuccessView.vue","webpack://visma-ekrav/./src/views/Register/RegisterImportSuccessView.vue?6538","webpack://visma-ekrav/./src/views/Register/RegisterImportSuccessView.vue?4a63","webpack://visma-ekrav/./src/views/Register/RegisterImportSuccessView.vue?4cdb","webpack://visma-ekrav/./src/views/Register/RegisterManuallyDebtorView.vue","webpack://visma-ekrav/./src/views/Register/RegisterManuallyDebtorView.vue?7c17","webpack://visma-ekrav/./src/views/Register/RegisterManuallyDebtorView.vue?38b4","webpack://visma-ekrav/./src/views/Register/RegisterManuallyDebtorView.vue?59c3","webpack://visma-ekrav/./src/views/Register/RegisterManuallyDebtView.vue","webpack://visma-ekrav/./src/views/Register/RegisterManuallyDebtView.vue?8b5e","webpack://visma-ekrav/./src/views/Register/RegisterManuallyDebtView.vue?9476","webpack://visma-ekrav/./src/views/Register/RegisterManuallyDebtView.vue?99ec","webpack://visma-ekrav/./src/views/Register/RegisterManuallyStartView.vue","webpack://visma-ekrav/./src/views/Register/RegisterManuallyStartView.vue?d00d","webpack://visma-ekrav/./src/views/Register/RegisterManuallyStartView.vue?b428","webpack://visma-ekrav/./src/views/Register/RegisterManuallyStartView.vue?5190","webpack://visma-ekrav/./src/views/Register/RegisterManuallySuccessView.vue","webpack://visma-ekrav/./src/views/Register/RegisterManuallySuccessView.vue?c76f","webpack://visma-ekrav/./src/views/Register/RegisterManuallySuccessView.vue?7a6c","webpack://visma-ekrav/./src/views/Register/RegisterManuallySuccessView.vue?b2ef","webpack://visma-ekrav/./src/views/Support/SupportContactView.vue","webpack://visma-ekrav/./src/views/Support/SupportContactView.vue?90d1","webpack://visma-ekrav/./src/views/Support/SupportContactView.vue?f843","webpack://visma-ekrav/./src/views/Support/SupportContactView.vue?8fff","webpack://visma-ekrav/./src/router/index.ts","webpack://visma-ekrav/./src/plugins/gtm.ts","webpack://visma-ekrav/./src/App.vue","webpack://visma-ekrav/./src/App.vue?8cf1","webpack://visma-ekrav/./src/App.vue?96fa","webpack://visma-ekrav/./src/App.vue?4165","webpack://visma-ekrav/./src/components/Footer.vue","webpack://visma-ekrav/./src/components/Footer.vue?0dd2","webpack://visma-ekrav/./src/components/Footer.vue?5a68","webpack://visma-ekrav/./src/components/Footer.vue?486b","webpack://visma-ekrav/./src/components/NordicCoolAlert.vue","webpack://visma-ekrav/./src/components/NordicCoolAlert.vue?9339","webpack://visma-ekrav/./src/components/NordicCoolAlert.vue?0676","webpack://visma-ekrav/./src/components/NordicCoolAlert.vue?740e","webpack://visma-ekrav/./src/components/NordicCoolBack.vue","webpack://visma-ekrav/./src/components/NordicCoolBack.vue?a08c","webpack://visma-ekrav/./src/components/NordicCoolBack.vue?516d","webpack://visma-ekrav/./src/components/NordicCoolBack.vue?8db5","webpack://visma-ekrav/./src/components/NordicCoolConfirm.vue","webpack://visma-ekrav/./src/components/NordicCoolConfirm.vue?cf2d","webpack://visma-ekrav/./src/components/NordicCoolConfirm.vue?805d","webpack://visma-ekrav/./src/components/NordicCoolConfirm.vue?dce5","webpack://visma-ekrav/./src/components/NordicCoolInputCheckbox.vue","webpack://visma-ekrav/./src/components/NordicCoolInputCheckbox.vue?277d","webpack://visma-ekrav/./src/components/NordicCoolInputCheckbox.vue?f98e","webpack://visma-ekrav/./src/components/NordicCoolInputCheckbox.vue?62d9","webpack://visma-ekrav/./src/components/NordicCoolInputDate.vue","webpack://visma-ekrav/./src/components/NordicCoolInputDate.vue?f3da","webpack://visma-ekrav/./src/components/NordicCoolInputDate.vue?b853","webpack://visma-ekrav/./src/components/NordicCoolInputDate.vue?c181","webpack://visma-ekrav/./src/components/NordicCoolInputEmail.vue","webpack://visma-ekrav/./src/components/NordicCoolInputEmail.vue?9325","webpack://visma-ekrav/./src/components/NordicCoolInputEmail.vue?7eaf","webpack://visma-ekrav/./src/components/NordicCoolInputEmail.vue?67ef","webpack://visma-ekrav/./src/components/NordicCoolInputFile.vue","webpack://visma-ekrav/./src/components/NordicCoolInputFile.vue?6df0","webpack://visma-ekrav/./src/components/NordicCoolInputFile.vue?3028","webpack://visma-ekrav/./src/components/NordicCoolInputFile.vue?56e4","webpack://visma-ekrav/./src/components/NordicCoolInputNumber.vue","webpack://visma-ekrav/./src/components/NordicCoolInputNumber.vue?423b","webpack://visma-ekrav/./src/components/NordicCoolInputNumber.vue?f363","webpack://visma-ekrav/./src/components/NordicCoolInputNumber.vue?63ae","webpack://visma-ekrav/./src/components/NordicCoolInputPhone.vue","webpack://visma-ekrav/./src/components/NordicCoolInputPhone.vue?6f66","webpack://visma-ekrav/./src/components/NordicCoolInputPhone.vue?e61b","webpack://visma-ekrav/./src/components/NordicCoolInputPhone.vue?d7cc","webpack://visma-ekrav/./src/components/NordicCoolInputSelect.vue","webpack://visma-ekrav/./src/components/NordicCoolInputSelect.vue?4e3e","webpack://visma-ekrav/./src/components/NordicCoolInputSelect.vue?057b","webpack://visma-ekrav/./src/components/NordicCoolInputSelect.vue?d5f8","webpack://visma-ekrav/./src/components/NordicCoolInputText.vue","webpack://visma-ekrav/./src/components/NordicCoolInputText.vue?14fb","webpack://visma-ekrav/./src/components/NordicCoolInputText.vue?f110","webpack://visma-ekrav/./src/components/NordicCoolInputText.vue?c790","webpack://visma-ekrav/./src/components/NordicCoolMenu.vue","webpack://visma-ekrav/./src/components/NordicCoolMenu.vue?4ee0","webpack://visma-ekrav/./src/components/NordicCoolMenu.vue?2334","webpack://visma-ekrav/./src/components/NordicCoolMenu.vue?edaa","webpack://visma-ekrav/./src/components/NordicCoolPage.vue","webpack://visma-ekrav/./src/components/NordicCoolPage.vue?1719","webpack://visma-ekrav/./src/components/NordicCoolPage.vue?b81d","webpack://visma-ekrav/./src/components/NordicCoolPage.vue?f8ed","webpack://visma-ekrav/./src/components/NordicCoolTable.vue","webpack://visma-ekrav/./src/components/NordicCoolTable.vue?1159","webpack://visma-ekrav/./src/components/NordicCoolTable.vue?6107","webpack://visma-ekrav/./src/components/NordicCoolTable.vue?9d89","webpack://visma-ekrav/./src/components/NordicCoolToast.vue","webpack://visma-ekrav/./src/components/NordicCoolToast.vue?9d62","webpack://visma-ekrav/./src/components/NordicCoolToast.vue?91c9","webpack://visma-ekrav/./src/components/NordicCoolToast.vue?5946","webpack://visma-ekrav/./src/main.ts","webpack://visma-ekrav/./src/registerServiceWorker.ts","webpack://visma-ekrav/./src/locales/ sync [A-Za-z0-9-_,\\s]+\\.json$i","webpack://visma-ekrav/webpack/bootstrap","webpack://visma-ekrav/webpack/runtime/chunk loaded","webpack://visma-ekrav/webpack/runtime/compat get default export","webpack://visma-ekrav/webpack/runtime/define property getters","webpack://visma-ekrav/webpack/runtime/global","webpack://visma-ekrav/webpack/runtime/hasOwnProperty shorthand","webpack://visma-ekrav/webpack/runtime/make namespace object","webpack://visma-ekrav/webpack/runtime/node module decorator","webpack://visma-ekrav/webpack/runtime/publicPath","webpack://visma-ekrav/webpack/runtime/jsonp chunk loading","webpack://visma-ekrav/webpack/startup"],"sourcesContent":["import Vue from 'vue'\r\nimport BootstrapVue from 'bootstrap-vue'\r\n\r\nVue.use(BootstrapVue)\r\n","import Vue from 'vue'\r\nimport VueI18n, { LocaleMessages } from 'vue-i18n'\r\n\r\nVue.use(VueI18n)\r\n\r\nfunction loadLocaleMessages(): LocaleMessages {\r\n const locales = require.context('@/locales', true, /[A-Za-z0-9-_,\\s]+\\.json$/i)\r\n const messages: LocaleMessages = {}\r\n locales.keys().forEach((key) => {\r\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\r\n if (matched && matched.length > 1) {\r\n const locale = matched[1]\r\n messages[locale] = locales(key)\r\n }\r\n })\r\n return messages\r\n}\r\n\r\nexport default new VueI18n({\r\n locale: process.env.VUE_APP_I18N_LOCALE || 'en',\r\n fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en',\r\n messages: loadLocaleMessages(),\r\n})\r\n","import Vue from 'vue'\r\nimport VueCookies from 'vue-cookies'\r\n\r\nVue.use(VueCookies)\r\n","import Vue from 'vue'\r\nimport VueCsvImport from 'vue-csv-import'\r\n\r\n// Vue.use(VueCsvImport)\r\nVue.component('vue-csv-import', VueCsvImport)\r\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport Axios, { Method, AxiosError } from 'axios'\r\nimport jwt_decode from 'jwt-decode'\r\n\r\nexport const MOCK_SIMPLIFIED_TOKEN = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtYl9pZCI6IjE5NTAwMTE4MjA0NiIsImZpcnN0X25hbWUiOiJUZXN0IiwibGFzdF9uYW1lIjoiVGVzdHNzb24iLCJpcCI6IjEyNy4wLjAuMSIsImZ1bmN0aW9uYWxfc2NvcGUiOiJzaW1wbGlmaWVkIn0.JLiVMaVFS3z6_QIovSKCt57wSfAKadW5m40t59cSm7o'\r\nexport const MOCK_OTHER_TOKEN = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtYl9pZCI6IjE5NTAwMTE4MjA0NiIsImZpcnN0X25hbWUiOiJUZXN0IiwibGFzdF9uYW1lIjoiVGVzdHNzb24iLCJpcCI6IjEyNy4wLjAuMSIsImZ1bmN0aW9uYWxfc2NvcGUiOiJvdGhlciJ9.yDnE6LTguoUMMThcerrgQQwgbb6BBBsiAdnW8VLOTD8'\r\nexport const MOCK_UNAUTHORIZED_TOKEN = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtYl9pZCI6IjE5NTAwMTE4MjA0NiIsImZpcnN0X25hbWUiOiJUZXN0IiwibGFzdF9uYW1lIjoiVGVzdHNzb24iLCJpcCI6IjEyNy4wLjAuMSJ9.wEO0FYafj5W3-UI6Trw9dDGD3ETdLbspi1GH0k4gWHQ'\r\n\r\nexport class Pagination {\r\n maxResults: number\r\n\r\n page: number\r\n\r\n constructor(maxResults = 25, page = 1) {\r\n this.maxResults = maxResults\r\n this.page = page\r\n }\r\n}\r\n\r\nexport class Page {\r\n items: T[]\r\n total: number\r\n maxResults: number\r\n page: number\r\n\r\n constructor(items: T[], total: number, maxResults: number, page: number) {\r\n this.items = items\r\n this.total = total\r\n this.maxResults = maxResults\r\n this.page = page\r\n }\r\n\r\n map(callbackfn: (value: T, index: number, array: T[]) => U): Page {\r\n return new Page(this.items.map(callbackfn), this.total, this.maxResults, this.page)\r\n }\r\n\r\n static transform(model: PageModel, callbackfn: (value: A, index: number, array: A[]) => B): Page {\r\n const items: B[] | undefined = model._items?.map(callbackfn)\r\n return new Page(items ?? [], model._total, model._max_results, model._page)\r\n }\r\n}\r\n\r\nexport function isPage(object: any): object is Page {\r\n return 'page' in object\r\n}\r\n\r\nexport interface PageModel {\r\n _items: null | T[];\r\n _total: number;\r\n _max_results: number;\r\n _page: number;\r\n extra: any;\r\n}\r\n\r\nexport interface APIRequest {\r\n method: Method;\r\n path: string;\r\n data?: any;\r\n _etag?: string;\r\n extra?: any;\r\n commit?: string;\r\n action?: string;\r\n mock?: any | APIError;\r\n paging?: Pagination;\r\n}\r\n\r\nexport interface APIUpload {\r\n method: Method;\r\n path: string;\r\n file: File;\r\n extra?: any;\r\n commit?: string;\r\n action?: string;\r\n mock?: any | APIError;\r\n}\r\n\r\nexport interface APIError {\r\n errors: { [field: string]: string };\r\n message: string;\r\n}\r\n\r\nexport function isAPIError(object: any): object is APIError {\r\n return 'errors' in object && 'message' in object\r\n}\r\n\r\nexport function missingError(value: string): APIError {\r\n return { errors: {}, message: `Missing value ${value}` }\r\n}\r\n\r\nexport interface CreditorsAPIState {\r\n host: string;\r\n token?: string;\r\n expires?: Date;\r\n}\r\n\r\nexport const state: CreditorsAPIState = {\r\n host: `${process.env.VUE_APP_BACKEND_BASE_URL}`,\r\n token: undefined,\r\n expires: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getToken(state): string | undefined {\r\n return state.token\r\n },\r\n getExpires(state): Date | undefined {\r\n return state.expires\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setToken(state, token?: string) {\r\n var expires: Date | undefined\r\n if (token !== undefined) {\r\n expires = new Date((jwt_decode(token) as any).t_exp)\r\n }\r\n console.log(`TOKEN UPDATED (${expires}): ${token}`)\r\n state.expires = expires\r\n state.token = token\r\n },\r\n setExpires(state, expires?: Date) {\r\n state.expires = expires\r\n },\r\n}\r\n\r\nconst sleep = (milliseconds: number) => new Promise((resolve) => setTimeout(resolve, milliseconds))\r\n\r\nexport const actions: ActionTree = {\r\n /**\r\n * Calls the creditor-rest-api with the parameters specified by the request.\r\n *\r\n * @param store The vuex store.\r\n * @param request The request to be processed.\r\n */\r\n async call(store, request: APIRequest): Promise {\r\n var headers: any = { 'X-API-KEY': state.token }\r\n\r\n // Mock support\r\n if (state.token === MOCK_SIMPLIFIED_TOKEN || state.token === MOCK_OTHER_TOKEN || state.token === MOCK_UNAUTHORIZED_TOKEN) {\r\n await sleep(1000)\r\n const data = request.mock\r\n if (isAPIError(data)) return data\r\n data.extra = request.extra\r\n if (request.commit !== undefined) {\r\n store.commit(request.commit, data, { root: true })\r\n }\r\n if (request.action !== undefined) {\r\n await store.dispatch(request.action, data, { root: true })\r\n }\r\n return true\r\n }\r\n\r\n console.log('CREDITORS API CALL')\r\n\r\n // Token refresh\r\n const expires: Date | undefined = store.getters.getExpires\r\n if (expires !== undefined && new Date() >= expires) {\r\n store.commit('setExpires', undefined)\r\n await store.dispatch('authentications/refreshToken', null, { root: true })\r\n }\r\n\r\n let query = ''\r\n\r\n // Support for paging\r\n if (request.paging !== undefined) {\r\n if (request.path.includes('?')) query = `&max_results=${request.paging.maxResults}&page=${request.paging.page}`\r\n else query = `?max_results=${request.paging.maxResults}&page=${request.paging.page}`\r\n }\r\n\r\n // Headers\r\n if (request._etag !== undefined) {\r\n headers = { 'X-API-KEY': state.token, 'If-Match': request._etag }\r\n }\r\n\r\n // Make request\r\n try {\r\n const response = await Axios({\r\n method: request.method,\r\n url: state.host + request.path + query,\r\n headers: headers,\r\n data: request.data,\r\n })\r\n\r\n // Retrieve data\r\n const { data } = response\r\n if (data.constructor === Object) {\r\n data.extra = request.extra\r\n }\r\n\r\n // Data can be delivered either through commit or action\r\n if (request.commit !== undefined) {\r\n store.commit(request.commit, data, { root: true })\r\n }\r\n if (request.action !== undefined) {\r\n await store.dispatch(request.action, data, { root: true })\r\n }\r\n\r\n return true\r\n } catch (err) {\r\n if (err instanceof AxiosError) {\r\n const axiosError = err as AxiosError\r\n const apiError = axiosError.response?.data\r\n\r\n // Extra check for token ip changes\r\n if (axiosError.response?.status === 401 && axiosError.response?.data?.message === 'The token_schema can only be used from the same location.') {\r\n store.commit('setExpires', undefined)\r\n if (await store.dispatch('authentications/refreshToken', null, { root: true }) === true) {\r\n return store.dispatch('call', request)\r\n }\r\n }\r\n\r\n console.log(apiError)\r\n return apiError ?? {} as APIError\r\n }\r\n throw err\r\n }\r\n },\r\n\r\n async upload(store, request: APIUpload): Promise {\r\n // Mock support\r\n if (state.token === MOCK_SIMPLIFIED_TOKEN || state.token === MOCK_OTHER_TOKEN || state.token === MOCK_UNAUTHORIZED_TOKEN) {\r\n await sleep(1000)\r\n const data = request.mock\r\n if (isAPIError(data)) return data\r\n data.extra = request.extra\r\n if (request.commit !== undefined) {\r\n store.commit(request.commit, data, { root: true })\r\n }\r\n if (request.action !== undefined) {\r\n await store.dispatch(request.action, data, { root: true })\r\n }\r\n return true\r\n }\r\n\r\n console.log('CREDITORS API UPLOAD')\r\n\r\n // Token refresh\r\n const expires: Date | undefined = store.getters.getExpires\r\n if (expires !== undefined && new Date() >= expires) {\r\n await store.dispatch('authentications/refreshToken', null, { root: true })\r\n }\r\n\r\n const formData = new FormData()\r\n formData.append('file', request.file)\r\n\r\n // Make request\r\n try {\r\n const response = await Axios({\r\n method: request.method,\r\n url: state.host + request.path,\r\n headers: {\r\n 'X-API-KEY': state.token,\r\n 'Content-Type': 'multipart/form-data',\r\n },\r\n data: formData,\r\n })\r\n\r\n // Retrieve data\r\n const { data } = response\r\n data.extra = request.extra\r\n\r\n // Data can be delivered either through commit or action\r\n if (request.commit !== undefined) {\r\n store.commit(request.commit, data, { root: true })\r\n }\r\n if (request.action !== undefined) {\r\n await store.dispatch(request.action, data, { root: true })\r\n }\r\n\r\n return true\r\n } catch (err) {\r\n if (err instanceof AxiosError) {\r\n const axiosError = err as AxiosError\r\n const apiError = axiosError.response?.data\r\n console.log(apiError)\r\n return apiError ?? {} as APIError\r\n }\r\n throw err\r\n }\r\n },\r\n}\r\n\r\nexport const creditorsAPI: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n}\r\n","import i18n from '@/plugins/i18n'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nexport enum Severity {\r\n Warning,\r\n Error,\r\n Information\r\n}\r\n\r\nexport interface Alert {\r\n severity: Severity;\r\n title: string;\r\n message: string;\r\n cancel?: string;\r\n}\r\n\r\nexport function applicationError(store: any, message: string): boolean {\r\n const alert = {\r\n severity: Severity.Error,\r\n title: i18n.tc('common.application.error'),\r\n message,\r\n }\r\n store.commit('setAlert', alert)\r\n return false\r\n}\r\n\r\nexport function apiError(store: any, error: APIError, cancel?: string): boolean {\r\n let message = ''\r\n const errors = error?.errors\r\n if (errors !== undefined) {\r\n message = Object.entries(errors).map(\r\n ([key, value]) => `${key}:${value}`,\r\n ).join(', ')\r\n }\r\n const alert = {\r\n severity: Severity.Error,\r\n title: error?.message ?? i18n.tc('common.api.error'),\r\n message: message,\r\n cancel: cancel,\r\n }\r\n store.commit('setAlert', alert)\r\n return false\r\n}\r\n\r\nexport function taxCodeRequired(cancel?: string): Alert {\r\n return {\r\n severity: Severity.Error,\r\n title: i18n.tc('onboarding.ftax.required.title'),\r\n message: i18n.tc('onboarding.ftax.required.message'),\r\n cancel: cancel,\r\n }\r\n}\r\n\r\nexport function taxCodeUnavailable(cancel?: string): Alert {\r\n return {\r\n severity: Severity.Error,\r\n title: i18n.tc('onboarding.ftax.unavailable.title'),\r\n message: i18n.tc('onboarding.ftax.unavailable.message'),\r\n cancel: cancel,\r\n }\r\n}\r\n\r\nexport function bankidCancelled(): Alert {\r\n return {\r\n severity: Severity.Warning,\r\n title: i18n.tc('onboarding.bankid.cancelled.title'),\r\n message: i18n.tc('onboarding.bankid.cancelled.message'),\r\n cancel: '/',\r\n }\r\n}\r\n\r\nexport function bankidFailed(): Alert {\r\n return {\r\n severity: Severity.Error,\r\n title: i18n.tc('onboarding.bankid.failed.title'),\r\n message: i18n.tc('onboarding.bankid.failed.message'),\r\n cancel: '/',\r\n }\r\n}\r\n\r\nexport function importValidationFailed(invoiceNumber: string): Alert {\r\n return {\r\n severity: Severity.Error,\r\n title: 'Importfel',\r\n message: `Fakturan ${invoiceNumber} innehåller fel. Rätta felen eller avmarkera den fakuran`,\r\n }\r\n}\r\n","import { ActionContext } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { TokenModel, UserListTokenModel } from '@/models/authenticates'\r\nimport { MOCK_SIMPLIFIED_TOKEN, MOCK_OTHER_TOKEN, MOCK_UNAUTHORIZED_TOKEN } from '@/store/modules/creditorsAPI'\r\nimport { AuthenticationState } from '@/store/modules/authentications'\r\n\r\nexport function mockTokenModel(store: ActionContext): TokenModel {\r\n const token = store.getters['creditorsAPI/getToken']\r\n return {\r\n }\r\n}\r\n\r\nexport function mockUserListTokenModelCancelled(store: ActionContext): UserListTokenModel {\r\n return {\r\n }\r\n}\r\n\r\nexport function mockUserListTokenModelComplete(store: ActionContext): UserListTokenModel {\r\n const token = store.getters['creditorsAPI/getToken']\r\n if (token === MOCK_UNAUTHORIZED_TOKEN) {\r\n return {\r\n }\r\n }\r\n return {\r\n }\r\n}\r\n","import i18n from '@/plugins/i18n'\r\n\r\nexport class InputText {\r\n value: string | null\r\n minLength: number | null\r\n maxLength: number | null\r\n rangeIsEither: boolean\r\n numberLike: boolean\r\n digitsOnly: boolean\r\n required: boolean\r\n expression: RegExp | null\r\n\r\n constructor(value: string | null, minLength: number | null, maxLength: number | null, rangeIsEither: boolean, numberLike: boolean, digitsOnly: boolean, required: boolean, expression: RegExp | null) {\r\n this.value = value\r\n this.minLength = minLength\r\n this.maxLength = maxLength\r\n this.rangeIsEither = rangeIsEither\r\n this.numberLike = numberLike\r\n this.digitsOnly = digitsOnly\r\n this.required = required\r\n this.expression = expression\r\n }\r\n\r\n get isBlank(): boolean {\r\n if (this.value === null) return true\r\n if (this.value.length === 0) return true\r\n return false\r\n }\r\n\r\n static minimum({ value }: { value: string | null }): InputText {\r\n return new InputText(value, null, null, false, false, false, false, null)\r\n }\r\n\r\n static unconstrained({ value, required }: { value: string | null, required: boolean }): InputText {\r\n return new InputText(value, null, null, false, false, false, required, null)\r\n }\r\n\r\n static standard({ value, minLength, maxLength, required }: { value: string | null, minLength: number | null, maxLength: number | null, required: boolean }): InputText {\r\n return new InputText(value, minLength, maxLength, false, false, false, required, null)\r\n }\r\n\r\n static either({ value, minLength, maxLength, required }: { value: string | null, minLength: number | null, maxLength: number | null, required: boolean }): InputText {\r\n return new InputText(value, minLength, maxLength, true, false, false, required, null)\r\n }\r\n\r\n static numberLike({ value, minLength, maxLength, digitsOnly, required }: { value: string | null, minLength: number | null, maxLength: number | null, digitsOnly: boolean, required: boolean }): InputText {\r\n return new InputText(value, minLength, maxLength, false, true, digitsOnly, required, null)\r\n }\r\n\r\n static eitherNumberLike({ value, minLength, maxLength, digitsOnly, required }: { value: string | null, minLength: number | null, maxLength: number | null, digitsOnly: boolean, required: boolean }): InputText {\r\n return new InputText(value, minLength, maxLength, true, true, digitsOnly, required, null)\r\n }\r\n\r\n static email({ value, required }: { value: string | null, required: boolean }): InputText {\r\n return new InputText(value, null, null, false, false, false, required, /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)\r\n }\r\n\r\n toString(): string {\r\n return filteredInputText(this, this.value) ?? ''\r\n }\r\n\r\n /*\r\n * Allow both 10 and 12 digit input, but result is always 12 digits (if successful)\r\n */\r\n toPersonalNumber(): string {\r\n var value = this.toString()\r\n if (value.length === 10) {\r\n const year = parseInt(value.substring(0, 2), 10)\r\n if (year <= 15) {\r\n value = `20${value}`\r\n } else {\r\n value = `19${value}`\r\n }\r\n }\r\n return value\r\n }\r\n\r\n /*\r\n * Allow both 10 and 12 digit input, but result is always 10 digits (if successful)\r\n */\r\n toOrganisationNumber(): string {\r\n var value = this.toPersonalNumber()\r\n if (value.length === 12) {\r\n return value.substring(2, 12)\r\n }\r\n return value\r\n }\r\n\r\n isCompany(): boolean {\r\n var value = this.toOrganisationNumber()\r\n if (value.length === 10) {\r\n const month = parseInt(value.substring(2, 4), 10)\r\n if (month >= 20) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\n\r\nexport class InputNumber {\r\n value: number | null\r\n minValue: number | null\r\n maxValue: number | null\r\n rangeIsLength: boolean\r\n rangeIsEither: boolean\r\n zeroIsBlank: boolean\r\n numberIsAmount: boolean\r\n required: boolean\r\n\r\n constructor(value: number | null, minValue: number | null, maxValue: number | null, rangeIsLength: boolean, rangeIsEither: boolean, zeroIsBlank: boolean, numberIsAmount: boolean, required: boolean) {\r\n this.value = value\r\n this.minValue = minValue\r\n this.maxValue = maxValue\r\n this.rangeIsLength = rangeIsLength\r\n this.rangeIsEither = rangeIsEither\r\n this.zeroIsBlank = zeroIsBlank\r\n this.numberIsAmount = numberIsAmount\r\n this.required = required\r\n }\r\n\r\n get isBlank(): boolean {\r\n if (this.value === null) return true\r\n if (this.value === 0 && this.zeroIsBlank) return true\r\n return false\r\n }\r\n\r\n static minimum({ value }: { value: number | null }): InputNumber {\r\n return new InputNumber(value, null, null, false, false, false, false, false)\r\n }\r\n\r\n static zeroIsBlank({ value }: { value: number | null }): InputNumber {\r\n return new InputNumber(value, null, null, false, false, true, false, false)\r\n }\r\n\r\n static unconstrained({ value, required }: { value: number | null, required: boolean }): InputNumber {\r\n return new InputNumber(value, null, null, false, false, false, false, required)\r\n }\r\n\r\n static unconstrainedAmount({ value, required }: { value: number | null, required: boolean }): InputNumber {\r\n return new InputNumber(value, null, null, false, false, false, true, required)\r\n }\r\n\r\n static valueInRange({ value, minValue, maxValue, required }: { value: number | null, minValue: number | null, maxValue: number | null, required: boolean }): InputNumber {\r\n return new InputNumber(value, minValue, maxValue, false, false, true, false, required)\r\n }\r\n\r\n static amountInRange({ value, minValue, maxValue, required }: { value: number | null, minValue: number | null, maxValue: number | null, required: boolean }): InputNumber {\r\n return new InputNumber(value, minValue, maxValue, false, false, true, true, required)\r\n }\r\n\r\n static lengthInRange({ value, minLength, maxLength, required }: { value: number | null, minLength: number | null, maxLength: number | null, required: boolean }): InputNumber {\r\n return new InputNumber(value, minLength, maxLength, true, false, true, false, required)\r\n }\r\n\r\n static eitherValues({ value, minValue, maxValue, required }: { value: number | null, minValue: number | null, maxValue: number | null, required: boolean }): InputNumber {\r\n return new InputNumber(value, minValue, maxValue, false, true, true, false, required)\r\n }\r\n\r\n static eitherLengths({ value, minLength, maxLength, required }: { value: number | null, minLength: number | null, maxLength: number | null, required: boolean }): InputNumber {\r\n return new InputNumber(value, minLength, maxLength, true, true, true, false, required)\r\n }\r\n\r\n toNumber(): number {\r\n return this.value ?? 0\r\n }\r\n\r\n toString(): string {\r\n return this.value?.toString() ?? ''\r\n }\r\n}\r\n\r\nexport class InputDate {\r\n value: Date | null\r\n minValue: Date | null\r\n maxValue: Date | null\r\n required: boolean\r\n additional: ((value: Date) => boolean) | null\r\n\r\n constructor(value: Date | null, minValue: Date | null, maxValue: Date | null, required: boolean, additional: ((value: Date) => boolean) | null) {\r\n this.value = value\r\n this.minValue = minValue\r\n this.maxValue = maxValue\r\n this.required = required\r\n this.additional = additional\r\n }\r\n\r\n static minimum({ value }: { value: Date | null }): InputDate {\r\n return new InputDate(value, null, null, false, null)\r\n }\r\n\r\n static unconstrained({ value, required }: { value: Date | null, required: boolean }): InputDate {\r\n return new InputDate(value, null, null, required, null)\r\n }\r\n\r\n static standard({ value, minValue, maxValue, required }: { value: Date | null, minValue: Date | null, maxValue: Date | null, required: boolean }): InputDate {\r\n return new InputDate(value, minValue, maxValue, required, null)\r\n }\r\n\r\n static additional({ value, minValue, maxValue, required, additional }: { value: Date | null, minValue: Date | null, maxValue: Date | null, required: boolean, additional: (value: Date) => boolean }): InputDate {\r\n return new InputDate(value, minValue, maxValue, required, additional)\r\n }\r\n\r\n toDate(): Date {\r\n return this.value ?? new Date()\r\n }\r\n}\r\n\r\nexport class InputFile {\r\n value: File | null\r\n required: boolean\r\n\r\n constructor(value: File | null, required: boolean) {\r\n this.value = value\r\n this.required = required\r\n }\r\n\r\n static minimum({ value }: { value: File | null }): InputFile {\r\n return new InputFile(value, false)\r\n }\r\n\r\n static standard({ value, required }: { value: File | null, required: boolean }): InputFile {\r\n return new InputFile(value, required)\r\n }\r\n}\r\n\r\nexport class InputCheckbox {\r\n value: boolean | null\r\n requiredTrue: boolean\r\n\r\n constructor(value: boolean | null, requiredTrue: boolean) {\r\n this.value = value\r\n this.requiredTrue = requiredTrue\r\n }\r\n\r\n static minimum({ value }: { value: boolean | null }): InputCheckbox {\r\n return new InputCheckbox(value, false)\r\n }\r\n\r\n static standard({ value, requiredTrue }: { value: boolean | null, requiredTrue: boolean }): InputCheckbox {\r\n return new InputCheckbox(value, requiredTrue)\r\n }\r\n}\r\n\r\nexport interface InputOption {\r\n value: number | null;\r\n text: string;\r\n data: any;\r\n}\r\n\r\nexport class InputSelect {\r\n value: number | null\r\n options: InputOption[] | null\r\n\r\n get optionCount(): number { return this.options === null ? 0 : this.options.length }\r\n get selected(): InputOption | undefined { return this.options?.filter((it) => it.value === this.value)[0] }\r\n \r\n constructor(value: number | null, options: InputOption[] | null) {\r\n this.value = value\r\n this.options = options\r\n }\r\n\r\n static standard({ value, options }: { value: number | null, options: InputOption[] | null }): InputSelect {\r\n return new InputSelect(value, options)\r\n }\r\n}\r\n\r\nfunction isInputText(object: any): object is InputText {\r\n return object instanceof InputText\r\n}\r\n\r\nfunction isInputNumber(object: any): object is InputNumber {\r\n return object instanceof InputNumber\r\n}\r\n\r\nfunction isInputDate(object: any): object is InputDate {\r\n return object instanceof InputDate\r\n}\r\n\r\nfunction isInputFile(object: any): object is InputFile {\r\n return object instanceof InputFile\r\n}\r\n\r\nfunction isInputCheckbox(object: any): object is InputCheckbox {\r\n return object instanceof InputCheckbox\r\n}\r\n\r\nfunction isInputSelect(object: any): object is InputSelect {\r\n return object instanceof InputSelect\r\n}\r\n\r\nexport function placeholder(input: InputText | InputNumber | InputDate | InputFile | InputCheckbox | InputSelect | undefined): string {\r\n let result = ''\r\n if (isInputText(input)) result = 'Ange text'\r\n else if (isInputNumber(input)) result = 'Ange siffror'\r\n else if (isInputDate(input)) result = 'Ange datum'\r\n else if (isInputFile(input)) result = i18n.tc('common.nofile')\r\n else if (isInputCheckbox(input)) result = ''\r\n else if (isInputSelect(input)) result = ''\r\n return result\r\n}\r\n\r\nexport function validInputs(inputs: (InputText | InputNumber | InputDate | InputFile | InputCheckbox | InputSelect)[], strict: boolean): boolean | null {\r\n let result: boolean | null = true\r\n inputs.forEach((it) => {\r\n if (result === true) {\r\n if (isInputText(it)) result = validInputText(it, strict)\r\n else if (isInputNumber(it)) result = validInputNumber(it, strict)\r\n else if (isInputDate(it)) result = validInputDate(it, strict)\r\n else if (isInputFile(it)) result = validInputFile(it, strict)\r\n else if (isInputCheckbox(it)) result = validInputCheckbox(it, strict)\r\n else if (isInputSelect(it)) result = validInputSelect(it, strict)\r\n }\r\n })\r\n // console.log(`valid: ${result}`)\r\n return result\r\n}\r\n\r\nexport function filteredInputText(input: InputText, text: string | null): string | null {\r\n const { digitsOnly } = input\r\n const filteredText = text?.replace(/[^0-9]+/g, '') ?? null\r\n return digitsOnly ? filteredText : text\r\n}\r\n\r\nexport function validInputText(input: InputText, strict: boolean): boolean | null {\r\n const min = input.minLength\r\n const max = input.maxLength\r\n const { value, required, numberLike, expression } = input\r\n const validValue = value?.replace(/[^0-9-+ ,]+/g, '') ?? null\r\n const filteredValue = filteredInputText(input, value)\r\n const isEither = input.rangeIsEither\r\n\r\n const testedValue = numberLike ? filteredValue : value\r\n \r\n // console.log(`validInputText: value=\"${value}\" => \"${testedValue}\", min=\"${min}\", max=\"${max}\", isEither=\"${isEither}\"`)\r\n\r\n // FAILED\r\n\r\n // Required check, only in strict mode\r\n const checkRequired = strict && required\r\n if (checkRequired && (testedValue === null || testedValue.length === 0)) return false\r\n // Length in range check, only when isEither is off. Min is strict mode only.\r\n const checkLengthInRange = !isEither\r\n if (checkLengthInRange && strict && min !== null && testedValue !== null && testedValue.length < min) return false\r\n if (checkLengthInRange && max !== null && testedValue !== null && testedValue.length > max) return false\r\n // Length is either check, only when isEither is on. Max is non-strict mode only.\r\n const checkLengthIsEither = isEither\r\n if (checkLengthIsEither && strict && min !== null && max !== null && testedValue !== null && testedValue.length !== min && testedValue.length !== max) return false\r\n if (checkLengthIsEither && max !== null && testedValue !== null && testedValue.length > max) return false\r\n // Number like check, only when numberLike is on.\r\n const checkNumberLike = numberLike\r\n if (checkNumberLike && value !== null && value !== validValue) return false\r\n // Expression check, only in strict mode.\r\n const checkExpression = strict\r\n if (checkExpression && value !== null && expression !== null && !expression.test(value)) return false\r\n\r\n // SUCCESSFUL\r\n\r\n // Length in range.\r\n if (checkLengthInRange && strict && min !== null && max !== null && testedValue !== null && testedValue.length >= min && testedValue.length <= max) return true\r\n if (checkLengthInRange && strict && min !== null && max === null && testedValue !== null && testedValue.length >= min) return true\r\n if (checkLengthInRange && strict && min === null && max !== null && testedValue !== null && testedValue.length <= max) return true\r\n // Length is either.\r\n if (checkLengthIsEither && strict && min !== null && max !== null && testedValue !== null && (testedValue.length === min || testedValue.length === max)) return true\r\n // Expression check.\r\n if (checkExpression && strict && value !== null && expression !== null && expression.test(value)) return true\r\n // Unconstrained value.\r\n if (strict && min === null && max === null) return true\r\n \r\n // PASS\r\n return null\r\n}\r\n\r\nexport function placeholderInputText(input: InputText): string {\r\n const min = input.minLength\r\n const max = input.maxLength\r\n const isEither = input.rangeIsEither\r\n if (!isEither && min !== null && max !== null) return i18n.tc('validations.text.range', undefined, { min: min, max: max })\r\n if (!isEither && min !== null && max === null) return i18n.tc('validations.text.min', undefined, { min: min, max: max })\r\n if (!isEither && min === null && max !== null) return i18n.tc('validations.text.max', undefined, { min: min, max: max })\r\n if (!isEither && min !== null && min === max) return i18n.tc('validations.text.exact', undefined, { min: min, max: max })\r\n if (isEither) return i18n.tc('validations.text.either', undefined, { min: min, max: max })\r\n return ''\r\n}\r\n\r\nexport function validInputNumber(input: InputNumber, strict: boolean): boolean | null {\r\n const min = input.minValue\r\n const max = input.maxValue\r\n const { value, required } = input\r\n const stringValue = value?.toString()\r\n const isLength = input.rangeIsLength\r\n const isEither = input.rangeIsEither\r\n \r\n // console.log(`validInputNumber: value=\"${value}\" min=\"${min}\", max=\"${max}\", isLength=\"${isLength}\", isEither=\"${isEither}\"`)\r\n\r\n // FAILED\r\n\r\n // Required check, only in strict mode\r\n const checkRequired = strict && required\r\n if (checkRequired && value === null) return false\r\n // Value in range, only when isLength and isEither is off. Min is strict mode only.\r\n const checkValueInRange = !isLength && !isEither\r\n if (checkValueInRange && strict && min !== null && value !== null && value < min) return false\r\n if (checkValueInRange && max !== null && value !== null && value > max) return false\r\n // Value is either, only when isLength is off and isEither is on.\r\n const checkValueIsEither = !isLength && isEither\r\n if (checkValueIsEither && strict && min !== null && max !== null && value !== null && value !== min && value !== max) return false\r\n // Length in range, only when isLength is on and isEither is off. Min is strict mode only.\r\n const checkLengthInRange = isLength && !isEither\r\n if (checkLengthInRange && strict && min !== null && stringValue !== undefined && stringValue.length < min) return false\r\n if (checkLengthInRange && max !== null && stringValue !== undefined && stringValue.length > max) return false\r\n // Length is either, only when isLength and isEither is on.\r\n const checkLengthIsEither = isLength && isEither\r\n if (checkLengthIsEither && strict && min !== null && max !== null && stringValue !== undefined && stringValue.length !== min && stringValue.length !== max) return false\r\n\r\n // SUCCESSFUL\r\n\r\n // Value in range.\r\n if (checkValueInRange && strict && min !== null && max !== null && value !== null && value >= min && value <= max) return true\r\n if (checkValueInRange && strict && min !== null && max === null && value !== null && value >= min) return true\r\n if (checkValueInRange && strict && min === null && max !== null && value !== null && value <= max) return true\r\n // Value is either.\r\n if (checkValueIsEither && strict && min !== null && max !== null && value !== null && (value === min || value === max)) return true\r\n // Length in range.\r\n if (checkLengthInRange && strict && min !== null && max !== null && stringValue !== undefined && stringValue.length >= min && stringValue.length <= max) return true\r\n // Length is either.\r\n if (checkLengthIsEither && strict && min !== null && max !== null && stringValue !== undefined && (stringValue.length === min || stringValue.length === max)) return true\r\n // Unconstrained value.\r\n if (strict && min === null && max === null) return true\r\n \r\n // PASS\r\n return null\r\n}\r\n\r\nexport function placeholderInputNumber(input: InputNumber): string {\r\n const min = input.minValue\r\n const max = input.maxValue\r\n const isLength = input.rangeIsLength\r\n const isEither = input.rangeIsEither\r\n if (min !== null && max !== null && !isLength) return i18n.tc('validations.number.range', undefined, { min: min, max: max })\r\n if (min !== null && max === null && !isLength) return i18n.tc('validations.number.min', undefined, { min: min, max: max })\r\n if (min === null && max !== null && !isLength) return i18n.tc('validations.number.max', undefined, { min: min, max: max })\r\n if (min !== null && max !== null && isLength && !isEither) {\r\n if (min === max) return i18n.tc('validations.number.length.exact', undefined, { min: min, max: max })\r\n return i18n.tc('validations.number.length.range', undefined, { min: min, max: max })\r\n }\r\n if (min !== null && max !== null && isLength && isEither) return i18n.tc('validations.number.length.either', undefined, { min: min, max: max })\r\n return i18n.tc('validations.number.unconstrained')\r\n}\r\n\r\nexport function validInputDate(input: InputDate, strict: boolean): boolean | null {\r\n const min = input.minValue\r\n const max = input.maxValue\r\n const { value, required, additional } = input\r\n \r\n // console.log(`validInputDate: value=\"${value}\" min=\"${min}\", max=\"${max}\"`)\r\n\r\n // FAILED\r\n\r\n // Required check, only in strict mode\r\n const checkRequired = strict && required\r\n if (checkRequired && value === null) return false\r\n // Value in range check. Min is strict mode only.\r\n const checkValueInRange = true\r\n if (checkValueInRange && strict && min !== null && value !== null && value < min) return false\r\n if (checkValueInRange && max !== null && value !== null && value > max) return false\r\n // Additional check, only in strict mode\r\n const checkAdditional = strict\r\n if (checkAdditional && value !== null && additional !== null && !additional(value)) return false\r\n\r\n // SUCCESSFUL\r\n\r\n // Value in range check\r\n if (checkValueInRange && strict && min !== null && max !== null && value !== null && value >= min && value <= max) return true\r\n if (checkValueInRange && strict && min !== null && max === null && value !== null && value >= min) return true\r\n if (checkValueInRange && strict && min === null && max !== null && value !== null && value <= max) return true\r\n // Additional check\r\n if (checkAdditional && strict && value !== null && additional !== null && additional(value)) return true\r\n // Unconstrained value\r\n if (strict && min === null && max === null) return true\r\n\r\n // PASS\r\n return null\r\n}\r\n\r\nexport function placeholderInputDate(input: InputDate): string {\r\n return i18n.tc('common.emptydate')\r\n}\r\n\r\nexport function validInputFile(input: InputFile, strict: boolean): boolean | null {\r\n if (strict === true && input.required && input.value === null) return false\r\n if (strict === false && input.value === null) return null\r\n return true\r\n}\r\n\r\nexport function validInputCheckbox(input: InputCheckbox, strict: boolean): boolean | null {\r\n // FAILED\r\n if (strict && input.requiredTrue && input.value !== true) return false\r\n\r\n // SUCCESSFUL\r\n if (strict && input.requiredTrue && input.value !== null) return true\r\n\r\n // PASS\r\n return null\r\n}\r\n\r\nexport function validInputSelect(input: InputSelect, strict: boolean): boolean | null {\r\n // FAILED\r\n\r\n // SUCCESSFUL\r\n if (strict && input.selected !== undefined) return true\r\n\r\n // PASS\r\n return null\r\n}\r\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { TokenModel, UserListTokenModel, Status, FunctionalScope } from '@/models/authenticates'\r\nimport { creditorsAPI, APIRequest, APIError, Page, isAPIError } from '@/store/modules/creditorsAPI'\r\nimport { Alert, bankidCancelled, bankidFailed, apiError } from '@/models/alerts'\r\nimport jwt_decode from 'jwt-decode'\r\nimport * as mock from '@/mockdata/authentications'\r\nimport { InputText, InputNumber } from '@/models/validations'\r\nimport { CreditorDepartment } from './creditorDepartments'\r\n\r\nexport interface UserToken {\r\n creditorUserId: number;\r\n creditorId: number;\r\n creditorName: string;\r\n firstName: string;\r\n lastName: string;\r\n fullName: string;\r\n email: string;\r\n description: string;\r\n status: Status;\r\n token: string;\r\n expiration: string;\r\n functionalScope: FunctionalScope;\r\n}\r\n\r\nexport interface AuthenticationState {\r\n alert: Alert | undefined;\r\n firstName?: string;\r\n lastName?: string;\r\n status: Status;\r\n unauthorizedToken?: string;\r\n userTokens: UserToken[];\r\n\r\n personalNumber: InputText;\r\n}\r\n\r\nfunction resetPersonalNumber(value: string | null = null): InputText {\r\n return InputText.eitherNumberLike({ value: value, minLength: 10, maxLength: 12, digitsOnly: true, required: true })\r\n}\r\n\r\nexport const state: AuthenticationState = {\r\n alert: undefined,\r\n firstName: undefined,\r\n lastName: undefined,\r\n status: 'pending',\r\n unauthorizedToken: undefined,\r\n userTokens: [],\r\n\r\n personalNumber: resetPersonalNumber(),\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getPersonalNumber(state): InputText {\r\n return state.personalNumber\r\n },\r\n getFirstName(state): string | undefined {\r\n return state.firstName\r\n },\r\n getLastName(state): string | undefined {\r\n return state.lastName\r\n },\r\n getIsAuthorized(state): boolean {\r\n return state.userTokens.length > 0\r\n },\r\n getUnauthorizedToken(state): string | undefined {\r\n return state.unauthorizedToken\r\n },\r\n getFullName(state, getters, rootState, rootGetters): string {\r\n const currentId = rootGetters.getCurrentCreditorId\r\n const userToken = state.userTokens.find((creditor) => creditor.creditorId === currentId)\r\n return userToken?.fullName ?? ''\r\n },\r\n getCreditorUserId(state, getters, rootState, rootGetters): number | undefined {\r\n const currentId = rootGetters.getCurrentCreditorId\r\n const userToken = state.userTokens.find((creditor) => creditor.creditorId === currentId)\r\n return userToken?.creditorUserId\r\n },\r\n getCurrentUserToken(state, getters, rootState, rootGetters): UserToken | undefined {\r\n const currentId = rootGetters.getCurrentCreditorId\r\n return state.userTokens.find((creditor) => creditor.creditorId === currentId)\r\n },\r\n getAllUserTokens(state): UserToken[] {\r\n return state.userTokens\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setPersonalNumber(state, personalNumber: InputText) {\r\n state.personalNumber = personalNumber\r\n },\r\n setFirstName(state, firstName?: string) {\r\n state.firstName = firstName\r\n },\r\n setLastName(state, lastName?: string) {\r\n state.lastName = lastName\r\n },\r\n setUnauthorizedToken(state, unauthorizedToken: string | undefined) {\r\n state.unauthorizedToken = unauthorizedToken\r\n },\r\n setProgress(state, progress: { status: Status; alert: Alert | undefined }) {\r\n state.status = progress.status\r\n state.alert = progress.alert\r\n },\r\n setUserTokens(state, userTokens: UserToken[]) {\r\n state.userTokens = userTokens\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n\r\n /**\r\n * Starts an authentication with Bank ID.\r\n *\r\n * @param store The vuex store.\r\n * @param response true if successful othewaise an error.\r\n */\r\n async startAuthentication(store): Promise {\r\n const personalNumber: InputText = store.getters.getPersonalNumber\r\n \r\n // Make 10 digit be 12 instead\r\n const value = personalNumber.toPersonalNumber()\r\n console.log('personalNumber', value)\r\n store.commit('setPersonalNumber', resetPersonalNumber(value))\r\n\r\n const request = {\r\n method: 'post',\r\n path: '/authenticates/mobile-bankid',\r\n data: { personal_number: value },\r\n action: 'authentications/recieveTokenModel',\r\n mock: mock.mockTokenModel(store),\r\n paging: undefined,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n async cancelAuthentication(store): Promise {\r\n const request = {\r\n method: 'delete',\r\n path: '/authenticates/mobile-bankid',\r\n paging: undefined,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n async recieveTokenModel(store, model: TokenModel) {\r\n store.commit('creditorsAPI/setToken', model.token)\r\n },\r\n\r\n /*\r\n *\r\n * @param store The vuex store\r\n */\r\n async waitAuthentication(store): Promise {\r\n const request = {\r\n method: 'get',\r\n path: '/authenticates/mobile-bankid',\r\n action: 'authentications/recieveUserListTokenModel',\r\n mock: mock.mockUserListTokenModelComplete(store),\r\n paging: undefined,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n /*\r\n * Renews an authentication after changes has been made that affects the user model.\r\n *\r\n * @param store The vuex store\r\n */\r\n async renewAuthentication(store): Promise {\r\n console.log('RENEW AUTHENTICATION')\r\n\r\n const request: APIRequest = {\r\n method: 'get',\r\n path: '/authenticates/re-authenticate',\r\n action: 'authentications/recieveUserListTokenModel',\r\n mock: mock.mockUserListTokenModelComplete(store),\r\n }\r\n\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result, '/')\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n async recieveUserListTokenModel(store, model: UserListTokenModel) {\r\n console.log(`STATUS RECEIVED: ${model.status}`)\r\n\r\n const userTokens = model.token_list?.map((it) => {\r\n creditorUserId: it.user.creditor_user_id,\r\n creditorId: it.user.creditor_id,\r\n creditorName: it.user.creditor_name,\r\n firstName: it.user.first_name,\r\n lastName: it.user.last_name,\r\n fullName: it.user.full_name,\r\n email: it.user.email,\r\n description: it.user.description,\r\n status: it.user_token.status,\r\n token: it.user_token.token,\r\n expiration: it.user_token.expiration,\r\n functionalScope: (jwt_decode(it.user_token.token) as any).functional_scope,\r\n })\r\n\r\n let creditorId: number | undefined\r\n if (userTokens !== undefined && userTokens.length) {\r\n creditorId = userTokens[0].creditorId\r\n }\r\n\r\n let result: true | APIError = true\r\n const unauthorizedToken: string | undefined = model.unauthorized_token?.token ?? undefined\r\n\r\n switch (model.status) {\r\n case 'pending':\r\n break\r\n case 'cancelled':\r\n store.commit('setProgress', { status: model.status, alert: bankidCancelled() })\r\n break\r\n case 'failed':\r\n store.commit('setProgress', { status: model.status, alert: bankidFailed() })\r\n break\r\n case 'complete':\r\n store.commit('setProgress', { status: model.status, alert: undefined })\r\n store.commit('setUnauthorizedToken', unauthorizedToken)\r\n store.commit('setUserTokens', userTokens)\r\n result = await store.dispatch('switchCurrentCreditor', creditorId)\r\n if (result !== true) {\r\n apiError(store, result)\r\n }\r\n break\r\n }\r\n },\r\n\r\n /**\r\n * Called when switching UserToken/Creditor to signal that the store should be\r\n * updated for a different workspace. We also preload data that are more of a\r\n * static nature.\r\n *\r\n * @param store The vuex store.\r\n * @param response The creditor identifier of the new selection.\r\n */\r\n async switchCurrentCreditor(store, creditorId: number): Promise {\r\n // Look-up the corresponding user token in the store\r\n const userToken = store.state.userTokens.find((creditor) => creditor.creditorId === creditorId)\r\n let token = userToken?.token\r\n\r\n // If user token is missing, try unauthorized token\r\n if (token === undefined) {\r\n token = store.state.unauthorizedToken\r\n }\r\n\r\n // Update base data such as API token and the current creditor id\r\n store.commit('creditorsAPI/setToken', token)\r\n store.commit('setCurrentCreditorId', creditorId, { root: true })\r\n store.commit('setCurrentFunctionalScope', userToken?.functionalScope, { root: true })\r\n\r\n // Normally we get personalNumber, first and last name from the user token list, but in the case\r\n // of new signups the user token list is empty. In order to pre-fill these values in the signup\r\n // form we extract them from the token directly\r\n if (store.state.unauthorizedToken !== undefined) {\r\n const decoded = jwt_decode(store.state.unauthorizedToken!!) as any\r\n store.commit('setPersonalNumber', resetPersonalNumber(decoded.mb_id))\r\n store.commit('setFirstName', decoded.first_name)\r\n store.commit('setLastName', decoded.last_name)\r\n } else {\r\n // Look-up the corresponding user token in the store\r\n const userToken = store.state.userTokens.find((creditor) => creditor.creditorId === creditorId)\r\n const decoded = jwt_decode(userToken?.token!!) as any\r\n store.commit('setPersonalNumber', resetPersonalNumber(decoded.mb_id))\r\n store.commit('setFirstName', decoded.first_name)\r\n store.commit('setLastName', decoded.last_name)\r\n }\r\n\r\n // Dispatch actions to preload static data, but only if we are really logged in\r\n if (userToken !== undefined) {\r\n const result1: Page | APIError = await store.dispatch('creditorDepartments/refreshCreditorDepartments', 1, { root: true })\r\n if (isAPIError(result1)) {\r\n apiError(store, result1)\r\n return result1\r\n }\r\n }\r\n\r\n return true\r\n },\r\n\r\n /**\r\n * Prepares the store for starting a new login\r\n *\r\n * @param store The vuex store.\r\n */\r\n async startLogin(store) {\r\n store.commit('setPersonalNumber', resetPersonalNumber())\r\n },\r\n\r\n /*\r\n * Refreshes an unauthorized token.\r\n *\r\n * @param store The vuex store\r\n */\r\n async refreshUnauthorizedToken(store): Promise {\r\n console.log('REFRESH TOKEN UNAUTHORIZED')\r\n\r\n const request: APIRequest = {\r\n method: 'get',\r\n path: '/refresh-token/unauthorized',\r\n action: 'authentications/recieveUserListTokenModel',\r\n mock: mock.mockUserListTokenModelComplete(store),\r\n }\r\n\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result, '/')\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n /*\r\n * Refreshes an authorized token.\r\n *\r\n * @param store The vuex store\r\n */\r\n async refreshToken(store): Promise {\r\n console.log('REFRESH TOKEN')\r\n\r\n const request: APIRequest = {\r\n method: 'get',\r\n path: '/refresh-token/authorized',\r\n action: 'authentications/recieveTokenModel',\r\n mock: mock.mockTokenModel(store),\r\n }\r\n\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result, '/')\r\n return result\r\n }\r\n return true\r\n },\r\n}\r\n\r\nexport const authentications: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport { CaseActionsGetModel, CaseActionsPostModel, CaseActionsPostResponseModel } from '@/models/actions'\r\n\r\nexport function mockCaseActionsPostResponseModel(data: CaseActionsPostModel): CaseActionsPostResponseModel {\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCaseActionsGetModel(pagination: Pagination): PageModel {\r\n const items: CaseActionsGetModel[] = [\r\n ]\r\n\r\n // No filtering\r\n let results = items\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n","class NumberParser {\r\n private _group: RegExp\r\n private _decimal: RegExp\r\n private _numeral: RegExp\r\n private _index: (d: string) => string\r\n\r\n constructor(locale: string) {\r\n const parts = new Intl.NumberFormat(locale).formatToParts(12345.6)\r\n const numerals = [...new Intl.NumberFormat(locale, { useGrouping: false }).format(9876543210)].reverse()\r\n const index = new Map(numerals.map((d, i) => [d, i.toString()]))\r\n this._group = new RegExp(`[${parts.find((d) => d.type === 'group')?.value}]`, 'g')\r\n this._decimal = new RegExp(`[${parts.find((d) => d.type === 'decimal')?.value}]`)\r\n this._numeral = new RegExp(`[${numerals.join('')}]`, 'g')\r\n this._index = (d) => index.get(d) ?? ''\r\n }\r\n parse(value: string): number | undefined {\r\n // console.log('PARSE: ', this._group, this._decimal, this._numeral)\r\n const step1 = value.trim()\r\n // console.log('PARSE, step 1: ', step1)\r\n const step2 = step1.replace(this._group, '')\r\n // console.log('PARSE, step 2: ', step2)\r\n const step3 = step2.replace(this._decimal, '.')\r\n // console.log('PARSE, step 3: ', step3)\r\n const step4 = step3.replace(this._numeral, this._index)\r\n // console.log('PARSE, step 4: ', step4)\r\n const step5 = Number(step4)\r\n // console.log('PARSE, step 5: ', step5)\r\n return isNaN(step5) ? undefined : step5\r\n }\r\n}\r\n\r\nconst dateFormatter = new Intl.DateTimeFormat('sv-SE', {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n})\r\n\r\nconst amountFormatter = new Intl.NumberFormat('sv-SE', {\r\n style: 'currency',\r\n currency: 'SEK',\r\n minimumFractionDigits: 2,\r\n})\r\n\r\nconst numberFormatter = new Intl.NumberFormat('sv-SE', {\r\n style: 'decimal',\r\n})\r\n\r\nconst fixedNumberFormatter = new Intl.NumberFormat('sv-SE', {\r\n style: 'decimal',\r\n minimumFractionDigits: 2,\r\n})\r\n\r\nconst numberParser = new NumberParser('sv-SE')\r\n\r\nexport class Formatting {\r\n static formatDate(value: Date | undefined): string {\r\n if (value === undefined) return ''\r\n return dateFormatter.format(value)\r\n }\r\n\r\n static formatAmount(value: number | undefined): string {\r\n if (value === undefined) return ''\r\n return amountFormatter.format(value)\r\n }\r\n\r\n static formatNumber(value: number | undefined): string {\r\n if (value === undefined) return ''\r\n return numberFormatter.format(value)\r\n }\r\n\r\n static formatFixedNumber(value: number | undefined): string {\r\n if (value === undefined) return ''\r\n return fixedNumberFormatter.format(value)\r\n }\r\n\r\n static parseDate(value: string | undefined): Date | undefined {\r\n if (value === undefined) return undefined\r\n const result = Date.parse(value)\r\n return isNaN(result) ? undefined : new Date(result)\r\n }\r\n\r\n static parseNumber(value: string | undefined): number | undefined {\r\n if (value === undefined) return undefined\r\n return numberParser.parse(value)\r\n }\r\n}\r\n","import {\r\n ActionTree, GetterTree, Module, MutationTree,\r\n} from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport {\r\n creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError, missingError,\r\n} from '@/store/modules/creditorsAPI'\r\nimport { CaseActionsGetModel, CaseActionsPostModel, CaseActionsPostResponseModel } from '@/models/actions'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport { Case } from '@/store/modules/cases'\r\nimport * as mock from '@/mockdata/caseActions'\r\nimport { Formatting } from '@/models/formatting'\r\n\r\nexport interface CaseAction {\r\n caseId: number;\r\n action: string;\r\n type: string;\r\n date: Date;\r\n dateFormatted: string;\r\n}\r\n\r\nexport interface CaseActionsState {\r\n alert: Alert | undefined;\r\n caseActions?: Page;\r\n}\r\n\r\nexport const state: CaseActionsState = {\r\n alert: undefined,\r\n caseActions: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getCaseActions(state): Page | undefined {\r\n return state.caseActions\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCaseActions(state, CaseActions: Page) {\r\n state.caseActions = CaseActions\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n /**\r\n * Refresh the case actions entries\r\n *\r\n * @param store The vuex store.\r\n */\r\n async refreshCaseActions(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CASE ACTIONS ${page} START`)\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/case-actions?case_id=${currentCase.caseId}`,\r\n extra: currentCase.caseId,\r\n action: 'caseActions/recieveCaseActionsGetModel',\r\n mock: mock.mockCaseActionsGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCaseActions\r\n },\r\n\r\n /**\r\n * Recieves a CaseActionsGetModel and transforms it into costs an commits them to the store\r\n *\r\n * @param store The vuex store.\r\n * @param model The CaseActionsGetModel model.\r\n */\r\n async recieveCaseActionsGetModel(store, page: PageModel) {\r\n const caseId = page.extra as number\r\n\r\n const CaseActions: Page = Page.transform(page, ((it) => {\r\n caseId,\r\n action: it.action,\r\n type: it.type,\r\n date: new Date(it.date),\r\n dateFormatted: Formatting.formatDate(new Date(it.date)),\r\n }))\r\n\r\n store.commit('setCaseActions', CaseActions)\r\n },\r\n\r\n /**\r\n * Registers a new case action\r\n *\r\n * @param store The vuex store.\r\n */\r\n async createCaseAction(store): Promise {\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n console.log('CREATE CASE ACTION START')\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n const data: CaseActionsPostModel = {\r\n action_code: 'CLOSE_OTHER',\r\n action_date: Formatting.formatDate(new Date()),\r\n }\r\n\r\n const request = {\r\n method: 'post',\r\n path: `/case-actions?case_id=${currentCase.caseId}`,\r\n data,\r\n action: 'caseActions/recieveCaseActionsPostResponseModel',\r\n mock: mock.mockCaseActionsPostResponseModel(data),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n /**\r\n * Recieves a response for registering a new case action\r\n *\r\n * @param store The vuex store.\r\n * @param response The model for case action creation.\r\n */\r\n async recieveCaseActionsPostResponseModel(store, model: CaseActionsPostResponseModel) {\r\n },\r\n}\r\n\r\nexport const caseActions: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import i18n from '@/plugins/i18n'\r\n\r\nexport type CostType = 'ADVICE' | 'REMINDER' | 'COLLECTION'\r\nexport function translateCostType(cost: CostType): string {\r\n switch (cost) {\r\n case 'ADVICE': return i18n.tc('models.costs.ADVICE')\r\n case 'REMINDER': return i18n.tc('models.costs.REMINDER')\r\n case 'COLLECTION': return i18n.tc('models.costs.COLLECTION')\r\n default: return ''\r\n }\r\n}\r\n\r\nexport interface CaseCostsGetModel {\r\n created: string; // Date when cost applied\r\n type: CostType; // Type of cost\r\n remaining_capital: number; // Remaining capital on cost\r\n remaining_interest: number; // Remaining interest on cost\r\n}\r\n\r\nexport interface CaseCostsDetailsModel {\r\n created: Date; // Date when cost applied\r\n type: CostType; // Type of cost\r\n paid_capital: number; // Paid capital on cost\r\n paid_interest: number; // Paid interest on cost\r\n remaining_capital: number; // Remaining capital on cost\r\n remaining_interest: number; // Remaining interest on cost\r\n interest_rate: number; // Percentage calculated interest with\r\n interest_type: string; // Type of interest calculated\r\n interest_from: Date; // Date when interest is calculated from\r\n interest_to: Date; // Date when interest is calculated to\r\n}\r\n\r\nexport interface CaseCostsPostModel {\r\n type: CostType; // What kind of cost\r\n created: string; // Date when cost applied\r\n initial_capital: number; // Initial capital\r\n paid_capital: number; // Paid capital on cost\r\n paid_interest: number; // Paid interest on cost\r\n remaining_capital: number; // Remaining capital on cost\r\n remaining_interest: number; // Remaining interest on cost\r\n interest_rate: number; // Percentage calculated interest with\r\n interest_type: string; // Type of interest calculated\r\n interest_from: string; // Date when interest is calculated from\r\n interest_to: string; // Date when interest is calculated to\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport { CaseCostsGetModel } from '@/models/costs'\r\n\r\nexport function mockCaseCostsGetModel(pagination: Pagination): PageModel {\r\n const items: CaseCostsGetModel[] = [\r\n ]\r\n\r\n // No filtering\r\n let results = items\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n","import {\r\n ActionTree, GetterTree, Module, MutationTree,\r\n} from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport {\r\n creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError, missingError,\r\n} from '@/store/modules/creditorsAPI'\r\nimport { CaseCostsGetModel, CostType, translateCostType } from '@/models/costs'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport { Case } from '@/store/modules/cases'\r\nimport * as mock from '@/mockdata/caseCosts'\r\nimport { Formatting } from '@/models/formatting'\r\n\r\nexport interface CaseCost {\r\n caseId: number;\r\n created: Date;\r\n createdFormatted: string;\r\n cost: string;\r\n costType: CostType;\r\n remainingCapital: number;\r\n remainingCapitalFormatted: string;\r\n remainingInterest: number;\r\n remainingInterestFormatted: string;\r\n}\r\n\r\nexport interface CaseCostsState {\r\n alert: Alert | undefined;\r\n caseCosts?: Page;\r\n}\r\n\r\nexport const state: CaseCostsState = {\r\n alert: undefined,\r\n caseCosts: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getCaseCosts(state): Page | undefined {\r\n return state.caseCosts\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCaseCosts(state, caseCosts: Page) {\r\n state.caseCosts = caseCosts\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n /**\r\n * Refresh the case costs entries\r\n *\r\n * @param store The vuex store.\r\n */\r\n async refreshCaseCosts(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CASE COSTS ${page} START`)\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/case-costs?case_id=${currentCase.caseId}`,\r\n extra: currentCase.caseId,\r\n action: 'caseCosts/recieveCaseCostsGetModel',\r\n mock: mock.mockCaseCostsGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCaseCosts\r\n },\r\n\r\n /**\r\n * Recieves a CaseCostsGetModel and transforms it into costs an commits them to the store\r\n *\r\n * @param store The vuex store.\r\n * @param model The CaseCostsGetModel model.\r\n */\r\n async recieveCaseCostsGetModel(store, page: PageModel) {\r\n const caseId = page.extra as number\r\n\r\n const caseCosts: Page = Page.transform(page, ((it) => {\r\n caseId,\r\n created: new Date(it.created),\r\n createdFormatted: Formatting.formatDate(new Date(it.created)),\r\n cost: translateCostType(it.type),\r\n costType: it.type,\r\n remainingCapital: it.remaining_capital,\r\n remainingCapitalFormatted: Formatting.formatAmount(it.remaining_capital),\r\n remainingInterest: it.remaining_interest,\r\n remainingInterestFormatted: Formatting.formatAmount(it.remaining_interest),\r\n }))\r\n\r\n store.commit('setCaseCosts', caseCosts)\r\n },\r\n}\r\n\r\nexport const caseCosts: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import i18n from '@/plugins/i18n'\r\n\r\nexport type DebtorType = 'PRIVATE_FIRM' | 'PRIVATE_PERSON' | 'PRIVAT_PERSON' | 'COMPANY'\r\nexport function translateDebtorType(debtor: DebtorType): string {\r\n switch (debtor) {\r\n case 'PRIVAT_PERSON': return i18n.tc('models.debtor.PRIVATE_PERSON')\r\n case 'PRIVATE_PERSON': return i18n.tc('models.debtor.PRIVATE_PERSON')\r\n case 'PRIVATE_FIRM': return i18n.tc('models.debtor.PRIVATE_FIRM')\r\n case 'COMPANY': return i18n.tc('models.debtor.COMPANY')\r\n default: return ''\r\n }\r\n}\r\n\r\nexport type RoleType = 'MAIN_DEBTOR' | 'APPLICANT' | 'GUARANTOR'\r\nexport function translateRoleType(role: RoleType): string {\r\n switch (role) {\r\n case 'MAIN_DEBTOR': return i18n.tc('models.role.MAIN_DEBTOR')\r\n case 'APPLICANT': return i18n.tc('models.role.APPLICANT')\r\n case 'GUARANTOR': return i18n.tc('models.role.GUARANTOR')\r\n default: return ''\r\n }\r\n}\r\n\r\nexport type CompanyType = 'SWEDISH_CORPORATION' | 'SWEDISH_COMPANY' | 'OTHER'\r\n\r\nexport interface CaseDebtorsGetModel {\r\n case_debtor_id: number | null; // Case debtor identifier'\r\n type: DebtorType; // Type of debtor,\r\n role: RoleType; // Role of debtor\r\n organisation_id: string | null; // Identification number of a person or organisation number of company\r\n name: string | null; // Name of person or Company\r\n}\r\n\r\nexport interface CaseDebtorsPostModel {\r\n debtor_role: RoleType; // Role of debtor\r\n debtor_type: DebtorType; // Type of debtor\r\n organisation_id_type?: CompanyType; // dentification type for corporation, a company or person\r\n organisation_id?: string; // Identification number of a person or organisation number of company, max_length=16\r\n name: string; // Name of person or Company, max_length=50\r\n address_line_co?: string; // c/o address, max_length=35\r\n address_line_main: string; // Main address, max_length=35\r\n address_line_extra?: string; // Extra address line, for use with example foreign address, max_length=35\r\n postal_code: number; // Postal code, max_length=5\r\n city: string; // City, max_length=50\r\n country_code: string; // Country code according to ISO 3166. Values other than SE will be handled and follow process for foreign debt collection, max_length=2\r\n phone?: string; // Phone number, max_length=20\r\n mobile?: string; // Mobile number, max_length=20,\r\n email?: string; // Email, max_length=199,\r\n language_code?: string; // Language code used for communication with debtor according to ISO 639-2 Code, min_length=3, max_length=3\r\n gln?: string; // Global Location Number used for debtor\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport { CaseDebtorsGetModel } from '@/models/debtors'\r\n\r\nexport function mockCaseDebtorsGetModel(pagination: Pagination): PageModel {\r\n const items: CaseDebtorsGetModel[] = [\r\n ]\r\n\r\n // No filtering\r\n let results = items\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError, missingError } from '@/store/modules/creditorsAPI'\r\nimport { CaseDebtorsGetModel, RoleType, translateRoleType, DebtorType, translateDebtorType } from '@/models/debtors'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport { Case } from '@/store/modules/cases'\r\nimport * as mock from '@/mockdata/caseDebtors'\r\nimport { InputOption, InputSelect } from '@/models/validations'\r\n\r\nexport interface CaseDebtor {\r\n caseId: number;\r\n caseDebtorId: number;\r\n debtor: string;\r\n debtorType: DebtorType;\r\n role: string;\r\n roleType: RoleType;\r\n organisationId: string;\r\n name: string;\r\n}\r\n\r\nexport interface DebtorOption {\r\n id: number;\r\n title: string;\r\n matches: DebtorType[];\r\n}\r\n\r\nconst allDebtorOptions: DebtorOption[] = [\r\n { id: 1, title: 'Privatperson', matches: ['PRIVATE_PERSON', 'PRIVAT_PERSON'] },\r\n { id: 2, title: 'Aktiebolag', matches: ['COMPANY'] },\r\n { id: 3, title: 'Enskild firma', matches: ['PRIVATE_FIRM'] },\r\n]\r\n\r\nexport interface CaseDebtorsState {\r\n alert: Alert | undefined;\r\n caseDebtors?: Page;\r\n debtorOptions: DebtorOption[];\r\n\r\n debtorOption: InputSelect;\r\n}\r\n\r\nexport function debtorTypeFromInput(select: InputSelect): DebtorType | null {\r\n return allDebtorOptions.find((it) => it.id === select.value)?.matches[0] ?? null\r\n}\r\n\r\nexport function resetDebtorOption(debtorType: DebtorType | null = null): InputSelect {\r\n var value: number | null = allDebtorOptions[0].id\r\n if (debtorType !== null) {\r\n value = allDebtorOptions.find((it) => it.matches.includes(debtorType))?.id ?? null\r\n }\r\n const options = allDebtorOptions.map((it) => { value: it.id, text: it.title, data: it })\r\n return InputSelect.standard({ value: value, options: options })\r\n}\r\n\r\nexport const state: CaseDebtorsState = {\r\n alert: undefined,\r\n caseDebtors: undefined,\r\n debtorOptions: allDebtorOptions,\r\n\r\n debtorOption: resetDebtorOption(),\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getCaseDebtors(state): Page | undefined {\r\n return state.caseDebtors\r\n },\r\n getMainCaseDebtor(state, getters): CaseDebtor | undefined {\r\n const caseDebtors: Page | undefined = getters.getCaseDebtors\r\n if (caseDebtors === undefined) return undefined\r\n return caseDebtors.items.find((it) => it.roleType === 'MAIN_DEBTOR')\r\n },\r\n getAllDebtorOptions(state): DebtorOption[] {\r\n return state.debtorOptions\r\n },\r\n getDebtorOption(state): InputSelect {\r\n return state.debtorOption\r\n },\r\n getCurrentDebtorOption(state): DebtorOption {\r\n const debtorOption = allDebtorOptions.find((it) => it.id === state.debtorOption.value)\r\n return debtorOption ?? allDebtorOptions[0]\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCaseDebtors(state, caseDebtors: Page) {\r\n state.caseDebtors = caseDebtors\r\n },\r\n setDebtorOption(state, debtorOption: InputSelect) {\r\n state.debtorOption = debtorOption\r\n },\r\n setCurrentDebtorType(state, debtorType: DebtorType) {\r\n state.debtorOption = resetDebtorOption(debtorType)\r\n },\r\n setCurrentDebtorOptionId(state, debtorOptionId: number) {\r\n const debtorOption = state.debtorOptions.find((it) => it.id === debtorOptionId)\r\n if (debtorOption !== undefined) state.debtorOption = resetDebtorOption(debtorOption.matches[0])\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n async refreshCaseDebtors(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CASE DEBTORS ${page} START`)\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/case-debtors?case_id=${currentCase.caseId}`,\r\n extra: currentCase.caseId,\r\n action: 'caseDebtors/recieveCaseGetModel',\r\n mock: mock.mockCaseDebtorsGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCaseDebtors\r\n },\r\n\r\n async recieveCaseGetModel(store, page: PageModel) {\r\n const caseId = page.extra as number\r\n\r\n const caseDebtors: Page = Page.transform(page, ((it) => {\r\n caseId,\r\n caseDebtorId: it.case_debtor_id,\r\n debtor: translateDebtorType(it.type),\r\n debtorType: it.type,\r\n role: translateRoleType(it.role),\r\n roleType: it.role,\r\n organisationId: it.organisation_id,\r\n name: it.name,\r\n }))\r\n\r\n store.commit('setCaseDebtors', caseDebtors)\r\n console.log('REFRESHING CASE DEBTORS END')\r\n },\r\n}\r\n\r\nexport const caseDebtors: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import i18n from '@/plugins/i18n'\r\nimport { DebtorType } from '@/models/debtors'\r\n\r\nexport type DebtType = 'DEBIT' | 'CREDIT'\r\nexport function translateDebtType(debt: DebtType): string {\r\n switch (debt.toLocaleUpperCase()) {\r\n case 'DEBIT': return i18n.tc('models.debt.DEBIT')\r\n case 'CREDIT': return i18n.tc('models.debt.CREDIT')\r\n default: return ''\r\n }\r\n}\r\n\r\nexport type InterestType = 'FIXED' | 'LATE_PAYMENT_INTEREST' | 'MONTHLY'\r\nexport function translateInterestType(debt: InterestType): string {\r\n switch (debt) {\r\n case 'FIXED': return i18n.tc('models.interest.FIXED')\r\n case 'LATE_PAYMENT_INTEREST': return i18n.tc('models.interest.LATE_PAYMENT_INTEREST')\r\n case 'MONTHLY': return i18n.tc('models.interest.MONTHLY')\r\n default: return ''\r\n }\r\n}\r\n\r\nexport interface CaseDebtsUtilitySimpleModel {\r\n address: string | null; // Address\r\n type: DebtorType | null; // Type of person\r\n moved: boolean | null; // If person have moved\r\n delivery_id: string | null; // Id used for the utility\r\n}\r\n\r\nexport interface CaseDebtsUtilityResidenceModel {\r\n address: string | null; // Address\r\n type: DebtorType | null; // Type of person\r\n date_of_moved: string | null; // Date when moving out\r\n moved: boolean | null; // If person have moved\r\n apartment_number: string | null; // Apartment number\r\n size: string | null; // Apartment size\r\n rooms: string | null; // Number of rooms\r\n}\r\n\r\nexport interface CaseDebtsUtilityPremisesModel {\r\n address: string | null; // Address\r\n type: DebtorType | null; // Type of person\r\n date_of_moved: string | null; // Date when moving out\r\n moved: boolean | null; // If person have moved\r\n facility_number: string | null; // Apartment number\r\n size: string | null; // Apartment size\r\n}\r\n\r\nexport interface CaseDebtsUtilityModel {\r\n electricity: CaseDebtsUtilitySimpleModel;\r\n electricity_net: CaseDebtsUtilitySimpleModel;\r\n gas: CaseDebtsUtilitySimpleModel;\r\n water: CaseDebtsUtilitySimpleModel;\r\n heating: CaseDebtsUtilitySimpleModel;\r\n refuse: CaseDebtsUtilitySimpleModel;\r\n rent_residence: CaseDebtsUtilityResidenceModel;\r\n rent_premises: CaseDebtsUtilityPremisesModel;\r\n broad_band: CaseDebtsUtilitySimpleModel;\r\n}\r\n\r\nexport interface CaseDebtsGetModel {\r\n debt_type: DebtType; // Type of debt - Debit or Credit\r\n invoice_number: string; // Invoice number. Max length: 20\r\n invoice_description: string; // Description of invoice\r\n invoice_date: string; // Date of invoice\r\n invoice_due_date: string | null; // Due date of invoice\r\n remaining_capital: number; // Remaining capital remains on debt\r\n remaining_interest: number; // Remaining interest remains on debt\r\n utility: CaseDebtsUtilityModel;\r\n}\r\n\r\nexport interface CaseDebtsRowPostModel {\r\n line_number: number; // Row number\r\n article_number: string; // Article number, max_length=10\r\n article_description: string; // Article description, max_length=80\r\n unit: string; // Unit for article, max_length=10\r\n unit_price: number; // Unit price for article row\r\n vat_rate: number; // VAT rate for article row\r\n vat_amount: number; // VAT amount for article row\r\n quantity: number; // Quantity for article row\r\n discount: number; // Discount for article row\r\n discount_type: string; // Discount type for article row\r\n chargeable: boolean; // Debit: 1 - whole row. 0 - only article name\r\n}\r\n\r\nexport interface CaseDebtsPostModel {\r\n debt_type: DebtType; // Type of debt\r\n invoice_number: string; // Invoice number, max_length=20\r\n debt_reference_number?: string; // Other information as debt reference, max_length=90\r\n invoice_number_to_credit?: string; // Invoice number to be credited\r\n invoice_description: string; // Description of invoice, max_length=150\r\n invoice_date: string; // Date of invoice\r\n invoice_due_date: string; // Due date of invoice\r\n interest_from: string; // Calculate interest from date\r\n interest_stop?: string; // Stop interest at this date\r\n interest_rate: number; // Percentage calculated interest with\r\n interest_type: InterestType; // Type of interest calculated\r\n initial_capital?: number; // Initial capital\r\n initial_interest?: number; // Initial interest\r\n initial_fee?: number; // Initial fee\r\n paid_capital?: number; // Paid capital on debt\r\n paid_interest?: number; // Paid interest on debt\r\n paid_fee?: number; // Paid fee on debt\r\n remaining_capital: number; // Remaining capital on debt\r\n remaining_interest?: number; // Remaining interest on debt\r\n remaining_fee?: number; // Remaining fee on debt\r\n our_reference?: string; // Sales man reference, max_length=199\r\n your_reference?: string; // Invoice receiver, max_length=199\r\n debt_rows?: CaseDebtsRowPostModel[];\r\n utility?: CaseDebtsUtilityModel;\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport { CaseDebtsGetModel } from '@/models/debts'\r\n\r\nexport function mockCaseDebtsGetModel(pagination: Pagination): PageModel {\r\n const items: CaseDebtsGetModel[] = [\r\n ]\r\n\r\n // No filtering\r\n let results = items\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n","import {\r\n ActionTree, GetterTree, Module, MutationTree,\r\n} from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport {\r\n creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError, missingError,\r\n} from '@/store/modules/creditorsAPI'\r\nimport { CaseDebtsGetModel, DebtType, translateDebtType } from '@/models/debts'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport { Case } from '@/store/modules/cases'\r\nimport * as mock from '@/mockdata/caseDebts'\r\nimport { Formatting } from '@/models/formatting'\r\n\r\nexport interface CaseDebt {\r\n caseId: number;\r\n debt: string;\r\n debtType: DebtType;\r\n invoiceNumber: string;\r\n invoiceDescription: string;\r\n invoiceDate: Date;\r\n invoiceDateFormatted: string;\r\n invoiceDueDate?: Date;\r\n invoiceDueDateFormatted: string;\r\n remainingCapital: number;\r\n remainingCapitalFormatted: string;\r\n remainingInterest: number;\r\n remainingInterestFormatted: string;\r\n}\r\n\r\nexport interface CaseDebtsState {\r\n alert: Alert | undefined;\r\n caseDebts?: Page;\r\n}\r\n\r\nexport const state: CaseDebtsState = {\r\n alert: undefined,\r\n caseDebts: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getCaseDebts(state, getters, rootState, rootGetters): Page | undefined {\r\n return state.caseDebts\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCaseDebts(state, caseDebts: Page) {\r\n state.caseDebts = caseDebts\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n async refreshCaseDebts(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CASE DEBTS ${page} START`)\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/case-debts?case_id=${currentCase.caseId}`,\r\n extra: currentCase.caseId,\r\n action: 'caseDebts/recieveCaseDebtsGetModel',\r\n mock: mock.mockCaseDebtsGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCaseDebts\r\n },\r\n\r\n async recieveCaseDebtsGetModel(store, page: PageModel) {\r\n const caseId = page.extra as number\r\n\r\n const caseDebts: Page = Page.transform(page, ((it) => {\r\n const invoice_date = new Date(it.invoice_date)\r\n const invoice_due_date = it.invoice_due_date != null ? new Date(it.invoice_due_date) : undefined\r\n return {\r\n caseId,\r\n debt: translateDebtType(it.debt_type),\r\n debtType: it.debt_type,\r\n invoiceNumber: it.invoice_number,\r\n invoiceDescription: it.invoice_description,\r\n invoiceDate: invoice_date,\r\n invoiceDateFormatted: Formatting.formatDate(invoice_date),\r\n invoiceDueDate: invoice_due_date,\r\n invoiceDueDateFormatted: Formatting.formatDate(invoice_due_date),\r\n remainingCapital: it.remaining_capital,\r\n remainingCapitalFormatted: Formatting.formatAmount(it.remaining_capital),\r\n remainingInterest: it.remaining_interest,\r\n remainingInterestFormatted: Formatting.formatAmount(it.remaining_interest),\r\n }\r\n }))\r\n\r\n store.commit('setCaseDebts', caseDebts)\r\n console.log('REFRESHING CASE DEBTS END')\r\n },\r\n}\r\n\r\nexport const caseDebts: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import i18n from '@/plugins/i18n'\r\n\r\nexport type DocumentType = 'UNSPECIFIED' | 'INVOICE' | 'REMINDER' | 'COLLECTION' | 'RECEIPT' | 'CONTEST' | 'PRINT'\r\nexport function translateDocumentType(document: DocumentType): string {\r\n switch (document) {\r\n case 'UNSPECIFIED': return i18n.tc('models.document.UNSPECIFIED')\r\n case 'INVOICE': return i18n.tc('models.document.INVOICE')\r\n case 'REMINDER': return i18n.tc('models.document.REMINDER')\r\n case 'COLLECTION': return i18n.tc('models.document.COLLECTION')\r\n case 'RECEIPT': return i18n.tc('models.document.RECEIPT')\r\n case 'CONTEST': return i18n.tc('models.document.CONTEST')\r\n case 'PRINT': return i18n.tc('models.document.PRINT')\r\n default: return ''\r\n }\r\n}\r\n\r\nexport interface CaseDocumentsGetModel {\r\n case_document_id: number; // Document identifier\r\n description: string; // Description of what the document contain\r\n filename: string; // Filename of the document\r\n document_type: DocumentType; // Type of document\r\n create_date: string; // Date when document initial created\r\n}\r\n\r\nexport interface CaseDocumentsDetailsModel {\r\n url_path: string; // Url path for document\r\n filename: string; // Filename of the document\r\n}\r\n\r\nexport interface CaseDocumentsPostResponseModel {\r\n case_document_id: number; // Temporary id to use when register sub entities to Case Documents\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport { CaseDocumentsGetModel, CaseDocumentsDetailsModel } from '@/models/documents'\r\n\r\nexport function mockCaseDocumentsDetailsModel(caseDocumentId: number): CaseDocumentsDetailsModel {\r\n return {\r\n url_path: 'https://docs.google.com/document/d/15Xl_igXVDMOWIwlSGBZ4rUlnybHGREsJQqYcF_BIKwk/edit?usp=sharing',\r\n filename: 'test.txt',\r\n }\r\n}\r\n\r\nexport function mockCaseDocumentsGetModel(pagination: Pagination): PageModel {\r\n const items: CaseDocumentsGetModel[] = [\r\n ]\r\n\r\n // No filtering\r\n let results = items\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { creditorsAPI, APIRequest, Pagination, PageModel, Page, APIUpload, APIError, missingError } from '@/store/modules/creditorsAPI'\r\nimport { CaseDocumentsGetModel, DocumentType, translateDocumentType, CaseDocumentsPostResponseModel, CaseDocumentsDetailsModel } from '@/models/documents'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport { Case } from '@/store/modules/cases'\r\nimport { InputText, InputFile, InputSelect, InputOption } from '@/models/validations'\r\nimport * as mock from '@/mockdata/caseDocuments'\r\nimport { Formatting } from '@/models/formatting'\r\n\r\nexport interface DocumentOption {\r\n id: number;\r\n title: string;\r\n matches: DocumentType[];\r\n}\r\n\r\nconst allDocumentOptions: DocumentOption[] = [\r\n { id: 1, title: translateDocumentType('INVOICE'), matches: ['INVOICE'] },\r\n /* { id: 2, title: translateDocumentType('REMINDER'), matches: ['REMINDER'] },\r\n { id: 3, title: translateDocumentType('COLLECTION'), matches: ['COLLECTION'] },\r\n { id: 4, title: translateDocumentType('RECEIPT'), matches: ['RECEIPT'] },\r\n { id: 5, title: translateDocumentType('CONTEST'), matches: ['CONTEST'] },\r\n { id: 6, title: translateDocumentType('PRINT'), matches: ['PRINT'] }, */\r\n { id: 7, title: translateDocumentType('UNSPECIFIED'), matches: ['UNSPECIFIED'] },\r\n]\r\n\r\nexport interface CaseDocument {\r\n caseId: number;\r\n caseDocumentId: number;\r\n description: string;\r\n filename: string;\r\n type: string;\r\n documentType: DocumentType;\r\n createFormatted: string;\r\n createDate: Date;\r\n}\r\n\r\nexport interface CaseDocumentsState {\r\n alert: Alert | undefined;\r\n caseDocuments?: Page;\r\n documentOptions: DocumentOption[];\r\n\r\n currentFile: InputFile;\r\n currentDocumentOption: InputSelect;\r\n currentDescription: InputText;\r\n\r\n currentDocumentUrl?: string;\r\n}\r\n\r\nfunction resetDocumentOption(value: number | null = allDocumentOptions[0].id): InputSelect {\r\n const options = allDocumentOptions.map((it) => { value: it.id, text: it.title, data: it })\r\n return InputSelect.standard({ value: value, options: options })\r\n}\r\nfunction resetFile(): InputFile {\r\n return InputFile.standard({ value: null, required: true })\r\n}\r\nfunction resetDescription(): InputText {\r\n return InputText.standard({ value: '', minLength: null, maxLength: 50, required: true })\r\n}\r\n\r\nexport const state: CaseDocumentsState = {\r\n alert: undefined,\r\n caseDocuments: undefined,\r\n documentOptions: allDocumentOptions,\r\n\r\n currentFile: resetFile(),\r\n currentDocumentOption: resetDocumentOption(),\r\n currentDescription: resetDescription(),\r\n\r\n currentDocumentUrl: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getCaseDocuments(state): Page | undefined {\r\n return state.caseDocuments\r\n },\r\n getAllDocumentOptions(state): DocumentOption[] {\r\n return state.documentOptions\r\n },\r\n getCurrentFile(state): InputFile {\r\n return state.currentFile\r\n },\r\n getCurrentDocumentOption(state): InputSelect {\r\n return state.currentDocumentOption\r\n },\r\n getCurrentDescription(state): InputText {\r\n return state.currentDescription\r\n },\r\n getCurrentDocumentUrl(state): string | undefined {\r\n return state.currentDocumentUrl\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCaseDocuments(state, caseDocuments: Page) {\r\n state.caseDocuments = caseDocuments\r\n },\r\n setCurrentFile(state, currentFile: InputFile) {\r\n state.currentFile = currentFile\r\n },\r\n setCurrentDocumentOption(state, documentOption: InputSelect) {\r\n state.currentDocumentOption = documentOption\r\n },\r\n setCurrentDocumentOptionId(state, documentOptionId: number) {\r\n const documentOption = state.documentOptions.find((it) => it.id === documentOptionId)\r\n if (documentOption !== undefined) state.currentDocumentOption = resetDocumentOption(documentOption.id)\r\n },\r\n setCurrentDocumentType(state, documentType: DocumentType) {\r\n const documentOption = state.documentOptions.find((it) => it.matches.includes(documentType))\r\n if (documentOption !== undefined) state.currentDocumentOption = resetDocumentOption(documentOption.id)\r\n },\r\n setCurrentDescription(state, currentDescription: InputText) {\r\n state.currentDescription = currentDescription\r\n },\r\n setCurrentDocumentUrl(state, currentDocumentUrl: string | undefined) {\r\n state.currentDocumentUrl = currentDocumentUrl\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n /**\r\n * Refreshes the store with the latest case documents\r\n *\r\n * @param store The vuex store.\r\n * @param store The page number to refresh.\r\n */\r\n async refreshCaseDocuments(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CASE DOCUMENTS ${page} START`)\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/case-documents?case_id=${currentCase.caseId}`,\r\n extra: currentCase.caseId,\r\n action: 'caseDocuments/recieveCaseDocumentsGetModel',\r\n mock: mock.mockCaseDocumentsGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCaseDocuments\r\n },\r\n\r\n /**\r\n * Recieves a list of case document models and imports them into the store\r\n *\r\n * @param store The vuex store.\r\n * @param store The models to import.\r\n */\r\n async recieveCaseDocumentsGetModel(store, page: PageModel) {\r\n const caseId = page.extra as number\r\n\r\n // Transform each case to a case overview\r\n const caseDocuments: Page = Page.transform(page, ((it) => {\r\n caseId,\r\n caseDocumentId: it.case_document_id,\r\n description: it.description,\r\n filename: it.filename,\r\n type: translateDocumentType(it.document_type),\r\n documentType: it.document_type,\r\n createFormatted: Formatting.formatDate(new Date(it.create_date)),\r\n createDate: new Date(it.create_date),\r\n }))\r\n\r\n store.commit('setCaseDocuments', caseDocuments)\r\n },\r\n\r\n /**\r\n * Uploads a case document\r\n *\r\n * @param store The vuex store.\r\n * @param registerId If set, uploads to a register id instead of a case.\r\n */\r\n async uploadCaseDocument(store, registerId: number | null = null): Promise {\r\n console.log('UPLOADING CASE DOCUMENT START')\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n const file: InputFile = store.getters.getCurrentFile\r\n const documentOption: InputSelect = store.getters.getCurrentDocumentOption\r\n const type = allDocumentOptions.find((it) => it.id === documentOption.value)\r\n const description = store.getters.getCurrentDescription.toString()\r\n\r\n if (type === undefined) return missingError('documentOption missing')\r\n\r\n let path = ''\r\n if (registerId !== null) {\r\n path = `/case-documents?register_id=${registerId}&document_type=${type.matches[0]}&description=${description}`\r\n } else {\r\n if (currentCase === undefined) return missingError('currentCase')\r\n path = `/case-documents?case_id=${currentCase.caseId}&document_type=${type.matches[0]}&description=${description}`\r\n }\r\n\r\n const request = {\r\n method: 'post',\r\n path,\r\n file: file.value,\r\n action: 'caseDocuments/recieveCaseDocumentsPostResponseModel',\r\n mock: [],\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/upload', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n await store.dispatch('startUploadCaseDocument')\r\n return result\r\n },\r\n\r\n /**\r\n * Recieves a list of case document models and imports them into the store\r\n *\r\n * @param store The vuex store.\r\n * @param store The models to import.\r\n */\r\n async recieveCaseDocumentsPostResponseModel(store, model: CaseDocumentsPostResponseModel) {\r\n console.log('UPLOADING CASE DOCUMENT RECIEVED:', model)\r\n },\r\n\r\n /**\r\n * Uploads a case document\r\n *\r\n * @param store The vuex store.\r\n * @param registerId If set, uploads to a register id instead of a case.\r\n */\r\n async queryCaseDocumentUrl(store, caseDocumentId: number): Promise {\r\n console.log('QUERYING CASE DOCUMENT URL START')\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/case-documents/${caseDocumentId}`,\r\n extra: caseDocumentId,\r\n action: 'caseDocuments/recieveCaseDocumentsDetailsModel',\r\n mock: mock.mockCaseDocumentsDetailsModel(caseDocumentId),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCurrentDocumentUrl\r\n },\r\n\r\n /**\r\n * Recieve a detailed model to extract\r\n *\r\n * @param store The vuex store.\r\n * @param store The model to import.\r\n */\r\n async recieveCaseDocumentsDetailsModel(store, model: CaseDocumentsDetailsModel) {\r\n store.commit('setCurrentDocumentUrl', model.url_path)\r\n },\r\n\r\n /**\r\n * Prepare the store for a new upload\r\n *\r\n * @param store The vuex store.\r\n */\r\n async startUploadCaseDocument(store) {\r\n store.commit('setCurrentFile', resetFile())\r\n store.commit('setCurrentDocumentOption', resetDocumentOption())\r\n store.commit('setCurrentDescription', resetDescription())\r\n },\r\n}\r\n\r\nexport const caseDocuments: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport { CaseHistoryLogsGetModel } from '@/models/history'\r\n\r\nexport function mockCaseHistoryLogsGetModel(pagination: Pagination): PageModel {\r\n const items: CaseHistoryLogsGetModel[] = [\r\n ]\r\n\r\n // No filtering\r\n let results = items\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n","import {\r\n ActionTree, GetterTree, Module, MutationTree,\r\n} from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport {\r\n creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError, missingError,\r\n} from '@/store/modules/creditorsAPI'\r\nimport { CaseHistoryLogsGetModel } from '@/models/history'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport { Case } from '@/store/modules/cases'\r\nimport * as mock from '@/mockdata/caseHistoryLogs'\r\n\r\nexport interface CaseHistoryLog {\r\n caseId: number;\r\n caseHistoryLogId: number;\r\n date: string;\r\n headline: string;\r\n}\r\n\r\nexport interface CaseHistoryLogsState {\r\n alert: Alert | undefined;\r\n caseHistoryLogs?: Page;\r\n}\r\n\r\nexport const state: CaseHistoryLogsState = {\r\n alert: undefined,\r\n caseHistoryLogs: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getHistoryLogs(state, getters, rootState, rootGetters): Page | undefined {\r\n return state.caseHistoryLogs\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCaseHistoryLogs(state, caseHistoryLogs: Page) {\r\n state.caseHistoryLogs = caseHistoryLogs\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n async refreshCaseHistoryLogs(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CASE HISTORY LOGS ${page} START`)\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/case-history-logs?case_id=${currentCase.caseId}`,\r\n extra: currentCase.caseId,\r\n action: 'caseHistoryLogs/recieveCaseHistoryLogsGetModel',\r\n mock: mock.mockCaseHistoryLogsGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getHistoryLogs\r\n },\r\n\r\n async recieveCaseHistoryLogsGetModel(store, page: PageModel) {\r\n const caseId = page.extra as number\r\n\r\n // Transform each case to a case overview\r\n const caseHistoryLogs: Page = Page.transform(page, ((it) => {\r\n caseId,\r\n caseHistoryLogId: it.case_history_log_id,\r\n date: it.date,\r\n headline: it.headline,\r\n }))\r\n\r\n store.commit('setCaseHistoryLogs', caseHistoryLogs)\r\n console.log('REFRESHING CASE HISTORY LOGS END')\r\n },\r\n}\r\n\r\nexport const caseHistoryLogs: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import i18n from '@/plugins/i18n'\r\n\r\nexport type SentToType = 'TO_VISMA' | 'TO_CREDITOR'\r\nexport function translateSentToType(sentTo: SentToType): string {\r\n switch (sentTo) {\r\n case 'TO_VISMA': return i18n.tc('models.sent.TO_VISMA')\r\n case 'TO_CREDITOR': return i18n.tc('models.sent.TO_CREDITOR')\r\n default: return ''\r\n }\r\n}\r\n\r\nexport interface CaseMessagesGetModel {\r\n case_message_id: number; // Message identifier\r\n create_date: string; // Date when message initial created\r\n subject: string; // File name of the message, max_length=400\r\n body: string; // Description of what the message contain\r\n sent_to: SentToType; // Who the message sent to\r\n is_read: boolean; // Is the message read\r\n label: string; // Filter key free formatted. max_length=100\r\n client_id: number; // Client identifier\r\n user_id: number; // User identifier\r\n group_message_id: number; // Group message identifier\r\n _etag: string; // Current value of _etag\r\n}\r\n\r\nexport interface CaseMessagesPostModel {\r\n subject: string; // File name of the message\r\n body: string; // Description of what the message contain\r\n label: string; // Is the message read\r\n creditor_id: string; // Creditor identifier. Must be provided and valid for case_id\r\n user_id: number; // User identifier.\r\n group_message_id: number; // Group Message identifier.\r\n}\r\n\r\nexport interface CaseMessagesPostResponseModel {\r\n case_message_id: number; // Message identifier\r\n _etag: string; // Key to validate that nothing has changed\r\n}\r\n\r\nexport interface CaseMessagesPatchModel {\r\n is_read?: boolean; // Is the message read\r\n label?: string; //\r\n user_id?: number; // Message identifier\r\n group_message_id?: number; // Message identifier\r\n}\r\n\r\nexport interface CaseMessagesPatchResponseModel {\r\n _etag: string; // New _etag value after update\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport {\r\n CaseMessagesGetModel, CaseMessagesPostModel, CaseMessagesPostResponseModel, CaseMessagesPatchModel, CaseMessagesPatchResponseModel, SentToType,\r\n} from '@/models/messages'\r\n\r\nfunction randomIntFromInterval(min: number, max: number) { // min and max included\r\n return Math.floor(Math.random() * (max - min + 1) + min)\r\n}\r\n\r\nexport function mockCaseMessagesPostModel(data: CaseMessagesPostModel): CaseMessagesPostResponseModel {\r\n const caseMessage = {\r\n }\r\n mockCaseMessages.push(caseMessage)\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCaseMessagesPatchModel(caseMessageId: number, data: CaseMessagesPatchModel): CaseMessagesPatchResponseModel {\r\n const message = mockCaseMessages.find((it) => it.case_message_id === caseMessageId)\r\n if (message !== undefined) {\r\n message.is_read = data.is_read ?? message.is_read\r\n }\r\n return {\r\n _etag: 'xyz',\r\n }\r\n}\r\n\r\nexport function mockCaseMessagesGetModel(pagination: Pagination, { caseId, sentTo }: { caseId: number; sentTo?: SentToType }): PageModel {\r\n // Filter on sent_to\r\n let results = sentTo !== undefined ? mockCaseMessages.filter((it) => it.sent_to === sentTo) : mockCaseMessages\r\n results.sort((lhs, rhs) => (lhs.create_date < rhs.create_date ? 1 : -1))\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: { caseId, sentTo },\r\n _items: results,\r\n }\r\n}\r\n\r\nconst mockCaseMessages: CaseMessagesGetModel[] = [\r\n {\r\n case_message_id: 166,\r\n create_date: '2020-03-27',\r\n subject: 'Övrigt',\r\n body: 'Innehållet',\r\n sent_to: 'TO_VISMA',\r\n is_read: false,\r\n label: '',\r\n client_id: 100000,\r\n user_id: 28405,\r\n group_message_id: 0,\r\n _etag: 'xyz',\r\n },\r\n {\r\n case_message_id: 167,\r\n create_date: '2020-03-22',\r\n subject: 'Övrigt',\r\n body: 'Starta om datorn',\r\n sent_to: 'TO_CREDITOR',\r\n is_read: true,\r\n label: '',\r\n client_id: 100000,\r\n user_id: 28405,\r\n group_message_id: 0,\r\n _etag: 'xyz',\r\n },\r\n {\r\n case_message_id: 168,\r\n create_date: '2020-04-07',\r\n subject: 'Övrigt',\r\n body: 'Skall test makuleras?',\r\n sent_to: 'TO_VISMA',\r\n is_read: false,\r\n label: '',\r\n client_id: 100000,\r\n user_id: 28405,\r\n group_message_id: 0,\r\n _etag: 'xyz',\r\n },\r\n {\r\n case_message_id: 168,\r\n create_date: '2020-04-07',\r\n subject: 'Övrigt',\r\n body: 'Det går bra att makulera! Hör av dig om det skulle vara några problem',\r\n sent_to: 'TO_CREDITOR',\r\n is_read: false,\r\n label: '',\r\n client_id: 100000,\r\n user_id: 28405,\r\n group_message_id: 0,\r\n _etag: 'xyz',\r\n },\r\n]\r\n","import {\r\n ActionTree, GetterTree, Module, MutationTree,\r\n} from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport {\r\n creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError, missingError,\r\n} from '@/store/modules/creditorsAPI'\r\nimport {\r\n CaseMessagesGetModel, CaseMessagesPostModel, CaseMessagesPatchModel, SentToType, translateSentToType, CaseMessagesPostResponseModel,\r\n} from '@/models/messages'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport { Case } from '@/store/modules/cases'\r\nimport * as mock from '@/mockdata/caseMessages'\r\nimport { InputText } from '@/models/validations'\r\n\r\nexport interface CaseMessage {\r\n caseId: number;\r\n caseMessageId: number;\r\n createDate: string;\r\n subject: string;\r\n body: string;\r\n sentTo: string;\r\n sentToType: SentToType;\r\n isRead: boolean;\r\n clientId: number;\r\n userId: number;\r\n groupMessageId: number;\r\n _etag: string;\r\n}\r\n\r\nexport interface CaseMessageState {\r\n alert: Alert | undefined;\r\n inbox?: Page;\r\n sent?: Page;\r\n caseMessages?: Page;\r\n\r\n message: InputText;\r\n}\r\n\r\nfunction resetMessage(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: 10, maxLength: 400, required: true })\r\n}\r\n\r\nexport const state: CaseMessageState = {\r\n alert: undefined,\r\n inbox: undefined,\r\n sent: undefined,\r\n caseMessages: undefined,\r\n message: resetMessage(),\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getInbox(state): Page | undefined {\r\n return state.inbox\r\n },\r\n getSent(state): Page | undefined {\r\n return state.sent\r\n },\r\n getCaseMessages(state): Page | undefined {\r\n return state.caseMessages\r\n },\r\n getMessage(state): InputText {\r\n return state.message\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setInbox(state, inbox: Page) {\r\n state.inbox = inbox\r\n },\r\n setSent(state, sent: Page) {\r\n state.sent = sent\r\n },\r\n setCaseMessages(state, caseMessages: Page) {\r\n state.caseMessages = caseMessages\r\n },\r\n setMessage(state, message: InputText) {\r\n state.message = message\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n async refreshInbox(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING INBOX ${page} START`)\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n // TODO: We hard code a specific case id, but really we should be able to list everything for a specific client\r\n\r\n const extra = <{ caseId: number; sentTo?: SentToType }> { caseId: 20746578, sentTo: 'TO_CREDITOR' }\r\n const request = {\r\n method: 'get',\r\n path: `/case-messages?case_id=${extra.caseId}`,\r\n extra,\r\n action: 'caseMessages/recieveCaseMessagesGetModel',\r\n mock: mock.mockCaseMessagesGetModel(pagination, extra),\r\n paging: pagination,\r\n }\r\n\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getInbox\r\n },\r\n\r\n async refreshSent(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING SENT ${page} START`)\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n // TODO: We hard code a specific case id, but really we should be able to list everything for a specific client\r\n\r\n const extra = <{ caseId: number; sentTo?: SentToType }> { caseId: 20746578, sentTo: 'TO_VISMA' }\r\n const request = {\r\n method: 'get',\r\n path: `/case-messages?case_id=${extra.caseId}`,\r\n extra,\r\n action: 'caseMessages/recieveCaseMessagesGetModel',\r\n mock: mock.mockCaseMessagesGetModel(pagination, extra),\r\n paging: pagination,\r\n }\r\n\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getSent\r\n },\r\n\r\n async refreshCaseMessages(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING SENT ${page} START`)\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const extra = <{ caseId: number; sentTo?: SentToType }> { caseId: currentCase.caseId, sentTo: undefined }\r\n const request = {\r\n method: 'get',\r\n path: `/case-messages?case_id=${extra.caseId}`,\r\n extra,\r\n action: 'caseMessages/recieveCaseMessagesGetModel',\r\n mock: mock.mockCaseMessagesGetModel(pagination, extra),\r\n paging: pagination,\r\n }\r\n\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCaseMessages\r\n },\r\n\r\n async recieveCaseMessagesGetModel(store, page: PageModel) {\r\n const { caseId, sentTo } = page.extra as { caseId: number; sentTo?: SentToType }\r\n\r\n // Transform each case message model to a case message\r\n const caseMessages: Page = Page.transform(page, ((it) => {\r\n caseId,\r\n caseMessageId: it.case_message_id,\r\n createDate: it.create_date,\r\n subject: it.subject,\r\n body: it.body,\r\n sentTo: translateSentToType(it.sent_to),\r\n sentToType: it.sent_to,\r\n isRead: it.is_read,\r\n clientId: it.client_id,\r\n userId: it.user_id,\r\n groupMessageId: it.group_message_id,\r\n _etag: it._etag,\r\n }))\r\n\r\n // const unreadCount = caseMessages?.filter(it => active.includes(it.matches)).reduce(((acc, it) => acc + it.count), 0)\r\n\r\n // store.commit('setActiveCount', activeCount ?? 0)\r\n switch (sentTo) {\r\n case 'TO_CREDITOR':\r\n store.commit('setInbox', caseMessages)\r\n break\r\n case 'TO_VISMA':\r\n store.commit('setSent', caseMessages)\r\n break\r\n default:\r\n store.commit('setCaseMessages', caseMessages)\r\n }\r\n\r\n console.log('REFRESHING CASE MESSAGES END')\r\n },\r\n\r\n /**\r\n * Marks a message as read\r\n *\r\n * @param store The vuex store.\r\n * @param caseMessageId The id of the case message to be updated.\r\n */\r\n async markMessageAsRead(store, { caseMessageId, _etag }: { caseMessageId: number, _etag: string}): Promise {\r\n console.log('MESSAGE READ')\r\n\r\n // Create a PATCH body\r\n const data = {\r\n is_read: true,\r\n }\r\n\r\n // Invoke API\r\n const request = {\r\n method: 'patch',\r\n path: `/case-messages/${caseMessageId}`,\r\n data: data,\r\n _etag: _etag,\r\n mock: mock.mockCaseMessagesPatchModel(caseMessageId, data),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n\r\n // Decrement unread case message count for specified case\r\n return store.dispatch('cases/decrementUnreadCaseMessages', null, { root: true })\r\n },\r\n\r\n /**\r\n * Sends a message. Note that from the users perspective a message sent is automatically\r\n * marked as read.\r\n *\r\n * @param store The vuex store.\r\n * @param caseMessageId The id of the case message to be updated.\r\n */\r\n async sendCaseMessage(store): Promise {\r\n console.log('MESSAGE SEND')\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n const currentCreditorId = store.rootGetters.getCurrentCreditorId\r\n const message: InputText = store.getters.getMessage\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n // Create a POST body\r\n const data = {\r\n subject: 'Övrigt',\r\n body: message.toString(),\r\n label: '',\r\n creditor_id: currentCreditorId,\r\n user_id: 0,\r\n group_message_id: 0,\r\n }\r\n\r\n // Invoke API\r\n const request = {\r\n method: 'post',\r\n path: `/case-messages?case_id=${currentCase.caseId}`,\r\n data,\r\n action: 'caseMessages/recieveCaseMessagesPostModel',\r\n mock: mock.mockCaseMessagesPostModel(data),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n\r\n await store.dispatch('startCreatingMessage', request)\r\n\r\n return result\r\n },\r\n\r\n async recieveCaseMessagesPostModel(store, model: CaseMessagesPostResponseModel) {\r\n },\r\n\r\n /**\r\n * Prepares the store for starting a new case message\r\n *\r\n * @param store The vuex store.\r\n */\r\n async startCreatingMessage(store) {\r\n store.commit('setMessage', resetMessage())\r\n },\r\n}\r\n\r\nexport const caseMessages: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import i18n from '@/plugins/i18n'\r\n\r\nexport type PaymentType = 'CREDIT' | 'SWISH' | 'TRUSTLY' | 'BANKGIRO-OCR' | 'CREDITOR' | 'POSTGIRO-OCR' | 'AUTHORITY'\r\nexport function translatePaymentType(payment: PaymentType | undefined): string {\r\n switch (payment) {\r\n case 'CREDIT': return i18n.tc('models.paymentType.CREDIT')\r\n case 'SWISH': return i18n.tc('models.paymentType.SWISH')\r\n case 'TRUSTLY': return i18n.tc('models.paymentType.TRUSTLY')\r\n case 'BANKGIRO-OCR': return i18n.tc('models.paymentType.BANKGIRO-OCR')\r\n case 'CREDITOR': return i18n.tc('models.paymentType.CREDITOR')\r\n case 'POSTGIRO-OCR': return i18n.tc('models.paymentType.POSTGIRO-OCR')\r\n case 'AUTHORITY': return i18n.tc('models.paymentType.AUTHORITY')\r\n case undefined: return i18n.tc('models.paymentType.OTHER')\r\n default: return ''\r\n }\r\n}\r\n\r\nexport type ReceiverType = 'TO_VISMA' | 'TO_CREDITOR'\r\nexport function translateReceiverType(receiver: ReceiverType | undefined): string {\r\n switch (receiver) {\r\n case 'TO_VISMA': return i18n.tc('models.paymentReceiver.TO_VISMA')\r\n case 'TO_CREDITOR': return i18n.tc('models.paymentReceiver.TO_CREDITOR')\r\n case undefined: return i18n.tc('models.paymentReceiver.OTHER')\r\n default: return ''\r\n }\r\n}\r\n\r\nexport interface CasePaymentsGetModel {\r\n payment_type: PaymentType; // Type of payment\r\n payment_receiver: ReceiverType; // Payment from debtor received\r\n accounting_date: string; // Date of payment\r\n reference_number: string; // Payment against ocr or invoice number\r\n amount: number; // Payment amount\r\n currency: string; // Payment currency\r\n}\r\n\r\nexport interface CasePaymentsPostModel {\r\n invoice_number: string; // Payment against invoice number, max_length=20\r\n accounting_date: string; // Date of payment\r\n amount: number; // Payment amount\r\n currency: string; // Payment currency according to ISO 4217:2001, min_length=3, max_length=3\r\n payment_message: string | null; // Message with payment\r\n}\r\n\r\nexport interface CasePaymentsPostResponseModel {\r\n case_payments_id: number; // Temporary id to use when register sub entities to Case Payments\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport { CasePaymentsGetModel, CasePaymentsPostModel, CasePaymentsPostResponseModel } from '@/models/payments'\r\n\r\nexport function mockCasePaymentsPostResponseModel(data: CasePaymentsPostModel): CasePaymentsPostResponseModel {\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCasePaymentsGetModel(pagination: Pagination): PageModel {\r\n const items: CasePaymentsGetModel[] = [\r\n {\r\n },\r\n ]\r\n\r\n // No filtering\r\n let results = items\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n","import {\r\n ActionTree, GetterTree, Module, MutationTree,\r\n} from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport {\r\n creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError, missingError,\r\n} from '@/store/modules/creditorsAPI'\r\nimport { CasePaymentsGetModel, CasePaymentsPostModel, CasePaymentsPostResponseModel, PaymentType, ReceiverType, translatePaymentType, translateReceiverType } from '@/models/payments'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport { Case } from '@/store/modules/cases'\r\nimport { InputText, InputDate, InputNumber } from '@/models/validations'\r\nimport * as mock from '@/mockdata/casePayments'\r\nimport { Formatting } from '@/models/formatting'\r\n\r\nexport interface CasePayment {\r\n caseId: number;\r\n payment: string;\r\n paymentType: PaymentType;\r\n receiver: string;\r\n receiverType: ReceiverType;\r\n accountingDate: Date;\r\n accountingDateFormatted: string;\r\n referenceNumber: string;\r\n amount: number;\r\n amountFormatted: string;\r\n currency: string;\r\n}\r\n\r\nexport interface CasePaymentsState {\r\n alert: Alert | undefined;\r\n casePayments?: Page;\r\n\r\n invoiceNumber: InputText;\r\n accountingDate: InputDate;\r\n amount: InputNumber;\r\n paymentMessage: InputText;\r\n}\r\n\r\nfunction resetInvoiceNumber(value: string | null): InputText {\r\n return InputText.standard({ value, minLength: 1, maxLength: 20, required: true })\r\n}\r\nfunction resetAccountingDate(): InputDate {\r\n return InputDate.standard({ value: null, minValue: null, maxValue: null, required: true })\r\n}\r\nfunction resetAmount(): InputNumber {\r\n return InputNumber.unconstrainedAmount({ value: null, required: true })\r\n}\r\nfunction resetPaymentMessage(): InputText {\r\n return InputText.standard({ value: null, minLength: null, maxLength: 80, required: true })\r\n}\r\n\r\nexport const state: CasePaymentsState = {\r\n alert: undefined,\r\n casePayments: undefined,\r\n\r\n invoiceNumber: resetInvoiceNumber(null),\r\n accountingDate: resetAccountingDate(),\r\n amount: resetAmount(),\r\n paymentMessage: resetPaymentMessage(),\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getCasePayments(state): Page | undefined {\r\n return state.casePayments\r\n },\r\n getInvoiceNumber(state): InputText {\r\n return state.invoiceNumber\r\n },\r\n getAccountingDate(state): InputDate {\r\n return state.accountingDate\r\n },\r\n getAmount(state): InputNumber {\r\n return state.amount\r\n },\r\n getPaymentMessage(state): InputText {\r\n return state.paymentMessage\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCasePayments(state, casePayments: Page) {\r\n state.casePayments = casePayments\r\n },\r\n setInvoiceNumber(state, invoiceNumber: InputText) {\r\n state.invoiceNumber = invoiceNumber\r\n },\r\n setAccountingDate(state, accountingDate: InputDate) {\r\n state.accountingDate = accountingDate\r\n },\r\n setAmount(state, amount: InputNumber) {\r\n state.amount = amount\r\n },\r\n setPaymentMessage(state, paymentMessage: InputText) {\r\n state.paymentMessage = paymentMessage\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n /**\r\n * Refresh the case payments entries\r\n *\r\n * @param store The vuex store.\r\n */\r\n async refreshCasePayments(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CASE PAYMENTS ${page} START`)\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/case-payments?case_id=${currentCase.caseId}`,\r\n extra: currentCase.caseId,\r\n action: 'casePayments/recieveCasePaymentsGetModel',\r\n mock: mock.mockCasePaymentsGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCasePayments\r\n },\r\n\r\n /**\r\n * Recieves a CasePaymentsGetModel and transforms it into payments and commits them to the store\r\n *\r\n * @param store The vuex store.\r\n * @param model The CasePaymentsGetModel model.\r\n */\r\n async recieveCasePaymentsGetModel(store, page: PageModel) {\r\n const caseId = page.extra as number\r\n\r\n const casePayments: Page = Page.transform(page, ((it) => {\r\n caseId,\r\n payment: translatePaymentType(it.payment_type),\r\n paymentType: it.payment_type,\r\n receiver: translateReceiverType(it.payment_receiver),\r\n receiverType: it.payment_receiver,\r\n accountingDate: new Date(it.accounting_date),\r\n accountingDateFormatted: Formatting.formatDate(new Date(it.accounting_date)),\r\n referenceNumber: it.reference_number,\r\n amount: it.amount,\r\n amountFormatted: Formatting.formatAmount(it.amount),\r\n currency: it.currency,\r\n }))\r\n\r\n store.commit('setCasePayments', casePayments)\r\n },\r\n\r\n /**\r\n * Registers a new case payment\r\n *\r\n * @param store The vuex store.\r\n */\r\n async createCasePayment(store): Promise {\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n console.log('CREATE CASE PAYMENT START')\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n const data: CasePaymentsPostModel = {\r\n invoice_number: state.invoiceNumber.toString(),\r\n accounting_date: Formatting.formatDate(state.accountingDate.toDate()),\r\n amount: state.amount.toNumber(),\r\n currency: 'SEK',\r\n payment_message: state.paymentMessage.toString(),\r\n }\r\n\r\n const request = {\r\n method: 'post',\r\n path: `/case-payments?case_id=${currentCase.caseId}`,\r\n data,\r\n action: 'casePayments/recieveCasePaymentsPostResponseModel',\r\n mock: mock.mockCasePaymentsPostResponseModel(data),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n /**\r\n * Recieves a response for registering a new case payment\r\n *\r\n * @param store The vuex store.\r\n * @param response The model for case payment creation.\r\n */\r\n async recieveCasePaymentsPostResponseModel(store, model: CasePaymentsPostResponseModel) {\r\n },\r\n\r\n /**\r\n * Prepares the store for starting a new case payment registration\r\n *\r\n * @param store The vuex store.\r\n */\r\n async startCreatingCasePayment(store) {\r\n // Look-up dependent data\r\n const currentCase: Case | undefined = store.rootGetters['cases/getCurrentCase']\r\n const invoiceNumbers = currentCase?.invoiceNumbers\r\n\r\n if (invoiceNumbers !== undefined) store.commit('setInvoiceNumber', resetInvoiceNumber(invoiceNumbers[0]))\r\n else store.commit('setInvoiceNumber', resetInvoiceNumber(null))\r\n\r\n store.commit('setAccountingDate', resetAccountingDate())\r\n store.commit('setAmount', resetAmount())\r\n store.commit('setPaymentMessage', resetPaymentMessage())\r\n },\r\n}\r\n\r\nexport const casePayments: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import i18n from '@/plugins/i18n'\r\nimport { CaseDebtorsPostModel } from '@/models/debtors'\r\nimport { CaseDebtsPostModel } from '@/models/debts'\r\nimport { CaseCostsPostModel } from '@/models/costs'\r\nimport { CaseHistoryLogsPostModel } from '@/models/history'\r\nimport { CaseExtraFieldsPostModel } from '@/models/extras'\r\n\r\nexport type StatusType = 'INVOICE' | 'REMINDER' | 'COLLECTION' | 'SURVEILLANCE' | 'VERDICT_WARNING' | 'VERDICT' | 'ENFORCEMENT' | 'AMORTISATION' | 'CLOSED' | 'OTHER'\r\nexport function translateStatusType(status: StatusType | undefined): string {\r\n switch (status) {\r\n case 'INVOICE': return i18n.tc('models.status.INVOICE')\r\n case 'REMINDER': return i18n.tc('models.status.REMINDER')\r\n case 'COLLECTION': return i18n.tc('models.status.COLLECTION')\r\n case 'SURVEILLANCE': return i18n.tc('models.status.SURVEILLANCE')\r\n case 'VERDICT_WARNING': return i18n.tc('models.status.VERDICT_WARNING')\r\n case 'VERDICT': return i18n.tc('models.status.VERDICT')\r\n case 'ENFORCEMENT': return i18n.tc('models.status.ENFORCEMENT')\r\n case 'AMORTISATION': return i18n.tc('models.status.AMORTISATION')\r\n case 'CLOSED': return i18n.tc('models.status.CLOSED')\r\n case 'OTHER': return i18n.tc('models.status.OTHER')\r\n case undefined: return i18n.tc('models.status.OTHER')\r\n default: return ''\r\n }\r\n}\r\n\r\nexport type ClosureCodeType = 'DECEASED' | 'BANKRUPTCY' | 'CREDIT' | 'LOW_AMOUNT' | 'FREE_CARD' | 'EU_CARD' | 'UNDERAGE' | 'MIGRATED' | 'SETTLEMENT' | 'FULL_PAID' | 'CANCELLED' | 'OTHER'\r\nexport function translateClosureCodeType(closureCode: ClosureCodeType | null): string {\r\n switch (closureCode) {\r\n case 'DECEASED': return i18n.tc('models.closureCode.DECEASED')\r\n case 'BANKRUPTCY': return i18n.tc('models.closureCode.BANKRUPTCY')\r\n case 'CREDIT': return i18n.tc('models.closureCode.CREDIT')\r\n case 'LOW_AMOUNT': return i18n.tc('models.closureCode.LOW_AMOUNT')\r\n case 'FREE_CARD': return i18n.tc('models.closureCode.FREE_CARD')\r\n case 'EU_CARD': return i18n.tc('models.closureCode.EU_CARD')\r\n case 'UNDERAGE': return i18n.tc('models.closureCode.UNDERAGE')\r\n case 'MIGRATED': return i18n.tc('models.closureCode.MIGRATED')\r\n case 'SETTLEMENT': return i18n.tc('models.closureCode.SETTLEMENT')\r\n case 'FULL_PAID': return i18n.tc('models.closureCode.FULL_PAID')\r\n case 'CANCELLED': return i18n.tc('models.closureCode.CANCELLED')\r\n case 'OTHER': return i18n.tc('models.closureCode.OTHER')\r\n case null: return ''\r\n default: return ''\r\n }\r\n}\r\n\r\nexport type ActionType = 'LETTER' | 'WAIT' | 'MANUAL' | 'CLOSURE' | 'OTHER'\r\nexport function translateActionType(action: ActionType | undefined): string {\r\n switch (action) {\r\n case 'LETTER': return i18n.tc('models.action.LETTER')\r\n case 'MANUAL': return i18n.tc('models.action.MANUAL')\r\n case 'CLOSURE': return i18n.tc('models.action.CLOSURE')\r\n case 'OTHER': return i18n.tc('models.action.OTHER')\r\n }\r\n return ''\r\n}\r\n\r\nexport interface CaseGetInvoicesModel {\r\n initial_capital: number;\r\n invoice_number: string; // Invoice number\r\n invoice_date: string; // Invoice date\r\n invoice_due_date: string; // Invoice due date\r\n}\r\n\r\nexport interface CaseGetModel {\r\n register_id: number; // Register identifier\r\n case_id: number; // Case identifier\r\n main_debtor_name: string; // Name of the main debtor\r\n status: StatusType | null; // Case status\r\n joint_case_id: number; // Joint case identifier\r\n registration_date: string; // Date when case is created - ISO 8601 format\r\n closure_date: string | null; // Date when case is closed - ISO 8601 format\r\n closure_code: ClosureCodeType | null; // Reason code for closure\r\n creditor_case_reference_id: string; // Creditor reference number used at creditor\r\n currency_code: string; // Case currency - ISO 4217:2001\r\n creditor_department_id: number; // Creditor identification used from Visma against creditor\r\n remaining_capital: number; // Total remaining capital on case\r\n remaining_total: number; // Total remaining on case\r\n invoices: CaseGetInvoicesModel[]; // List of invoices on case\r\n case_messages: number; // Number of messages on case\r\n case_messages_unread: number; // Number of unread messages on case\r\n next_action: string; // Action to be processed\r\n next_action_type: ActionType | null; // Type of action\r\n next_action_date: string; // Date when action should be processed\r\n}\r\n\r\nexport interface CaseDetailsModel {\r\n register_id: number; // Register identifier\r\n case_id: number; // Case identifier\r\n main_debtor_name: string; // Name of the main debtor\r\n status: StatusType | null; // Case status\r\n creditor_system_id: number; // Creditor identifier in internal system\r\n department_system_id: number; // Creditor department identifier in internal system\r\n joint_case_id: number; // Joint case identifier\r\n registration_date: string; // Date when case is created - ISO 8601 format\r\n closure_date: string | null;// Date when case is closed - ISO 8601 format\r\n closure_code: ClosureCodeType | null; // Reason code for closure\r\n creditor_case_reference_id: string; // Creditor reference number used at creditor\r\n currency_code: string; // Case currency - ISO 4217:2001\r\n ocr: string; // Reference number used for connecting payments on case\r\n creditor_department_id: number; // Creditor identification used from Visma against creditor\r\n remaining_capital: number; // Total remaining capital on case\r\n saved_remaining_interest: number; // Total saved remaining interest on case\r\n saved_remaining_interest_date: string; // Last date when interest is saved - ISO 8601 format\r\n accrued_interest: number; // Total calculated remaining interest on case\r\n remaining_cost: number; // Total remaining cost on case\r\n remaining_fee: number; // Total remaining cost on case\r\n remaining_total: number; // Total remaining on case\r\n invoices: CaseGetInvoicesModel[]; // List of invoices on case\r\n case_messages: number; // Number of messages on case\r\n case_messages_unread: number; // Number of unread messages on case\r\n next_action: string; // Action to be processed\r\n next_action_type: ActionType | null; // Type of action\r\n next_action_date: string; // Date when action should be processed\r\n}\r\n\r\nexport type StartType = 'INVOICE' | 'REMINDER' | 'COLLECTION' | 'SURVEILLANCE'\r\n\r\nexport interface CasePostModel {\r\n creditor_department_id: number; // Creditor identification used from Visma against creditor\r\n email_for_error_response?: string;\r\n ocr?: string; // Reference number used for connecting payments on case. Only for partners with ocr payment agreement\r\n reference_number?: string; // Your internal reference number\r\n currency: string; // Case currency - ISO 4217:2001, min_length=3, max_length=3\r\n start_action: StartType;\r\n debtor_main: CaseDebtorsPostModel;\r\n debtor_applicants?: CaseDebtorsPostModel[];\r\n debts: CaseDebtsPostModel[];\r\n costs?: CaseCostsPostModel[];\r\n extra_fields?: CaseExtraFieldsPostModel[];\r\n history_logs?: CaseHistoryLogsPostModel[];\r\n}\r\n\r\nexport interface CasePostResponseModel {\r\n register_id: number; // Temporary id to use when register sub entities to Cases\r\n _etag: string; // New _etag value after update\r\n}\r\n","import { Pagination, PageModel, APIError } from '@/store/modules/creditorsAPI'\r\nimport { CaseGetModel, CaseDetailsModel, StatusType, CasePostModel, CasePostResponseModel, CaseGetInvoicesModel } from '@/models/cases'\r\nimport { GetDashboardGetModel, DashboardEntryModel } from '@/models/dashboard'\r\nimport { Case } from '@/store/modules/cases'\r\nimport { CreditSafeCompanyResponseModel, CreditSafePersonalResponseModel } from '@/models/creditsafe'\r\n\r\nexport function mockGetDashboardGetModel(): GetDashboardGetModel {\r\n return {\r\n invoice: mockDashboardEntryModel('INVOICE'),\r\n reminder: mockDashboardEntryModel('REMINDER'),\r\n collection: mockDashboardEntryModel('COLLECTION'),\r\n surveillance: mockDashboardEntryModel('SURVEILLANCE'),\r\n verdict_warning: mockDashboardEntryModel('VERDICT_WARNING'),\r\n verdict: mockDashboardEntryModel('VERDICT'),\r\n enforcement: mockDashboardEntryModel('ENFORCEMENT'),\r\n amortisation: mockDashboardEntryModel('AMORTISATION'),\r\n other: mockDashboardEntryModel('OTHER'),\r\n }\r\n}\r\n\r\nexport function mockDashboardEntryModel(status: StatusType): DashboardEntryModel {\r\n const items = mockItems.filter((it) => {\r\n if (status === 'OTHER') { return it.status === 'OTHER' || it.status === null }\r\n return it.status === status\r\n })\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCasePostResponseModels(data: CasePostModel[]): CasePostResponseModel[] {\r\n return [\r\n ]\r\n}\r\n\r\nexport function mockCaseDetailsModel(current?: Case): CaseDetailsModel {\r\n const closure = current?.closureDate?.toDateString()\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCaseGetModel(pagination: Pagination, isClosed: boolean, matches: StatusType[] | null, creditorDepartmentId: number | null, caseId: number | null, referenceId: string | null): PageModel {\r\n // Filter on status and closed\r\n var results = mockItems\r\n if (matches !== null) {\r\n results = results.filter((it) => it.status !== null && matches.includes(it.status))\r\n }\r\n if (creditorDepartmentId !== null && creditorDepartmentId !== 0) {\r\n results = results.filter((it) => it.creditor_department_id === creditorDepartmentId)\r\n }\r\n if (caseId !== null && caseId !== 0) {\r\n results = results.filter((it) => it.case_id === caseId)\r\n }\r\n if (referenceId !== null && referenceId !== '') {\r\n results = results.filter((it) => it.creditor_case_reference_id === referenceId)\r\n }\r\n if (isClosed) {\r\n results = results.filter((it) => it.closure_code !== null)\r\n }\r\n if (!isClosed) {\r\n results = results.filter((it) => it.closure_code === null)\r\n }\r\n \r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n\r\nconst mockItems: CaseGetModel[] = [\r\n]\r\n\r\nexport function mockCreditSafeCompanyResponseModel(organisationId: string | undefined): CreditSafeCompanyResponseModel {\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCreditSafePersonalResponseModel(organisationId: string | undefined): CreditSafePersonalResponseModel | APIError {\r\n if (organisationId === '9009099999') return { errors: {}, message: 'Invalid personal identity number' }\r\n return {\r\n }\r\n}\r\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { creditorsAPI, APIRequest, Pagination, Page, PageModel, APIError, missingError } from '@/store/modules/creditorsAPI'\r\nimport { CaseGetModel, CaseDetailsModel, StatusType, ClosureCodeType, translateStatusType, translateClosureCodeType, ActionType, CasePostModel, CasePostResponseModel, translateActionType, CaseGetInvoicesModel } from '@/models/cases'\r\nimport { Alert, applicationError, apiError, importValidationFailed } from '@/models/alerts'\r\nimport { CreditorDepartment, creditorDepartments } from '@/store/modules/creditorDepartments'\r\nimport { DebtorOption, debtorTypeFromInput, resetDebtorOption } from '@/store/modules/caseDebtors'\r\nimport { InputText, InputNumber, InputDate, InputFile, InputSelect, InputCheckbox, validInputs, InputOption } from '@/models/validations'\r\nimport { CreditSafeCompanyResponseModel, CreditSafePersonalResponseModel } from '@/models/creditsafe'\r\nimport * as mock from '@/mockdata/cases'\r\nimport { Formatting } from '@/models/formatting'\r\nimport { DebtorType } from '@/models/debtors'\r\n\r\nexport interface Case {\r\n creditorId: number;\r\n registerId: number;\r\n caseId: number;\r\n status: string;\r\n statusType: StatusType;\r\n creditorSystemId?: number;\r\n departmentSystemId?: number;\r\n jointCaseId: number;\r\n registrationDate: string;\r\n closureDate?: Date;\r\n formattedClosureDate: string;\r\n closureCode: string;\r\n closureCodeType?: ClosureCodeType;\r\n creditorCaseReferenceId: string;\r\n currencyCode: string;\r\n ocr?: string;\r\n creditorDepartmentId: number;\r\n remainingCapital: number;\r\n savedRemainingInterest?: number;\r\n savedRemainingInterestDate?: string;\r\n accruedInterest?: number;\r\n remainingCost?: number;\r\n remainingFee?: number;\r\n remainingTotal: number;\r\n formattedTotal: string;\r\n caseMessages: number;\r\n caseMessagesUnread: number;\r\n nextAction: string;\r\n nextActionType?: ActionType;\r\n nextActionDate: string;\r\n invoiceNumbers?: string[];\r\n invoiceDatesFormatted?: string[];\r\n invoiceInitialCapitalFormatted?: string[];\r\n mainDebtorName?: string;\r\n}\r\n\r\nexport interface CaseDetails {\r\n caseId: number;\r\n status: string;\r\n statusType: StatusType;\r\n registrationDate: string;\r\n nextAction: string;\r\n nextActionDate: string;\r\n ocr?: string;\r\n clientId?: number;\r\n department?: number;\r\n closureDate?: Date;\r\n formattedClosureDate: string;\r\n closureCode?: string;\r\n closureCodeType?: ClosureCodeType;\r\n remainingTotal?: number;\r\n remainingTotalFormatted: string;\r\n currencyCode?: string;\r\n}\r\n\r\nexport interface CaseCSV {\r\n isPrivate: string;\r\n organisationId: string;\r\n invoiceNumber: string;\r\n invoiceDescription: string;\r\n invoiceDate: string;\r\n invoiceDueDate: string;\r\n remainingCapital: string;\r\n}\r\n\r\nexport interface CaseImport {\r\n row: number;\r\n containsErrors: boolean;\r\n selected: InputCheckbox;\r\n debtorType: InputSelect;\r\n organisationId: InputText;\r\n name: InputText;\r\n address: InputText;\r\n postalCode: InputNumber;\r\n city: InputText;\r\n invoiceNumber: InputText;\r\n invoiceDescription: InputText;\r\n invoiceDates: [InputDate, InputDate];\r\n remainingCapital: InputNumber;\r\n}\r\n\r\nexport interface StatusOption {\r\n id: number;\r\n title: string;\r\n matches: StatusType[];\r\n}\r\n\r\nconst allStatusOptions: StatusOption[] = [\r\n {\r\n id: 1,\r\n title: 'Alla',\r\n matches: ['REMINDER', 'COLLECTION', 'SURVEILLANCE', 'VERDICT_WARNING', 'VERDICT', 'ENFORCEMENT', 'AMORTISATION', 'OTHER'],\r\n // matches: ['INVOICE', 'REMINDER', 'COLLECTION', 'SURVEILLANCE', 'VERDICT_WARNING', 'VERDICT', 'ENFORCEMENT', 'AMORTISATION', 'OTHER'],\r\n },\r\n // { id: 2, title: translateStatusType('INVOICE'), matches: ['INVOICE'] },\r\n { id: 3, title: translateStatusType('REMINDER'), matches: ['REMINDER'] },\r\n { id: 4, title: translateStatusType('COLLECTION'), matches: ['COLLECTION'] },\r\n { id: 5, title: translateStatusType('AMORTISATION'), matches: ['AMORTISATION'] },\r\n { id: 6, title: translateStatusType('SURVEILLANCE'), matches: ['SURVEILLANCE'] },\r\n { id: 7, title: translateStatusType('ENFORCEMENT'), matches: ['ENFORCEMENT'] },\r\n { id: 8, title: translateStatusType('VERDICT'), matches: ['VERDICT'] },\r\n { id: 9, title: translateStatusType('VERDICT_WARNING'), matches: ['VERDICT_WARNING'] },\r\n { id: 10, title: translateStatusType('OTHER'), matches: ['OTHER'] },\r\n]\r\n\r\nexport interface CasesState {\r\n alert: Alert | undefined;\r\n ongoingCases?: Page;\r\n closedCases?: Page;\r\n currentCase?: Case;\r\n\r\n activeCount: string;\r\n activeRemainingTotal: string;\r\n activeCaseMessagesUnread: number;\r\n currentCaseMessagesUnread: number;\r\n\r\n statusOption: InputSelect;\r\n\r\n searchCaseId: InputNumber;\r\n searchReferenceId: InputText;\r\n searchInvoiceNumber: InputText;\r\n\r\n organisationId: InputText;\r\n name: InputText;\r\n address: InputText;\r\n postalCode: InputNumber;\r\n city: InputText;\r\n invoiceNumber: InputText;\r\n invoiceDescription: InputText;\r\n invoiceDates: [InputDate, InputDate];\r\n remainingCapital: InputNumber;\r\n currentRegisterId: number;\r\n\r\n importCSV?: CaseCSV[];\r\n importCases?: CaseImport[];\r\n}\r\n\r\nfunction resetStatusOption(statusOption: StatusOption | null = null): InputSelect {\r\n const value = statusOption?.id ?? null\r\n const options = allStatusOptions.map((it) => { value: it.id, text: it.title, data: it })\r\n return InputSelect.standard({ value: value, options: options })\r\n}\r\nfunction resetSelected(value: boolean | null = null): InputCheckbox {\r\n return InputCheckbox.minimum({ value: value })\r\n}\r\nfunction resetSearchCaseId(value: number | null = null): InputNumber {\r\n return InputNumber.zeroIsBlank({ value: value })\r\n}\r\nfunction resetSearchReferenceId(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 20, required: false })\r\n}\r\nfunction resetSearchInvoiceNumber(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 20, required: false })\r\n}\r\nfunction resetOrganisationId(value: string | null = null): InputText {\r\n return InputText.eitherNumberLike({ value: value, minLength: 10, maxLength: 12, digitsOnly: true, required: true })\r\n}\r\nfunction resetName(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 50, required: true })\r\n}\r\nfunction resetAddress(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 35, required: true })\r\n}\r\nfunction resetPostalCode(value: number | null = null): InputNumber {\r\n return InputNumber.lengthInRange({ value: value, minLength: 5, maxLength: 5, required: true })\r\n}\r\nfunction resetCity(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 50, required: true })\r\n}\r\nfunction resetInvoiceNumber(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 20, required: true })\r\n}\r\nfunction resetInvoiceDescription(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: 3, maxLength: 150, required: true })\r\n}\r\nfunction resetInvoiceDates(value1: Date | null = null, value2: Date | null = null): [InputDate, InputDate] {\r\n const invoiceDate = InputDate.standard({ value: value1, minValue: null, maxValue: new Date(), required: true })\r\n const additional: (value: Date) => boolean = ((it) => {\r\n const date = invoiceDate.value\r\n if (date === null) return false\r\n return it > date\r\n })\r\n const invoiceDueDate = InputDate.additional({ value: value2, minValue: null, maxValue: new Date(), required: true, additional: additional })\r\n return [invoiceDate, invoiceDueDate]\r\n}\r\nfunction resetRemainingCapital(value: number | null = null): InputNumber {\r\n return InputNumber.amountInRange({ value: value, minValue: 25, maxValue: null, required: true })\r\n}\r\n\r\nexport const state: CasesState = {\r\n alert: undefined,\r\n ongoingCases: undefined,\r\n closedCases: undefined,\r\n currentCase: undefined,\r\n\r\n activeCount: '',\r\n activeRemainingTotal: '',\r\n activeCaseMessagesUnread: 0,\r\n currentCaseMessagesUnread: 0,\r\n\r\n statusOption: resetStatusOption(),\r\n\r\n searchCaseId: resetSearchCaseId(),\r\n searchReferenceId: resetSearchReferenceId(),\r\n searchInvoiceNumber: resetSearchInvoiceNumber(),\r\n\r\n organisationId: resetOrganisationId(),\r\n name: resetName(),\r\n address: resetAddress(),\r\n postalCode: resetPostalCode(),\r\n city: resetCity(),\r\n invoiceNumber: resetInvoiceNumber(),\r\n invoiceDescription: resetInvoiceDescription(),\r\n invoiceDates: resetInvoiceDates(),\r\n remainingCapital: resetRemainingCapital(),\r\n currentRegisterId: 0,\r\n\r\n importCSV: undefined,\r\n importCases: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getOngoingCases(state): Page | undefined {\r\n return state.ongoingCases\r\n },\r\n getClosedCases(state): Page | undefined {\r\n return state.closedCases\r\n },\r\n getCurrentCase(state): Case | undefined {\r\n return state.currentCase\r\n },\r\n getActiveCount(state): string {\r\n return state.activeCount\r\n },\r\n getActiveRemainingTotal(state): string {\r\n return state.activeRemainingTotal\r\n },\r\n getActiveCaseMessagesUnread(state): number {\r\n return state.activeCaseMessagesUnread\r\n },\r\n getCurrentCaseDetails(state, getters, rootState, rootGetters): CaseDetails {\r\n const currentCase: Case | undefined = getters.getCurrentCase\r\n return {\r\n caseId: currentCase?.caseId ?? 0,\r\n status: translateStatusType(currentCase?.statusType),\r\n statusType: currentCase?.statusType ?? 'OTHER',\r\n registrationDate: currentCase?.registrationDate ?? '',\r\n nextAction: translateActionType(currentCase?.nextActionType),\r\n nextActionDate: currentCase?.nextActionDate ?? '',\r\n ocr: currentCase?.ocr,\r\n clientId: currentCase?.creditorSystemId,\r\n department: currentCase?.departmentSystemId,\r\n closureDate: currentCase?.closureDate,\r\n formattedClosureDate: Formatting.formatDate(currentCase?.closureDate),\r\n closureCode: currentCase?.closureCode,\r\n closureCodeType: currentCase?.closureCodeType,\r\n remainingTotal: currentCase?.remainingTotal,\r\n remainingTotalFormatted: Formatting.formatAmount(currentCase?.remainingTotal ?? 0),\r\n currencyCode: currentCase?.currencyCode,\r\n }\r\n },\r\n getStatusOption(state): InputSelect {\r\n return state.statusOption\r\n },\r\n getCurrentCaseMessagesUnread(state): number {\r\n return state.currentCaseMessagesUnread\r\n },\r\n getOrganisationId(state): InputText {\r\n return state.organisationId\r\n },\r\n getSearchCaseId(state): InputNumber {\r\n return state.searchCaseId\r\n },\r\n getSearchReferenceId(state): InputText {\r\n return state.searchReferenceId\r\n },\r\n getSearchInvoiceNumber(state): InputText {\r\n return state.searchInvoiceNumber\r\n },\r\n getName(state): InputText {\r\n return state.name\r\n },\r\n getAddress(state): InputText {\r\n return state.address\r\n },\r\n getPostalCode(state): InputNumber {\r\n return state.postalCode\r\n },\r\n getCity(state): InputText {\r\n return state.city\r\n },\r\n getInvoiceNumber(state): InputText {\r\n return state.invoiceNumber\r\n },\r\n getInvoiceDescription(state): InputText {\r\n return state.invoiceDescription\r\n },\r\n getInvoiceDates(state): [InputDate, InputDate] {\r\n return state.invoiceDates\r\n },\r\n getRemainingCapital(state): InputNumber {\r\n return state.remainingCapital\r\n },\r\n getCurrentRegisterId(state): number {\r\n return state.currentRegisterId\r\n },\r\n getImportCSV(state): CaseCSV[] | undefined {\r\n return state.importCSV\r\n },\r\n getImportCases(state): CaseImport[] | undefined {\r\n return state.importCases\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setOngoingCases(state, ongoingCases: Page | undefined) {\r\n state.ongoingCases = ongoingCases\r\n },\r\n setClosedCases(state, closedCases: Page | undefined) {\r\n state.closedCases = closedCases\r\n },\r\n setCurrentCase(state, c?: Case) {\r\n state.currentCase = c\r\n },\r\n setActiveCount(state, activeCount: number) {\r\n state.activeCount = activeCount.toString()\r\n },\r\n setActiveRemainingTotal(state, activeRemainingTotal: string) {\r\n state.activeRemainingTotal = activeRemainingTotal\r\n },\r\n setActiveCaseMessagesUnread(state, activeCaseMessagesUnread: number) {\r\n state.activeCaseMessagesUnread = activeCaseMessagesUnread\r\n },\r\n setCurrentCaseMessagesUnread(state, caseMessagesUnread: number) {\r\n state.currentCaseMessagesUnread = caseMessagesUnread\r\n },\r\n setStatusOption(state, statusOption: InputSelect) {\r\n state.statusOption = statusOption\r\n },\r\n setOrganisationId(state, organisationId: InputText) {\r\n state.organisationId = organisationId\r\n },\r\n setSearchCaseId(state, searchCaseId: InputNumber) {\r\n state.searchCaseId = searchCaseId\r\n },\r\n setSearchReferenceId(state, searchReferenceId: InputText) {\r\n state.searchReferenceId = searchReferenceId\r\n },\r\n setSearchInvoiceNumber(state, searchInvoiceNumber: InputText) {\r\n state.searchInvoiceNumber = searchInvoiceNumber\r\n },\r\n setName(state, name: InputText) {\r\n state.name = name\r\n },\r\n setPostalCode(state, postalCode: InputNumber) {\r\n state.postalCode = postalCode\r\n },\r\n setAddress(state, address: InputText) {\r\n state.address = address\r\n },\r\n setCity(state, city: InputText) {\r\n state.city = city\r\n },\r\n setInvoiceNumber(state, invoiceNumber: InputText) {\r\n state.invoiceNumber = invoiceNumber\r\n },\r\n setInvoiceDescription(state, invoiceDescription: InputText) {\r\n state.invoiceDescription = invoiceDescription\r\n },\r\n setInvoiceDates(state, invoiceDates: [InputDate, InputDate]) {\r\n state.invoiceDates = invoiceDates\r\n },\r\n setRemainingCapital(state, remainingCapital: InputNumber) {\r\n state.remainingCapital = remainingCapital\r\n },\r\n setCurrentRegisterId(state, currentRegisterId: number) {\r\n state.currentRegisterId = currentRegisterId\r\n },\r\n setImportCSV(state, importCSV: CaseCSV[] | undefined) {\r\n state.importCSV = importCSV\r\n },\r\n setImportCases(state, importCases: CaseImport[] | undefined) {\r\n state.importCases = importCases\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n /**\r\n * \r\n *\r\n * @param store The vuex store.\r\n */\r\n async refreshOngoingCases(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING ONGOING CASES PAGES ${page}`)\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n // Fetch lookup options\r\n const creditorDepartment = (store.rootGetters['creditorDepartments/getSearchCreditorDepartment'] as InputSelect).value\r\n const caseId = store.state.searchCaseId.value\r\n const referenceId = store.state.searchReferenceId.value\r\n const invoiceNumber = store.state.searchInvoiceNumber.value\r\n\r\n const statusOption: StatusOption | undefined = store.state.statusOption.selected?.data\r\n const matches = statusOption?.matches ?? []\r\n const match = matches.length === 1 ? matches[0] : undefined\r\n\r\n let lookup = '\"closure_date\":\"IS NULL\"'\r\n if (match !== undefined) {\r\n lookup += `,\"status\":\"${match}\"`\r\n }\r\n if (creditorDepartment !== 0) {\r\n lookup += `,\"creditor_department_id\":\"${creditorDepartment}\"`\r\n }\r\n if (caseId !== null && caseId !== 0) {\r\n lookup += `,\"joint_case_id\":${caseId}`\r\n }\r\n if (referenceId !== null && referenceId !== '') {\r\n lookup += `,\"creditor_case_reference_id\":\"${referenceId}\"`\r\n }\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/cases?lookup={${lookup}}`,\r\n action: 'cases/recieveCaseGetModel',\r\n extra: matches,\r\n mock: mock.mockCaseGetModel(pagination, false, matches, creditorDepartment, caseId, referenceId),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getOngoingCases\r\n },\r\n\r\n /**\r\n * \r\n *\r\n * @param store The vuex store.\r\n */\r\n async refreshClosedCases(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CLOSED CASES PAGES ${page}`)\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const today = new Date()\r\n const to = Formatting.formatDate(today)\r\n today.setFullYear(today.getFullYear() - 3)\r\n const from = Formatting.formatDate(today)\r\n \r\n const request = {\r\n method: 'get',\r\n path: `/cases?lookup={\"closure_date_from\": \"${from}\", \"closure_date_to\":\"${to}\"}`,\r\n action: 'cases/recieveCaseGetModel',\r\n mock: mock.mockCaseGetModel(pagination, true, null, null, null, null),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getClosedCases\r\n },\r\n\r\n /**\r\n * \r\n *\r\n * @param store The vuex store.\r\n */\r\n async recieveCaseGetModel(store, page: PageModel) {\r\n const currentId: number = store.rootGetters.getCurrentCreditorId\r\n const matches: StatusType[] | undefined = page.extra as (StatusType[] | undefined)\r\n\r\n const cases: Page = Page.transform(page, ((it) => {\r\n const closure_date = it.closure_date === null ? undefined : new Date(it.closure_date)\r\n return {\r\n creditorId: currentId,\r\n registerId: it.register_id,\r\n caseId: it.case_id,\r\n status: translateStatusType(it.status ?? 'OTHER'),\r\n statusType: it.status ?? 'OTHER',\r\n jointCaseId: it.joint_case_id,\r\n registrationDate: it.registration_date,\r\n closureDate: closure_date,\r\n formattedClosureDate: Formatting.formatDate(closure_date),\r\n closureCode: translateClosureCodeType(it.closure_code),\r\n closureCodeType: it.closure_code === null ? undefined : it.closure_code,\r\n creditorCaseReferenceId: it.creditor_case_reference_id,\r\n currencyCode: it.currency_code,\r\n creditorDepartmentId: it.creditor_department_id,\r\n remainingCapital: it.remaining_capital,\r\n remainingTotal: it.remaining_total,\r\n formattedTotal: Formatting.formatAmount(it.remaining_total),\r\n caseMessages: it.case_messages,\r\n caseMessagesUnread: it.case_messages_unread,\r\n nextAction: it.next_action,\r\n nextActionType: it.next_action_type === null ? undefined : it.next_action_type,\r\n nextActionDate: it.next_action_date,\r\n invoiceNumbers: it.invoices.map((it) => it.invoice_number),\r\n invoiceDatesFormatted: it.invoices.map((it) => it.invoice_date),\r\n invoiceInitialCapitalFormatted: it.invoices.map((it) => Formatting.formatAmount(it.initial_capital)),\r\n mainDebtorName: it.main_debtor_name,\r\n }\r\n }))\r\n\r\n if (matches !== undefined) {\r\n store.commit('setOngoingCases', cases)\r\n } else {\r\n store.commit('setClosedCases', cases)\r\n }\r\n },\r\n\r\n /**\r\n * \r\n *\r\n * @param store The vuex store.\r\n */\r\n async refreshCurrentCaseDetails(store): Promise {\r\n console.log('REFRESHING CASE')\r\n const currentCase: Case | undefined = store.getters.getCurrentCase\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/cases/${currentCase?.caseId}`,\r\n action: 'cases/recieveCaseDetailsModel',\r\n mock: mock.mockCaseDetailsModel(currentCase),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n /**\r\n * \r\n *\r\n * @param store The vuex store.\r\n */\r\n async recieveCaseDetailsModel(store, details: CaseDetailsModel) {\r\n const currentId: number = store.rootGetters.getCurrentCreditorId\r\n\r\n const closure_date = details.closure_date === null ? undefined : new Date(details.closure_date)\r\n const c: Case = {\r\n creditorId: currentId,\r\n registerId: details.register_id,\r\n caseId: details.case_id,\r\n status: translateStatusType(details.status ?? 'OTHER'),\r\n statusType: details.status ?? 'OTHER',\r\n creditorSystemId: details.creditor_system_id,\r\n departmentSystemId: details.department_system_id,\r\n jointCaseId: details.joint_case_id,\r\n registrationDate: details.registration_date,\r\n closureDate: closure_date,\r\n formattedClosureDate: Formatting.formatDate(closure_date),\r\n closureCode: translateClosureCodeType(details.closure_code),\r\n closureCodeType: details.closure_code === null ? undefined : details.closure_code,\r\n creditorCaseReferenceId: details.creditor_case_reference_id,\r\n currencyCode: details.currency_code,\r\n ocr: details.ocr,\r\n creditorDepartmentId: details.creditor_department_id,\r\n remainingCapital: details.remaining_capital,\r\n savedRemainingInterest: details.saved_remaining_interest,\r\n savedRemainingInterestDate: details.saved_remaining_interest_date,\r\n accruedInterest: details.accrued_interest,\r\n remainingCost: details.remaining_cost,\r\n remainingFee: details.remaining_fee,\r\n remainingTotal: details.remaining_total,\r\n formattedTotal: Formatting.formatAmount(details.remaining_total),\r\n caseMessages: details.case_messages,\r\n caseMessagesUnread: details.case_messages_unread,\r\n nextAction: details.next_action,\r\n nextActionType: details.next_action_type === null ? undefined : details.next_action_type,\r\n nextActionDate: details.next_action_date,\r\n invoiceNumbers: details.invoices.map((it) => it.invoice_number),\r\n invoiceDatesFormatted: details.invoices.map((it) => it.invoice_date),\r\n invoiceInitialCapitalFormatted: details.invoices.map((it) => Formatting.formatAmount(it.initial_capital)),\r\n mainDebtorName: details.main_debtor_name,\r\n }\r\n\r\n store.commit('setCurrentCase', c)\r\n store.commit('setCurrentCaseMessagesUnread', c.caseMessagesUnread)\r\n },\r\n\r\n /**\r\n * Registers a new reminder, i.e. a new case at the start of the process\r\n *\r\n * @param store The vuex store.\r\n */\r\n async createReminder(store): Promise {\r\n console.log('CREATE CASE')\r\n\r\n // Look-up dependent data\r\n const creditorDepartment: CreditorDepartment = store.rootGetters['creditorDepartments/getCurrentCreditorDepartment']\r\n const debtorOption: DebtorOption = store.rootGetters['caseDebtors/getCurrentDebtorOption']\r\n\r\n const data: CasePostModel[] = [{\r\n creditor_department_id: creditorDepartment.creditorDepartmentId,\r\n currency: 'SEK',\r\n start_action: 'REMINDER',\r\n debtor_main: {\r\n debtor_role: 'MAIN_DEBTOR',\r\n debtor_type: debtorOption.matches[0],\r\n organisation_id: state.organisationId.toOrganisationNumber(),\r\n name: state.name.toString(),\r\n address_line_main: state.address.toString(),\r\n postal_code: state.postalCode.toNumber(),\r\n city: state.city.toString(),\r\n country_code: 'SE',\r\n },\r\n debts: [{\r\n debt_type: 'DEBIT',\r\n invoice_number: state.invoiceNumber.toString(),\r\n invoice_description: state.invoiceDescription.toString(),\r\n invoice_date: Formatting.formatDate(state.invoiceDates[0].toDate()),\r\n invoice_due_date: Formatting.formatDate(state.invoiceDates[1].toDate()),\r\n interest_from: Formatting.formatDate(state.invoiceDates[1].toDate()),\r\n interest_rate: 8,\r\n interest_type: 'LATE_PAYMENT_INTEREST',\r\n remaining_capital: state.remainingCapital.toNumber(),\r\n }],\r\n }]\r\n\r\n const request = {\r\n method: 'post',\r\n path: '/cases',\r\n data,\r\n action: 'cases/recieveCasePostResponseModels',\r\n mock: mock.mockCasePostResponseModels(data),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result, '/register-manually-debt')\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n /**\r\n * Recieves a response for registering a new case\r\n *\r\n * @param store The vuex store.\r\n * @param models The model for case creation.\r\n */\r\n async recieveCasePostResponseModels(store, models: CasePostResponseModel[]) {\r\n store.commit('setCurrentRegisterId', models[0].register_id)\r\n },\r\n\r\n /**\r\n * Transforms the raw imported CSV (must be set previously) to a Case Import.\r\n * This includes parsing and validating the data in the CSV and doing adress\r\n * lookup. After the preview has been created the user has the option of updating\r\n * the preview before doing the actual import\r\n *\r\n * @param store The vuex store.\r\n * @param response The model for case creation.\r\n */\r\n async previewCSV(store): Promise {\r\n console.log('PREVIEW CSV')\r\n\r\n const csv = store.state.importCSV\r\n if (csv === undefined) return true\r\n\r\n const importCases = await Promise.all(csv.map(async (value, index) => {\r\n var { isPrivate, organisationId } = value\r\n\r\n // 1. Start by parsing the isPrivate field. We accept both 'ja' and 'yes' regardless\r\n // of case. Anything else is a company.\r\n var debtorType: DebtorType = 'PRIVATE_FIRM'\r\n if (['ja', 'j', 'x', 'yes', 'y'].includes(isPrivate.toLowerCase())) {\r\n debtorType = 'PRIVATE_PERSON'\r\n }\r\n\r\n // 2. Empty the state in preparation for address lookup\r\n store.commit('setName', resetName())\r\n store.commit('setAddress', resetAddress())\r\n store.commit('setPostalCode', resetPostalCode())\r\n store.commit('setCity', resetCity())\r\n\r\n // 3. Then parse, validate and format the organisationId. All organisation numbers are 10 digits,\r\n // but we allow input of 12\r\n let addressFound = false\r\n store.commit('setOrganisationId', resetOrganisationId(organisationId))\r\n if (validInputs([store.state.organisationId], true)) {\r\n // Update organisation id twice to make sure that automatic formatting is applied (i.e. 10 digits)\r\n organisationId = store.state.organisationId.toOrganisationNumber()\r\n store.commit('setOrganisationId', resetOrganisationId(organisationId))\r\n\r\n // Inspect the organisationId and update debtor type\r\n if (store.state.organisationId.isCompany()) {\r\n debtorType = 'COMPANY'\r\n }\r\n\r\n // Commit the debtor option\r\n store.commit('caseDebtors/setCurrentDebtorType', debtorType, { root: true })\r\n // Call address lookup\r\n addressFound = await store.dispatch('lookupAddress', { reportError: false }) === true\r\n }\r\n\r\n // 4. Extract the result of the address lookup\r\n const name = addressFound ? store.state.name.value : ''\r\n const address = addressFound ? store.state.address.value : ''\r\n const postalCode = addressFound ? store.state.postalCode.value : 0\r\n const city = addressFound ? store.state.city.value : ''\r\n\r\n // 5. If address wasn't found empty organisationId to signal that something went wrong\r\n if (!addressFound) {\r\n organisationId = ''\r\n }\r\n\r\n // 6. Construct a Case Import\r\n const caseImport = {\r\n row: index,\r\n containsErrors: false,\r\n selected: resetSelected(true),\r\n debtorType: resetDebtorOption(debtorType),\r\n organisationId: resetOrganisationId(organisationId),\r\n name: resetName(name),\r\n address: resetAddress(address),\r\n postalCode: resetPostalCode(postalCode),\r\n city: resetCity(city),\r\n invoiceNumber: resetInvoiceNumber(value.invoiceNumber),\r\n invoiceDescription: resetInvoiceDescription(value.invoiceDescription),\r\n invoiceDates: resetInvoiceDates(Formatting.parseDate(value.invoiceDate), Formatting.parseDate(value.invoiceDueDate)),\r\n remainingCapital: resetRemainingCapital(Formatting.parseNumber(value.remainingCapital)),\r\n }\r\n \r\n // 7. Validate Case Import\r\n const inputs = [\r\n caseImport.debtorType,\r\n caseImport.organisationId,\r\n caseImport.name,\r\n caseImport.address,\r\n caseImport.postalCode,\r\n caseImport.city,\r\n caseImport.invoiceNumber,\r\n caseImport.invoiceDescription,\r\n caseImport.invoiceDates[0],\r\n caseImport.invoiceDates[1],\r\n caseImport.remainingCapital,\r\n ]\r\n const valid = validInputs(inputs, true)\r\n if (valid !== null) {\r\n caseImport.containsErrors = !valid\r\n }\r\n\r\n // 8. Return a Case Import\r\n return caseImport\r\n }))\r\n\r\n const sortedCases = importCases.sort((lhs, rhs) => {\r\n if (lhs.containsErrors && !rhs.containsErrors) return -1\r\n if (!lhs.containsErrors && rhs.containsErrors) return 1\r\n return lhs.row - rhs.row\r\n })\r\n\r\n store.commit('setImportCases', sortedCases)\r\n\r\n return true\r\n },\r\n\r\n /**\r\n * \r\n *\r\n * @param store The vuex store.\r\n */\r\n async importCSV(store): Promise {\r\n console.log('IMPORT CASES')\r\n\r\n // Fetch and filter keeping selected cases\r\n const csv = store.state.importCases?.filter((it) => it.selected.value)\r\n if (csv === undefined) return true\r\n\r\n // Validate data\r\n const failures = csv.map((it) => {\r\n const inputs = [it.organisationId, it.name, it.address, it.postalCode, it.city, it.invoiceNumber, it.invoiceDescription, it.invoiceDates[0], it.invoiceDates[1], it.remainingCapital]\r\n return validInputs(inputs, true) ? '' : it.invoiceNumber.value ?? '?'\r\n }).filter((it) => it.length > 0)\r\n if (failures.length > 0) {\r\n store.commit('setAlert', importValidationFailed(failures[0]))\r\n return false\r\n }\r\n\r\n // Look-up dependent data\r\n const creditorDepartment: CreditorDepartment = store.rootGetters['creditorDepartments/getCurrentCreditorDepartment']\r\n\r\n const data: CasePostModel[] = csv.map((it) => {\r\n creditor_department_id: creditorDepartment.creditorDepartmentId,\r\n currency: 'SEK',\r\n start_action: 'REMINDER',\r\n debtor_main: {\r\n debtor_role: 'MAIN_DEBTOR',\r\n debtor_type: debtorTypeFromInput(it.debtorType),\r\n organisation_id: it.organisationId.toOrganisationNumber(),\r\n name: it.name.toString(),\r\n address_line_main: it.address.toString(),\r\n postal_code: it.postalCode.toNumber(),\r\n city: it.city.toString(),\r\n country_code: 'SE',\r\n },\r\n debts: [{\r\n debt_type: 'DEBIT',\r\n invoice_number: it.invoiceNumber.toString(),\r\n invoice_description: it.invoiceDescription.toString(),\r\n invoice_date: Formatting.formatDate(it.invoiceDates[0].toDate()),\r\n invoice_due_date: Formatting.formatDate(it.invoiceDates[1].toDate()),\r\n interest_from: Formatting.formatDate(it.invoiceDates[1].toDate()),\r\n interest_rate: 8,\r\n interest_type: 'LATE_PAYMENT_INTEREST',\r\n remaining_capital: it.remainingCapital.toNumber(),\r\n }],\r\n })\r\n\r\n const request = {\r\n method: 'post',\r\n path: '/cases',\r\n data,\r\n action: 'cases/recieveImportCasePostResponseModels',\r\n mock: mock.mockCasePostResponseModels(data),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n /**\r\n * Recieves a responses for importing cases\r\n *\r\n * @param store The vuex store.\r\n * @param models The models for case import.\r\n */\r\n async recieveImportCasePostResponseModels(store, models: CasePostResponseModel[]) {\r\n },\r\n\r\n /**\r\n * Prepares the store for starting a new reminder registration\r\n *\r\n * @param store The vuex store.\r\n */\r\n async startCreatingReminder(store) {\r\n store.commit('setOrganisationId', resetOrganisationId())\r\n store.commit('setName', resetName())\r\n store.commit('setAddress', resetAddress())\r\n store.commit('setPostalCode', resetPostalCode())\r\n store.commit('setCity', resetCity())\r\n store.commit('setInvoiceNumber', resetInvoiceNumber())\r\n store.commit('setInvoiceDescription', resetInvoiceDescription())\r\n store.commit('setInvoiceDates', resetInvoiceDates())\r\n store.commit('setRemainingCapital', resetRemainingCapital())\r\n },\r\n\r\n async switchCurrentCaseId(store, caseId: number): Promise {\r\n const cases: Case[] | undefined = store.state.ongoingCases?.items\r\n const c: Case | undefined = cases?.find((it) => it.caseId === caseId)\r\n if (c !== undefined) {\r\n store.commit('setCurrentCase', c)\r\n store.commit('setCurrentCaseMessagesUnread', c?.caseMessagesUnread ?? 0)\r\n return true\r\n }\r\n return applicationError(store, `Kan inte byta aktuellt ärende eftersom det efterfrågade ärendet, ${caseId}, inte kan hittas`)\r\n },\r\n\r\n /*\r\n * Lookup a debtors address.\r\n *\r\n * @param store The vuex store\r\n */\r\n async lookupAddress(store, { reportError }: { reportError: boolean }): Promise {\r\n const organisationId = state.organisationId.toOrganisationNumber()\r\n const debtorOption: DebtorOption = store.rootGetters['caseDebtors/getCurrentDebtorOption']\r\n\r\n console.log(`LOOKUP ADDRESS -> ${debtorOption.title}: ${organisationId}`)\r\n\r\n // Empty fields before address lookup\r\n store.commit('setName', resetName())\r\n store.commit('setAddress', resetAddress())\r\n store.commit('setPostalCode', resetPostalCode())\r\n store.commit('setCity', resetCity())\r\n\r\n const personal = debtorOption.matches.includes('PRIVATE_PERSON')\r\n\r\n let request: APIRequest\r\n if (personal) {\r\n request = {\r\n method: 'get',\r\n path: `/personal-identity-number-lookup/${organisationId}`,\r\n action: 'cases/recieveCreditSafePersonalResponseModel',\r\n mock: mock.mockCreditSafePersonalResponseModel(organisationId),\r\n }\r\n } else {\r\n request = {\r\n method: 'get',\r\n path: `/company-registration-number-lookup/${organisationId}`,\r\n action: 'cases/recieveCreditSafeCompanyResponseModel',\r\n mock: mock.mockCreditSafeCompanyResponseModel(organisationId),\r\n }\r\n }\r\n\r\n console.log('REQUEST:', request)\r\n\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n if (reportError === true) {\r\n apiError(store, result)\r\n }\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n async recieveCreditSafeCompanyResponseModel(store, model: CreditSafeCompanyResponseModel) {\r\n store.commit('setName', resetName(model.company_name))\r\n store.commit('setAddress', resetAddress(model.address))\r\n store.commit('setPostalCode', resetPostalCode(parseInt(model.zip_code, 10)))\r\n store.commit('setCity', resetCity(model.city))\r\n },\r\n\r\n async recieveCreditSafePersonalResponseModel(store, model: CreditSafePersonalResponseModel) {\r\n store.commit('setName', resetName(`${model.first_name ?? ''} ${model.last_name ?? ''}`.trim()))\r\n store.commit('setAddress', resetAddress(model.address))\r\n store.commit('setPostalCode', resetPostalCode(parseInt(model.zip_code, 10)))\r\n store.commit('setCity', resetCity(model.city))\r\n },\r\n\r\n async decrementUnreadCaseMessages(store): Promise {\r\n console.log('DECREMENT UNREAD CASE MESSAGES')\r\n const currentCase: Case | undefined = store.getters.getCurrentCase\r\n\r\n if (currentCase === undefined) return missingError('currentCase')\r\n\r\n // Decrement the current unread messages count\r\n const currentCaseMessagesUnread: number = store.getters.getCurrentCaseMessagesUnread\r\n store.commit('setCurrentCaseMessagesUnread', currentCaseMessagesUnread - 1)\r\n\r\n // Update currently loaded cases\r\n const items = store.state.ongoingCases?.items ?? []\r\n items.forEach((it) => {\r\n if (it?.caseId === currentCase.caseId) {\r\n it.caseMessagesUnread -= 1\r\n }\r\n })\r\n\r\n return true\r\n },\r\n}\r\n\r\nexport const cases: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport { CreditorDepartmentsGetModel, CreditorDepartmentsDetailsModel, CreditorDepartmentsPatchModel, CreditorDepartmentsPatchResponseModel } from '@/models/creditors'\r\nimport { CreditorDepartment } from '@/store/modules/creditorDepartments'\r\n\r\nexport function mockCreditorDepartmentsDetailsModel(current?: CreditorDepartment): CreditorDepartmentsDetailsModel {\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCreditorDepartmentsPatchResponseModel(creditorDepartmentId: number, data: CreditorDepartmentsPatchModel): CreditorDepartmentsPatchResponseModel {\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCreditorDepartmentsGetModel(pagination: Pagination): PageModel {\r\n const items: CreditorDepartmentsGetModel[] = [\r\n {\r\n },\r\n ]\r\n\r\n // No filtering\r\n let results = items\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n","import i18n from '@/plugins/i18n'\r\nimport { ActionTree, GetterTree, Module, MutationTree } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError, missingError } from '@/store/modules/creditorsAPI'\r\nimport { CreditorDepartmentsGetModel, CreditorDepartmentsDetailsModel, CreditorDepartmentsPatchModel, CreditorDepartmentsPatchResponseModel } from '@/models/creditors'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport * as mock from '@/mockdata/creditorDepartments'\r\nimport { InputText, InputNumber, InputSelect, InputOption } from '@/models/validations'\r\n\r\nexport interface CreditorDepartment {\r\n creditorDepartmentId: number;\r\n creditorId: number;\r\n name: string;\r\n creditorNumber: number;\r\n departmentNumber: number;\r\n organisationId: string;\r\n currency: string;\r\n\r\n plusgiro?: string;\r\n bankgiro?: string;\r\n iban?: string;\r\n bic?: string;\r\n address?: string;\r\n coAddress?: string;\r\n postalCode?: number;\r\n city?: string;\r\n countryCode?: string;\r\n}\r\n\r\nexport interface CreditorDepartmentsState {\r\n alert: Alert | undefined;\r\n creditorDepartments?: Page;\r\n currentCreditorDepartment?: CreditorDepartment;\r\n currentEtag?: string;\r\n\r\n creditorDepartment: InputSelect;\r\n searchCreditorDepartment: InputSelect;\r\n\r\n name: InputText;\r\n address: InputText;\r\n postalCode: InputNumber;\r\n city: InputText;\r\n\r\n currency: InputText;\r\n bankgiro: InputText;\r\n iban: InputText;\r\n bic: InputText;\r\n}\r\n\r\nfunction resetCreditorDepartment(creditorDepartments: Page | null = null): InputSelect {\r\n const value = creditorDepartments?.items[0].creditorDepartmentId ?? null\r\n const items: CreditorDepartment[] = creditorDepartments?.items ?? []\r\n const options = items.map((it) => { value: it.creditorDepartmentId, text: it.name })\r\n return InputSelect.standard({ value: value, options: options })\r\n}\r\n\r\nfunction resetSearchCreditorDepartment(creditorDepartments: Page | null = null): InputSelect {\r\n const value = 0\r\n const none: (CreditorDepartment | undefined)[] = [undefined]\r\n const items: (CreditorDepartment | undefined)[] = creditorDepartments?.items ?? []\r\n const options = [...none, ...items].map((it) => { value: it?.creditorDepartmentId ?? 0, text: it?.name ?? i18n.tc('creditor.departments.all') })\r\n return InputSelect.standard({ value: value, options: options })\r\n}\r\n\r\nfunction resetName(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 50, required: true })\r\n}\r\nfunction resetAddress(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 35, required: true })\r\n}\r\nfunction resetPostalCode(value: number | null = null): InputNumber {\r\n return InputNumber.lengthInRange({ value: value, minLength: 5, maxLength: 5, required: true })\r\n}\r\nfunction resetCity(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 50, required: true })\r\n}\r\n\r\nfunction resetCurrency(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: 3, maxLength: 3, required: true })\r\n}\r\n\r\nfunction resetBankgiro(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: 7, maxLength: null, required: true })\r\n}\r\n\r\nfunction resetIban(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: 7, maxLength: null, required: true })\r\n}\r\n\r\nfunction resetBic(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: 7, maxLength: null, required: true })\r\n}\r\n\r\nexport const state: CreditorDepartmentsState = {\r\n alert: undefined,\r\n creditorDepartments: undefined,\r\n currentCreditorDepartment: undefined,\r\n currentEtag: undefined,\r\n\r\n creditorDepartment: resetCreditorDepartment(),\r\n searchCreditorDepartment: resetSearchCreditorDepartment(),\r\n\r\n name: resetName(),\r\n address: resetAddress(),\r\n postalCode: resetPostalCode(),\r\n city: resetCity(),\r\n\r\n currency: resetCurrency(),\r\n bankgiro: resetBankgiro(),\r\n iban: resetIban(),\r\n bic: resetBic(),\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getAllCreditorDepartments(state): CreditorDepartment[] {\r\n return state.creditorDepartments?.items ?? []\r\n },\r\n getCreditorDepartments(state): Page | undefined {\r\n return state.creditorDepartments\r\n },\r\n getCurrentCreditorDepartment(state): CreditorDepartment | undefined {\r\n return state.currentCreditorDepartment\r\n },\r\n getCurrentEtag(state): string | undefined {\r\n return state.currentEtag\r\n },\r\n\r\n getCreditorDepartment(state): InputSelect {\r\n return state.creditorDepartment\r\n },\r\n getSearchCreditorDepartment(state): InputSelect {\r\n return state.searchCreditorDepartment\r\n },\r\n\r\n getName(state): InputText {\r\n return state.name\r\n },\r\n getAddress(state): InputText {\r\n return state.address\r\n },\r\n getPostalCode(state): InputNumber {\r\n return state.postalCode\r\n },\r\n getCity(state): InputText {\r\n return state.city\r\n },\r\n getCurrency(state): InputText {\r\n return state.currency\r\n },\r\n getBankgiro(state): InputText {\r\n return state.bankgiro\r\n },\r\n getIban(state): InputText {\r\n return state.iban\r\n },\r\n getBic(state): InputText {\r\n return state.bic\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCreditorDepartments(state, creditorDepartments: Page) {\r\n state.creditorDepartments = creditorDepartments\r\n state.creditorDepartment = resetCreditorDepartment(creditorDepartments)\r\n state.searchCreditorDepartment = resetSearchCreditorDepartment(creditorDepartments)\r\n },\r\n setCurrentCreditorDepartment(state, creditorDepartment?: CreditorDepartment) {\r\n state.currentCreditorDepartment = creditorDepartment\r\n\r\n state.name = resetName(creditorDepartment?.name)\r\n state.address = resetAddress(creditorDepartment?.address)\r\n state.postalCode = resetPostalCode(creditorDepartment?.postalCode)\r\n state.city = resetCity(creditorDepartment?.city)\r\n\r\n state.currency = resetCurrency(creditorDepartment?.currency)\r\n state.bankgiro = resetBankgiro(creditorDepartment?.bankgiro)\r\n state.iban = resetIban(creditorDepartment?.iban)\r\n state.bic = resetBic(creditorDepartment?.bic)\r\n },\r\n setCurrentEtag(state, currentEtag?: string) {\r\n state.currentEtag = currentEtag\r\n },\r\n\r\n setCreditorDepartment(state, creditorDepartment: InputSelect) {\r\n state.creditorDepartment = creditorDepartment\r\n },\r\n setSearchCreditorDepartment(state, searchCreditorDepartment: InputSelect) {\r\n state.searchCreditorDepartment = searchCreditorDepartment\r\n },\r\n\r\n setName(state, name: InputText) {\r\n state.name = name\r\n },\r\n setAddress(state, address: InputText) {\r\n state.address = address\r\n },\r\n setPostalCode(state, postalCode: InputNumber) {\r\n state.postalCode = postalCode\r\n },\r\n setCity(state, city: InputText) {\r\n state.city = city\r\n },\r\n setCurrency(state, currency: InputText) {\r\n state.currency = currency\r\n },\r\n setBankgiro(state, bankgiro: InputText) {\r\n state.bankgiro = bankgiro\r\n },\r\n setIban(state, iban: InputText) {\r\n state.iban = iban\r\n },\r\n setBic(state, bic: InputText) {\r\n state.bic = bic\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n\r\n /**\r\n * Fetches the first 50 departments, but hopefully this will mean all departments\r\n *\r\n * @param store The vuex store.\r\n * @param page The page number to start at.\r\n */\r\n async refreshCreditorDepartments(store, page = 1): Promise | APIError> {\r\n console.log(`REFRESHING CREDITOR DEPARTMENTS ${page}`)\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(50, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: '/creditor-departments',\r\n action: 'creditorDepartments/recieveCreditorDepartmentsGetModels',\r\n mock: mock.mockCreditorDepartmentsGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCreditorDepartments\r\n },\r\n\r\n /**\r\n * Recieves a page of Creditor Department Models and turning them into Creditor Departments\r\n * and assign them to the store. It will also automatically assign the first department as\r\n * being \"current\".\r\n *\r\n * @param store The vuex store.\r\n * @param page The page to recieve.\r\n */\r\n async recieveCreditorDepartmentsGetModels(store, page: PageModel) {\r\n // Transform\r\n const creditorDepartments: Page = Page.transform(page, ((it) => {\r\n creditorDepartmentId: it.creditor_department_id,\r\n creditorId: it.creditor_id,\r\n name: it.name,\r\n creditorNumber: it.creditor_number,\r\n departmentNumber: it.department_number,\r\n organisationId: it.organisation_id,\r\n currency: it.currency,\r\n }))\r\n // Commit them to the store\r\n store.commit('setCreditorDepartments', creditorDepartments)\r\n // Automatically select the first one\r\n store.commit('setCurrentCreditorDepartment', creditorDepartments.items[0])\r\n },\r\n\r\n /**\r\n * Refreshes the details for the current creditor deparment (if any)\r\n *\r\n * @param store The vuex store.\r\n */\r\n async refreshCurrentCreditorDepartmentDetails(store): Promise {\r\n console.log('REFRESHING CREDITOR DEPARTMENT')\r\n const current = store.state.currentCreditorDepartment\r\n\r\n if (current === null) return true\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/creditor-departments/${current?.creditorDepartmentId}`,\r\n action: 'creditorDepartments/recieveCreditorDepartmentsDetailsModel',\r\n mock: mock.mockCreditorDepartmentsDetailsModel(current),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n /**\r\n * Recieves a response for refreshing a creditor department\r\n *\r\n * @param store The vuex store.\r\n * @param details The model for creditor department information.\r\n */\r\n async recieveCreditorDepartmentsDetailsModel(store, details: CreditorDepartmentsDetailsModel) {\r\n const creditorDepartment: CreditorDepartment = {\r\n creditorDepartmentId: details.creditor_department_id,\r\n creditorId: details.creditor_id,\r\n name: details.name,\r\n creditorNumber: details.creditor_number,\r\n departmentNumber: details.department_number,\r\n organisationId: details.organisation_id,\r\n currency: details.currency,\r\n\r\n plusgiro: details.plusgiro,\r\n bankgiro: details.bankgiro,\r\n iban: details.iban,\r\n bic: details.bic,\r\n address: details.address,\r\n coAddress: details.co_address,\r\n postalCode: details.postal_code,\r\n city: details.city,\r\n countryCode: details.country_code,\r\n }\r\n\r\n store.commit('setCurrentCreditorDepartment', creditorDepartment)\r\n store.commit('setCurrentEtag', details._etag)\r\n },\r\n\r\n /**\r\n * Edits a creditor department\r\n *\r\n * @param store The vuex store.\r\n */\r\n async editCreditorDepartment(store): Promise {\r\n console.log('EDIT CREDITOR DEPARTMENT')\r\n const current = store.state.currentCreditorDepartment\r\n\r\n if (current === undefined) return missingError('currentCreditorDepartment')\r\n\r\n // Create a PATCH body\r\n const data = {\r\n name: state.name.toString(),\r\n currency: state.currency.toString(),\r\n address: state.address.toString(),\r\n postal_code: state.postalCode.toNumber(),\r\n city: state.city.toString(),\r\n bankgiro: state.bankgiro.toString(),\r\n }\r\n\r\n // Invoke API\r\n const request = {\r\n method: 'patch',\r\n path: `/creditor-departments/${current?.creditorDepartmentId}`,\r\n data: data,\r\n _etag: store.state.currentEtag,\r\n action: 'creditorDepartments/recieveCreditorDepartmentsPatchResponseModel',\r\n mock: mock.mockCreditorDepartmentsPatchResponseModel(current.creditorDepartmentId, data),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n\r\n return true\r\n },\r\n\r\n /**\r\n * Recieves a response for editing a creditor department\r\n *\r\n * @param store The vuex store.\r\n * @param response The model for creditor department update.\r\n */\r\n async recieveCreditorDepartmentsPatchResponseModel(store, model: CreditorDepartmentsPatchResponseModel) {\r\n store.commit('setCurrentEtag', model._etag)\r\n },\r\n\r\n async switchCurrentCreditorDepartmentId(store, creditorDepartmentId?: number) {\r\n const CreditorDepartment = store.state.creditorDepartments?.items.find((it) => it.creditorDepartmentId === creditorDepartmentId)\r\n store.commit('setCurrentCreditorDepartment', CreditorDepartment)\r\n },\r\n\r\n /**\r\n * Prepares the store for starting a new creditor department\r\n *\r\n * @param store The vuex store.\r\n */\r\n async startCreatingCreditorDepartment(store) {\r\n store.commit('setName', resetName())\r\n store.commit('setAddress', resetAddress())\r\n store.commit('setPostalCode', resetPostalCode())\r\n store.commit('setCity', resetCity())\r\n\r\n store.commit('setCurrency', resetCurrency())\r\n store.commit('setBankgiro', resetBankgiro())\r\n store.commit('setIban', resetIban())\r\n store.commit('setBic', resetBic())\r\n },\r\n}\r\n\r\nexport const creditorDepartments: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import { CreditorSelfRegistrationsPostModel, CreditorSelfRegistrationsPostResponseModel, CreditorDetailsModel } from '@/models/creditors'\r\nimport { CreditSafeCompanyResponseModel, CreditSafePersonalResponseModel } from '@/models/creditsafe'\r\n\r\nexport function mockCreditorDetailsModel(): CreditorDetailsModel {\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCreditorSelfRegistrationsPostResponseModel(data: CreditorSelfRegistrationsPostModel): CreditorSelfRegistrationsPostResponseModel {\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCreditSafeCompanyResponseModel(organisationId: string | undefined): CreditSafeCompanyResponseModel {\r\n var f_tax: string | null\r\n switch (organisationId) {\r\n case '1111111111':\r\n f_tax = 'nO'\r\n break\r\n case '2222222222':\r\n f_tax = null\r\n break\r\n default:\r\n f_tax = 'yEs'\r\n }\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCreditSafePersonalResponseModel(): CreditSafePersonalResponseModel {\r\n return {\r\n }\r\n}\r\n","import {\r\n ActionTree, GetterTree, Module, MutationTree,\r\n} from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { Alert, apiError, taxCodeRequired, taxCodeUnavailable } from '@/models/alerts'\r\nimport { CreditorSelfRegistrationsPostModel, CreditorSelfRegistrationsPostResponseModel, CreditorDetailsModel } from '@/models/creditors'\r\nimport { CreditSafeCompanyResponseModel, CreditSafePersonalResponseModel } from '@/models/creditsafe'\r\nimport { InputText, InputNumber, InputCheckbox } from '@/models/validations'\r\nimport { APIRequest, creditorsAPI, APIError, isAPIError } from '@/store/modules/creditorsAPI'\r\nimport * as mock from '@/mockdata/creditors'\r\nimport { CreditorUser } from './creditorUsers'\r\n\r\nexport interface Creditor {\r\n creditorId: number;\r\n name: string;\r\n organisationId: string;\r\n}\r\n\r\nexport type TaxCode = 'yes' | 'no' | 'unavailable'\r\n\r\nexport interface CreditorsState {\r\n alert: Alert | undefined;\r\n currentCreditor?: Creditor;\r\n\r\n taxCode: TaxCode;\r\n\r\n organisationId: InputText;\r\n\r\n name: InputText;\r\n address: InputText;\r\n postalCode: InputNumber;\r\n city: InputText;\r\n\r\n bankgiro: InputText;\r\n\r\n personalNumber: InputText;\r\n firstName: InputText;\r\n lastName: InputText;\r\n mobilePhone: InputText;\r\n email: InputText;\r\n\r\n agree: InputCheckbox;\r\n}\r\n\r\nfunction resetOrganisationId(value: string | null = null): InputText {\r\n return InputText.eitherNumberLike({ value: value, minLength: 10, maxLength: 12, digitsOnly: true, required: true })\r\n}\r\n\r\nfunction resetName(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 50, required: true })\r\n}\r\nfunction resetAddress(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 35, required: true })\r\n}\r\nfunction resetPostalCode(value: number | null = null): InputNumber {\r\n return InputNumber.lengthInRange({ value: value, minLength: 5, maxLength: 5, required: true })\r\n}\r\nfunction resetCity(value: string | null = null): InputText {\r\n return InputText.standard({ value: value, minLength: null, maxLength: 50, required: true })\r\n}\r\n\r\nfunction resetBankgiro(): InputText {\r\n return InputText.standard({ value: null, minLength: 7, maxLength: null, required: true })\r\n}\r\n\r\nfunction resetPersonalNumber(value: string | null = null): InputText {\r\n return InputText.eitherNumberLike({ value: value, minLength: 10, maxLength: 12, digitsOnly: true, required: true })\r\n}\r\nfunction resetFirstName(value: string | null = null): InputText {\r\n return InputText.standard({ value, minLength: 1, maxLength: 50, required: true })\r\n}\r\nfunction resetLastName(value: string | null = null): InputText {\r\n return InputText.standard({ value, minLength: 1, maxLength: 50, required: true })\r\n}\r\nfunction resetMobilePhone(value: string | null = null): InputText {\r\n return InputText.numberLike({ value: value, minLength: 8, maxLength: 20, digitsOnly: false, required: true })\r\n}\r\nfunction resetEmail(value: string | null = null): InputText {\r\n return InputText.email({ value: value, required: true })\r\n}\r\n\r\nfunction resetAgree(): InputCheckbox {\r\n return InputCheckbox.standard({ value: null, requiredTrue: true })\r\n}\r\n\r\nexport const state: CreditorsState = {\r\n alert: undefined,\r\n currentCreditor: undefined,\r\n\r\n taxCode: 'unavailable',\r\n organisationId: resetOrganisationId(),\r\n\r\n name: resetName(),\r\n address: resetAddress(),\r\n postalCode: resetPostalCode(),\r\n city: resetCity(),\r\n\r\n bankgiro: resetBankgiro(),\r\n\r\n personalNumber: resetPersonalNumber(),\r\n firstName: resetFirstName(),\r\n lastName: resetLastName(),\r\n mobilePhone: resetMobilePhone(),\r\n email: resetEmail(),\r\n\r\n agree: resetAgree(),\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getCurrentCreditor(state): Creditor | undefined {\r\n return state.currentCreditor\r\n },\r\n getTaxCode(state): TaxCode {\r\n return state.taxCode\r\n },\r\n getOrganisationId(state): InputText {\r\n return state.organisationId\r\n },\r\n getName(state): InputText {\r\n return state.name\r\n },\r\n getAddress(state): InputText {\r\n return state.address\r\n },\r\n getPostalCode(state): InputNumber {\r\n return state.postalCode\r\n },\r\n getCity(state): InputText {\r\n return state.city\r\n },\r\n getBankgiro(state): InputText {\r\n return state.bankgiro\r\n },\r\n getPersonalNumber(state): InputText {\r\n return state.personalNumber\r\n },\r\n getFirstName(state): InputText {\r\n return state.firstName\r\n },\r\n getLastName(state): InputText {\r\n return state.lastName\r\n },\r\n getMobilePhone(state): InputText {\r\n return state.mobilePhone\r\n },\r\n getEmail(state): InputText {\r\n return state.email\r\n },\r\n getAgree(state): InputCheckbox {\r\n return state.agree\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCurrentCreditor(state, currentCreditor: Creditor | undefined) {\r\n state.currentCreditor = currentCreditor\r\n },\r\n setOrganisationId(state, organisationId: InputText) {\r\n state.organisationId = organisationId\r\n },\r\n setTaxCode(state, taxCode: TaxCode) {\r\n state.taxCode = taxCode\r\n },\r\n setName(state, name: InputText) {\r\n state.name = name\r\n },\r\n setAddress(state, address: InputText) {\r\n state.address = address\r\n },\r\n setPostalCode(state, postalCode: InputNumber) {\r\n state.postalCode = postalCode\r\n },\r\n setCity(state, city: InputText) {\r\n state.city = city\r\n },\r\n setBankgiro(state, bankgiro: InputText) {\r\n state.bankgiro = bankgiro\r\n },\r\n setPersonalNumber(state, personalNumber: InputText) {\r\n state.personalNumber = personalNumber\r\n },\r\n setFirstName(state, firstName: InputText) {\r\n state.firstName = firstName\r\n },\r\n setLastName(state, lastName: InputText) {\r\n state.lastName = lastName\r\n },\r\n setMobilePhone(state, mobilePhone: InputText) {\r\n state.mobilePhone = mobilePhone\r\n },\r\n setEmail(state, email: InputText) {\r\n state.email = email\r\n },\r\n setAgree(state, agree: InputCheckbox) {\r\n state.agree = agree\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n async refreshCurrentCreditorDetails(store): Promise {\r\n console.log('REFRESHING CURRENT CREDITOR')\r\n const currentCreditorId = store.rootGetters.getCurrentCreditorId\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/creditors/${currentCreditorId}`,\r\n action: 'creditors/recieveCreditorDetailsModel',\r\n mock: mock.mockCreditorDetailsModel(),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n async recieveCreditorDetailsModel(store, details: CreditorDetailsModel) {\r\n const creditor: Creditor = {\r\n creditorId: details.creditor_id,\r\n name: details.name,\r\n organisationId: details.organisation_id,\r\n }\r\n store.commit('setCurrentCreditor', creditor)\r\n },\r\n\r\n /*\r\n * Lookup a creditors address.\r\n *\r\n * @param store The vuex store\r\n */\r\n async lookupAddress(store): Promise {\r\n const organisationId = state.organisationId.toOrganisationNumber()\r\n console.log(`LOOKUP ADDRESS -> ${organisationId}`)\r\n\r\n store.commit('setTaxCode', 'unavailable')\r\n\r\n const request: APIRequest = {\r\n method: 'get',\r\n path: `/company-registration-number-lookup/${organisationId}`,\r\n action: 'creditors/recieveCreditSafeCompanyResponseModel',\r\n mock: mock.mockCreditSafeCompanyResponseModel(organisationId),\r\n }\r\n\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result, '/signup-start')\r\n return result\r\n }\r\n\r\n switch (state.taxCode) {\r\n case 'yes':\r\n return true\r\n case 'no':\r\n store.commit('setAlert', taxCodeRequired('/signup-start'))\r\n return {}\r\n default:\r\n store.commit('setAlert', taxCodeUnavailable('/signup-start'))\r\n return {}\r\n }\r\n },\r\n\r\n async recieveCreditSafeCompanyResponseModel(store, model: CreditSafeCompanyResponseModel) {\r\n store.commit('setName', resetName(model.company_name))\r\n store.commit('setAddress', resetAddress(model.address))\r\n store.commit('setPostalCode', resetPostalCode(parseInt(model.zip_code, 10)))\r\n store.commit('setCity', resetCity(model.city))\r\n switch (model.f_tax?.toLowerCase()) {\r\n case 'yes':\r\n store.commit('setTaxCode', 'yes')\r\n break\r\n case 'no':\r\n store.commit('setTaxCode', 'no')\r\n break\r\n default:\r\n store.commit('setTaxCode', 'unavailable')\r\n break\r\n }\r\n },\r\n\r\n async recieveCreditSafePersonalResponseModel(store, model: CreditSafePersonalResponseModel) {\r\n store.commit('setName', resetName(`${model.first_name ?? ''} ${model.last_name ?? ''}`.trim()))\r\n store.commit('setAddress', resetAddress(model.address))\r\n store.commit('setPostalCode', resetPostalCode(parseInt(model.zip_code, 10)))\r\n store.commit('setCity', resetCity(model.city))\r\n store.commit('setTaxCode', 'unavailable')\r\n },\r\n\r\n /**\r\n * Registers a new creditor, i.e. sign-up to service\r\n *\r\n * @param store The vuex store.\r\n */\r\n async createCreditor(store): Promise {\r\n console.log('CREATE CREDITOR START')\r\n\r\n const data: CreditorSelfRegistrationsPostModel = {\r\n organisation_id: state.organisationId.toOrganisationNumber(),\r\n\r\n name: state.name.toString(),\r\n address: state.address.toString(),\r\n co_address: '',\r\n postal_code: state.postalCode.toNumber(),\r\n city: state.city.toString(),\r\n country_code: 'SE',\r\n\r\n plusgiro: '',\r\n bankgiro: state.bankgiro.toString(),\r\n iban: '',\r\n bic: '',\r\n currency: 'SEK',\r\n\r\n unique_identifier: '',\r\n user_messages_by_rest_api: true,\r\n creditor_user: {\r\n personal_id_mobile_bankid: state.personalNumber.toString(),\r\n full_name: `${state.firstName.toString()} ${state.lastName.toString()}`,\r\n first_name: state.firstName.toString(),\r\n last_name: state.lastName.toString(),\r\n mobile_phone: state.mobilePhone.toString(),\r\n email: state.email.toString(),\r\n description: '',\r\n no_messages: false,\r\n unique_identifier: '',\r\n administration_rights: ['full_administration_rights'],\r\n },\r\n }\r\n\r\n const request: APIRequest = {\r\n method: 'post',\r\n path: '/creditors-self-registrations',\r\n data,\r\n action: 'creditors/recieveCreditorSelfRegistrationsPostResponseModel',\r\n mock: mock.mockCreditorSelfRegistrationsPostResponseModel(data),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n\r\n // Refresh token after sign-up to exchange an unauthorized token with an authorized or\r\n // to renew the authentication in the case of enroll\r\n const unauthorizedToken: string | undefined = store.rootGetters['authentications/getUnauthorizedToken']\r\n if (unauthorizedToken !== undefined) {\r\n return store.dispatch('authentications/refreshUnauthorizedToken', null, { root: true })\r\n }\r\n return store.dispatch('authentications/renewAuthentication', null, { root: true })\r\n },\r\n\r\n /**\r\n * Recieves a response for registering a new creditor\r\n *\r\n * @param store The vuex store.\r\n * @param response The model for case creation.\r\n */\r\n async recieveCreditorSelfRegistrationsPostResponseModel(store, model: CreditorSelfRegistrationsPostResponseModel) {\r\n // After a sign-up we need to switch to the new creditor, in the case of enroll we leave the current creditor id as it is\r\n const unauthorizedToken: string | undefined = store.rootGetters['authentications/getUnauthorizedToken']\r\n if (unauthorizedToken !== undefined) {\r\n store.commit('setCurrentCreditorId', model.creditor_id, { root: true })\r\n }\r\n },\r\n\r\n /**\r\n * Prepares the store for starting a new creditor sign up. The difference between startCreditorSignup\r\n * and startCreditorEnroll are which data that is pre-populated\r\n *\r\n * @param store The vuex store.\r\n */\r\n async startCreditorSignup(store) {\r\n // Look-up dependent data\r\n const personalNumber: InputText = store.rootGetters['authentications/getPersonalNumber']\r\n const firstName: string | undefined = store.rootGetters['authentications/getFirstName']\r\n const lastName: string | undefined = store.rootGetters['authentications/getLastName']\r\n\r\n store.commit('setOrganisationId', resetOrganisationId())\r\n\r\n store.commit('setName', resetName())\r\n store.commit('setAddress', resetAddress())\r\n store.commit('setPostalCode', resetPostalCode())\r\n store.commit('setCity', resetCity())\r\n\r\n store.commit('setBankgiro', resetBankgiro())\r\n\r\n store.commit('setPersonalNumber', resetPersonalNumber(personalNumber.value))\r\n store.commit('setFirstName', resetFirstName(firstName ?? null))\r\n store.commit('setLastName', resetLastName(lastName ?? null))\r\n store.commit('setMobilePhone', resetMobilePhone())\r\n store.commit('setEmail', resetEmail())\r\n },\r\n\r\n /**\r\n * Prepares the store for starting a new creditor enroll. The difference between startCreditorSignup\r\n * and startCreditorEnroll are which data that is pre-populated\r\n *\r\n * @param store The vuex store.\r\n */\r\n async startCreditorEnroll(store) {\r\n // Look-up dependent data\r\n const creditorUserId: number | undefined = store.rootGetters['authentications/getCreditorUserId']\r\n const creditorUser: CreditorUser | APIError = await store.dispatch('creditorUsers/retrieveCreditorUserDetails', creditorUserId, { root: true })\r\n\r\n if (isAPIError(creditorUser)) {\r\n apiError(store, creditorUser)\r\n return\r\n }\r\n\r\n store.commit('setOrganisationId', resetOrganisationId())\r\n\r\n store.commit('setName', resetName())\r\n store.commit('setAddress', resetAddress())\r\n store.commit('setPostalCode', resetPostalCode())\r\n store.commit('setCity', resetCity())\r\n\r\n store.commit('setBankgiro', resetBankgiro())\r\n\r\n store.commit('setPersonalNumber', resetPersonalNumber(creditorUser.personalNumber))\r\n store.commit('setFirstName', resetFirstName(creditorUser.firstName))\r\n store.commit('setLastName', resetLastName(creditorUser.lastName))\r\n store.commit('setMobilePhone', resetMobilePhone(creditorUser.mobilePhone))\r\n store.commit('setEmail', resetEmail(creditorUser.email))\r\n },\r\n}\r\n\r\nexport const creditors: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import { CreditorUserDepartmentAccessesGetModel, CreditorUserDepartmentAccessesPostResponseModel, CreditorUserDepartmentAccessesPostModel } from '@/models/creditors'\r\nimport { PageModel, Pagination } from '@/store/modules/creditorsAPI'\r\n\r\nexport function mockCreditorUserDepartmentAccessesPostResponseModel(data: CreditorUserDepartmentAccessesPostModel[]): CreditorUserDepartmentAccessesPostResponseModel[] {\r\n return [{\r\n }]\r\n}\r\n\r\nexport function mockCreditorUserDepartmentAccessesGetModel(pagination: Pagination): PageModel {\r\n let results = mockCreditorUserDepartmentAccessesGetModels\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n\r\nconst mockCreditorUserDepartmentAccessesGetModels: CreditorUserDepartmentAccessesGetModel[] = [\r\n]\r\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError } from '@/store/modules/creditorsAPI'\r\nimport { CreditorUserDepartmentAccessesGetModel, CreditorUserDepartmentAccessesPostModel, CreditorUserDepartmentAccessesPostResponseModel } from '@/models/creditors'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport * as mock from '@/mockdata/creditorUserDepartmentAccesses'\r\n\r\nexport interface CreditorUserDepartmentAccess {\r\n creditorUserId: number;\r\n creditorDepartmentId: number;\r\n}\r\n\r\nexport interface CreditorUserDepartmentAccessesState {\r\n alert: Alert | undefined;\r\n creditorUserDepartmentAccesses?: Page;\r\n}\r\n\r\nexport const state: CreditorUserDepartmentAccessesState = {\r\n alert: undefined,\r\n creditorUserDepartmentAccesses: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getAllCreditorUserDepartmentAccesses(state): CreditorUserDepartmentAccess[] {\r\n return state.creditorUserDepartmentAccesses?.items ?? []\r\n },\r\n getCreditorUserDepartmentAccesses(state): Page | undefined {\r\n return state.creditorUserDepartmentAccesses\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCreditorUserDepartmentAccesses(state, creditorUserDepartmentAccesses: Page) {\r\n state.creditorUserDepartmentAccesses = creditorUserDepartmentAccesses\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n async refreshCreditorUserDepartmentAccesses(store, page: number): Promise | APIError> {\r\n console.log('REFRESHING CREDITOR USER DEPARTMENT ACCESSES')\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(50, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: '/creditor-user-department-accesses',\r\n action: 'creditorUserDepartmentAccesses/recieveCreditorUserDepartmentAccessesGetModel',\r\n mock: mock.mockCreditorUserDepartmentAccessesGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCreditorUserMessageGroups\r\n },\r\n\r\n async recieveCreditorUserDepartmentAccessesGetModel(store, page: PageModel) {\r\n // Transform\r\n const creditorUserDepartmentAccess: Page = Page.transform(page, ((it) => ({\r\n creditorUserId: it.creditor_user.creditor_id,\r\n creditorDepartmentId: it.creditor_department.creditor_department_id,\r\n })))\r\n store.commit('setCreditorUserDepartmentAccesses', creditorUserDepartmentAccess)\r\n },\r\n\r\n /**\r\n * Creates a new creditor user department access\r\n *\r\n * @param store The vuex store.\r\n */\r\n async createCreditorUserDepartmentAccesses(store, { creditorUserId, creditorDepartmentIds }: { creditorUserId: number, creditorDepartmentIds: number[] }): Promise {\r\n console.log('CREATE CREDITOR USER DEPARTMENT ACCESS')\r\n\r\n const data: CreditorUserDepartmentAccessesPostModel[] = creditorDepartmentIds.map((it) => ({\r\n creditor_user_id: creditorUserId,\r\n creditor_department_id: it,\r\n }))\r\n\r\n const request: APIRequest = {\r\n method: 'post',\r\n path: '/creditor-user-department-accesses',\r\n data,\r\n action: 'creditorUserDepartmentAccesses/recieveCreditorUserDepartmentAccessesPostResponseModel',\r\n mock: mock.mockCreditorUserDepartmentAccessesPostResponseModel(data),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n /**\r\n * Recieves a response for creating a new creditor user department access\r\n *\r\n * @param store The vuex store.\r\n * @param response The model for creditor user department access creation.\r\n */\r\n async recieveCreditorUserDepartmentAccessesPostResponseModel(store, model: CreditorUserDepartmentAccessesPostResponseModel[]) {\r\n },\r\n}\r\n\r\nexport const creditorUserDepartmentAccesses: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport { CreditorUserMessageGroupsGetModel } from '@/models/creditors'\r\n\r\nexport function mockCreditorUserMessageGroupsGetModel(pagination: Pagination): PageModel {\r\n let results = mockCreditorUserMessageGroupsGetModels\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n\r\nconst mockCreditorUserMessageGroupsGetModels: CreditorUserMessageGroupsGetModel[] = [\r\n]\r\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError } from '@/store/modules/creditorsAPI'\r\nimport { CreditorUserMessageGroupsGetModel } from '@/models/creditors'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport * as mock from '@/mockdata/creditorUserMessageGroups'\r\n\r\nexport interface CreditorUserMessageGroup {\r\n groupMessageId: number;\r\n name: string;\r\n}\r\n\r\nexport interface CreditorUserMessageGroupState {\r\n alert: Alert | undefined;\r\n creditorUserMessageGroups?: Page;\r\n}\r\n\r\nexport const state: CreditorUserMessageGroupState = {\r\n alert: undefined,\r\n creditorUserMessageGroups: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getAllCreditorUserMessageGroups(state): CreditorUserMessageGroup[] {\r\n return state.creditorUserMessageGroups?.items ?? []\r\n },\r\n getCreditorUserMessageGroups(state): Page | undefined {\r\n return state.creditorUserMessageGroups\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCreditorUserMessageGroups(state, creditorUserMessageGroups: Page) {\r\n state.creditorUserMessageGroups = creditorUserMessageGroups\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n async refreshCreditorUserMessageGroups(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CREDITOR USER MESSAGE GROUPS ${page} START`)\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(50, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: '/creditor-user-message-groups',\r\n action: 'creditorUserMessageGroups/recieveCreditorUserMessageGroupsGetModel',\r\n mock: mock.mockCreditorUserMessageGroupsGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCreditorUserMessageGroups\r\n },\r\n\r\n async recieveCreditorUserMessageGroupsGetModel(store, page: PageModel) {\r\n // Transform\r\n const creditorUserMessageGroups: Page = Page.transform(page, ((it) => ({\r\n groupMessageId: it.group_message_id,\r\n name: it.name,\r\n })))\r\n store.commit('setCreditorUserMessageGroups', creditorUserMessageGroups)\r\n\r\n console.log('REFRESHING CREDITOR USER MESSAGE GROUPS END')\r\n },\r\n}\r\n\r\nexport const creditorUserMessageGroups: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport { SentToType } from '@/models/messages'\r\nimport { CreditorUserMessagesGetModel } from '@/models/creditors'\r\n\r\nexport function mockCreditorUserMessagesGetModel(pagination: Pagination, { isRead, sentTo }: { isRead?: boolean; sentTo: SentToType }): PageModel {\r\n // Filter on is_read and sent_to\r\n let results = mockCreditorUserMessagesGetModels.filter((it) => {\r\n if (isRead !== undefined) return it.is_read === isRead && it.sent_to === sentTo\r\n return it.sent_to === sentTo\r\n })\r\n results.sort((lhs, rhs) => (lhs.create_date < rhs.create_date ? 1 : -1))\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: { isRead, sentTo },\r\n _items: results,\r\n }\r\n}\r\n\r\nconst mockCreditorUserMessagesGetModels: CreditorUserMessagesGetModel[] = [\r\n]\r\n","import {\r\n ActionTree, GetterTree, Module, MutationTree,\r\n} from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport {\r\n creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError,\r\n} from '@/store/modules/creditorsAPI'\r\nimport { SentToType, translateSentToType } from '@/models/messages'\r\nimport { CreditorUserMessagesGetModel } from '@/models/creditors'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport * as mock from '@/mockdata/creditorUserMessages'\r\n\r\nexport interface CreditorUserMessage {\r\n caseId: number;\r\n caseMessageId: number;\r\n createDate: string;\r\n subject: string;\r\n body: string;\r\n sentTo: string;\r\n sentToType: SentToType;\r\n isRead: boolean;\r\n clientId: number;\r\n userId: number;\r\n groupMessageId: number;\r\n expanded: boolean;\r\n}\r\n\r\nexport interface CreditorUserMessageState {\r\n alert: Alert | undefined;\r\n inbox?: Page;\r\n sent?: Page;\r\n archived?: Page;\r\n}\r\n\r\nexport const state: CreditorUserMessageState = {\r\n alert: undefined,\r\n inbox: undefined,\r\n sent: undefined,\r\n archived: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getInbox(state, getters, rootState, rootGetters): Page | undefined {\r\n return state.inbox\r\n },\r\n getSent(state, getters, rootState, rootGetters): Page | undefined {\r\n return state.sent\r\n },\r\n getArchived(state, getters, rootState, rootGetters): Page | undefined {\r\n return state.archived\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setInbox(state, inbox: Page) {\r\n state.inbox = inbox\r\n },\r\n setSent(state, sent: Page) {\r\n state.sent = sent\r\n },\r\n setArchived(state, archived: Page) {\r\n state.archived = archived\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n async refreshInbox(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CREDITOR USER MESSAGES ${page} START`)\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const extra = <{ isRead?: boolean; sentTo: SentToType }> { isRead: false, sentTo: 'TO_CREDITOR' }\r\n const request = {\r\n method: 'get',\r\n path: `/creditor-user-messages?lookup={\"is_read\":\"${extra.isRead}\",\"sent_to\":\"${extra.sentTo}\"}`,\r\n extra,\r\n action: 'creditorUserMessages/recieveCreditorUserMessagesGetModel',\r\n mock: mock.mockCreditorUserMessagesGetModel(pagination, extra),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getInbox\r\n },\r\n\r\n async refreshSent(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CREDITOR USER MESSAGES ${page} START`)\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const extra = <{ isRead?: boolean; sentTo: SentToType }> { isRead: undefined, sentTo: 'TO_VISMA' }\r\n const request = {\r\n method: 'get',\r\n path: `/creditor-user-messages?lookup={\"sent_to\":\"${extra.sentTo}\"}`,\r\n extra,\r\n action: 'creditorUserMessages/recieveCreditorUserMessagesGetModel',\r\n mock: mock.mockCreditorUserMessagesGetModel(pagination, extra),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getSent\r\n },\r\n\r\n async refreshArchived(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CREDITOR USER MESSAGES ${page} START`)\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(10, page)\r\n\r\n const extra = <{ isRead?: boolean; sentTo: SentToType }> { isRead: true, sentTo: 'TO_CREDITOR' }\r\n const request = {\r\n method: 'get',\r\n path: `/creditor-user-messages?lookup={\"is_read\":\"${extra.isRead}\",\"sent_to\":\"${extra.sentTo}\"}`,\r\n extra,\r\n action: 'creditorUserMessages/recieveCreditorUserMessagesGetModel',\r\n mock: mock.mockCreditorUserMessagesGetModel(pagination, extra),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getArchived\r\n },\r\n\r\n async recieveCreditorUserMessagesGetModel(store, page: PageModel) {\r\n const { isRead, sentTo } = page.extra as { isRead?: boolean; sentTo: SentToType }\r\n\r\n // Transform\r\n const creditorUserMessages: Page = Page.transform(page, ((it) => ({\r\n caseId: it.case_id,\r\n caseMessageId: it.case_message_id,\r\n createDate: it.create_date,\r\n subject: it.subject,\r\n body: it.body,\r\n sentTo: translateSentToType(it.sent_to),\r\n sentToType: it.sent_to,\r\n isRead: it.is_read,\r\n clientId: it.client_id,\r\n userId: it.user_id,\r\n groupMessageId: it.group_message_id,\r\n expanded: false,\r\n })))\r\n // const unreadCount = caseMessages?.filter(it => active.includes(it.matches)).reduce(((acc, it) => acc + it.count), 0)\r\n // store.commit('setActiveCount', activeCount ?? 0)\r\n\r\n switch (sentTo) {\r\n case 'TO_CREDITOR':\r\n if (isRead === false) store.commit('setInbox', creditorUserMessages)\r\n else store.commit('setArchived', creditorUserMessages)\r\n break\r\n case 'TO_VISMA':\r\n store.commit('setSent', creditorUserMessages)\r\n break\r\n }\r\n\r\n console.log('REFRESHING CREDITOR USER MESSAGES END')\r\n },\r\n}\r\n\r\nexport const creditorUserMessages: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport { CreditorUserMessageSubjectsGetModel } from '@/models/creditors'\r\n\r\nexport function mockCreditorUserMessageSubjectsGetModel(pagination: Pagination): PageModel {\r\n let results = mockCreditorUserMessageSubjectsGetModels\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n\r\nconst mockCreditorUserMessageSubjectsGetModels: CreditorUserMessageSubjectsGetModel[] = [\r\n]\r\n","import {\r\n ActionTree, GetterTree, Module, MutationTree,\r\n} from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport {\r\n creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError,\r\n} from '@/store/modules/creditorsAPI'\r\nimport { CreditorUserMessageSubjectsGetModel } from '@/models/creditors'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport * as mock from '@/mockdata/creditorUserMessageSubjects'\r\n\r\nexport interface CreditorUserMessageSubject {\r\n subject: string;\r\n}\r\n\r\nexport interface CreditorUserMessageSubjectState {\r\n alert: Alert | undefined;\r\n creditorUserMessageSubjects?: Page;\r\n}\r\n\r\nexport const state: CreditorUserMessageSubjectState = {\r\n alert: undefined,\r\n creditorUserMessageSubjects: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getAllCreditorUserMessageSubjects(state): CreditorUserMessageSubject[] {\r\n return state.creditorUserMessageSubjects?.items ?? []\r\n },\r\n getCreditorUserMessageSubjects(state): Page | undefined {\r\n return state.creditorUserMessageSubjects\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCreditorUserMessageSubjects(state, creditorUserMessageSubjects: Page) {\r\n state.creditorUserMessageSubjects = creditorUserMessageSubjects\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n async refreshCreditorUserMessageSubjects(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CREDITOR USER MESSAGE SUBJECTS ${page} START`)\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(50, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: '/creditor-user-message-subjects',\r\n action: 'creditorUserMessageSubjects/recieveCreditorUserMessageSubjectsGetModel',\r\n mock: mock.mockCreditorUserMessageSubjectsGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCreditorUserMessageSubjects\r\n },\r\n\r\n async recieveCreditorUserMessageSubjectsGetModel(store, page: PageModel) {\r\n // Transform\r\n const creditorUserMessageSubjects: Page = Page.transform(page, ((it) => ({\r\n subject: it.subject,\r\n })))\r\n store.commit('setCreditorUserMessageSubjects', creditorUserMessageSubjects)\r\n\r\n console.log('REFRESHING CREDITOR USER MESSAGE SUBJECTS END')\r\n },\r\n}\r\n\r\nexport const creditorUserMessageSubjects: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import { Pagination, PageModel } from '@/store/modules/creditorsAPI'\r\nimport {\r\n CreditorUsersGetModel,\r\n CreditorUsersPostModel,\r\n CreditorUsersPostResponseModel,\r\n CreditorUsersDetailsModel,\r\n CreditorUsersPatchResponseModel,\r\n CreditorUsersPatchModel,\r\n} from '@/models/creditors'\r\nimport { CreditorUser } from '@/store/modules/creditorUsers'\r\n\r\nexport function mockCreditorUsersDetailsModel(current?: CreditorUser): CreditorUsersDetailsModel {\r\n return {\r\n }\r\n}\r\n\r\nexport function mockCreditorUsersPostResponseModel(data: CreditorUsersPostModel[]): CreditorUsersPostResponseModel[] {\r\n return [{\r\n creditor_user_id: 28405,\r\n _etag: 'afkjalsdfj',\r\n }]\r\n}\r\n\r\nexport function mockCreditorUsersPatchResponseModel(creditorUserId: number, data: CreditorUsersPatchModel): CreditorUsersPatchResponseModel {\r\n return {\r\n _etag: 'xyz',\r\n }\r\n}\r\n\r\nexport function mockCreditorUsersGetModel(pagination: Pagination): PageModel {\r\n const items: CreditorUsersGetModel[] = [\r\n ]\r\n\r\n // No filtering\r\n let results = items\r\n const total = results.length\r\n\r\n // Paging\r\n const start = (pagination.page - 1) * pagination.maxResults\r\n const end = start + pagination.maxResults\r\n results = results.slice(start, end)\r\n\r\n return {\r\n _total: total,\r\n _max_results: pagination.maxResults,\r\n _page: pagination.page,\r\n extra: undefined,\r\n _items: results,\r\n }\r\n}\r\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { creditorsAPI, APIRequest, Pagination, PageModel, Page, APIError, missingError } from '@/store/modules/creditorsAPI'\r\nimport { CreditorUsersGetModel, CreditorUsersPostModel, CreditorUsersPostResponseModel, CreditorUsersDetailsModel, CreditorUsersPatchModel, CreditorUsersPatchResponseModel, CreditorUsersDeleteModel, AdministrationRights } from '@/models/creditors'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport * as mock from '@/mockdata/creditorUsers'\r\nimport { InputText, InputCheckbox } from '@/models/validations'\r\nimport { CreditorDepartment } from './creditorDepartments'\r\n\r\nexport interface CreditorUser {\r\n creditorUserId: number;\r\n creditorId: number;\r\n personalNumber: string;\r\n firstName: string;\r\n lastName: string;\r\n fullName: string;\r\n email: string;\r\n userName: string;\r\n\r\n isCurrent: boolean;\r\n\r\n mobilePhone: string | undefined;\r\n reportSettlement: boolean | undefined;\r\n reportInvoiceSpecification: boolean | undefined;\r\n administrationRights: AdministrationRights[]\r\n}\r\n\r\nexport interface CreditorUsersState {\r\n alert: Alert | undefined;\r\n creditorUsers?: Page;\r\n currentCreditorUser?: CreditorUser;\r\n currentEtag?: string;\r\n createdCreditorUserId?: string;\r\n\r\n personalNumber: InputText;\r\n firstName: InputText;\r\n lastName: InputText;\r\n mobilePhone: InputText;\r\n email: InputText;\r\n rightsAll: InputCheckbox;\r\n rightsUser: InputCheckbox;\r\n rightsDepartment: InputCheckbox;\r\n rightsCase: InputCheckbox;\r\n reportSettlement: InputCheckbox;\r\n reportInvoiceSpecification: InputCheckbox;\r\n}\r\n\r\nfunction resetPersonalNumber(value: string | null = null): InputText {\r\n return InputText.eitherNumberLike({ value: value, minLength: 10, maxLength: 12, digitsOnly: true, required: true })\r\n}\r\nfunction resetFirstName(value: string | null = null): InputText {\r\n return InputText.standard({ value, minLength: null, maxLength: 50, required: true })\r\n}\r\nfunction resetLastName(value: string | null = null): InputText {\r\n return InputText.standard({ value, minLength: null, maxLength: 50, required: true })\r\n}\r\nfunction resetMobilePhone(value: string | null = null): InputText {\r\n return InputText.numberLike({ value: value, minLength: null, maxLength: 20, digitsOnly: false, required: true })\r\n}\r\nfunction resetEmail(value: string | null = null): InputText {\r\n return InputText.email({ value: value, required: true })\r\n}\r\nfunction resetRightsAll(value = true): InputCheckbox {\r\n return InputCheckbox.minimum({ value: value })\r\n}\r\nfunction resetRightsUser(value: boolean | null = null): InputCheckbox {\r\n return InputCheckbox.minimum({ value: value })\r\n}\r\nfunction resetRightsDepartment(value: boolean | null = null): InputCheckbox {\r\n return InputCheckbox.minimum({ value: value })\r\n}\r\nfunction resetRightsCase(value: boolean | null = null): InputCheckbox {\r\n return InputCheckbox.minimum({ value: value })\r\n}\r\nfunction resetReportSettlement(value = true): InputCheckbox {\r\n return InputCheckbox.minimum({ value: value })\r\n}\r\nfunction resetReportInvoiceSpecification(value = true): InputCheckbox {\r\n return InputCheckbox.minimum({ value: value })\r\n}\r\n\r\nexport const state: CreditorUsersState = {\r\n alert: undefined,\r\n creditorUsers: undefined,\r\n currentCreditorUser: undefined,\r\n\r\n personalNumber: resetPersonalNumber(),\r\n firstName: resetFirstName(),\r\n lastName: resetLastName(),\r\n mobilePhone: resetMobilePhone(),\r\n email: resetEmail(),\r\n rightsAll: resetRightsAll(),\r\n rightsUser: resetRightsUser(),\r\n rightsDepartment: resetRightsDepartment(),\r\n rightsCase: resetRightsCase(),\r\n reportSettlement: resetReportSettlement(),\r\n reportInvoiceSpecification: resetReportInvoiceSpecification(),\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getCreditorUsers(state): Page | undefined {\r\n return state.creditorUsers\r\n },\r\n getCurrentCreditorUser(state): CreditorUser | undefined {\r\n return state.currentCreditorUser\r\n },\r\n getCurrentEtag(state): string | undefined {\r\n return state.currentEtag\r\n },\r\n getCreatedCreditorUserId(state): string | undefined {\r\n return state.createdCreditorUserId\r\n },\r\n\r\n getPersonalNumber(state): InputText {\r\n return state.personalNumber\r\n },\r\n getFirstName(state): InputText {\r\n return state.firstName\r\n },\r\n getLastName(state): InputText {\r\n return state.lastName\r\n },\r\n getMobilePhone(state): InputText {\r\n return state.mobilePhone\r\n },\r\n getEmail(state): InputText {\r\n return state.email\r\n },\r\n getRightsAll(state): InputCheckbox {\r\n return state.rightsAll\r\n },\r\n getRightsUser(state): InputCheckbox {\r\n return state.rightsUser\r\n },\r\n getRightsDepartment(state): InputCheckbox {\r\n return state.rightsDepartment\r\n },\r\n getRightsCase(state): InputCheckbox {\r\n return state.rightsCase\r\n },\r\n getReportSettlement(state): InputCheckbox {\r\n return state.reportSettlement\r\n },\r\n getReportInvoiceSpecification(state): InputCheckbox {\r\n return state.reportInvoiceSpecification\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setCreditorUsers(state, creditorUsers: Page) {\r\n state.creditorUsers = creditorUsers\r\n },\r\n setCurrentCreditorUser(state, creditorUser?: CreditorUser) {\r\n state.currentCreditorUser = creditorUser\r\n\r\n state.personalNumber = resetPersonalNumber(creditorUser?.personalNumber)\r\n state.firstName = resetFirstName(creditorUser?.firstName)\r\n state.lastName = resetLastName(creditorUser?.lastName)\r\n state.mobilePhone = resetMobilePhone(creditorUser?.mobilePhone)\r\n state.email = resetEmail(creditorUser?.email)\r\n state.rightsAll = resetRightsAll(creditorUser?.administrationRights.includes('full_administration_rights') ?? false)\r\n state.rightsUser = resetRightsUser(creditorUser?.administrationRights.includes('user_administration_rights'))\r\n state.rightsDepartment = resetRightsDepartment(creditorUser?.administrationRights.includes('department_administration_rights'))\r\n state.rightsCase = resetRightsCase(creditorUser?.administrationRights.includes('case_administration_rights'))\r\n state.reportSettlement = resetReportSettlement(creditorUser?.reportSettlement ?? false)\r\n state.reportInvoiceSpecification = resetReportSettlement(creditorUser?.reportInvoiceSpecification ?? false)\r\n },\r\n setCurrentEtag(state, currentEtag?: string) {\r\n state.currentEtag = currentEtag\r\n },\r\n setCreatedCreditorUserId(state, createdCreditorUserId?: string) {\r\n state.createdCreditorUserId = createdCreditorUserId\r\n },\r\n\r\n setPersonalNumber(state, personalNumber: InputText) {\r\n state.personalNumber = personalNumber\r\n },\r\n setFirstName(state, firstName: InputText) {\r\n state.firstName = firstName\r\n },\r\n setLastName(state, lastName: InputText) {\r\n state.lastName = lastName\r\n },\r\n setMobilePhone(state, mobilePhone: InputText) {\r\n state.mobilePhone = mobilePhone\r\n },\r\n setEmail(state, email: InputText) {\r\n state.email = email\r\n },\r\n setRightsAll(state, rightsAll: InputCheckbox) {\r\n state.rightsAll = rightsAll\r\n if (state.rightsAll.value) {\r\n state.rightsUser.value = true\r\n state.rightsDepartment.value = true\r\n state.rightsCase.value = true\r\n } else if (state.rightsUser.value && state.rightsCase.value && state.rightsDepartment.value) {\r\n state.rightsUser.value = false\r\n state.rightsDepartment.value = false\r\n state.rightsCase.value = false\r\n }\r\n },\r\n setRightsUser(state, rightsUser: InputCheckbox) {\r\n state.rightsUser = rightsUser\r\n state.rightsAll.value = state.rightsUser.value && state.rightsCase.value && state.rightsDepartment.value\r\n },\r\n setRightsDepartment(state, rightsDepartment: InputCheckbox) {\r\n state.rightsDepartment = rightsDepartment\r\n state.rightsAll.value = state.rightsDepartment.value && state.rightsCase.value && state.rightsUser.value\r\n },\r\n setRightsCase(state, rightsCase: InputCheckbox) {\r\n state.rightsCase = rightsCase\r\n state.rightsAll.value = state.rightsCase.value && state.rightsDepartment.value && state.rightsUser.value\r\n },\r\n setReportSettlement(state, reportSettlement: InputCheckbox) {\r\n state.reportSettlement = reportSettlement\r\n },\r\n setReportInvoiceSpecification(state, reportInvoiceSpecification: InputCheckbox) {\r\n state.reportInvoiceSpecification = reportInvoiceSpecification\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n /**\r\n * Refreshes a page of creditor users\r\n *\r\n * @param store The vuex store.\r\n */\r\n async refreshCreditorUsers(store, page: number): Promise | APIError> {\r\n console.log(`REFRESHING CREDITOR USERS ${page} START`)\r\n\r\n // Build pagination from requested page\r\n const pagination = new Pagination(20, page)\r\n\r\n const request = {\r\n method: 'get',\r\n path: '/creditor-users',\r\n action: 'creditorUsers/recieveCreditorUsersGetModels',\r\n mock: mock.mockCreditorUsersGetModel(pagination),\r\n paging: pagination,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return store.getters.getCreditorUsers\r\n },\r\n\r\n async recieveCreditorUsersGetModels(store, page: PageModel) {\r\n const creditorUserId: number | undefined = store.rootGetters['authentications/getCreditorUserId']\r\n const creditorUsers: Page = Page.transform(page, ((it) => {\r\n creditorUserId: it.creditor_user_id,\r\n creditorId: it.creditor_id,\r\n personalNumber: it.personal_id_mobile_bankid,\r\n firstName: it.first_name,\r\n lastName: it.last_name,\r\n fullName: it.full_name,\r\n email: it.email,\r\n userName: it.user_name,\r\n\r\n isCurrent: it.creditor_user_id === creditorUserId,\r\n \r\n mobilePhone: undefined,\r\n reportSettlement: undefined,\r\n reportInvoiceSpecification: undefined,\r\n administrationRights: [],\r\n }))\r\n store.commit('setCreditorUsers', creditorUsers)\r\n console.log('REFRESHING CREDITOR USERS END')\r\n },\r\n\r\n /**\r\n * Retrieves the details for the provided creditor user\r\n *\r\n * @param store The vuex store.\r\n */\r\n async retrieveCreditorUserDetails(store, creditorUserId: number): Promise {\r\n console.log('RETRIEVING CREDITOR USER')\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/creditor-users/${creditorUserId}`,\r\n action: 'creditorUsers/recieveCreditorUsersDetailsModel',\r\n mock: mock.mockCreditorUsersDetailsModel(undefined),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n\r\n const { currentCreditorUser } = store.state\r\n if (currentCreditorUser === undefined) {\r\n return missingError('currentCreditorUser is missing')\r\n }\r\n\r\n return currentCreditorUser\r\n },\r\n\r\n /**\r\n * Retrieves the details for the current creditor user\r\n *\r\n * @param store The vuex store.\r\n */\r\n async refreshCurrentCreditorUserDetails(store): Promise {\r\n console.log('REFRESHING CREDITOR USER')\r\n const current: CreditorUser | undefined = store.getters.getCurrentCreditorUser\r\n\r\n if (current === undefined) return true\r\n\r\n const request = {\r\n method: 'get',\r\n path: `/creditor-users/${current?.creditorUserId}`,\r\n action: 'creditorUsers/recieveCreditorUsersDetailsModel',\r\n mock: mock.mockCreditorUsersDetailsModel(current),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n\r\n return true\r\n },\r\n\r\n async recieveCreditorUsersDetailsModel(store, details: CreditorUsersDetailsModel) {\r\n const creditorUserId: number | undefined = store.rootGetters['authentications/getCreditorUserId']\r\n const creditorUser: CreditorUser = {\r\n creditorUserId: details.creditor_user_id,\r\n creditorId: details.creditor_id,\r\n personalNumber: details.personal_id_mobile_bankid,\r\n fullName: details.full_name,\r\n firstName: details.first_name,\r\n lastName: details.last_name,\r\n email: details.email,\r\n userName: details.user_name,\r\n\r\n isCurrent: details.creditor_user_id === creditorUserId,\r\n\r\n mobilePhone: details.mobile_phone,\r\n reportSettlement: details.send_settlement_report,\r\n reportInvoiceSpecification: details.send_invoice_specification,\r\n administrationRights: details.administration_rights,\r\n }\r\n\r\n store.commit('setCurrentCreditorUser', creditorUser)\r\n store.commit('setCurrentEtag', details._etag)\r\n },\r\n\r\n /**\r\n * Creates a new creditor user\r\n *\r\n * @param store The vuex store.\r\n */\r\n async createCreditorUser(store): Promise {\r\n // Make 10 digit be 12 instead\r\n var value = state.personalNumber.toPersonalNumber()\r\n store.commit('setPersonalNumber', resetPersonalNumber(value))\r\n\r\n console.log('CREATE CREDITOR USER')\r\n\r\n const currentCreditorId = store.rootGetters.getCurrentCreditorId\r\n\r\n const administration_rights: AdministrationRights[] = []\r\n if (state.rightsAll.value) { administration_rights.push('full_administration_rights') }\r\n if (state.rightsUser.value) { administration_rights.push('user_administration_rights') }\r\n if (state.rightsDepartment.value) { administration_rights.push('department_administration_rights') }\r\n if (state.rightsCase.value) { administration_rights.push('case_administration_rights') }\r\n\r\n const data: CreditorUsersPostModel[] = [{\r\n creditor_id: currentCreditorId,\r\n\r\n personal_id_mobile_bankid: state.personalNumber.toString(),\r\n full_name: `${state.firstName.toString()} ${state.lastName.toString()}`,\r\n first_name: state.firstName.toString(),\r\n last_name: state.lastName.toString(),\r\n mobile_phone: state.mobilePhone.toString(),\r\n email: state.email.toString(),\r\n\r\n description: '',\r\n no_messages: false,\r\n send_settlement_report: state.reportSettlement.value,\r\n send_invoice_specification: state.reportInvoiceSpecification.value,\r\n unique_identifier: '',\r\n administration_rights: administration_rights,\r\n }]\r\n\r\n const request: APIRequest = {\r\n method: 'post',\r\n path: '/creditor-users',\r\n data,\r\n action: 'creditorUsers/recieveCreditorUsersPostResponseModel',\r\n mock: mock.mockCreditorUsersPostResponseModel(data),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n\r\n const { createdCreditorUserId } = store.state\r\n const creditorDepartments: CreditorDepartment[] = store.rootGetters['creditorDepartments/getAllCreditorDepartments']\r\n const creditorDepartmentIds = creditorDepartments.map((it) => it.creditorDepartmentId)\r\n await store.dispatch('creditorUserDepartmentAccesses/createCreditorUserDepartmentAccesses', { creditorUserId: createdCreditorUserId, creditorDepartmentIds: creditorDepartmentIds }, { root: true })\r\n\r\n return true\r\n },\r\n\r\n /**\r\n * Recieves a response for creating a new creditor user\r\n *\r\n * @param store The vuex store.\r\n * @param response The model for creditor user creation.\r\n */\r\n async recieveCreditorUsersPostResponseModel(store, models: CreditorUsersPostResponseModel[]) {\r\n const model = models[0]\r\n store.commit('setCreatedCreditorUserId', model.creditor_user_id)\r\n store.commit('setCurrentEtag', model._etag)\r\n },\r\n\r\n /**\r\n * Edits a creditor user\r\n *\r\n * @param store The vuex store.\r\n */\r\n async editCreditorUser(store): Promise {\r\n // Make 10 digit be 12 instead\r\n var value = state.personalNumber.toPersonalNumber()\r\n store.commit('setPersonalNumber', resetPersonalNumber(value))\r\n\r\n console.log('EDIT CREDITOR USER')\r\n const current = store.state.currentCreditorUser\r\n\r\n if (current === undefined) return missingError('currentCreditorUser')\r\n\r\n const administration_rights: AdministrationRights[] = []\r\n if (state.rightsAll.value) { administration_rights.push('full_administration_rights') }\r\n if (state.rightsUser.value) { administration_rights.push('user_administration_rights') }\r\n if (state.rightsDepartment.value) { administration_rights.push('department_administration_rights') }\r\n if (state.rightsCase.value) { administration_rights.push('case_administration_rights') }\r\n\r\n // Create a PATCH body\r\n const data = {\r\n personal_id_mobile_bankid: state.personalNumber.toString(),\r\n full_name: `${state.firstName.toString()} ${state.lastName.toString()}`,\r\n first_name: state.firstName.toString(),\r\n last_name: state.lastName.toString(),\r\n mobile_phone: state.mobilePhone.toString(),\r\n email: state.email.toString(),\r\n send_settlement_report: state.reportSettlement.value,\r\n send_invoice_specification: state.reportInvoiceSpecification.value,\r\n administration_rights: administration_rights,\r\n }\r\n\r\n // Invoke API\r\n const request = {\r\n method: 'patch',\r\n path: `/creditor-users/${current.creditorUserId}`,\r\n data: data,\r\n _etag: store.state.currentEtag,\r\n action: 'creditorUsers/recieveCreditorUsersPatchModel',\r\n mock: mock.mockCreditorUsersPatchResponseModel(current.creditorUserId, data),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n\r\n return true\r\n },\r\n\r\n /**\r\n * Recieves a response for editing a creditor user\r\n *\r\n * @param store The vuex store.\r\n * @param response The model for creditor user update.\r\n */\r\n async recieveCreditorUsersPatchModel(store, model: CreditorUsersPatchResponseModel) {\r\n store.commit('setCurrentEtag', model._etag)\r\n },\r\n\r\n /**\r\n * Removes a creditor user\r\n *\r\n * @param store The vuex store.\r\n */\r\n async removeCreditorUser(store): Promise {\r\n console.log('REMOVE CREDITOR USER')\r\n const current = store.state.currentCreditorUser\r\n\r\n if (current === undefined) return missingError('currentCreditorUser')\r\n\r\n // Create a DELETE body\r\n const data = {\r\n creditor_user_id: current.creditorUserId,\r\n _etag: store.state.currentEtag,\r\n }\r\n\r\n // Invoke API\r\n const request = {\r\n method: 'delete',\r\n path: `/creditor-users/${current.creditorUserId}`,\r\n data: data,\r\n _etag: store.state.currentEtag,\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n return result\r\n }\r\n return true\r\n },\r\n\r\n /**\r\n * Prepares the store for starting a new creditor user\r\n *\r\n * @param store The vuex store.\r\n */\r\n async startCreatingCreditorUser(store) {\r\n store.commit('setPersonalNumber', resetPersonalNumber())\r\n store.commit('setFirstName', resetFirstName())\r\n store.commit('setLastName', resetLastName())\r\n store.commit('setMobilePhone', resetMobilePhone())\r\n store.commit('setEmail', resetEmail())\r\n store.commit('setRightsAll', resetRightsAll())\r\n store.commit('setRightsUser', resetRightsUser())\r\n store.commit('setRightsDepartment', resetRightsDepartment())\r\n store.commit('setRightsCase', resetRightsCase())\r\n store.commit('setReportSettlement', resetReportSettlement())\r\n store.commit('setReportInvoiceSpecification', resetReportInvoiceSpecification())\r\n },\r\n\r\n async switchCurrentCreditorUserId(store, creditorUserId?: number) {\r\n const creditorUser = store.state.creditorUsers?.items.find((it) => it.creditorUserId === creditorUserId)\r\n store.commit('setCurrentCreditorUser', creditorUser)\r\n },\r\n}\r\n\r\nexport const creditorUsers: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { creditorsAPI, APIRequest, APIError } from '@/store/modules/creditorsAPI'\r\nimport { StatusType, translateStatusType } from '@/models/cases'\r\nimport { GetDashboardGetModel, DashboardEntryModel } from '@/models/dashboard'\r\nimport { Alert, apiError } from '@/models/alerts'\r\nimport * as mock from '@/mockdata/cases'\r\nimport { Formatting } from '@/models/formatting'\r\n\r\nexport type DashboardsProgress = 'INITIAL' | 'LOADING' | 'LOADED' | 'EMPTY' | 'FAILED'\r\n\r\nexport interface Dashboard {\r\n status: string;\r\n remainingTotal: number;\r\n formattedTotal: string;\r\n caseMessagesUnread: number;\r\n count: number;\r\n matches: StatusType[];\r\n}\r\n\r\nexport interface DashboardsState {\r\n alert: Alert | undefined;\r\n progress: DashboardsProgress;\r\n\r\n activeCount: string;\r\n activeRemainingTotal: string;\r\n activeCaseMessagesUnread: number;\r\n dashboards: Dashboard[];\r\n}\r\n\r\nexport const state: DashboardsState = {\r\n alert: undefined,\r\n progress: 'INITIAL',\r\n\r\n activeCount: '',\r\n activeRemainingTotal: '',\r\n activeCaseMessagesUnread: 0,\r\n dashboards: [],\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getAlert(state): Alert | undefined {\r\n return state.alert\r\n },\r\n getProgress(state): DashboardsProgress {\r\n return state.progress\r\n },\r\n getActiveCount(state): string {\r\n return state.activeCount\r\n },\r\n getActiveRemainingTotal(state): string {\r\n return state.activeRemainingTotal\r\n },\r\n getActiveCaseMessagesUnread(state): number {\r\n return state.activeCaseMessagesUnread\r\n },\r\n getDashboards(state, getters): Dashboard[] {\r\n return state.dashboards\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setAlert(state, alert: Alert | undefined) {\r\n state.alert = alert\r\n },\r\n setProgress(state, progress: DashboardsProgress) {\r\n console.log(`PROGRESS: ${progress}`)\r\n state.progress = progress\r\n },\r\n setActiveCount(state, activeCount: number) {\r\n state.activeCount = activeCount.toString()\r\n },\r\n setActiveRemainingTotal(state, activeRemainingTotal: string) {\r\n state.activeRemainingTotal = activeRemainingTotal\r\n },\r\n setActiveCaseMessagesUnread(state, activeCaseMessagesUnread: number) {\r\n state.activeCaseMessagesUnread = activeCaseMessagesUnread\r\n },\r\n setDashboards(state, dashboards: Dashboard[]) {\r\n var found = false\r\n var updated: Dashboard[] = []\r\n dashboards.forEach((replace) => {\r\n found = false\r\n state.dashboards.forEach((current) => {\r\n if (current.matches === replace.matches) {\r\n updated.push( {\r\n status: current.status,\r\n remainingTotal: replace.remainingTotal,\r\n formattedTotal: replace.formattedTotal,\r\n caseMessagesUnread: replace.caseMessagesUnread,\r\n count: replace.count,\r\n matches: current.matches,\r\n })\r\n found = true\r\n }\r\n })\r\n if (!found) {\r\n updated.push(replace)\r\n }\r\n })\r\n state.dashboards = updated\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n /**\r\n * Refresh the Dashboard entries\r\n *\r\n * @param store The vuex store.\r\n */\r\n async refreshDashboards(store): Promise {\r\n console.log('REFRESH DASHBOARD START')\r\n\r\n // Set progress to loading\r\n store.commit('setProgress', 'LOADING')\r\n\r\n const request = {\r\n method: 'get',\r\n path: '/dashboard',\r\n action: 'dashboards/recieveGetDashboardGetModel',\r\n mock: mock.mockGetDashboardGetModel(),\r\n }\r\n const result: true | APIError = await store.dispatch('creditorsAPI/call', request)\r\n if (result !== true) {\r\n apiError(store, result)\r\n store.commit('setProgress', 'FAILED')\r\n return result\r\n }\r\n\r\n // If there are no cases, progress is empty otherwise loaded\r\n const totalCount = state.dashboards.map((it) => it.count).reduce((previous, current) => previous + current, 0)\r\n if (totalCount === 0) {\r\n store.commit('setProgress', 'EMPTY')\r\n } else {\r\n store.commit('setProgress', 'LOADED')\r\n }\r\n\r\n return result\r\n },\r\n\r\n /**\r\n * Recieves a GetDashboardGetModel and transforms it into Dashboard entries an commits them to the store\r\n *\r\n * @param store The vuex store.\r\n * @param model The GetDashboardGetModel model.\r\n */\r\n async recieveGetDashboardGetModel(store, model: GetDashboardGetModel) {\r\n // Extract dashboards from the entries\r\n // According to discussion with VFS, INVOICE should not be shown\r\n const dashboards: Dashboard[] = [\r\n // extractDashboard(model, 'INVOICE'),\r\n extractDashboard(model, ['REMINDER']),\r\n extractDashboard(model, ['COLLECTION']),\r\n extractDashboard(model, ['SURVEILLANCE']),\r\n extractDashboard(model, ['VERDICT_WARNING']),\r\n extractDashboard(model, ['VERDICT']),\r\n extractDashboard(model, ['ENFORCEMENT']),\r\n extractDashboard(model, ['AMORTISATION']),\r\n extractDashboard(model, ['OTHER']),\r\n ]\r\n const active = ['REMINDER', 'COLLECTION', 'SURVEILLANCE', 'VERDICT_WARNING', 'VERDICT', 'ENFORCEMENT', 'AMORTISATION', 'OTHER']\r\n // const active = ['INVOICE', 'REMINDER', 'COLLECTION', 'SURVEILLANCE', 'VERDICT_WARNING', 'VERDICT', 'ENFORCEMENT', 'AMORTISATION', 'OTHER']\r\n\r\n const activeCount = dashboards.filter((it) => active.includes(it.matches[0])).reduce(((acc, it) => acc + it.count), 0)\r\n const activeRemainingTotal = dashboards.filter((it) => active.includes(it.matches[0])).reduce(((acc, it) => acc + it.remainingTotal), 0)\r\n const activeCaseMessagesUnread = dashboards.filter((it) => active.includes(it.matches[0])).reduce(((acc, it) => acc + it.caseMessagesUnread), 0)\r\n\r\n store.commit('setActiveCount', Formatting.formatNumber(activeCount))\r\n store.commit('setActiveRemainingTotal', Formatting.formatAmount(activeRemainingTotal))\r\n store.commit('setActiveCaseMessagesUnread', activeCaseMessagesUnread)\r\n store.commit('setDashboards', dashboards)\r\n },\r\n}\r\n\r\nexport const dashboards: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n creditorsAPI,\r\n },\r\n}\r\n\r\nfunction joinDashboardEntries(lhs: DashboardEntryModel, rhs: DashboardEntryModel): DashboardEntryModel {\r\n return {\r\n remaining_capital: lhs.remaining_capital + rhs.remaining_capital,\r\n count: lhs.count + rhs.count,\r\n unread_messages: lhs.unread_messages + rhs.unread_messages,\r\n }\r\n}\r\n\r\nfunction extractDashboard(model: GetDashboardGetModel, statuses: StatusType[]): Dashboard {\r\n var entry: DashboardEntryModel = { remaining_capital: 0, count: 0, unread_messages: 0 }\r\n statuses.forEach((it) => {\r\n switch (it) {\r\n case 'INVOICE':\r\n entry = joinDashboardEntries(entry, model.invoice)\r\n break\r\n case 'REMINDER':\r\n entry = joinDashboardEntries(entry, model.reminder)\r\n break\r\n case 'COLLECTION':\r\n entry = joinDashboardEntries(entry, model.collection)\r\n break\r\n case 'SURVEILLANCE':\r\n entry = joinDashboardEntries(entry, model.surveillance)\r\n break\r\n case 'VERDICT_WARNING':\r\n entry = joinDashboardEntries(entry, model.verdict_warning)\r\n break\r\n case 'VERDICT':\r\n entry = joinDashboardEntries(entry, model.verdict)\r\n break\r\n case 'ENFORCEMENT':\r\n entry = joinDashboardEntries(entry, model.enforcement)\r\n break\r\n case 'AMORTISATION':\r\n entry = joinDashboardEntries(entry, model.amortisation)\r\n break\r\n case 'OTHER':\r\n entry = joinDashboardEntries(entry, model.other)\r\n break\r\n }\r\n })\r\n\r\n const primary = statuses[0]\r\n return {\r\n status: translateStatusType(primary),\r\n remainingTotal: entry.remaining_capital,\r\n formattedTotal: Formatting.formatAmount(entry.remaining_capital),\r\n caseMessagesUnread: entry.unread_messages,\r\n count: entry.count,\r\n matches: statuses,\r\n }\r\n}\r\n","export class MenuItem {\r\n title: string\r\n paths: string[]\r\n active: boolean\r\n visible: boolean\r\n disabled: boolean\r\n external: boolean\r\n dot: boolean\r\n sub?: Menu\r\n\r\n // A MenuItem can be known by many paths, but the first one is the primary\r\n get path(): string | undefined { return this.paths[0] }\r\n\r\n constructor({ title, active, visible, dot, paths, disabled, external, sub }: { title: string, active: MenuItem[], visible: boolean, dot: boolean, paths: string[], disabled: boolean, external: boolean, sub: Menu | undefined }) {\r\n this.title = title\r\n // Check intersection between paths\r\n this.active = active.filter((it) => it.paths.filter((it) => paths.includes(it)).length > 0).length > 0\r\n this.visible = visible\r\n this.paths = paths\r\n this.disabled = disabled\r\n this.external = external\r\n this.dot = dot\r\n this.sub = sub\r\n }\r\n\r\n static standard({ title, active, visible, path }: { title: string, active: MenuItem[], visible: boolean, path: string | undefined }): MenuItem {\r\n return new MenuItem({ title: title, active: active, visible: visible, paths: path !== undefined ? [path] : [], disabled: false, external: false, dot: false, sub: undefined })\r\n }\r\n\r\n static group({ title, active, visible, paths }: { title: string, active: MenuItem[], visible: boolean, paths: string[] }): MenuItem {\r\n return new MenuItem({ title: title, active: active, visible: visible, paths: paths, disabled: false, external: false, dot: false, sub: undefined })\r\n }\r\n\r\n static submenu({ title, active, visible, path, sub }: { title: string, active: MenuItem[], visible: boolean, path: string | undefined, sub: Menu | undefined }): MenuItem {\r\n return new MenuItem({ title: title, active: active, visible: visible, paths: path !== undefined ? [path] : [], disabled: false, external: false, dot: false, sub: sub })\r\n }\r\n\r\n static placeholder({ title, active, visible }: { title: string, active: MenuItem[], visible: boolean }): MenuItem {\r\n return new MenuItem({ title: title, active: active, visible: visible, paths: [], disabled: true, external: false, dot: false, sub: undefined })\r\n }\r\n\r\n static standardDotted({ title, active, visible, dot, path }: { title: string, active: MenuItem[], visible: boolean, dot: boolean, path: string | undefined }): MenuItem {\r\n return new MenuItem({ title: title, active: active, visible: visible, paths: path !== undefined ? [path] : [], disabled: false, external: false, dot: dot, sub: undefined })\r\n }\r\n\r\n static submenuDotted({ title, active, visible, dot, path, sub }: { title: string, active: MenuItem[], visible: boolean, dot: boolean, path: string | undefined, sub: Menu | undefined }): MenuItem {\r\n return new MenuItem({ title: title, active: active, visible: visible, paths: path !== undefined ? [path] : [], disabled: false, external: false, dot: dot, sub: sub })\r\n }\r\n\r\n static hidden({ title, active, path }: { title: string, active: MenuItem[], path: string | undefined }): MenuItem {\r\n return new MenuItem({ title: title, active: active, visible: false, paths: path !== undefined ? [path] : [], disabled: true, external: false, dot: false, sub: undefined })\r\n }\r\n\r\n static external({ title, active, visible, path }: { title: string, active: MenuItem[], visible: boolean, path: string | undefined }): MenuItem {\r\n return new MenuItem({ title: title, active: active, visible: visible, paths: path !== undefined ? [path] : [], disabled: false, external: true, dot: false, sub: undefined })\r\n }\r\n\r\n static divider({ visible }: { visible: boolean }): Divider {\r\n return new Divider({ visible: visible })\r\n }\r\n\r\n match(path: string): MenuItem[] {\r\n // Depth first, find matches as deep as we can\r\n const matches = this.sub?.match(path) ?? []\r\n // If a matches were found in one of our children prepend ourselves\r\n if (matches.length > 0) matches.unshift(this)\r\n // Check ourselves, we may have a match\r\n if (matches.length === 0 && this.paths.includes(path)) matches.unshift(this)\r\n return matches\r\n }\r\n\r\n activeMenuItems(): MenuItem[] {\r\n // Depth first, try to find a menu item that is active below us\r\n const activeMenuItems = this.sub?.activeMenuItems() ?? []\r\n // If a active menu items were found in one of our children prepend ourselves\r\n if (activeMenuItems.length > 0) activeMenuItems.unshift(this)\r\n // Check ourselves, we may have a match\r\n if (activeMenuItems.length === 0 && this.active) activeMenuItems.unshift(this)\r\n return activeMenuItems\r\n }\r\n}\r\n\r\nexport class Divider {\r\n visible: boolean\r\n\r\n constructor({ visible }: { visible: boolean }) {\r\n this.visible = visible\r\n }\r\n}\r\n\r\nexport class Back {\r\n title: string\r\n\r\n path?: string\r\n\r\n visible = true\r\n\r\n constructor(menuItem: MenuItem) {\r\n this.title = menuItem.title\r\n this.path = menuItem.path\r\n }\r\n}\r\n\r\nexport class Menu {\r\n items: (MenuItem | Back | Divider)[]\r\n\r\n constructor(items: (MenuItem | Back | Divider)[]) {\r\n this.items = items\r\n }\r\n\r\n match(path: string): MenuItem[] {\r\n return this.items\r\n // Remove non MenuItems\r\n .flatMap((it) => (isMenuItem(it) ? [it] : []))\r\n .flatMap((it) => it.match(path))\r\n }\r\n\r\n activeMenuItems(): MenuItem[] {\r\n return this.items\r\n // Remove non MenuItems\r\n .flatMap((it) => (isMenuItem(it) ? [it] : []))\r\n .flatMap((it) => it.activeMenuItems())\r\n }\r\n}\r\n\r\nexport class Company {\r\n id: number\r\n title: string\r\n selected: boolean\r\n\r\n constructor(id: number, title: string, selected: boolean) {\r\n this.id = id\r\n this.title = title\r\n this.selected = selected\r\n }\r\n}\r\n\r\nexport class ExtendedMenu {\r\n fullName: string\r\n companyName: string\r\n companies: Company[]\r\n menu: Menu\r\n\r\n constructor(fullName: string, companyName: string, companies: Company[], menu: Menu) {\r\n this.fullName = fullName\r\n this.companyName = companyName\r\n this.companies = companies\r\n this.menu = menu\r\n }\r\n\r\n match(path: string): MenuItem[] {\r\n return this.menu.match(path)\r\n }\r\n\r\n activeMenuItems(): MenuItem[] {\r\n return this.menu.activeMenuItems()\r\n }\r\n}\r\n\r\nexport class MenuBar {\r\n appMenuItem: MenuItem\r\n topMenu: Menu\r\n extendedMenu: ExtendedMenu\r\n\r\n constructor(appMenuItem: MenuItem, topMenu: Menu, extendedMenu: ExtendedMenu) {\r\n this.appMenuItem = appMenuItem\r\n this.topMenu = topMenu\r\n this.extendedMenu = extendedMenu\r\n }\r\n\r\n match(path: string): MenuItem[] {\r\n return this.topMenu.match(path).concat(this.extendedMenu.match(path))\r\n }\r\n\r\n activeMenuItems(): MenuItem[] {\r\n return this.topMenu.activeMenuItems().concat(this.extendedMenu.activeMenuItems())\r\n }\r\n\r\n currentSubMenu(): Menu | undefined {\r\n const activeMenuItems = this.activeMenuItems()\r\n if (activeMenuItems === undefined || activeMenuItems.length < 2) return undefined\r\n // The current sub menu is the one containing the active menu item, i.e the next to last\r\n return activeMenuItems[activeMenuItems.length - 2]?.sub\r\n }\r\n\r\n hasSubMenu(): boolean {\r\n const currentSubMenu = this.currentSubMenu()\r\n if (currentSubMenu !== undefined) {\r\n const visibleItems = currentSubMenu.items.filter((it) => it.visible)\r\n return visibleItems.length > 0\r\n }\r\n return false\r\n }\r\n}\r\n\r\nexport function isMenuItem(item: MenuItem | Back | Divider): item is MenuItem {\r\n return item instanceof MenuItem\r\n}\r\n\r\nexport function isBack(item: MenuItem | Back | Divider): item is Back {\r\n return item instanceof Back\r\n}\r\n\r\nexport function isDivider(item: MenuItem | Back | Divider): item is Back {\r\n return item instanceof Divider\r\n}\r\n","import i18n from '@/plugins/i18n'\r\nimport { ActionTree, GetterTree, Module, MutationTree } from 'vuex'\r\nimport { RootState } from '@/store/index'\r\nimport { Route } from 'vue-router'\r\nimport { authentications, UserToken } from '@/store/modules/authentications'\r\nimport { FunctionalScope } from '@/models/authenticates'\r\nimport { MenuItem, Menu, Back, Divider, ExtendedMenu, MenuBar, Company } from '@/models/menus'\r\n\r\nfunction casesOverviewItem(active: MenuItem[], functionalScope: FunctionalScope, subMenu?: Menu): MenuItem {\r\n return MenuItem.submenu({ title: i18n.tc('menu.cases.overview'), active: active, visible: true, path: '/cases-overviews', sub: subMenu })\r\n}\r\n\r\nfunction ongoingCasesItem(active: MenuItem[], functionalScope: FunctionalScope): MenuItem {\r\n return MenuItem.standard({ title: i18n.tc('menu.cases.ongoing'), active: active, visible: true, path: '/cases-ongoing' })\r\n}\r\n\r\nfunction casesOverviewSubMenu(active: MenuItem[], functionalScope: FunctionalScope, source: string | undefined, caseUnreadMessages: number): Menu {\r\n return new Menu([\r\n casesOverviewItem(active, functionalScope, caseDetailsSubMenu(active, functionalScope, source, caseUnreadMessages)),\r\n ongoingCasesItem(active, functionalScope),\r\n MenuItem.standard({ title: i18n.tc('menu.cases.closed'), active: active, visible: true, path: '/cases-closed' }),\r\n ])\r\n}\r\n\r\nfunction casesMenuItem(active: MenuItem[], functionalScope: FunctionalScope, source: string | undefined, caseUnreadMessages: number): MenuItem {\r\n return MenuItem.submenu({ title: i18n.tc('menu.cases'), active: active, visible: true, path: '/cases', sub: casesOverviewSubMenu(active, functionalScope, source, caseUnreadMessages) })\r\n}\r\n\r\nfunction messagesInboxSubMenu(active: MenuItem[], functionalScope: FunctionalScope): Menu {\r\n return new Menu([\r\n MenuItem.standard({ title: 'Översikt', active: active, visible: functionalScope !== 'simplified', path: '/messages-inbox' }),\r\n MenuItem.placeholder({ title: 'Skicka meddelande', active: active, visible: functionalScope !== 'simplified' }),\r\n ])\r\n}\r\n\r\nfunction caseDetailsSubMenu(active: MenuItem[], functionalScope: FunctionalScope, source: string | undefined, caseUnreadMessages: number): Menu {\r\n const back = source === 'inbox' ? inboxMenuItem(active, functionalScope) : ongoingCasesItem(active, functionalScope)\r\n return new Menu([\r\n new Back(back),\r\n MenuItem.standard({ title: i18n.tc('menu.case.details'), active: active, visible: true, path: '/case-details' }),\r\n MenuItem.standard({ title: 'Skulder', active: active, visible: functionalScope !== 'simplified', path: '/case-debts' }),\r\n MenuItem.standard({ title: 'Kunder', active: active, visible: functionalScope !== 'simplified', path: '/case-debtors' }),\r\n MenuItem.standardDotted({ title: i18n.tc('menu.case.messages'), active: active, visible: true, dot: caseUnreadMessages > 0, path: '/case-messages' }),\r\n MenuItem.standard({ title: i18n.tc('menu.case.history'), active: active, visible: true, path: '/case-history' }),\r\n MenuItem.standard({ title: i18n.tc('menu.case.documents'), active: active, visible: true, path: '/case-documents' }),\r\n ])\r\n}\r\n\r\nfunction inboxMenuItem(active: MenuItem[], functionalScope: FunctionalScope): MenuItem {\r\n return MenuItem.standard({ title: 'Inkorg', active: active, visible: functionalScope !== 'simplified', path: '/messages-inbox' })\r\n}\r\n\r\nfunction messagesMenuItem(active: MenuItem[], functionalScope: FunctionalScope, caseUnreadMessages: number): MenuItem {\r\n return MenuItem.submenuDotted({ title: 'Meddelanden', active: active, visible: functionalScope !== 'simplified', dot: caseUnreadMessages > 0, path: '/messages-inbox', sub: messagesInboxSubMenu(active, functionalScope) })\r\n}\r\n\r\nfunction registerSubMenu(active: MenuItem[], functionalScope: FunctionalScope): Menu {\r\n return new Menu([\r\n MenuItem.group({ title: i18n.tc('menu.register.manually'), active: active, visible: true, paths: ['/register-manually-start', '/register-manually-debtor', '/register-manually-debt', '/register-manually-success'] }),\r\n MenuItem.group({ title: i18n.tc('menu.register.import'), active: active, visible: true, paths: ['/register-import-start', '/register-import-preview', '/register-import-result'] }),\r\n ])\r\n}\r\n\r\nfunction registerMenuItem(active: MenuItem[], functionalScope: FunctionalScope): MenuItem {\r\n return MenuItem.submenu({ title: i18n.tc('menu.register'), active: active, visible: true, path: '/register', sub: registerSubMenu(active, functionalScope) })\r\n}\r\n\r\nfunction creditorOverviewMenuItem(active: MenuItem[], functionalScope: FunctionalScope, subMenu?: Menu): MenuItem {\r\n return MenuItem.submenu({ title: 'Detaljer', active: active, visible: functionalScope !== 'simplified', path: '/creditor-overview', sub: subMenu })\r\n}\r\n\r\nfunction creditorDepartmentsMenuItem(active: MenuItem[], functionalScope: FunctionalScope, subMenu?: Menu): MenuItem {\r\n return MenuItem.submenu({ title: 'Avdelningar', active: active, visible: functionalScope !== 'simplified', path: '/creditor-departments', sub: subMenu })\r\n}\r\n\r\nfunction creditorUsersMenuItem(active: MenuItem[], functionalScope: FunctionalScope, subMenu?: Menu): MenuItem {\r\n return MenuItem.submenu({ title: 'Användare', active: active, visible: functionalScope !== 'simplified', path: '/creditor-users', sub: subMenu })\r\n}\r\n\r\nfunction creditorDepartmentsDetailsSubMenu(active: MenuItem[], functionalScope: FunctionalScope, source: string | undefined): Menu {\r\n const back = source === 'overview' ? creditorOverviewMenuItem(active, functionalScope) : creditorDepartmentsMenuItem(active, functionalScope, undefined)\r\n return new Menu([\r\n new Back(back),\r\n MenuItem.standard({ title: i18n.tc('menu.department.details'), active: active, visible: true, path: '/creditor-department-edit' }),\r\n ])\r\n}\r\n\r\nfunction creditorUsersDetailsSubMenu(active: MenuItem[], functionalScope: FunctionalScope, mode: string | undefined, source: string | undefined): Menu {\r\n const back = source === 'overview' ? creditorOverviewMenuItem(active, functionalScope) : creditorUsersMenuItem(active, functionalScope, undefined)\r\n return new Menu([\r\n new Back(back),\r\n MenuItem.standard({ title: i18n.tc('menu.user.details'), active: active, visible: true, path: '/creditor-user-edit' }),\r\n MenuItem.standard({ title: 'Avdelningar', active: active, visible: functionalScope !== 'simplified' && mode === 'edit', path: '/creditor-user-department-accesses' }),\r\n MenuItem.placeholder({ title: 'Grupper', active: active, visible: functionalScope !== 'simplified' && mode === 'edit' }),\r\n MenuItem.placeholder({ title: 'Relation', active: active, visible: functionalScope !== 'simplified' && mode === 'edit' }),\r\n ])\r\n}\r\n\r\nfunction caseDepartmentOverviewSubMenu(active: MenuItem[], functionalScope: FunctionalScope, mode: string | undefined, source: string | undefined): Menu {\r\n return new Menu([\r\n creditorOverviewMenuItem(active, functionalScope, undefined),\r\n creditorDepartmentsMenuItem(active, functionalScope, creditorDepartmentsDetailsSubMenu(active, functionalScope, source)),\r\n creditorUsersMenuItem(active, functionalScope, creditorUsersDetailsSubMenu(active, functionalScope, mode, source)),\r\n ])\r\n}\r\n\r\nfunction extendedSubMenu(active: MenuItem[], functionalScope: FunctionalScope, mode: string | undefined, source: string | undefined): Menu {\r\n return new Menu([\r\n MenuItem.submenu({ title: i18n.tc('menu.company.edit'), active: active, visible: true, path: '/creditor', sub: caseDepartmentOverviewSubMenu(active, functionalScope, mode, source) }),\r\n MenuItem.divider({ visible: functionalScope !== 'simplified' }),\r\n MenuItem.standard({ title: i18n.tc('menu.company.create'), active: active, visible: true, path: '/enroll-start' }),\r\n MenuItem.divider({ visible: true }),\r\n MenuItem.external({ title: i18n.tc('menu.help'), active: active, visible: true, path: 'https://www.visma.se/inkasso/ekrav/faq/' }),\r\n MenuItem.standard({ title: i18n.tc('menu.contact'), active: active, visible: true, path: '/support-contact' }),\r\n MenuItem.divider({ visible: true }),\r\n MenuItem.standard({ title: i18n.tc('common.logout'), active: active, visible: true, path: '/logout' }),\r\n ])\r\n}\r\n\r\nfunction extendedMenu(active: MenuItem[], functionalScope: FunctionalScope, mode: string | undefined, source: string | undefined, fullName: string, companyName: string, companies: Company[]): ExtendedMenu {\r\n return new ExtendedMenu(\r\n fullName,\r\n companyName,\r\n companies,\r\n extendedSubMenu(active, functionalScope, mode, source),\r\n )\r\n}\r\n\r\nfunction menuBar(active: MenuItem[], functionalScope: FunctionalScope, caseUnreadMessages: number, mode: string | undefined, source: string | undefined, fullName: string, companyName: string, companies: Company[]): MenuBar {\r\n return new MenuBar(\r\n MenuItem.standard({ title: i18n.tc('menu.app'), active: active, visible: true, path: '/cases' }),\r\n new Menu([\r\n casesMenuItem(active, functionalScope, source, caseUnreadMessages),\r\n messagesMenuItem(active, functionalScope, caseUnreadMessages),\r\n registerMenuItem(active, functionalScope),\r\n ]),\r\n extendedMenu(active, functionalScope, mode, source, fullName, companyName, companies),\r\n )\r\n}\r\n\r\nexport interface NavigationState {\r\n active: MenuItem[];\r\n mode: string | undefined;\r\n source: string | undefined;\r\n}\r\n\r\nexport const state: NavigationState = {\r\n active: [],\r\n mode: undefined,\r\n source: undefined,\r\n}\r\n\r\nconst namespaced = true\r\n\r\nexport const getters: GetterTree = {\r\n getActive(state): MenuItem[] {\r\n return state.active\r\n },\r\n getMode(state): string | undefined {\r\n return state.mode\r\n },\r\n getSource(state): string | undefined {\r\n return state.source\r\n },\r\n getMenuBar(state, getters, rootState, rootGetters): MenuBar {\r\n const { active, mode, source } = state\r\n const creditorId: number = rootGetters.getCurrentCreditorId\r\n const functionalScope: FunctionalScope = rootGetters.getCurrentFunctionalScope ?? 'simplified'\r\n const caseUnreadMessages: number = rootGetters['cases/getCurrentCaseMessagesUnread'] ?? 0\r\n const fullName = getters['authentications/getFullName']\r\n const currentUserToken: UserToken | undefined = getters['authentications/getCurrentUserToken']\r\n const companyName = currentUserToken?.creditorName ?? ''\r\n const companies = getters['authentications/getAllUserTokens'].map((userToken: UserToken) => new Company(userToken.creditorId, userToken.creditorName, userToken.creditorId === creditorId))\r\n return menuBar(active, functionalScope, caseUnreadMessages, mode, source, fullName, companyName, companies)\r\n },\r\n}\r\n\r\nexport const mutations: MutationTree = {\r\n setActive(state, active: MenuItem[]) {\r\n state.active = active\r\n },\r\n setMode(state, mode: string | undefined) {\r\n state.mode = mode\r\n },\r\n setSource(state, source: string | undefined) {\r\n state.source = source\r\n },\r\n}\r\n\r\nexport const actions: ActionTree = {\r\n switchActiveRoute(store, route: Route) {\r\n // Reset current active stack\r\n const active = store.getters.getMenuBar.match(route.path)\r\n store.commit('setActive', active)\r\n\r\n const { mode, source } = route.params\r\n\r\n if (typeof mode === 'string') {\r\n store.commit('setMode', mode)\r\n console.log(`ACTIVE MODE: ${state.mode}`)\r\n }\r\n if (typeof source === 'string') {\r\n store.commit('setSource', source)\r\n console.log(`ACTIVE SOURCE: ${state.source}`)\r\n }\r\n\r\n console.log(`ACTIVE ROUTE: ${route.path}`)\r\n console.log(`ACTIVE MATCH: ${state.active.map((it) => it.title).join(' -> ')}`)\r\n },\r\n}\r\n\r\nexport const navigation: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n actions,\r\n mutations,\r\n modules: {\r\n authentications,\r\n },\r\n}\r\n","import Vue from 'vue'\r\nimport Vuex, { Store, StoreOptions, MutationTree } from 'vuex'\r\n\r\nimport { authentications } from '@/store/modules/authentications'\r\nimport { caseActions } from '@/store/modules/caseActions'\r\nimport { caseCosts } from '@/store/modules/caseCosts'\r\nimport { caseDebtors } from '@/store/modules/caseDebtors'\r\nimport { caseDebts } from '@/store/modules/caseDebts'\r\nimport { caseDocuments } from '@/store/modules/caseDocuments'\r\nimport { caseHistoryLogs } from '@/store/modules/caseHistoryLogs'\r\nimport { caseMessages } from '@/store/modules/caseMessages'\r\nimport { casePayments } from '@/store/modules/casePayments'\r\nimport { cases } from '@/store/modules/cases'\r\nimport { creditorDepartments } from '@/store/modules/creditorDepartments'\r\nimport { creditors } from '@/store/modules/creditors'\r\nimport { creditorsAPI } from '@/store/modules/creditorsAPI'\r\nimport { creditorUserDepartmentAccesses } from '@/store/modules/creditorUserDepartmentAccesses'\r\nimport { creditorUserMessageGroups } from '@/store/modules/creditorUserMessageGroups'\r\nimport { creditorUserMessages } from '@/store/modules/creditorUserMessages'\r\nimport { creditorUserMessageSubjects } from '@/store/modules/creditorUserMessageSubjects'\r\nimport { creditorUsers } from '@/store/modules/creditorUsers'\r\nimport { dashboards } from '@/store/modules/dashboards'\r\nimport { navigation } from '@/store/modules/navigation'\r\nimport { FunctionalScope } from '@/models/authenticates'\r\n\r\nVue.use(Vuex)\r\n\r\nexport interface RootState {\r\n version: number;\r\n currentCreditorId?: number;\r\n currentFunctionalScope?: FunctionalScope;\r\n}\r\n\r\nconst store: StoreOptions = {\r\n state: {\r\n version: Math.floor(Math.random() * 101),\r\n currentCreditorId: undefined,\r\n currentFunctionalScope: undefined,\r\n },\r\n getters: {\r\n getCurrentCreditorId(state): number | undefined {\r\n return state.currentCreditorId\r\n },\r\n getCurrentFunctionalScope(state): FunctionalScope | undefined {\r\n return state.currentFunctionalScope\r\n },\r\n },\r\n mutations: {\r\n setCurrentCreditorId(state, creditorId?: number) {\r\n state.currentCreditorId = creditorId\r\n },\r\n setCurrentFunctionalScope(state, functionalScope?: FunctionalScope) {\r\n state.currentFunctionalScope = functionalScope\r\n },\r\n },\r\n modules: {\r\n authentications,\r\n caseActions,\r\n caseCosts,\r\n caseDebtors,\r\n caseDebts,\r\n caseDocuments,\r\n caseHistoryLogs,\r\n caseMessages,\r\n casePayments,\r\n cases,\r\n creditorDepartments,\r\n creditors,\r\n creditorsAPI,\r\n creditorUserDepartmentAccesses,\r\n creditorUserMessageGroups,\r\n creditorUserMessages,\r\n creditorUserMessageSubjects,\r\n creditorUsers,\r\n dashboards,\r\n navigation,\r\n },\r\n plugins: [\r\n ],\r\n}\r\n\r\nexport default new Vuex.Store(store)\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('div',[_c('b-alert',{attrs:{\"show\":\"\",\"variant\":\"success\"}},[_vm._v(\"Meddelande skickat!\")])],1),_c('b-container',{staticClass:\"sub-page-padding pl-4 pr-4\",attrs:{\"fluid\":\"\"}},[_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[(_vm.show)?_c('b-form',{on:{\"submit\":_vm.onSubmit}},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{attrs:{\"sm\":\"4\"}},[_c('label',{attrs:{\"for\":\"feedback-user\"}},[_vm._v(\"Namn\")])]),_c('b-col',{attrs:{\"sm\":\"8\"}},[_c('b-form-input',{attrs:{\"state\":_vm.validation,\"placeholder\":\"Mickes bygg, hemsidor, design och en massa annat AB\",\"id\":\"feedback-user\"},model:{value:(_vm.userId),callback:function ($$v) {_vm.userId=$$v},expression:\"userId\"}}),_c('b-form-invalid-feedback',{attrs:{\"state\":_vm.validation}},[_vm._v(\" Vårt system stödjer bara 12 tecken i företagsnamn. \")]),_c('b-form-valid-feedback',{attrs:{\"state\":_vm.validation}},[_vm._v(\" Looks Good. \")])],1)],1),_c('b-button',{attrs:{\"type\":\"submit\",\"variant\":\"primary\"}},[_vm._v(\"Skicka\")])],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DesignView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DesignView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DesignView.vue?vue&type=template&id=6c37407a\"\nimport script from \"./DesignView.vue?vue&type=script&lang=js\"\nexport * from \"./DesignView.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100 img-bg\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('b-row',{staticClass:\"h-100 mx-auto\",attrs:{\"align-v\":\"center\"}},[_c('b-col',{staticClass:\"mx-auto\",attrs:{\"align-self\":\"center\"}},[_c('b-card',{staticClass:\"mt-5 mb-5 p-4 p-lg-5 white-box border-0 mx-auto shadow container-spinner\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"p-lg-5\"},[_c('b-col',[_c('h1',{staticClass:\"text-center mb-3\"},[_vm._v(_vm._s(_vm.$t('onboarding.bankid.title')))]),_c('div',{staticClass:\"d-flex justify-content-center mb-3\"},[_c('b-spinner',{staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"variant\":\"primary\",\"label\":_vm.$t('common.loading')}})],1),_c('p',{staticClass:\"text-center mb-3\"},[_vm._v(_vm._s(_vm.$t('onboarding.bankid.body')))]),_c('b-button',{attrs:{\"variant\":\"primary\",\"size\":\"lg\",\"block\":\"\"},on:{\"click\":_vm.cancel}},[_vm._v(_vm._s(_vm.$t('common.cancel')))])],1)],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { Status } from '@/models/authenticates'\r\nimport { UserToken } from '@/store/modules/authentications'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CreditorsAPI = namespace('creditorsAPI')\r\n\r\nconst sleep = (milliseconds: number) => new Promise((resolve) => setTimeout(resolve, milliseconds))\r\n\r\n@Component\r\nexport default class OnboardingBankIDView extends Vue {\r\n @Authentications.State status!: Status\r\n @Authentications.State userTokens!: UserToken[]\r\n\r\n @CreditorsAPI.Mutation setToken!: (token?: string) => void\r\n\r\n @Authentications.Action cancelAuthentication!: () => Promise\r\n @Authentications.Action waitAuthentication!: () => Promise\r\n\r\n @State2Way('authentications/setAlert', (state) => state.authentications.alert) alert!: Alert | undefined\r\n\r\n cancelled = false\r\n\r\n async cancel() {\r\n if (await this.cancelAuthentication() === true) {\r\n this.setToken(undefined)\r\n this.cancelled = true\r\n router.push('/')\r\n }\r\n }\r\n\r\n async mounted() {\r\n let result = await this.waitAuthentication()\r\n\r\n while (result === true && this.status === 'pending' && !this.cancelled) {\r\n await sleep(3000)\r\n result = await this.waitAuthentication()\r\n }\r\n\r\n if (result === true && this.status === 'complete' && !this.cancelled) {\r\n if (this.userTokens.length === 0) router.push('/signup-start')\r\n else router.push('/cases-overviews')\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingBankIDView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingBankIDView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OnboardingBankIDView.vue?vue&type=template&id=2bfffc98\"\nimport script from \"./OnboardingBankIDView.vue?vue&type=script&lang=ts\"\nexport * from \"./OnboardingBankIDView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100 img-bg\",attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"h-100 mx-auto\",attrs:{\"align-v\":\"center\"}},[_c('b-col',{staticClass:\"mx-auto\",attrs:{\"align-self\":\"center\"}},[_c('b-card',{staticClass:\"mt-5 mb-5 p-4 p-lg-5 white-box border-0 mx-auto shadow container-login\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"p-lg-5\"},[_c('b-col',[_c('h1',{staticClass:\"mb-3\"},[_vm._v(_vm._s(_vm.$t('onboarding.cookies.title')))]),_c('p',{staticClass:\"mb-3\"},[_vm._v(_vm._s(_vm.$t('onboarding.cookies.body')))]),_c('a',{attrs:{\"href\":\"/\",\"target\":\"_top\"}},[_vm._v(_vm._s(_vm.$t('onboarding.cookies.back')))]),_c('b-img',{staticClass:\"mt-5 mb-3\",attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/visma-logo.svg\"),\"alt\":\"Visma logo\"}})],1)],1)],1)],1),_c('footer',{staticClass:\"container-footer\"},[_c('div',{staticClass:\"footer-inner text-right pr-4 pr-md-4\"},[_c('a',{attrs:{\"href\":\"/cookies\",\"target\":\"_top\"}},[_vm._v(_vm._s(_vm.$t('onboarding.login.aboutCookies')))]),_c('a',{staticClass:\"ml-2\",attrs:{\"href\":\"https://www.visma.se/inkasso/ekrav/faq/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(_vm._s(_vm.$t('onboarding.login.faq')))])])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\n\r\n@Component\r\nexport default class OnboardingCookiesView extends Vue {\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingCookiesView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingCookiesView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OnboardingCookiesView.vue?vue&type=template&id=c1cdb466\"\nimport script from \"./OnboardingCookiesView.vue?vue&type=script&lang=ts\"\nexport * from \"./OnboardingCookiesView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100 img-bg\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('b-row',{staticClass:\"h-100 mx-auto\",attrs:{\"align-v\":\"center\"}},[_c('b-col',{staticClass:\"mx-auto\",attrs:{\"align-self\":\"center\"}},[_c('b-card',{staticClass:\"mt-5 mb-5 p-4 p-lg-5 white-box border-0 mx-auto shadow container-login\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"p-lg-5\"},[_c('b-col',[_c('h1',{staticClass:\"text-center mb-3\"},[_vm._v(_vm._s(_vm.$t('common.login')))]),_c('p',{staticClass:\"text-center mb-3\"},[_vm._v(_vm._s(_vm.$t('onboarding.login.personalNumber.title')))]),_c('label',[_vm._v(_vm._s(_vm.$t('common.fields.personalNumber')))]),_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();}}},[_c('nordic-cool-input-text',{staticClass:\"m-0\",attrs:{\"id\":\"personalNumber\",\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.personalNumber),callback:function ($$v) {_vm.personalNumber=$$v},expression:\"personalNumber\"}}),_c('b-button',{attrs:{\"id\":\"login\",\"variant\":\"secondary\",\"type\":\"submit\",\"size\":\"lg\",\"block\":\"\"},on:{\"click\":function($event){return _vm.login()}}},[_vm._v(_vm._s(_vm.$t('onboarding.login.action')))]),_c('b-img',{staticClass:\"mt-4 mb-2\",attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/visma-logo.svg\"),\"alt\":\"Visma logo\"}}),_c('p',{staticClass:\"versionnumber text-center pt-2 pb-0\"},[_vm._v(\"Version 1.0.7\")])],1)],1)],1)],1)],1),_c('footer',{staticClass:\"container-footer\"},[_c('div',{staticClass:\"footer-inner text-right pr-4 pr-md-4\"},[_c('a',{attrs:{\"href\":\"/cookies\",\"target\":\"_top\"}},[_vm._v(_vm._s(_vm.$t('onboarding.login.aboutCookies')))]),_c('a',{staticClass:\"ml-2\",attrs:{\"href\":\"https://www.visma.se/inkasso/ekrav/faq/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(_vm._s(_vm.$t('onboarding.login.faq')))])])]),(!_vm.userAcceptedCookies)?[_c('div',{staticClass:\"cookies-wrapper cookies-topcenter\"},[_c('p',[_vm._v(\" \"+_vm._s(_vm.$t('onboarding.cookies.info'))+\" \"),_c('a',{attrs:{\"href\":\"/cookies\",\"target\":\"_top\"}},[_vm._v(_vm._s(_vm.$t('onboarding.cookies.moreInfo')))]),_vm._v(\" \"),_c('b-button',{staticClass:\"ml-2\",attrs:{\"variant\":\"light\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.acceptCookies()}}},[_vm._v(_vm._s(_vm.$t('onboarding.cookies.ok')))])],1)])]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { MOCK_SIMPLIFIED_TOKEN, MOCK_UNAUTHORIZED_TOKEN, APIError } from '@/store/modules/creditorsAPI'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputText, validInputs } from '@/models/validations'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CreditorsAPI = namespace('creditorsAPI')\r\n\r\n@Component\r\nexport default class OnboardingLoginView extends Vue {\r\n @Authentications.Action startLogin!: () => void\r\n @Authentications.Action startAuthentication!: () => Promise\r\n\r\n @CreditorsAPI.Mutation setToken!: (token?: string) => void\r\n\r\n @State2Way('authentications/setAlert', (state) => state.authentications.alert) alert!: Alert | undefined\r\n @State2Way('authentications/setPersonalNumber', (state) => state.authentications.personalNumber) personalNumber!: InputText\r\n\r\n demo_mode = false\r\n strict = false\r\n userAcceptedCookies = Vue.$cookies.get('user-accepted-cookies') === 'yes'\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n async login() {\r\n const inputs = [this.personalNumber]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n if (await this.startAuthentication() === true) router.push('/mbid')\r\n } else {\r\n console.log('Invalid')\r\n }\r\n }\r\n\r\n async mockLogin() {\r\n console.log('STARTING MOCKED USER SESSION')\r\n this.personalNumber = InputText.minimum({ value: '195001182046' })\r\n await this.setToken(MOCK_SIMPLIFIED_TOKEN)\r\n await this.login()\r\n }\r\n\r\n async mockSignup() {\r\n console.log('STARTING MOCKED UNAUTHORIZED SESSION')\r\n this.personalNumber = InputText.minimum({ value: '195001182046' })\r\n await this.setToken(MOCK_UNAUTHORIZED_TOKEN)\r\n await this.login()\r\n }\r\n\r\n async acceptCookies() {\r\n Vue.$cookies.set('user-accepted-cookies', 'yes')\r\n this.userAcceptedCookies = true\r\n }\r\n\r\n async mounted() {\r\n this.demo_mode = process.env.VUE_APP_DEMO_MODE === 'true'\r\n console.log(`VUE_APP_DEMO_MODE: ${process.env.VUE_APP_DEMO_MODE}`)\r\n console.log(`demo_mode: ${this.demo_mode}`)\r\n this.startLogin()\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingLoginView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingLoginView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OnboardingLoginView.vue?vue&type=template&id=595c928e\"\nimport script from \"./OnboardingLoginView.vue?vue&type=script&lang=ts\"\nexport * from \"./OnboardingLoginView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\n\r\nconst CreditorsAPI = namespace('creditorsAPI')\r\n\r\n@Component\r\nexport default class OnboardingLogoutView extends Vue {\r\n @CreditorsAPI.Mutation setToken!: (token?: string) => void\r\n\r\n created() {\r\n this.setToken(undefined)\r\n router.push('/')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingLogoutView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingLogoutView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OnboardingLogoutView.vue?vue&type=template&id=4a5f741c\"\nimport script from \"./OnboardingLogoutView.vue?vue&type=script&lang=ts\"\nexport * from \"./OnboardingLogoutView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('b-container',{staticClass:\"pt-4 pl-4 pr-4 pb-4\",attrs:{\"fluid\":\"\"}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 green-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.success.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_check.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('onboarding.signup.success.body'))+\" \")])])],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.done')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\n\r\n@Component\r\nexport default class OnboardingSignupSuccessView extends Vue {\r\n next() {\r\n router.push('/cases-overviews')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingSignupSuccessView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingSignupSuccessView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OnboardingSignupSuccessView.vue?vue&type=template&id=5882e445\"\nimport script from \"./OnboardingSignupSuccessView.vue?vue&type=script&lang=ts\"\nexport * from \"./OnboardingSignupSuccessView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('b-container',{staticClass:\"pt-4 pl-4 pr-4 pb-4\",attrs:{\"fluid\":\"\"}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.contact.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_company_complete.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('p',{staticClass:\"header text-left m-0 pb-4\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.personinfo.title')))])])],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"firstName\",\"label\":_vm.$t('common.fields.firstName'),\"disabled\":true,\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.firstName),callback:function ($$v) {_vm.firstName=$$v},expression:\"firstName\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"lastName\",\"label\":_vm.$t('common.fields.lastName'),\"disabled\":true,\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.lastName),callback:function ($$v) {_vm.lastName=$$v},expression:\"lastName\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"personalNumber\",\"label\":_vm.$t('common.fields.personalNumber'),\"disabled\":true,\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.personalNumber),callback:function ($$v) {_vm.personalNumber=$$v},expression:\"personalNumber\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',[_c('b-col',[_c('p',{staticClass:\"header text-left m-0 pb-4\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.contactinfo.title')))])])],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-email',{attrs:{\"id\":\"email\",\"label\":_vm.$t('common.fields.email'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-phone',{attrs:{\"id\":\"mobilePhone\",\"label\":_vm.$t('common.fields.mobilePhone'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.mobilePhone),callback:function ($$v) {_vm.mobilePhone=$$v},expression:\"mobilePhone\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-checkbox',{attrs:{\"id\":\"agree\",\"label\":_vm.$t('onboarding.signup.agreement.title'),\"body\":_vm.$t('onboarding.signup.agreement.body'),\"buttonTitle\":_vm.$t('onboarding.signup.agreement.title'),\"buttonLink\":\"https://25382751.fs1.hubspotusercontent-eu1.net/hubfs/25382751/Avtal%20eKrav/eKrav_tjansteavtal.pdf\",\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.agree),callback:function ($$v) {_vm.agree=$$v},expression:\"agree\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-left w-40\",attrs:{\"variant\":\"light\",\"size\":\"sm\",\"to\":\"/signup-creditor\"}},[_vm._v(_vm._s(_vm.$t('common.back')))]),_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.next')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputText, InputCheckbox, validInputs } from '@/models/validations'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Creditors = namespace('creditors')\r\n\r\n@Component\r\nexport default class OnboardingSignupContactView extends Vue {\r\n @Creditors.Action createCreditor!: () => Promise\r\n\r\n @State2Way('creditors/setAlert', (state) => state.creditors.alert) alert!: Alert | undefined\r\n @State2Way('creditors/setPersonalNumber', (state) => state.creditors.personalNumber) personalNumber!: InputText\r\n @State2Way('creditors/setFirstName', (state) => state.creditors.firstName) firstName!: InputText\r\n @State2Way('creditors/setLastName', (state) => state.creditors.lastName) lastName!: InputText\r\n @State2Way('creditors/setMobilePhone', (state) => state.creditors.mobilePhone) mobilePhone!: InputText\r\n @State2Way('creditors/setEmail', (state) => state.creditors.email) email!: InputText\r\n @State2Way('creditors/setAgree', (state) => state.creditors.agree) agree!: InputCheckbox\r\n\r\n strict = false\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n async next() {\r\n const inputs = [this.personalNumber, this.firstName, this.lastName, this.mobilePhone, this.email, this.agree]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n if (await this.createCreditor() === true) router.push('/signup-success')\r\n } else {\r\n console.log('Invalid')\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingSignupContactView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingSignupContactView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OnboardingSignupContactView.vue?vue&type=template&id=01149e58\"\nimport script from \"./OnboardingSignupContactView.vue?vue&type=script&lang=ts\"\nexport * from \"./OnboardingSignupContactView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('b-container',{staticClass:\"pt-4 pl-4 pr-4 pb-4\",attrs:{\"fluid\":\"\"}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.creditor.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_company_details.svg\"),\"alt\":\"\"}})],1)],1)],1),(_vm.busy)?_c('div',[_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded text-center\",attrs:{\"fluid\":\"\"}},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\",\"label\":_vm.$t('common.loading')}})],1)],1):_vm._e(),(!_vm.busy)?_c('div',[_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.creditor.address')))])])],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"name\",\"label\":_vm.$t('common.fields.name'),\"strict\":_vm.address_strict},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"address\",\"label\":_vm.$t('common.fields.address'),\"strict\":_vm.address_strict},model:{value:(_vm.address),callback:function ($$v) {_vm.address=$$v},expression:\"address\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-number',{attrs:{\"id\":\"postalCode\",\"label\":_vm.$t('common.fields.postalCode'),\"strict\":_vm.address_strict},model:{value:(_vm.postalCode),callback:function ($$v) {_vm.postalCode=$$v},expression:\"postalCode\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"city\",\"label\":_vm.$t('common.fields.city'),\"strict\":_vm.address_strict},model:{value:(_vm.city),callback:function ($$v) {_vm.city=$$v},expression:\"city\"}})],1)],1),_c('b-row',[_c('b-col',[_c('p',{staticClass:\"header text-left m-0 pb-4\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.payment.title')))])])],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"bankgiro\",\"label\":_vm.$t('common.fields.bankgiro'),\"strict\":_vm.bank_strict},model:{value:(_vm.bankgiro),callback:function ($$v) {_vm.bankgiro=$$v},expression:\"bankgiro\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-left w-40\",attrs:{\"variant\":\"light\",\"size\":\"sm\",\"to\":\"/signup-start\"}},[_vm._v(_vm._s(_vm.$t('common.back')))]),_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.next')))])],1)],1)],1)],1):_vm._e()],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputText, InputNumber, validInputs } from '@/models/validations'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Creditors = namespace('creditors')\r\n\r\n@Component\r\nexport default class OnboardingSignupCreditorView extends Vue {\r\n @Creditors.Action lookupAddress!: () => Promise\r\n\r\n @State2Way('creditors/setAlert', (state) => state.creditors.alert) alert!: Alert | undefined\r\n @State2Way('creditors/setName', (state) => state.creditors.name) name!: InputText\r\n @State2Way('creditors/setAddress', (state) => state.creditors.address) address!: InputText\r\n @State2Way('creditors/setPostalCode', (state) => state.creditors.postalCode) postalCode!: InputNumber\r\n @State2Way('creditors/setCity', (state) => state.creditors.city) city!: InputText\r\n @State2Way('creditors/setBankgiro', (state) => state.creditors.bankgiro) bankgiro!: InputText\r\n\r\n address_strict = false\r\n bank_strict = false\r\n busy = true\r\n\r\n async mounted() {\r\n if (await this.lookupAddress() === true) {\r\n this.address_strict = true\r\n }\r\n this.busy = false\r\n }\r\n\r\n next() {\r\n const inputs = [this.name, this.address, this.postalCode, this.city, this.bankgiro]\r\n this.address_strict = true\r\n this.bank_strict = true\r\n if (validInputs(inputs, true)) {\r\n router.push('/signup-contact')\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingSignupCreditorView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingSignupCreditorView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OnboardingSignupCreditorView.vue?vue&type=template&id=7934642c\"\nimport script from \"./OnboardingSignupCreditorView.vue?vue&type=script&lang=ts\"\nexport * from \"./OnboardingSignupCreditorView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('b-container',{staticClass:\"pt-4 pl-4 pr-4 pb-4\",attrs:{\"fluid\":\"\"}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.start.title')))]),_c('p',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.start.body')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_company_input.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"organisationId\",\"label\":_vm.$t('common.fields.organisationId'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.organisationId),callback:function ($$v) {_vm.organisationId=$$v},expression:\"organisationId\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-left w-40\",attrs:{\"variant\":\"light\",\"size\":\"sm\",\"to\":\"/\"}},[_vm._v(_vm._s(_vm.$t('common.back')))]),_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.next')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputText, validInputs } from '@/models/validations'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Creditors = namespace('creditors')\r\n\r\n@Component\r\nexport default class OnboardingSignupStartView extends Vue {\r\n @Creditors.Mutation setCurrentCreditorOptionId!: (creditorOptionId: number) => void\r\n\r\n @Creditors.Action startCreditorSignup!: () => void\r\n\r\n @State2Way('creditors/setAlert', (state) => state.creditors.alert) alert!: Alert | undefined\r\n @State2Way('creditors/setOrganisationId', (state) => state.creditors.organisationId) organisationId!: InputText\r\n\r\n strict = false\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n next() {\r\n const inputs = [this.organisationId]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n router.push('/signup-creditor')\r\n }\r\n }\r\n\r\n async mounted() {\r\n this.startCreditorSignup()\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingSignupStartView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingSignupStartView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OnboardingSignupStartView.vue?vue&type=template&id=be2b1d54\"\nimport script from \"./OnboardingSignupStartView.vue?vue&type=script&lang=ts\"\nexport * from \"./OnboardingSignupStartView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\n\r\nconst CreditorsAPI = namespace('creditorsAPI')\r\n\r\n@Component\r\nexport default class OnboardingStartView extends Vue {\r\n @CreditorsAPI.Mutation setToken!: (token?: string) => void\r\n\r\n created() {\r\n const { token } = this.$route.query\r\n if (typeof token === 'string') {\r\n console.log(token)\r\n this.setToken(token)\r\n }\r\n router.push('/')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingStartView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OnboardingStartView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OnboardingStartView.vue?vue&type=template&id=eb2e5f0c\"\nimport script from \"./OnboardingStartView.vue?vue&type=script&lang=ts\"\nexport * from \"./OnboardingStartView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('case.action.start.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_delete_case.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('case.action.start.warning'))+\" \")])])],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-left w-40\",attrs:{\"variant\":\"light\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.$router.back()}}},[_vm._v(_vm._s(_vm.$t('common.cancel')))]),_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('case.action.start.perform')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { Alert } from '@/models/alerts'\r\nimport { FieldType } from '@/components/NordicCoolTable.vue'\r\nimport { InputText, InputDate, InputNumber, InputCheckbox } from '@/models/validations'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CaseActions = namespace('caseActions')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CaseActionStartView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @CaseActions.Action createCaseAction!: () => Promise\r\n\r\n @State2Way('caseActions/setAlert', (state) => state.casePayments.alert) alert!: Alert | undefined\r\n\r\n strict = false\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n async next() {\r\n if (await this.createCaseAction() === true) router.push('/case-action-success')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseActionStartView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseActionStartView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CaseActionStartView.vue?vue&type=template&id=4d35dd6f\"\nimport script from \"./CaseActionStartView.vue?vue&type=script&lang=ts\"\nexport * from \"./CaseActionStartView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 green-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white text-center\"},[_vm._v(_vm._s(_vm.$t('case.action.success.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_check.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('case.action.success.body'))+\" \")])])],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.done')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CaseActionSuccessView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) alert!: Alert | undefined\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n next() {\r\n router.push('/case-details')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseActionSuccessView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseActionSuccessView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CaseActionSuccessView.vue?vue&type=template&id=6a2c1828\"\nimport script from \"./CaseActionSuccessView.vue?vue&type=script&lang=ts\"\nexport * from \"./CaseActionSuccessView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('case.details.debtors.title')))]),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-table',{attrs:{\"id\":\"caseDebtors\",\"items\":_vm.caseDebtorItems,\"fields\":_vm.caseDebtorFields}})],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { CaseDebtor } from '@/store/modules/caseDebtors'\r\nimport { Alert } from '@/models/alerts'\r\nimport { Page, APIError } from '@/store/modules/creditorsAPI'\r\nimport { FieldType } from '@/components/NordicCoolTable.vue'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CaseDebtors = namespace('caseDebtors')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CaseDebtorsView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n @CaseDebtors.Action refreshCaseDebtors!: (page: number) => Promise | APIError>\r\n\r\n @State2Way('caseDebtors/setAlert', (state) => state.caseDebtors.alert) alert!: Alert | undefined\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n caseDebtorItems(page: number): Promise | APIError> {\r\n return this.refreshCaseDebtors(page)\r\n }\r\n\r\n get caseDebtorFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'caseDebtorId', label: this.$i18n.tc('common.fields.id'), sortable: true, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'debtor', label: this.$i18n.tc('common.fields.type'), sortable: false, size: 'medium', alignment: 'left',\r\n },\r\n {\r\n key: 'role', label: this.$i18n.tc('common.fields.role'), sortable: false, size: 'medium', alignment: 'left',\r\n },\r\n {\r\n key: 'organisationId', label: this.$i18n.tc('common.fields.orgPersonId'), sortable: false, size: 'medium', alignment: 'left',\r\n },\r\n {\r\n key: 'name', label: this.$i18n.tc('common.fields.name'), sortable: false, size: 'large', alignment: 'left',\r\n },\r\n ]\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseDebtorsView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseDebtorsView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CaseDebtorsView.vue?vue&type=template&id=17635f04\"\nimport script from \"./CaseDebtorsView.vue?vue&type=script&lang=ts\"\nexport * from \"./CaseDebtorsView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('case.details.debts.title')))]),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-table',{attrs:{\"id\":\"caseDebts\",\"items\":_vm.caseDebtItems,\"fields\":_vm.caseDebtFields}})],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { CaseDebt } from '@/store/modules/caseDebts'\r\nimport { Alert } from '@/models/alerts'\r\nimport { Page, APIError } from '@/store/modules/creditorsAPI'\r\nimport { FieldType } from '@/components/NordicCoolTable.vue'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CaseDebts = namespace('caseDebts')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CaseDebtsView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n @CaseDebts.Action refreshCaseDebts!: (page: number) => Promise | APIError>\r\n\r\n @State2Way('caseDebts/setAlert', (state) => state.caseDebts.alert) alert!: Alert | undefined\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n caseDebtItems(page: number): Promise | APIError> {\r\n return this.refreshCaseDebts(page)\r\n }\r\n\r\n get caseDebtFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'debtType', label: this.$i18n.tc('common.fields.type'), sortable: true, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceNumber', label: this.$i18n.tc('common.fields.invoiceNumber'), sortable: false, size: 'medium', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceDescription', label: this.$i18n.tc('common.fields.description'), sortable: false, size: 'large', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceDate', label: this.$i18n.tc('common.fields.invoiceDate'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceDueDate', label: this.$i18n.tc('case.details.debts.invoiceDueDate'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'remainingCapital', label: this.$i18n.tc('common.fields.remainingCapital'), sortable: false, size: 'small', alignment: 'right',\r\n },\r\n {\r\n key: 'remainingInterest', label: this.$i18n.tc('common.fields.remainingInterest'), sortable: false, size: 'small', alignment: 'right',\r\n },\r\n ]\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseDebtsView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseDebtsView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CaseDebtsView.vue?vue&type=template&id=36cf2c98\"\nimport script from \"./CaseDebtsView.vue?vue&type=script&lang=ts\"\nexport * from \"./CaseDebtsView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('case.details.history.title')))]),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-table',{attrs:{\"id\":\"caseHistoryLogs\",\"items\":_vm.caseHistoryLogItems,\"fields\":_vm.fields}})],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { CaseHistoryLog } from '@/store/modules/caseHistoryLogs'\r\nimport { Alert } from '@/models/alerts'\r\nimport { Page, APIError } from '@/store/modules/creditorsAPI'\r\nimport { FieldType } from '@/components/NordicCoolTable.vue'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CaseHistoryLogs = namespace('caseHistoryLogs')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CaseHistoryView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @CaseHistoryLogs.Action refreshCaseHistoryLogs!: (page: number) => Promise | APIError>\r\n\r\n @State2Way('caseHistoryLogs/setAlert', (state) => state.caseHistoryLogs.alert) alert!: Alert | undefined\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n caseHistoryLogItems(page: number): Promise | APIError> {\r\n return this.refreshCaseHistoryLogs(page)\r\n }\r\n\r\n get fields(): FieldType[] {\r\n return [\r\n {\r\n key: 'date', label: this.$i18n.tc('common.fields.date'), sortable: false, size: 'xsmall', alignment: 'left',\r\n },\r\n {\r\n key: 'headline', label: this.$i18n.tc('case.details.history.headline'), sortable: false, size: 'flex', alignment: 'left',\r\n },\r\n ]\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseHistoryView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseHistoryView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CaseHistoryView.vue?vue&type=template&id=30455aea\"\nimport script from \"./CaseHistoryView.vue?vue&type=script&lang=ts\"\nexport * from \"./CaseHistoryView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('case.details.messages.title')))]),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-form-group',{staticClass:\"input-group message-btn-send\"},[_c('nordic-cool-input-text',{staticClass:\"ml-0 mr-0\",attrs:{\"id\":\"message\",\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.message),callback:function ($$v) {_vm.message=$$v},expression:\"message\"}}),_c('b-button',{staticClass:\"input-prepend\",attrs:{\"variant\":\"light\",\"size\":\"sm\"},on:{\"click\":_vm.send}},[_c('span',{staticClass:\"send-icon\"})])],1),_c('hr',{staticClass:\"mt-4 mb-4\",staticStyle:{\"border\":\"0\",\"border-top\":\"1px dashed rgba(0, 0, 0, 0.1)\"}}),_c('b-table',{staticClass:\"messages\",attrs:{\"id\":\"caseMessages\",\"thead-class\":\"hidden_header\",\"show-empty\":\"\",\"busy\":_vm.isBusy,\"per-page\":_vm.perPage,\"current-page\":_vm.currentPage,\"fields\":_vm.fields,\"items\":_vm.itemsProvider},on:{\"update:busy\":function($event){_vm.isBusy=$event}},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center my-2\"},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\",\"label\":\"Laddar...\"}})],1)]},proxy:true},{key:\"empty\",fn:function(){return [_c('div',{staticClass:\"text-center my-2\"},[_c('b-img',{attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_no_message.svg\"),\"alt\":\"\"}}),_c('h2',{staticClass:\"sub-section-header m-2\"},[_vm._v(_vm._s(_vm.$t('case.details.messages.nomessagetitle')))])],1)]},proxy:true},{key:\"cell()\",fn:function(data){return [_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-3\"},[(data.item.sentToType === 'TO_VISMA')?[_c('b-col',{staticClass:\"my-auto pr-1 pl-1\",attrs:{\"cols\":\"3\",\"md\":\"1\"}},[_c('b-img',{attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/ico_message_user.svg\"),\"alt\":\"\"}})],1),_c('b-col',{staticClass:\"my-auto pl-1\",attrs:{\"cols\":\"9\",\"md\":\"11\"}},[_c('b-card',{staticClass:\"border-0\",attrs:{\"no-body\":\"\"}},[_c('div',{staticClass:\"rounded p-3 message-bubble\"},[_c('p',{staticClass:\"text-left m-0\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(data.item.createDate))]),_c('b-badge',{staticClass:\"l-white ml-2\",attrs:{\"variant\":\"light\"}},[_vm._v(_vm._s(data.item.subject))])],1),_c('p',{staticClass:\"text-left m-0\"},[_vm._v(_vm._s(data.item.body))])])])],1)]:_vm._e(),(data.item.sentToType === 'TO_CREDITOR')?[_c('b-col',{staticClass:\"my-auto pr-1 pl-1 order-last\",attrs:{\"cols\":\"3\",\"md\":\"1\"}},[_c('b-img',{attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/ico_message_visma.svg\"),\"alt\":\"\"}})],1),_c('b-col',{staticClass:\"my-auto pr-1\",attrs:{\"cols\":\"9\",\"md\":\"11\"}},[_c('b-card',{staticClass:\"border-0\",attrs:{\"no-body\":\"\"}},[_c('div',{class:'rounded p-3 ' + _vm.bubble(data)},[_c('p',{staticClass:\"text-left m-0\"},[_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(data.item.createDate))]),_c('b-badge',{staticClass:\"l-white ml-2\",attrs:{\"variant\":\"light\"}},[_vm._v(_vm._s(data.item.subject))]),(data.item.isRead === false)?[_c('b-button',{staticClass:\"ml-0 ml-md-2 btn-tiny\",on:{\"click\":function($event){return _vm.markAsRead(data)}}},[_vm._v(_vm._s(_vm.$t('common.close')))])]:_vm._e()],2),_c('p',{staticClass:\"text-left m-0\"},[_vm._v(_vm._s(data.item.body))])])])],1)]:_vm._e()],2)],1)]}}])}),(_vm.hasPagination)?[_c('b-pagination',{staticClass:\"justify-content-center pt-1 pb-1\",attrs:{\"pills\":\"\",\"aria-controls\":\"caseMessages\",\"total-rows\":_vm.total,\"per-page\":_vm.perPage,\"hide-goto-end-buttons\":true},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})]:_vm._e()],2)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { CaseMessage } from '@/store/modules/caseMessages'\r\nimport { Alert } from '@/models/alerts'\r\nimport { Page, APIError, isPage } from '@/store/modules/creditorsAPI'\r\nimport { InputText, validInputs } from '@/models/validations'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CaseMessages = namespace('caseMessages')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CaseMessagesView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @CaseMessages.Action refreshCaseMessages!: (page: number) => Promise | APIError>\r\n @CaseMessages.Action markMessageAsRead!: ({ caseMessageId, _etag }: { caseMessageId: number, _etag: string}) => Promise\r\n @CaseMessages.Action sendCaseMessage!: () => Promise\r\n\r\n @State2Way('caseMessages/setAlert', (state) => state.caseMessages.alert) alert!: Alert | undefined\r\n @State2Way('caseMessages/setMessage', (state) => state.caseMessages.message) message!: InputText\r\n\r\n strict = false\r\n isBusy = false\r\n currentPage = 1\r\n perPage = 10\r\n total = 0\r\n fields = ['content']\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n get hasPagination(): boolean { return this.isBusy === false && this.total > this.perPage }\r\n\r\n bubble(data: {item: CaseMessage}): string { return data.item.isRead ? 'message-bubble' : 'message-bubble-open' }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n async send() {\r\n const inputs = [this.message]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n await this.sendCaseMessage()\r\n this.strict = false\r\n this.$root.$emit('bv::refresh::table', 'caseMessages')\r\n }\r\n }\r\n\r\n async markAsRead(data: {item: CaseMessage}) {\r\n await this.markMessageAsRead({ caseMessageId: data.item.caseMessageId, _etag: data.item._etag })\r\n this.$root.$emit('bv::refresh::table', 'caseMessages')\r\n }\r\n\r\n itemsProvider(ctx: { currentPage: number; perPage: number}, callback: (items: any[]) => void): any[] | null {\r\n this.refreshCaseMessages(ctx.currentPage)\r\n .then((page) => {\r\n if (isPage(page)) {\r\n this.currentPage = page?.page ?? 1\r\n this.perPage = page?.maxResults ?? 10\r\n this.total = page?.total ?? 0\r\n callback(page?.items ?? [])\r\n } else {\r\n callback([])\r\n }\r\n })\r\n .catch(() => {\r\n callback([])\r\n })\r\n return null\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseMessagesView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseMessagesView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CaseMessagesView.vue?vue&type=template&id=d34ca8b0\"\nimport script from \"./CaseMessagesView.vue?vue&type=script&lang=ts\"\nexport * from \"./CaseMessagesView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.casesAlert),callback:function ($$v) {_vm.casesAlert=$$v},expression:\"casesAlert\"}}),_c('nordic-cool-alert',{model:{value:(_vm.caseActionsAlert),callback:function ($$v) {_vm.caseActionsAlert=$$v},expression:\"caseActionsAlert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('case.details.general.title')))]),_c('b-container',{staticClass:\"mt-4 p-4 mb-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"12\"}},[(_vm.caseIsClosed)?[_c('div',{staticClass:\"p-2 mb-3\",staticStyle:{\"background\":\"#FFF2F3\",\"color\":\"#D11525\",\"text-transform\":\"uppercase\"}},[_vm._v(\" \"+_vm._s(_vm.$t('case.details.general.closed'))+\": \"+_vm._s(_vm.getCurrentCaseDetails.formattedClosureDate)+\" \"),_c('span',{staticClass:\"float-right\"},[_vm._v(_vm._s(_vm.$t('case.details.general.closedCode'))+\": \"+_vm._s(_vm.getCurrentCaseDetails.closureCode))])])]:_vm._e()],2)],1),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{attrs:{\"sm\":\"12\",\"md\":\"4\",\"lg\":\"6\"}},[_c('h4',[_vm._v(_vm._s(_vm.$t('common.fields.caseId'))+\" \"+_vm._s(_vm.getCurrentCaseDetails.caseId))]),_c('p',{staticClass:\"mb-1\"},[_vm._v(_vm._s(_vm.$t('case.details.general.registrationDate'))+\": \"),_c('strong',[_vm._v(_vm._s(_vm.getCurrentCaseDetails.registrationDate))])]),_c('p',{staticClass:\"mb-3\"},[_vm._v(_vm._s(_vm.$t('common.fields.ocr'))+\": \"),_c('strong',[_vm._v(_vm._s(_vm.getCurrentCaseDetails.ocr))])])]),_c('b-col',{staticClass:\"ml-auto details-info\",attrs:{\"sm\":\"12\",\"md\":\"8\",\"lg\":\"6\"}},[_c('div',{staticClass:\"d-inline-block align-top ml-auto mr-2\"},[_c('p',{staticClass:\"m-0\"},[_vm._v(_vm._s(_vm.$t('common.fields.remainingCapital'))+\":\")]),_c('h2',[_vm._v(_vm._s(_vm.getCurrentCaseDetails.remainingTotalFormatted))])]),_c('div',{staticClass:\"d-inline-block align-top ml-md-3 details-next-action\"},[_c('div',{staticClass:\"d-inline-block align-top ml-md-3\"},[_c('b-img',{attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_info_small.svg\"),\"alt\":\"\"}})],1),_c('div',{staticClass:\"d-inline-block align-top ml-3 mr-3\"},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(_vm._s(_vm.$t('case.details.general.nextAction'))+\": \"),_c('strong',[_vm._v(_vm._s(_vm.getCurrentCaseDetails.nextAction))])]),_c('p',{staticClass:\"text-left m-0\"},[_vm._v(_vm._s(_vm.$t('common.fields.date'))+\": \"),_c('strong',[_vm._v(_vm._s(_vm.getCurrentCaseDetails.nextActionDate))])])])])])],1),_c('hr',{staticClass:\"margin-top-bottom mb-2 mt-2\"}),_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('case.details.debtors.title')))]),_c('nordic-cool-table',{attrs:{\"id\":\"caseDebtors\",\"items\":_vm.caseDebtorItems,\"stacked\":\"\",\"fields\":_vm.caseDebtorFields}}),_c('hr',{staticClass:\"margin-top-bottom mb-2 mt-2\"}),_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('case.details.debts.title')))]),_c('nordic-cool-table',{attrs:{\"id\":\"caseDebts\",\"items\":_vm.caseDebtItems,\"fields\":_vm.caseDebtFields}}),_c('hr',{staticClass:\"margin-top-bottom mb-2 mt-2\"}),_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('case.details.payments.title')))]),_c('nordic-cool-table',{attrs:{\"id\":\"casePayments\",\"items\":_vm.casePaymentItems,\"fields\":_vm.casePaymentFields}}),_c('hr',{staticClass:\"margin-top-bottom mb-2 mt-2\"}),_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('case.details.costs.title')))]),_c('nordic-cool-table',{attrs:{\"id\":\"caseDebts\",\"items\":_vm.caseCostItems,\"fields\":_vm.caseCostFields}}),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right ml-2 mb-2\",attrs:{\"variant\":\"light\",\"size\":\"sm\",\"to\":\"/case-payment-start\"}},[_vm._v(_vm._s(_vm.$t('case.details.payments.register')))]),_c('b-button',{staticClass:\"float-right ml-2 mb-2\",attrs:{\"variant\":\"light\",\"size\":\"sm\",\"to\":\"/case-action-start\"}},[_vm._v(_vm._s(_vm.$t('case.details.actions.perform')))]),_c('b-button',{staticClass:\"float-right ml-2 mb-2\",attrs:{\"variant\":\"light\",\"size\":\"sm\",\"to\":\"/case-messages\"}},[_vm._v(_vm._s(_vm.$t('case.details.messages.send')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { CaseCost } from '@/store/modules/caseCosts'\r\nimport { CaseDebt } from '@/store/modules/caseDebts'\r\nimport { Case, CaseDetails } from '@/store/modules/cases'\r\nimport { Alert } from '@/models/alerts'\r\nimport { FieldType } from '@/components/NordicCoolTable.vue'\r\nimport { InputText } from '@/models/validations'\r\nimport { Page, APIError } from '@/store/modules/creditorsAPI'\r\nimport { CaseDebtor } from '@/store/modules/caseDebtors'\r\nimport { CasePayment } from '@/store/modules/casePayments'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CaseCosts = namespace('caseCosts')\r\nconst CaseDebtors = namespace('caseDebtors')\r\nconst CaseDebts = namespace('caseDebts')\r\nconst CasePayments = namespace('casePayments')\r\nconst Cases = namespace('cases')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CaseDetailsView extends Vue {\r\n @Cases.Getter getCurrentCaseDetails!: CaseDetails\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @CaseCosts.Action refreshCaseCosts!: (page: number) => Promise | APIError>\r\n @CaseDebtors.Action refreshCaseDebtors!: (page: number) => Promise | APIError>\r\n @CaseDebts.Action refreshCaseDebts!: (page: number) => Promise | APIError>\r\n @CasePayments.Action refreshCasePayments!: (page: number) => Promise | APIError>\r\n @Cases.Action refreshCurrentCaseDetails!: () => Promise\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) casesAlert!: Alert | undefined\r\n @State2Way('caseActions/setAlert', (state) => state.caseActions.alert) caseActionsAlert!: Alert | undefined\r\n\r\n busy = true\r\n\r\n get caseIsClosed(): boolean { return this.getCurrentCaseDetails.statusType === 'CLOSED' }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n caseDebtItems(page: number): Promise | APIError> {\r\n return this.refreshCaseDebts(page)\r\n }\r\n\r\n caseDebtorItems(page: number): Promise | APIError> {\r\n return this.refreshCaseDebtors(page)\r\n }\r\n\r\n get caseDebtorFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'debtor', label: this.$i18n.tc('common.fields.type'), sortable: false, size: 'xsmall', alignment: 'left',\r\n },\r\n {\r\n key: 'organisationId', label: this.$i18n.tc('common.fields.orgPersonId'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'name', label: this.$i18n.tc('common.fields.name'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'role', label: this.$i18n.tc('common.fields.role'), sortable: false, size: 'flex', alignment: 'right',\r\n },\r\n ]\r\n }\r\n\r\n get caseDebtFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'debt', label: this.$i18n.tc('common.fields.type'), sortable: false, size: 'xsmall', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceNumber', label: this.$i18n.tc('common.fields.invoiceNumber'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceDescription', label: this.$i18n.tc('common.fields.description'), sortable: false, size: 'text', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceDateFormatted', label: this.$i18n.tc('common.fields.invoiceDate'), sortable: false, size: 'flex', alignment: 'right',\r\n },\r\n {\r\n key: 'invoiceDueDateFormatted', label: this.$i18n.tc('case.details.debts.invoiceDueDate'), sortable: false, size: 'xsmall', alignment: 'right',\r\n },\r\n {\r\n key: 'remainingCapitalFormatted', label: this.$i18n.tc('common.fields.remaining'), sortable: false, size: 'xsmall', alignment: 'right',\r\n },\r\n {\r\n key: 'remainingInterestFormatted', label: this.$i18n.tc('common.fields.interest'), sortable: false, size: 'xsmall', alignment: 'right',\r\n },\r\n ]\r\n }\r\n\r\n casePaymentItems(page: number): Promise | APIError> {\r\n return this.refreshCasePayments(page)\r\n }\r\n\r\n get casePaymentFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'payment', label: this.$i18n.tc('common.fields.type'), sortable: false, size: 'xsmall', alignment: 'left',\r\n },\r\n {\r\n key: 'referenceNumber', label: this.$i18n.tc('case.details.payments.referenceNumber'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'receiver', label: this.$i18n.tc('case.details.payments.receiver'), sortable: false, size: 'flex', alignment: 'left',\r\n },\r\n {\r\n key: 'accountingDateFormatted', label: this.$i18n.tc('common.fields.date'), sortable: false, size: 'xsmall', alignment: 'right',\r\n },\r\n {\r\n key: 'amountFormatted', label: this.$i18n.tc('common.fields.amount'), sortable: false, size: 'xsmall', alignment: 'right',\r\n },\r\n ]\r\n }\r\n\r\n caseCostItems(page: number): Promise | APIError> {\r\n return this.refreshCaseCosts(page)\r\n }\r\n\r\n get caseCostFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'cost', label: this.$i18n.tc('common.fields.type'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'empty', label: '', sortable: false, size: 'flex', alignment: 'left',\r\n },\r\n {\r\n key: 'createdFormatted', label: this.$i18n.tc('common.fields.date'), sortable: false, size: 'xsmall', alignment: 'right',\r\n },\r\n {\r\n key: 'remainingCapitalFormatted', label: this.$i18n.tc('common.fields.amount'), sortable: false, size: 'xsmall', alignment: 'right',\r\n },\r\n {\r\n key: 'remainingInterestFormatted', label: this.$i18n.tc('common.fields.interest'), sortable: false, size: 'xsmall', alignment: 'right',\r\n },\r\n ]\r\n }\r\n\r\n async mounted() {\r\n await this.refreshCurrentCaseDetails()\r\n this.busy = false\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseDetailsView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseDetailsView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CaseDetailsView.vue?vue&type=template&id=38153d57\"\nimport script from \"./CaseDetailsView.vue?vue&type=script&lang=ts\"\nexport * from \"./CaseDetailsView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('case.details.documents.title')))]),_c('h2',{staticClass:\"sub-section-header pt-3\"},[_vm._v(_vm._s(_vm.$t('case.details.documents.upload')))]),_c('b-container',{staticClass:\"mt-4 mb-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-file',{attrs:{\"id\":\"currentFile\",\"label\":_vm.$t('case.details.documents.file'),\"placeholder\":_vm.$t('common.nofile'),\"dropplaceholder\":_vm.$t('common.dropfile'),\"browsetext\":_vm.$t('common.browsefile'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.currentFile),callback:function ($$v) {_vm.currentFile=$$v},expression:\"currentFile\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-select',{attrs:{\"id\":\"currentDocumentOption\",\"label\":_vm.$t('case.details.documents.type'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.currentDocumentOption),callback:function ($$v) {_vm.currentDocumentOption=$$v},expression:\"currentDocumentOption\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"currentDescription\",\"label\":_vm.$t('common.fields.description'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.currentDescription),callback:function ($$v) {_vm.currentDescription=$$v},expression:\"currentDescription\"}}),_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.upload}},[_vm._v(_vm._s(_vm.$t('common.upload')))])],1)],1)],1),_c('h2',{staticClass:\"sub-section-header\"},[_vm._v(_vm._s(_vm.$t('case.details.documents.list')))]),_c('b-container',{staticClass:\"mt-3 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-table',{attrs:{\"id\":\"caseDocuments\",\"items\":_vm.caseDocumentsItems,\"fields\":_vm.fields,\"download-click\":_vm.download}})],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { InputText, InputFile, InputSelect, validInputs } from '@/models/validations'\r\nimport { CaseDocument } from '@/store/modules/caseDocuments'\r\nimport { Alert } from '@/models/alerts'\r\nimport { Page, APIError } from '@/store/modules/creditorsAPI'\r\nimport { FieldType } from '@/components/NordicCoolTable.vue'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CaseDocuments = namespace('caseDocuments')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CaseDocumentsView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @CaseDocuments.Action refreshCaseDocuments!: (page: number) => Promise | APIError>\r\n @CaseDocuments.Action uploadCaseDocument!: () => Promise\r\n @CaseDocuments.Action startUploadCaseDocument!: () => void\r\n @CaseDocuments.Action queryCaseDocumentUrl!: (caseDocumentId: number) => Promise\r\n\r\n @State2Way('caseDocuments/setAlert', (state) => state.caseDocuments.alert) alert!: Alert | undefined\r\n @State2Way('caseDocuments/setCurrentFile', (state) => state.caseDocuments.currentFile) currentFile!: InputFile\r\n @State2Way('caseDocuments/setCurrentDescription', (state) => state.caseDocuments.currentDescription) currentDescription!: InputText\r\n @State2Way('caseDocuments/setCurrentDocumentOption', (state) => state.caseDocuments.currentDocumentOption) currentDocumentOption!: InputSelect\r\n\r\n strict = false\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n async upload() {\r\n const inputs = [this.currentFile, this.currentDescription, this.currentDocumentOption]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n await this.uploadCaseDocument()\r\n this.strict = false\r\n this.$root.$emit('bv::refresh::table', 'caseDocuments')\r\n }\r\n }\r\n\r\n async download(data: {item: CaseDocument}) {\r\n const url = await this.queryCaseDocumentUrl(data.item.caseDocumentId)\r\n if (typeof (url) === 'string') {\r\n window.open(url, '_blank')\r\n }\r\n }\r\n\r\n caseDocumentsItems(page: number): Promise | APIError> {\r\n return this.refreshCaseDocuments(page)\r\n }\r\n\r\n get fields(): FieldType[] {\r\n return [\r\n {\r\n key: 'caseDocumentId', label: this.$i18n.tc('common.fields.id'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'description', label: this.$i18n.tc('common.fields.description'), sortable: false, size: 'large', alignment: 'left',\r\n },\r\n {\r\n key: 'filename', label: this.$i18n.tc('case.details.documents.file'), sortable: false, size: 'large', alignment: 'left',\r\n },\r\n {\r\n key: 'type', label: this.$i18n.tc('case.details.documents.type'), sortable: false, size: 'small', alignment: 'right',\r\n },\r\n {\r\n key: 'createFormatted', label: this.$i18n.tc('common.fields.created'), sortable: false, size: 'small', alignment: 'right',\r\n },\r\n {\r\n key: 'actions', label: '', sortable: false, size: 'actions', alignment: 'right',\r\n },\r\n ]\r\n }\r\n\r\n async mounted() {\r\n this.startUploadCaseDocument()\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseDocumentsView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CaseDocumentsView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CaseDocumentsView.vue?vue&type=template&id=d45cb7f0\"\nimport script from \"./CaseDocumentsView.vue?vue&type=script&lang=ts\"\nexport * from \"./CaseDocumentsView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('case.payment.start.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_recieved_payment.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"invoiceNumber\",\"label\":_vm.$t('common.fields.invoiceNumber'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.invoiceNumber),callback:function ($$v) {_vm.invoiceNumber=$$v},expression:\"invoiceNumber\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-date',{attrs:{\"id\":\"accountingDate\",\"label\":_vm.$t('case.payment.start.accountingDate'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.accountingDate),callback:function ($$v) {_vm.accountingDate=$$v},expression:\"accountingDate\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-number',{attrs:{\"id\":\"amount\",\"label\":_vm.$t('common.fields.amount'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.amount),callback:function ($$v) {_vm.amount=$$v},expression:\"amount\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"paymentMessage\",\"label\":_vm.$t('case.payment.start.paymentMessage'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.paymentMessage),callback:function ($$v) {_vm.paymentMessage=$$v},expression:\"paymentMessage\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-left w-40\",attrs:{\"variant\":\"light\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.$router.back()}}},[_vm._v(_vm._s(_vm.$t('common.cancel')))]),_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.register')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { Alert } from '@/models/alerts'\r\nimport { FieldType } from '@/components/NordicCoolTable.vue'\r\nimport { InputText, InputDate, InputNumber, InputCheckbox, validInputs } from '@/models/validations'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CasePayments = namespace('casePayments')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CasePaymentStartView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @CasePayments.Action createCasePayment!: () => Promise>\r\n @CasePayments.Action startCreatingCasePayment!: () => void\r\n\r\n @State2Way('casePayments/setAlert', (state) => state.casePayments.alert) alert!: Alert | undefined\r\n @State2Way('casePayments/setInvoiceNumber', (state) => state.casePayments.invoiceNumber) invoiceNumber!: InputText\r\n @State2Way('casePayments/setAccountingDate', (state) => state.casePayments.accountingDate) accountingDate!: InputDate\r\n @State2Way('casePayments/setAmount', (state) => state.casePayments.amount) amount!: InputNumber\r\n @State2Way('casePayments/setPaymentMessage', (state) => state.casePayments.paymentMessage) paymentMessage!: InputText\r\n\r\n strict = false\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n async next() {\r\n const inputs = [this.invoiceNumber, this.accountingDate, this.amount, this.paymentMessage]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n if (await this.createCasePayment() === true) router.push('/case-payment-success')\r\n } else {\r\n console.log('Invalid')\r\n }\r\n }\r\n\r\n async mounted() {\r\n this.startCreatingCasePayment()\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CasePaymentStartView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CasePaymentStartView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CasePaymentStartView.vue?vue&type=template&id=dd05e4c8\"\nimport script from \"./CasePaymentStartView.vue?vue&type=script&lang=ts\"\nexport * from \"./CasePaymentStartView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 green-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('case.payment.success.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_check.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('case.payment.success.body'))+\" \")])])],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.done')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CasePaymentSuccessView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) alert!: Alert | undefined\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n next() {\r\n router.push('/case-details')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CasePaymentSuccessView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CasePaymentSuccessView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CasePaymentSuccessView.vue?vue&type=template&id=72ffe2d3\"\nimport script from \"./CasePaymentSuccessView.vue?vue&type=script&lang=ts\"\nexport * from \"./CasePaymentSuccessView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('cases.closed.title')))]),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-table',{attrs:{\"id\":\"closedCases\",\"items\":_vm.closedCaseItems,\"fields\":_vm.closedCaseFields}})],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { Alert } from '@/models/alerts'\r\nimport { Page, APIError } from '@/store/modules/creditorsAPI'\r\nimport { FieldType } from '@/components/NordicCoolTable.vue'\r\nimport { Case } from '@/store/modules/cases'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Cases = namespace('cases')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CasesClosedView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @Cases.Action refreshClosedCases!: (page: number) => Promise | APIError>\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) alert!: Alert | undefined\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n closedCaseItems(page: number): Promise | APIError> {\r\n return this.refreshClosedCases(page)\r\n }\r\n\r\n get closedCaseFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'caseId', label: this.$i18n.tc('common.fields.id'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceInitialCapitalFormatted', label: this.$i18n.tc('common.fields.invoiceInitialCapital'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceDatesFormatted', label: this.$i18n.tc('common.fields.invoiceDate'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceNumbers', label: this.$i18n.tc('common.fields.invoiceNumber'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'mainDebtorName', label: this.$i18n.tc('cases.header.mainDebtorName'), sortable: false, size: 'flex', alignment: 'left',\r\n },\r\n {\r\n key: 'registrationDate', label: this.$i18n.tc('cases.header.registrationDate'), sortable: false, size: 'small', alignment: 'right',\r\n },\r\n {\r\n key: 'formattedClosureDate', label: this.$i18n.tc('cases.header.closureDate'), sortable: false, size: 'small', alignment: 'right',\r\n },\r\n {\r\n key: 'closureCode', label: this.$i18n.tc('cases.header.closureCode'), sortable: false, size: 'small', alignment: 'right',\r\n },\r\n ]\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CasesClosedView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CasesClosedView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CasesClosedView.vue?vue&type=template&id=4be960cb\"\nimport script from \"./CasesClosedView.vue?vue&type=script&lang=ts\"\nexport * from \"./CasesClosedView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('cases.ongoing.title')))]),_c('div',{staticClass:\"bg-white shadow-sm mt-3 pt-2 pb-2 mb-4\"},[_c('b-container',{staticClass:\"p-2 pl-4 pr-4\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{staticClass:\"my-auto\",attrs:{\"cols\":\"8\",\"md\":\"8\"}},[_c('p',{staticClass:\"text-left m-0\",staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"16px\"}},[_vm._v(_vm._s(_vm.$t('cases.ongoing.search')))])]),_c('b-col',{staticClass:\"my-auto text-right\",attrs:{\"cols\":\"4\",\"md\":\"4\"}},[_c('b-link',{staticClass:\"d-inline-flex float-right pl-2\",class:_vm.visible ? null : 'collapsed',attrs:{\"aria-expanded\":_vm.visible ? 'true' : 'false',\"aria-controls\":\"collapse\"},on:{\"click\":function($event){_vm.visible = !_vm.visible}}},[_c('span',{staticClass:\"when-opened\"},[_c('b-img',{attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_collapse.svg\")}})],1),_c('span',{staticClass:\"when-closed\"},[_c('b-img',{attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_expand.svg\")}})],1)])],1)],1)],1),_c('b-collapse',{attrs:{\"id\":\"search\"},model:{value:(_vm.visible),callback:function ($$v) {_vm.visible=$$v},expression:\"visible\"}},[_c('b-container',{staticClass:\"pl-4 pr-4\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"12\",\"md\":\"11\"}},[_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('nordic-cool-input-number',{attrs:{\"id\":\"searchCaseId\",\"label\":_vm.$t('common.fields.caseId'),\"no-placeholder\":true,\"strict\":_vm.strictSearchCaseId},model:{value:(_vm.searchCaseId),callback:function ($$v) {_vm.searchCaseId=$$v},expression:\"searchCaseId\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('nordic-cool-input-select',{attrs:{\"id\":\"searchCreditorDepartment\",\"label\":_vm.$t('common.fields.department'),\"strict\":_vm.strictSearchCreditorDepartment},model:{value:(_vm.searchCreditorDepartment),callback:function ($$v) {_vm.searchCreditorDepartment=$$v},expression:\"searchCreditorDepartment\"}})],1)],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"searchReferenceId\",\"label\":_vm.$t('common.fields.referenceNumber'),\"no-placeholder\":true,\"strict\":_vm.strictSearchReferenceId},model:{value:(_vm.searchReferenceId),callback:function ($$v) {_vm.searchReferenceId=$$v},expression:\"searchReferenceId\"}})],1)],1)],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"pb-2\"},[_c('b-col',{attrs:{\"md\":\"7\"}}),_c('b-col',{attrs:{\"md\":\"5\"}},[_c('b-button',{staticClass:\"float-right ml-2 mb-2 w-25\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.advancedSearch}},[_vm._v(_vm._s(_vm.$t('common.search')))]),_c('b-button',{staticClass:\"float-right ml-2 mb-2 w-25\",attrs:{\"variant\":\"light\",\"size\":\"sm\"},on:{\"click\":_vm.clearSearch}},[_vm._v(_vm._s(_vm.$t('common.clear')))])],1)],1)],1)],1)],1),_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('div',{staticClass:\"float-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('cases.overviews.filter'))+\" \"),_c('b-form-select',{staticClass:\"custom-select pl-2\",staticStyle:{\"width\":\"162px\"},attrs:{\"options\":_vm.statusOption.options},model:{value:(_vm.selectedStatusOption),callback:function ($$v) {_vm.selectedStatusOption=$$v},expression:\"selectedStatusOption\"}})],1),_c('div',{staticClass:\"float-right px-2 mt-2 mb-3 mt-sm-0 mr-sm-2 pt-1\"},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_message_notification.svg\")}}),_vm._v(\"= \"+_vm._s(_vm.$t('cases.overviews.notification'))+\" \")])])],1)],1),_c('b-container',{staticClass:\"mt-2 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-table',{attrs:{\"id\":\"ongoingCases\",\"items\":_vm.ongoingCaseItems,\"fields\":_vm.ongoingCaseFields,\"view-click\":_vm.caseDetails,\"has-symbol\":_vm.caseSymbol}})],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { Alert } from '@/models/alerts'\r\nimport { Page, APIError } from '@/store/modules/creditorsAPI'\r\nimport { FieldSymbol, FieldType } from '@/components/NordicCoolTable.vue'\r\nimport { Case, StatusOption } from '@/store/modules/cases'\r\nimport { StatusType } from '@/models/cases'\r\nimport { InputNumber, InputSelect, InputText, validInputs } from '@/models/validations'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Cases = namespace('cases')\r\nconst CreditorDepartments = namespace('creditorDepartments')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CasesOngoingView extends Vue {\r\n @Cases.Getter getActiveCaseMessagesUnread!: number\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Cases.Action refreshOngoingCases!: (page: number) => Promise | APIError>\r\n @Cases.Action switchCurrentCaseId!: (caseId: number) => Promise\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) alert!: Alert | undefined\r\n @State2Way('cases/setSearchCaseId', (state) => state.cases.searchCaseId) searchCaseId!: InputNumber\r\n @State2Way('cases/setSearchReferenceId', (state) => state.cases.searchReferenceId) searchReferenceId!: InputText\r\n @State2Way('cases/setStatusOption', (state) => state.cases.statusOption) statusOption!: InputSelect\r\n @State2Way('creditorDepartments/setSearchCreditorDepartment', (state) => state.creditorDepartments.searchCreditorDepartment) searchCreditorDepartment!: InputSelect\r\n\r\n busy = true\r\n visible = false\r\n strictSearchCaseId = false\r\n strictSearchCreditorDepartment = false\r\n strictSearchReferenceId = false\r\n\r\n get hasUnreadMessages(): boolean {\r\n return this.getActiveCaseMessagesUnread > 0\r\n }\r\n\r\n get selectedStatusOption(): number | null {\r\n return this.statusOption.value\r\n }\r\n\r\n set selectedStatusOption(v: number | null) {\r\n this.statusOption.value = v\r\n this.$root.$emit('bv::refresh::table', 'ongoingCases')\r\n }\r\n\r\n async clearSearch() {\r\n this.strictSearchCaseId = false\r\n this.strictSearchCreditorDepartment = false\r\n this.strictSearchReferenceId = false\r\n this.searchCaseId.value = 0\r\n this.searchCreditorDepartment.value = 0\r\n this.searchReferenceId.value = ''\r\n await this.refreshOngoingCases(1)\r\n this.$root.$emit('bv::refresh::table', 'ongoingCases')\r\n }\r\n\r\n async advancedSearch() {\r\n // Toogle validation for inputs based on if they are blank or not so that we don't display\r\n // green boxes for inputs that are empty\r\n const inputs: (InputSelect | InputText | InputNumber)[] = [this.searchCreditorDepartment]\r\n this.strictSearchCreditorDepartment = true\r\n if (!this.searchCaseId.isBlank) {\r\n this.strictSearchCaseId = true\r\n inputs.push(this.searchCaseId)\r\n }\r\n if (!this.searchReferenceId.isBlank) {\r\n this.strictSearchReferenceId = true\r\n inputs.push(this.searchReferenceId)\r\n }\r\n if (validInputs(inputs, true)) {\r\n await this.refreshOngoingCases(1)\r\n this.$root.$emit('bv::refresh::table', 'ongoingCases')\r\n }\r\n }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n async caseDetails(data: {item: Case}) {\r\n if (await this.switchCurrentCaseId(data.item.caseId) === true) {\r\n router.push({ name: 'CaseDetailsView', params: { source: 'cases-overviews' } })\r\n }\r\n }\r\n\r\n caseSymbol(item: Case): FieldSymbol {\r\n return item.caseMessagesUnread > 0 ? 'dot' : 'none'\r\n }\r\n\r\n ongoingCaseItems(page: number): Promise | APIError> {\r\n return this.refreshOngoingCases(page)\r\n }\r\n\r\n get ongoingCaseFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'caseId', label: this.$i18n.tc('common.fields.id'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceDatesFormatted', label: this.$i18n.tc('common.fields.invoiceDate'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'invoiceNumbers', label: this.$i18n.tc('common.fields.invoiceNumber'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'mainDebtorName', label: this.$i18n.tc('cases.header.mainDebtorName'), sortable: false, size: 'flex', alignment: 'left',\r\n },\r\n {\r\n key: 'registrationDate', label: this.$i18n.tc('cases.header.registrationDate'), sortable: false, size: 'small', alignment: 'right',\r\n },\r\n {\r\n key: 'formattedTotal', label: this.$i18n.tc('cases.header.formattedTotal'), sortable: false, size: 'small', alignment: 'right',\r\n },\r\n {\r\n key: 'status', label: this.$i18n.tc('cases.header.status'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'symbol', label: '', sortable: false, size: 'symbol', alignment: 'right',\r\n },\r\n {\r\n key: 'actions', label: '', sortable: false, size: 'actions', alignment: 'right',\r\n },\r\n ]\r\n }\r\n\r\n async mounted() {\r\n const statusType: StatusType | undefined = this.$route.params.status as StatusType\r\n const statusOptions: StatusOption[] = this.statusOption.options?.map((it) => it.data as StatusOption) ?? []\r\n if (statusType !== undefined) {\r\n const option = statusOptions.find((it) => it.id !== 1 && it.matches.includes(statusType))\r\n this.selectedStatusOption = option?.id ?? null\r\n } else {\r\n const option = statusOptions.find((it) => it.id === 1)\r\n this.selectedStatusOption = option?.id ?? null\r\n }\r\n this.clearSearch()\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CasesOngoingView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CasesOngoingView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CasesOngoingView.vue?vue&type=template&id=611be688&scoped=true\"\nimport script from \"./CasesOngoingView.vue?vue&type=script&lang=ts\"\nexport * from \"./CasesOngoingView.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CasesOngoingView.vue?vue&type=style&index=0&id=611be688&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"611be688\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[(_vm.isEmpty)?[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-5 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('cases.overviews.greeting', {fullName: _vm.creditorName})))]),_c('h5',{staticClass:\"text-white container-intro-empty\"},[_vm._v(_vm._s(_vm.$t('cases.overviews.empty')))]),_c('b-button',{staticClass:\"btn-light mt-3\",attrs:{\"variant\":\"secondary\",\"size\":\"lg\",\"to\":\"/register-manually-start\"}},[_vm._v(_vm._s(_vm.$t('menu.register')))])],1),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"img-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_pocket.svg\"),\"alt\":\"\"}})],1)],1)],1)]:[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-5 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('cases.overviews.greeting', {fullName: _vm.creditorName})))]),_c('h5',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('cases.overviews.active', {activeCount: _vm.getActiveCount})))]),_c('hr',{staticClass:\"short-blue-sep\"}),_c('p',{staticClass:\"m-0 text-white\"},[_vm._v(_vm._s(_vm.$t('cases.overviews.remaining')))]),_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.getActiveRemainingTotal))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"img-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_pocket.svg\"),\"alt\":\"\"}})],1)],1)],1),(_vm.busy)?[_c('div',{staticClass:\"text-center my-2\"},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\",\"label\":_vm.$t('common.loading')}})],1)]:_vm._e(),_c('div',{staticClass:\"row mb-3\"},[(_vm.dashboard('REMINDER') !== undefined)?[_c('div',{staticClass:\"col-xl-4 col-sm-6 py-2\"},[_c('div',{staticClass:\"card db-1 h-100 zoom\",on:{\"click\":function($event){return _vm.showDashboard('REMINDER')}}},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"clearfix\"},[_c('div',{staticClass:\"float-left px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.dashboard('REMINDER').status))])]),(_vm.dashboard('REMINDER').caseMessagesUnread > 0)?[_c('div',{staticClass:\"float-right px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_message_notification.svg\")}}),_vm._v(\" \"+_vm._s(_vm.dashboard('REMINDER').caseMessagesUnread)+\" \"+_vm._s(_vm.$t('cases.overviews.notification'))+\" \")])]:_vm._e()],2),_c('p',{staticClass:\"text-center m-0 pt-4\"},[_vm._v(_vm._s(_vm.dashboard('REMINDER').count)+\" \"+_vm._s(_vm.$t('cases.overviews.statusCount')))]),_c('h1',{staticClass:\"text-center font-weight-bold mb-4\"},[_vm._v(_vm._s(_vm.dashboard('REMINDER').formattedTotal))])])])])]:_vm._e(),(_vm.dashboard('COLLECTION') !== undefined)?[_c('div',{staticClass:\"col-xl-4 col-sm-6 py-2\"},[_c('div',{staticClass:\"card db-2 h-100 zoom\",on:{\"click\":function($event){return _vm.showDashboard('COLLECTION')}}},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"clearfix\"},[_c('div',{staticClass:\"float-left px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.dashboard('COLLECTION').status))])]),(_vm.dashboard('COLLECTION').caseMessagesUnread > 0)?[_c('div',{staticClass:\"float-right px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_message_notification.svg\")}}),_vm._v(\" \"+_vm._s(_vm.dashboard('COLLECTION').caseMessagesUnread)+\" \"+_vm._s(_vm.$t('cases.overviews.notification'))+\" \")])]:_vm._e()],2),_c('p',{staticClass:\"text-center m-0 pt-4\"},[_vm._v(_vm._s(_vm.dashboard('COLLECTION').count)+\" \"+_vm._s(_vm.$t('cases.overviews.statusCount')))]),_c('h1',{staticClass:\"text-center font-weight-bold mb-4\"},[_vm._v(_vm._s(_vm.dashboard('COLLECTION').formattedTotal))])])])])]:_vm._e(),(_vm.dashboard('SURVEILLANCE') !== undefined)?[_c('div',{staticClass:\"col-xl-4 col-sm-6 py-2\"},[_c('div',{staticClass:\"card db-3 h-100 zoom\",on:{\"click\":function($event){return _vm.showDashboard('SURVEILLANCE')}}},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"clearfix\"},[_c('div',{staticClass:\"float-left px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.dashboard('SURVEILLANCE').status))])]),(_vm.dashboard('SURVEILLANCE').caseMessagesUnread > 0)?[_c('div',{staticClass:\"float-right px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_message_notification.svg\")}}),_vm._v(\" \"+_vm._s(_vm.dashboard('SURVEILLANCE').caseMessagesUnread)+\" \"+_vm._s(_vm.$t('cases.overviews.notification'))+\" \")])]:_vm._e()],2),_c('p',{staticClass:\"text-center m-0 pt-4\"},[_vm._v(_vm._s(_vm.dashboard('SURVEILLANCE').count)+\" \"+_vm._s(_vm.$t('cases.overviews.statusCount')))]),_c('h1',{staticClass:\"text-center font-weight-bold mb-4\"},[_vm._v(_vm._s(_vm.dashboard('SURVEILLANCE').formattedTotal))])])])])]:_vm._e(),(_vm.dashboard('ENFORCEMENT') !== undefined)?[_c('div',{staticClass:\"col-xl-4 col-sm-6 py-2\"},[_c('div',{staticClass:\"card db-1 h-100 zoom\",on:{\"click\":function($event){return _vm.showDashboard('ENFORCEMENT')}}},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"clearfix\"},[_c('div',{staticClass:\"float-left px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.dashboard('ENFORCEMENT').status))])]),(_vm.dashboard('ENFORCEMENT').caseMessagesUnread > 0)?[_c('div',{staticClass:\"float-right px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_message_notification.svg\")}}),_vm._v(\" \"+_vm._s(_vm.dashboard('ENFORCEMENT').caseMessagesUnread)+\" \"+_vm._s(_vm.$t('cases.overviews.notification'))+\" \")])]:_vm._e()],2),_c('p',{staticClass:\"text-center m-0 pt-4\"},[_vm._v(_vm._s(_vm.dashboard('ENFORCEMENT').count)+\" \"+_vm._s(_vm.$t('cases.overviews.statusCount')))]),_c('h1',{staticClass:\"text-center font-weight-bold mb-4\"},[_vm._v(_vm._s(_vm.dashboard('ENFORCEMENT').formattedTotal))])])])])]:_vm._e(),(_vm.dashboard('AMORTISATION') !== undefined)?[_c('div',{staticClass:\"col-xl-4 col-sm-6 py-2\"},[_c('div',{staticClass:\"card db-2 h-100 zoom\",on:{\"click\":function($event){return _vm.showDashboard('AMORTISATION')}}},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"clearfix\"},[_c('div',{staticClass:\"float-left px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.dashboard('AMORTISATION').status))])]),(_vm.dashboard('AMORTISATION').caseMessagesUnread > 0)?[_c('div',{staticClass:\"float-right px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_message_notification.svg\")}}),_vm._v(\" \"+_vm._s(_vm.dashboard('AMORTISATION').caseMessagesUnread)+\" \"+_vm._s(_vm.$t('cases.overviews.notification'))+\" \")])]:_vm._e()],2),_c('p',{staticClass:\"text-center m-0 pt-4\"},[_vm._v(_vm._s(_vm.dashboard('AMORTISATION').count)+\" \"+_vm._s(_vm.$t('cases.overviews.statusCount')))]),_c('h1',{staticClass:\"text-center font-weight-bold mb-4\"},[_vm._v(_vm._s(_vm.dashboard('AMORTISATION').formattedTotal))])])])])]:_vm._e(),(_vm.dashboard('VERDICT_WARNING') !== undefined)?[_c('div',{staticClass:\"col-xl-4 col-sm-6 py-2\"},[_c('div',{staticClass:\"card db-2 h-100 zoom\",on:{\"click\":function($event){return _vm.showDashboard('VERDICT_WARNING')}}},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"clearfix\"},[_c('div',{staticClass:\"float-left px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.dashboard('VERDICT_WARNING').status))])]),(_vm.dashboard('VERDICT_WARNING').caseMessagesUnread > 0)?[_c('div',{staticClass:\"float-right px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_message_notification.svg\")}}),_vm._v(\" \"+_vm._s(_vm.dashboard('VERDICT_WARNING').caseMessagesUnread)+\" \"+_vm._s(_vm.$t('cases.overviews.notification'))+\" \")])]:_vm._e()],2),_c('p',{staticClass:\"text-center m-0 pt-4\"},[_vm._v(_vm._s(_vm.dashboard('VERDICT_WARNING').count)+\" st ärenden\")]),_c('h1',{staticClass:\"text-center font-weight-bold mb-4\"},[_vm._v(_vm._s(_vm.dashboard('VERDICT_WARNING').formattedTotal))])])])])]:_vm._e(),(_vm.dashboard('VERDICT') !== undefined)?[_c('div',{staticClass:\"col-xl-4 col-sm-6 py-2\"},[_c('div',{staticClass:\"card db-2 h-100 zoom\",on:{\"click\":function($event){return _vm.showDashboard('VERDICT')}}},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"clearfix\"},[_c('div',{staticClass:\"float-left px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.dashboard('VERDICT').status))])]),(_vm.dashboard('VERDICT').caseMessagesUnread > 0)?[_c('div',{staticClass:\"float-right px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_message_notification.svg\")}}),_vm._v(\" \"+_vm._s(_vm.dashboard('VERDICT').caseMessagesUnread)+\" \"+_vm._s(_vm.$t('cases.overviews.notification'))+\" \")])]:_vm._e()],2),_c('p',{staticClass:\"text-center m-0 pt-4\"},[_vm._v(_vm._s(_vm.dashboard('VERDICT').count)+\" st ärenden\")]),_c('h1',{staticClass:\"text-center font-weight-bold mb-4\"},[_vm._v(_vm._s(_vm.dashboard('VERDICT').formattedTotal))])])])])]:_vm._e(),(_vm.dashboard('OTHER') !== undefined)?[_c('div',{staticClass:\"col-xl-4 col-sm-6 py-2\"},[_c('div',{staticClass:\"card db-2 h-100 zoom\",on:{\"click\":function($event){return _vm.showDashboard('OTHER')}}},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"clearfix\"},[_c('div',{staticClass:\"float-left px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.dashboard('OTHER').status))])]),(_vm.dashboard('OTHER').caseMessagesUnread > 0)?[_c('div',{staticClass:\"float-right px-2 mt-2 mt-sm-0 mr-sm-2 pt-1\"},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_message_notification.svg\")}}),_vm._v(\" \"+_vm._s(_vm.dashboard('OTHER').caseMessagesUnread)+\" \"+_vm._s(_vm.$t('cases.overviews.notification'))+\" \")])]:_vm._e()],2),_c('p',{staticClass:\"text-center m-0 pt-4\"},[_vm._v(_vm._s(_vm.dashboard('OTHER').count)+\" \"+_vm._s(_vm.$t('cases.overviews.statusCount')))]),_c('h1',{staticClass:\"text-center font-weight-bold mb-4\"},[_vm._v(_vm._s(_vm.dashboard('OTHER').formattedTotal))])])])])]:_vm._e()],2)]],2),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { Dashboard, DashboardsProgress } from '@/store/modules/dashboards'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { Page, APIError, missingError } from '@/store/modules/creditorsAPI'\r\nimport { StatusType } from '@/models/cases'\r\nimport { UserToken } from '@/store/modules/authentications'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Dashboards = namespace('dashboards')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CasesOverviewsView extends Vue {\r\n @Authentications.Getter getFullName!: string\r\n @Authentications.Getter getCurrentUserToken!: UserToken | undefined\r\n @Dashboards.Getter getProgress!: DashboardsProgress\r\n @Dashboards.Getter getDashboards!: Dashboard[]\r\n @Dashboards.Getter getActiveCount!: string\r\n @Dashboards.Getter getActiveRemainingTotal!: string\r\n @Dashboards.Getter getActiveCaseMessagesUnread!: number\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Dashboards.Action refreshDashboards!: () => Promise\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) alert!: Alert | undefined\r\n\r\n busy = true\r\n\r\n get isEmpty(): boolean {\r\n return this.getProgress === 'EMPTY'\r\n }\r\n\r\n get creditorName(): string {\r\n return this.getCurrentUserToken?.creditorName ?? ''\r\n }\r\n\r\n get hasUnreadMessages(): boolean {\r\n return this.getActiveCaseMessagesUnread > 0\r\n }\r\n\r\n dashboard(statusType: StatusType): Dashboard | undefined {\r\n return this.getDashboards.filter((it) => it.matches[0] === statusType)[0]\r\n }\r\n\r\n async showDashboard(statusType: StatusType) {\r\n router.push({ name: 'CasesOngoingView', params: { status: statusType } })\r\n }\r\n\r\n async switchCreditor(creditorId: number) {\r\n this.busy = true\r\n if (await this.switchCurrentCreditor(creditorId) === true) {\r\n await this.refreshDashboards()\r\n this.busy = false\r\n }\r\n }\r\n\r\n async mounted() {\r\n await this.refreshDashboards()\r\n this.busy = false\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CasesOverviewsView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CasesOverviewsView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CasesOverviewsView.vue?vue&type=template&id=dae45300&scoped=true\"\nimport script from \"./CasesOverviewsView.vue?vue&type=script&lang=ts\"\nexport * from \"./CasesOverviewsView.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CasesOverviewsView.vue?vue&type=style&index=0&id=dae45300&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dae45300\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-row',[_c('b-col',[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('creditor.departments.title')))])]),_c('b-col',[_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"secondary\",\"size\":\"lg\"},on:{\"click\":function($event){return _vm.newCreditorDepartment()}}},[_vm._v(_vm._s(_vm.$t('creditor.departments.addDepartment')))])],1)],1),_c('b-row',[_c('b-col',[_c('p',[_vm._v(_vm._s(_vm.$t('creditor.departments.manage'))+\" \"+_vm._s(_vm.getCurrentCreditor.name))])])],1),_c('nordic-cool-table',{attrs:{\"id\":\"creditorDepartments\",\"items\":_vm.creditorDepartmentItems,\"fields\":_vm.creditorDepartmentFields,\"edit-click\":_vm.editCreditorDepartment}})],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport Component from 'vue-class-component'\r\nimport { FieldType } from '@/components/NordicCoolTable.vue'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { Creditor } from '@/store/modules/creditors'\r\nimport { CreditorDepartment } from '@/store/modules/creditorDepartments'\r\nimport { Page, APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Creditors = namespace('creditors')\r\nconst CreditorDepartments = namespace('creditorDepartments')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CreditorDepartmentsView extends Vue {\r\n @Creditors.Getter getCurrentCreditor!: Creditor\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @CreditorDepartments.Action refreshCreditorDepartments!: (page: number) => Promise | APIError>\r\n @CreditorDepartments.Action switchCurrentCreditorDepartmentId!: (creditorDepartmentId?: number) => Promise\r\n\r\n @State2Way('creditors/setAlert', (state) => state.creditors.alert) alert!: Alert | undefined\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n newCreditorDepartment() {\r\n this.switchCurrentCreditorDepartmentId(undefined)\r\n router.push({ name: 'CreditorDepartmentView', params: { mode: 'create', source: 'departments' } })\r\n }\r\n\r\n editCreditorDepartment(data: {item: CreditorDepartment}) {\r\n this.switchCurrentCreditorDepartmentId(data.item.creditorDepartmentId)\r\n router.push({ name: 'CreditorDepartmentView', params: { mode: 'edit', source: 'departments' } })\r\n }\r\n\r\n creditorDepartmentItems(page: number): Promise | APIError> {\r\n return this.refreshCreditorDepartments(page)\r\n }\r\n\r\n get creditorDepartmentFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'currency', label: 'Valuta', sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'name', label: 'Namn', sortable: false, size: 'flex', alignment: 'left',\r\n },\r\n {\r\n key: 'actions', label: '', sortable: false, size: 'actions', alignment: 'right',\r\n },\r\n ]\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorDepartmentsView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorDepartmentsView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CreditorDepartmentsView.vue?vue&type=template&id=8e4a8fd6\"\nimport script from \"./CreditorDepartmentsView.vue?vue&type=script&lang=ts\"\nexport * from \"./CreditorDepartmentsView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar,\"busy\":_vm.isBusy}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('creditor.department.edit.title')))]),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"name\",\"label\":_vm.$t('common.fields.name'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('nordic-cool-input-text',{attrs:{\"id\":\"address\",\"label\":_vm.$t('common.fields.address'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.address),callback:function ($$v) {_vm.address=$$v},expression:\"address\"}}),_c('nordic-cool-input-number',{attrs:{\"id\":\"postalCode\",\"label\":_vm.$t('common.fields.postalCode'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.postalCode),callback:function ($$v) {_vm.postalCode=$$v},expression:\"postalCode\"}}),_c('nordic-cool-input-text',{attrs:{\"id\":\"city\",\"label\":_vm.$t('common.fields.city'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.city),callback:function ($$v) {_vm.city=$$v},expression:\"city\"}})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"bankgiro\",\"label\":_vm.$t('common.fields.bankgiro'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.bankgiro),callback:function ($$v) {_vm.bankgiro=$$v},expression:\"bankgiro\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[(_vm.isCreate)?[_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t('common.add')))])]:_vm._e(),(_vm.isEdit)?[_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t('common.update')))])]:_vm._e()],2)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { CreditorDepartment } from '@/store/modules/creditorDepartments'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\nimport { InputText, InputNumber, validInputs } from '@/models/validations'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CreditorDepartments = namespace('creditorDepartments')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CreditorDepartmentView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n @Navigation.Getter getMode!: string\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @CreditorDepartments.Action editCreditorDepartment!: () => Promise\r\n @CreditorDepartments.Action refreshCurrentCreditorDepartmentDetails!: () => Promise\r\n\r\n @State2Way('creditorDepartments/setAlert', (state) => state.creditorDepartments.alert) alert!: Alert | undefined\r\n @State2Way('creditorDepartments/setName', (state) => state.creditorDepartments.name) name!: InputText\r\n @State2Way('creditorDepartments/setAddress', (state) => state.creditorDepartments.address) address!: InputText\r\n @State2Way('creditorDepartments/setPostalCode', (state) => state.creditorDepartments.postalCode) postalCode!: InputNumber\r\n @State2Way('creditorDepartments/setCity', (state) => state.creditorDepartments.city) city!: InputText\r\n @State2Way('creditorDepartments/setBankgiro', (state) => state.creditorDepartments.bankgiro) bankgiro!: InputText\r\n\r\n isBusy = true\r\n strict = false\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n get isCreate(): boolean { return this.getMode === 'create' }\r\n get isEdit(): boolean { return this.getMode === 'edit' }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n async save() {\r\n const inputs = [this.name, this.address, this.postalCode, this.city, this.bankgiro]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n if (this.isCreate) {\r\n // if (await this.createCreditorDepartment() === true) router.push('/creditor-department-success')\r\n }\r\n if (this.isEdit) {\r\n if (await this.editCreditorDepartment() === true) router.push('/creditor-department-success')\r\n }\r\n } else {\r\n console.log('Invalid')\r\n }\r\n }\r\n\r\n async remove() {\r\n if (this.isEdit) {\r\n // if (await this.removeCreditorUser() === true) router.push('/creditors')\r\n }\r\n }\r\n\r\n async mounted() {\r\n await this.refreshCurrentCreditorDepartmentDetails()\r\n this.isBusy = false\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorDepartmentEditView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorDepartmentEditView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CreditorDepartmentEditView.vue?vue&type=template&id=0b8aa01e\"\nimport script from \"./CreditorDepartmentEditView.vue?vue&type=script&lang=ts\"\nexport * from \"./CreditorDepartmentEditView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 green-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('creditor.department.success.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_check.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('creditor.department.success.body'))+\" \")])])],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.done')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CreditorDepartmentSuccessView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n next() {\r\n router.push('/creditor-overview')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorDepartmentSuccessView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorDepartmentSuccessView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CreditorDepartmentSuccessView.vue?vue&type=template&id=0208da38\"\nimport script from \"./CreditorDepartmentSuccessView.vue?vue&type=script&lang=ts\"\nexport * from \"./CreditorDepartmentSuccessView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(\" \"+_vm._s(_vm.getCurrentCreditorName)+\" \")]),_c('h5',{staticClass:\"text-white\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.fields.organisationId'))+\": \"+_vm._s(_vm.getCurrentCreditorOrganisationId)+\" \")])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive pb-4\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_company_info.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('creditor.overview.title')))]),_c('b-container',{staticClass:\"mt-4 p-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('creditor.overview.departments')))]),_c('nordic-cool-table',{attrs:{\"id\":\"creditorDepartments\",\"items\":_vm.creditorDepartmentItems,\"stacked\":\"\",\"fields\":_vm.creditorDepartmentFields,\"edit-click\":_vm.editCreditorDepartment}}),_c('hr',{staticClass:\"margin-top-bottom mb-2 mt-2\"}),_c('b-row',{staticClass:\"mt-4\"},[_c('b-col',{attrs:{\"cols\":\"4\"}},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('creditor.overview.users')))])]),_c('b-col',{attrs:{\"cols\":\"8\"}},[_c('b-button',{staticClass:\"float-right ml-2 mb-2\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.newCreditorUser}},[_vm._v(_vm._s(_vm.$t('creditor.overview.addUser')))])],1)],1),_c('nordic-cool-table',{attrs:{\"id\":\"creditorUsers\",\"items\":_vm.creditorUserItems,\"fields\":_vm.creditorUserFields,\"edit-click\":_vm.editCreditorUser,\"has-symbol\":_vm.currentSymbol}})],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport Component from 'vue-class-component'\r\nimport { Creditor } from '@/store/modules/creditors'\r\nimport { CreditorDepartment } from '@/store/modules/creditorDepartments'\r\nimport { CreditorUser } from '@/store/modules/creditorUsers'\r\nimport { FieldSymbol, FieldType } from '@/components/NordicCoolTable.vue'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { Page, APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Creditors = namespace('creditors')\r\nconst CreditorDepartments = namespace('creditorDepartments')\r\nconst CreditorUsers = namespace('creditorUsers')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CreditorOverviewView extends Vue {\r\n @Creditors.Getter getCurrentCreditor!: Creditor | undefined\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @Creditors.Action refreshCurrentCreditorDetails!: () => Promise\r\n @CreditorDepartments.Action refreshCreditorDepartments!: (page: number) => Promise | APIError>\r\n @CreditorDepartments.Action switchCurrentCreditorDepartmentId!: (creditorDepartmentId?: number) => Promise\r\n @CreditorUsers.Action refreshCreditorUsers!: (page: number) => Promise | APIError>\r\n @CreditorUsers.Action startCreatingCreditorUser!: () => void\r\n @CreditorUsers.Action switchCurrentCreditorUserId!: (creditorUserId?: number) => Promise\r\n\r\n @State2Way('creditors/setAlert', (state) => state.creditors.alert) alert!: Alert | undefined\r\n\r\n isBusy = true\r\n\r\n currentSymbol(item: CreditorUser): FieldSymbol {\r\n return item.isCurrent ? 'lock' : 'none'\r\n }\r\n\r\n get getCurrentCreditorName(): string { return this.getCurrentCreditor?.name ?? '' }\r\n get getCurrentCreditorOrganisationId(): string { return this.getCurrentCreditor?.organisationId ?? '' }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n editCreditorDepartment(data: {item: CreditorDepartment}) {\r\n this.switchCurrentCreditorDepartmentId(data.item.creditorDepartmentId)\r\n router.push({ name: 'CreditorDepartmentEditView', params: { mode: 'edit', source: 'overview' } })\r\n }\r\n\r\n creditorDepartmentItems(page: number): Promise | APIError> {\r\n return this.refreshCreditorDepartments(page)\r\n }\r\n\r\n newCreditorUser() {\r\n this.switchCurrentCreditorUserId(undefined)\r\n this.startCreatingCreditorUser()\r\n router.push({ name: 'CreditorUserEditView', params: { mode: 'create', source: 'overview' } })\r\n }\r\n\r\n editCreditorUser(data: {item: CreditorUser}) {\r\n this.switchCurrentCreditorUserId(data.item.creditorUserId)\r\n router.push({ name: 'CreditorUserEditView', params: { mode: 'edit', source: 'overview' } })\r\n }\r\n\r\n get creditorDepartmentFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'currency', label: this.$i18n.tc('common.fields.currency'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'name', label: this.$i18n.tc('common.fields.name'), sortable: false, size: 'flex', alignment: 'left',\r\n },\r\n {\r\n key: 'actions', label: '', sortable: false, size: 'actions', alignment: 'right',\r\n },\r\n ]\r\n }\r\n\r\n creditorUserItems(page: number): Promise | APIError> {\r\n return this.refreshCreditorUsers(page)\r\n }\r\n\r\n get creditorUserFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'symbol', label: '', sortable: false, size: 'symbol', alignment: 'left',\r\n },\r\n {\r\n key: 'personalNumber', label: this.$i18n.tc('common.fields.personalNumber'), sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'firstName', label: this.$i18n.tc('common.fields.firstName'), sortable: false, size: 'medium', alignment: 'left',\r\n },\r\n {\r\n key: 'lastName', label: this.$i18n.tc('common.fields.lastName'), sortable: false, size: 'medium', alignment: 'left',\r\n },\r\n {\r\n key: 'email', label: this.$i18n.tc('common.fields.email'), sortable: false, size: 'flex', alignment: 'left',\r\n },\r\n {\r\n key: 'actions', label: '', sortable: false, size: 'actions', alignment: 'right',\r\n },\r\n ]\r\n }\r\n\r\n async mounted() {\r\n await this.refreshCurrentCreditorDetails()\r\n this.isBusy = false\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorOverviewView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorOverviewView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CreditorOverviewView.vue?vue&type=template&id=88a664ac\"\nimport script from \"./CreditorOverviewView.vue?vue&type=script&lang=ts\"\nexport * from \"./CreditorOverviewView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-row',[_c('b-col',[_c('h1',{staticClass:\"section-header\"},[_vm._v(\"Avdelningar\")])])],1),_c('b-row',[_c('b-col',[_c('p',[_vm._v(\"...\")])])],1),_c('nordic-cool-table',{attrs:{\"id\":\"creditorUserDepartmentAccesses\",\"items\":_vm.creditorUserDepartmentAccessItems,\"fields\":_vm.creditorUserDepartmentAccessFields}})],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport Component from 'vue-class-component'\r\nimport { FieldType } from '@/components/NordicCoolTable.vue'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { Creditor } from '@/store/modules/creditors'\r\nimport { Page, APIError } from '@/store/modules/creditorsAPI'\r\nimport { CreditorUserDepartmentAccess } from '@/store/modules/creditorUserDepartmentAccesses'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Creditors = namespace('creditors')\r\nconst CreditorUserDepartmentAccesses = namespace('creditorUserDepartmentAccesses')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CreditorUserDepartmentAccessesView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @CreditorUserDepartmentAccesses.Action refreshCreditorUserDepartmentAccesses!: (page: number) => Promise | APIError>\r\n\r\n @State2Way('creditors/setAlert', (state) => state.creditors.alert) alert!: Alert | undefined\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n creditorUserDepartmentAccessItems(page: number): Promise | APIError> {\r\n return this.refreshCreditorUserDepartmentAccesses(page)\r\n }\r\n\r\n get creditorUserDepartmentAccessFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'creditorUserId', label: 'creditorUserId', sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'creditorDepartmentId', label: 'creditorDepartmentId', sortable: false, size: 'flex', alignment: 'left',\r\n },\r\n ]\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorUserDepartmentAccessesView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorUserDepartmentAccessesView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CreditorUserDepartmentAccessesView.vue?vue&type=template&id=0feec1ac\"\nimport script from \"./CreditorUserDepartmentAccessesView.vue?vue&type=script&lang=ts\"\nexport * from \"./CreditorUserDepartmentAccessesView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-row',[_c('b-col',[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('creditor.users.title')))])]),_c('b-col',[_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"secondary\",\"size\":\"lg\"},on:{\"click\":function($event){return _vm.newCreditorUser()}}},[_vm._v(_vm._s(_vm.$t('creditor.users.addUser')))])],1)],1),_c('b-row',[_c('b-col',[_c('p',[_vm._v(_vm._s(_vm.$t('creditor.users.manage'))+\" \"+_vm._s(_vm.getCurrentCreditor.name))])])],1),_c('nordic-cool-table',{attrs:{\"id\":\"creditorUsers\",\"items\":_vm.creditorUserItems,\"fields\":_vm.creditorUserFields,\"edit-click\":_vm.editCreditorUser}})],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport Component from 'vue-class-component'\r\nimport { FieldType } from '@/components/NordicCoolTable.vue'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { Creditor } from '@/store/modules/creditors'\r\nimport { CreditorUser } from '@/store/modules/creditorUsers'\r\nimport { Page, APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Creditors = namespace('creditors')\r\nconst CreditorUsers = namespace('creditorUsers')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CreditorUsersView extends Vue {\r\n @Creditors.Getter getCurrentCreditor!: Creditor\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @CreditorUsers.Action refreshCreditorUsers!: (page: number) => Promise | APIError>\r\n @CreditorUsers.Action switchCurrentCreditorUserId!: (creditorUserId?: number) => Promise\r\n\r\n @State2Way('creditors/setAlert', (state) => state.creditors.alert) alert!: Alert | undefined\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n newCreditorUser() {\r\n this.switchCurrentCreditorUserId(undefined)\r\n router.push({ name: 'CreditorUserView', params: { mode: 'create', source: 'users' } })\r\n }\r\n\r\n editCreditorUser(data: {item: CreditorUser}) {\r\n this.switchCurrentCreditorUserId(data.item.creditorUserId)\r\n router.push({ name: 'CreditorUserView', params: { mode: 'edit', source: 'users' } })\r\n }\r\n\r\n creditorUserItems(page: number): Promise | APIError> {\r\n return this.refreshCreditorUsers(page)\r\n }\r\n\r\n get creditorUserFields(): FieldType[] {\r\n return [\r\n {\r\n key: 'personalNumber', label: 'Personnummer', sortable: false, size: 'small', alignment: 'left',\r\n },\r\n {\r\n key: 'firstName', label: 'Förnamn', sortable: false, size: 'medium', alignment: 'left',\r\n },\r\n {\r\n key: 'lastName', label: 'Efternamn', sortable: false, size: 'medium', alignment: 'left',\r\n },\r\n {\r\n key: 'email', label: 'E-post', sortable: false, size: 'flex', alignment: 'left',\r\n },\r\n {\r\n key: 'actions', label: '', sortable: false, size: 'actions', alignment: 'right',\r\n },\r\n ]\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorUsersView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorUsersView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CreditorUsersView.vue?vue&type=template&id=8a3c475a\"\nimport script from \"./CreditorUsersView.vue?vue&type=script&lang=ts\"\nexport * from \"./CreditorUsersView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-confirm',{attrs:{\"message\":_vm.$t('creditor.user.edit.messageConfirm'),\"confirm\":\"Radera\",\"next\":_vm.proceedRemove},model:{value:(_vm.isConfirm),callback:function ($$v) {_vm.isConfirm=$$v},expression:\"isConfirm\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar,\"busy\":_vm.isBusy}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('creditor.user.edit.title')))]),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"12\"}},[(_vm.isCurrent)?[_c('div',{staticClass:\"p-2 mb-3\",staticStyle:{\"background\":\"#FFF2F3\",\"color\":\"#D11525\"}},[_vm._v(\" \"+_vm._s(_vm.$t('creditor.user.edit.limited'))+\" \")])]:_vm._e()],2)],1),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"personalNumber\",\"label\":_vm.$t('common.fields.personalNumber'),\"strict\":_vm.strict,\"reset\":_vm.reset,\"disabled\":_vm.isCurrent},model:{value:(_vm.personalNumber),callback:function ($$v) {_vm.personalNumber=$$v},expression:\"personalNumber\"}}),_c('nordic-cool-input-text',{attrs:{\"id\":\"firstName\",\"label\":_vm.$t('common.fields.firstName'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.firstName),callback:function ($$v) {_vm.firstName=$$v},expression:\"firstName\"}}),_c('nordic-cool-input-text',{attrs:{\"id\":\"lastName\",\"label\":_vm.$t('common.fields.lastName'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.lastName),callback:function ($$v) {_vm.lastName=$$v},expression:\"lastName\"}})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"mobilePhone\",\"label\":_vm.$t('common.fields.mobilePhone'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.mobilePhone),callback:function ($$v) {_vm.mobilePhone=$$v},expression:\"mobilePhone\"}}),_c('nordic-cool-input-email',{attrs:{\"id\":\"email\",\"label\":_vm.$t('common.fields.email'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('p',{staticClass:\"header text-left m-0 mb-3\"},[_vm._v(_vm._s(_vm.$t('creditor.user.edit.rights')))]),_c('p',[_vm._v(_vm._s(_vm.$t('creditor.user.edit.rights.description')))]),_c('nordic-cool-input-checkbox',{staticClass:\"font-weight-bold\",attrs:{\"id\":\"rightsAll\",\"label\":_vm.$t('creditor.user.edit.rights.all'),\"strict\":_vm.strict,\"disabled\":_vm.isCurrent},model:{value:(_vm.rightsAll),callback:function ($$v) {_vm.rightsAll=$$v},expression:\"rightsAll\"}}),_c('nordic-cool-input-checkbox',{attrs:{\"id\":\"rightsUser\",\"label\":_vm.$t('creditor.user.edit.rights.user'),\"strict\":_vm.strict,\"disabled\":_vm.isCurrent},model:{value:(_vm.rightsUser),callback:function ($$v) {_vm.rightsUser=$$v},expression:\"rightsUser\"}}),_c('nordic-cool-input-checkbox',{attrs:{\"id\":\"rightsDepartment\",\"label\":_vm.$t('creditor.user.edit.rights.department'),\"strict\":_vm.strict,\"disabled\":_vm.isCurrent},model:{value:(_vm.rightsDepartment),callback:function ($$v) {_vm.rightsDepartment=$$v},expression:\"rightsDepartment\"}}),_c('nordic-cool-input-checkbox',{attrs:{\"id\":\"rightsCase\",\"label\":_vm.$t('creditor.user.edit.rights.case'),\"strict\":_vm.strict,\"disabled\":_vm.isCurrent},model:{value:(_vm.rightsCase),callback:function ($$v) {_vm.rightsCase=$$v},expression:\"rightsCase\"}})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('creditor.user.edit.reports')))]),_c('p',[_vm._v(_vm._s(_vm.$t('creditor.user.edit.reports.description')))]),_c('nordic-cool-input-checkbox',{attrs:{\"id\":\"reportSettlement\",\"label\":\"Avräkningsrapport\",\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.reportSettlement),callback:function ($$v) {_vm.reportSettlement=$$v},expression:\"reportSettlement\"}}),_c('nordic-cool-input-checkbox',{attrs:{\"id\":\"reportInvoiceSpecification\",\"label\":\"Fakturaspecifikation\",\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.reportInvoiceSpecification),callback:function ($$v) {_vm.reportInvoiceSpecification=$$v},expression:\"reportInvoiceSpecification\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[(_vm.isCreate)?[_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t('common.add')))])]:_vm._e(),(_vm.isEdit)?[_c('b-button',{staticClass:\"float-right ml-2\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t('common.update')))]),_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"light\",\"size\":\"sm\",\"disabled\":_vm.isCurrent},on:{\"click\":_vm.remove}},[_vm._v(_vm._s(_vm.$t('common.delete')))])]:_vm._e()],2)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { CreditorUser } from '@/store/modules/creditorUsers'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\nimport { InputText, InputCheckbox, validInputs } from '@/models/validations'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst CreditorUsers = namespace('creditorUsers')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CreditorUserView extends Vue {\r\n @CreditorUsers.Getter getCurrentCreditorUser!: CreditorUser | undefined\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n @Navigation.Getter getMode!: string\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @CreditorUsers.Action createCreditorUser!: () => Promise\r\n @CreditorUsers.Action editCreditorUser!: () => Promise\r\n @CreditorUsers.Action removeCreditorUser!: () => Promise\r\n @CreditorUsers.Action refreshCurrentCreditorUserDetails!: () => Promise\r\n\r\n @State2Way('creditorUsers/setAlert', (state) => state.creditorUsers.alert) alert!: Alert | undefined\r\n @State2Way('creditorUsers/setPersonalNumber', (state) => state.creditorUsers.personalNumber) personalNumber!: InputText\r\n @State2Way('creditorUsers/setFirstName', (state) => state.creditorUsers.firstName) firstName!: InputText\r\n @State2Way('creditorUsers/setLastName', (state) => state.creditorUsers.lastName) lastName!: InputText\r\n @State2Way('creditorUsers/setEmail', (state) => state.creditorUsers.email) email!: InputText\r\n @State2Way('creditorUsers/setMobilePhone', (state) => state.creditorUsers.mobilePhone) mobilePhone!: InputText\r\n @State2Way('creditorUsers/setRightsAll', (state) => state.creditorUsers.rightsAll) rightsAll!: InputCheckbox\r\n @State2Way('creditorUsers/setRightsUser', (state) => state.creditorUsers.rightsUser) rightsUser!: InputCheckbox\r\n @State2Way('creditorUsers/setRightsDepartment', (state) => state.creditorUsers.rightsDepartment) rightsDepartment!: InputCheckbox\r\n @State2Way('creditorUsers/setRightsCase', (state) => state.creditorUsers.rightsCase) rightsCase!: InputCheckbox\r\n @State2Way('creditorUsers/setReportSettlement', (state) => state.creditorUsers.reportSettlement) reportSettlement!: InputCheckbox\r\n @State2Way('creditorUsers/setReportInvoiceSpecification', (state) => state.creditorUsers.reportInvoiceSpecification) reportInvoiceSpecification!: InputCheckbox\r\n\r\n isBusy = true\r\n isConfirm = false\r\n strict = false\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n get isCreate(): boolean { return this.getMode === 'create' }\r\n get isEdit(): boolean { return this.getMode === 'edit' }\r\n get isCurrent(): boolean { return this.getCurrentCreditorUser?.isCurrent ?? false }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n async save() {\r\n const inputs = [this.personalNumber, this.firstName, this.lastName, this.email, this.mobilePhone]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n if (this.isCreate) {\r\n if (await this.createCreditorUser() === true) router.push('/creditor-user-success')\r\n }\r\n if (this.isEdit) {\r\n if (await this.editCreditorUser() === true) router.push('/creditor-user-success')\r\n }\r\n } else {\r\n console.log('Invalid')\r\n }\r\n }\r\n\r\n async remove() {\r\n this.isConfirm = true\r\n }\r\n\r\n async proceedRemove() {\r\n if (this.isEdit) {\r\n if (await this.removeCreditorUser() === true) router.push('/creditor-overview')\r\n }\r\n }\r\n\r\n async mounted() {\r\n await this.refreshCurrentCreditorUserDetails()\r\n this.isBusy = false\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorUserEditView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorUserEditView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CreditorUserEditView.vue?vue&type=template&id=f6963c24\"\nimport script from \"./CreditorUserEditView.vue?vue&type=script&lang=ts\"\nexport * from \"./CreditorUserEditView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 green-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('creditor.user.success.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_check.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('creditor.user.success.body'))+\" \")])])],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.done')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class CreditorUserSuccessView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n next() {\r\n router.push('/creditor-overview')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorUserSuccessView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreditorUserSuccessView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CreditorUserSuccessView.vue?vue&type=template&id=497828d4\"\nimport script from \"./CreditorUserSuccessView.vue?vue&type=script&lang=ts\"\nexport * from \"./CreditorUserSuccessView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.creditor.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_company_details.svg\"),\"alt\":\"\"}})],1)],1)],1),(_vm.busy)?_c('div',[_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded text-center\",attrs:{\"fluid\":\"\"}},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\",\"label\":_vm.$t('common.loading')}})],1)],1):_vm._e(),(!_vm.busy)?_c('div',[_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.creditor.address')))])])],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"name\",\"label\":_vm.$t('common.fields.name'),\"strict\":_vm.address_strict},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"address\",\"label\":_vm.$t('common.fields.address'),\"strict\":_vm.address_strict},model:{value:(_vm.address),callback:function ($$v) {_vm.address=$$v},expression:\"address\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-number',{attrs:{\"id\":\"postalCode\",\"label\":_vm.$t('common.fields.postalCode'),\"strict\":_vm.address_strict},model:{value:(_vm.postalCode),callback:function ($$v) {_vm.postalCode=$$v},expression:\"postalCode\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"city\",\"label\":_vm.$t('common.fields.city'),\"strict\":_vm.address_strict},model:{value:(_vm.city),callback:function ($$v) {_vm.city=$$v},expression:\"city\"}})],1)],1),_c('b-row',[_c('b-col',[_c('p',{staticClass:\"header text-left m-0 pb-4\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.payment.title')))])])],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"bankgiro\",\"label\":_vm.$t('common.fields.bankgiro'),\"strict\":_vm.bank_strict},model:{value:(_vm.bankgiro),callback:function ($$v) {_vm.bankgiro=$$v},expression:\"bankgiro\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-left w-40\",attrs:{\"variant\":\"light\",\"size\":\"sm\",\"to\":\"/enroll-start\"}},[_vm._v(_vm._s(_vm.$t('common.back')))]),_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.next')))])],1)],1)],1)],1):_vm._e()],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputText, InputNumber, validInputs } from '@/models/validations'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Creditors = namespace('creditors')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class EnrollCreditorView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Creditors.Action createCreditor!: () => Promise\r\n @Creditors.Action lookupAddress!: () => Promise\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n @State2Way('creditors/setAlert', (state) => state.creditors.alert) alert!: Alert | undefined\r\n @State2Way('creditors/setName', (state) => state.creditors.name) name!: InputText\r\n @State2Way('creditors/setAddress', (state) => state.creditors.address) address!: InputText\r\n @State2Way('creditors/setPostalCode', (state) => state.creditors.postalCode) postalCode!: InputNumber\r\n @State2Way('creditors/setCity', (state) => state.creditors.city) city!: InputText\r\n @State2Way('creditors/setBankgiro', (state) => state.creditors.bankgiro) bankgiro!: InputText\r\n\r\n address_strict = false\r\n bank_strict = false\r\n busy = true\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n async mounted() {\r\n if (await this.lookupAddress() === true) {\r\n this.address_strict = true\r\n }\r\n this.busy = false\r\n }\r\n\r\n async next() {\r\n const inputs = [this.name, this.address, this.postalCode, this.city, this.bankgiro]\r\n this.address_strict = true\r\n this.bank_strict = true\r\n if (validInputs(inputs, true)) {\r\n if (await this.createCreditor() === true) router.push('/enroll-success')\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EnrollCreditorView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EnrollCreditorView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./EnrollCreditorView.vue?vue&type=template&id=5752474e\"\nimport script from \"./EnrollCreditorView.vue?vue&type=script&lang=ts\"\nexport * from \"./EnrollCreditorView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.start.title')))]),_c('p',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('onboarding.signup.start.body')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_company_input.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"organisationId\",\"label\":_vm.$t('common.fields.organisationId'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.organisationId),callback:function ($$v) {_vm.organisationId=$$v},expression:\"organisationId\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.next')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputText, validInputs } from '@/models/validations'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Creditors = namespace('creditors')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class EnrollStartView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Creditors.Mutation setCurrentCreditorOptionId!: (creditorOptionId: number) => void\r\n\r\n @Creditors.Action startCreditorEnroll!: () => void\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n @State2Way('creditors/setAlert', (state) => state.creditors.alert) alert!: Alert | undefined\r\n @State2Way('creditors/setOrganisationId', (state) => state.creditors.organisationId) organisationId!: InputText\r\n\r\n strict = false\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n next() {\r\n const inputs = [this.organisationId]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n router.push('/enroll-creditor')\r\n }\r\n }\r\n\r\n async mounted() {\r\n this.startCreditorEnroll()\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EnrollStartView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EnrollStartView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./EnrollStartView.vue?vue&type=template&id=5aa2c8e0\"\nimport script from \"./EnrollStartView.vue?vue&type=script&lang=ts\"\nexport * from \"./EnrollStartView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 green-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('enroll.success.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_check.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('enroll.success.body'))+\" \")])])],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.done')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class EnrollSuccessView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n next() {\r\n router.push('/cases')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EnrollSuccessView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EnrollSuccessView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./EnrollSuccessView.vue?vue&type=template&id=0606eb44\"\nimport script from \"./EnrollSuccessView.vue?vue&type=script&lang=ts\"\nexport * from \"./EnrollSuccessView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('b-container',{staticClass:\"sub-page-padding pl-4 pr-4 pb-4\",attrs:{\"fluid\":\"\"}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-5 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(\"Du har just nu \"),_c('b-badge',{staticClass:\"badge-blue-box\",attrs:{\"variant\":\"light\",\"pill\":\"\"}},[_vm._v(_vm._s(_vm.archivedPage.total))]),_vm._v(\" meddelanden i inkorgen.\")],1)]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_messages.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"pt-2\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('h1',{staticClass:\"section-header\"},[_vm._v(\"Meddelanden\")])]),_c('b-col')],1)],1),_c('b-container',{staticClass:\"pt-2\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('b-tabs',{staticClass:\"mt-3 tabs\"},[_c('b-tab',{attrs:{\"title\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/messages-inbox')}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Inkorg \")]},proxy:true}])}),_c('b-tab',{attrs:{\"title\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/messages-sent')}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Skickat \")]},proxy:true}])}),_c('b-tab',{attrs:{\"title\":\"\",\"active\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Arkiv \"),_c('b-badge',{attrs:{\"variant\":\"light\",\"pill\":\"\"}},[_vm._v(_vm._s(_vm.archivedPage.total))])]},proxy:true}])},[_c('b-container',{staticClass:\"p-4 bg-white\",attrs:{\"fluid\":\"\"}},[[_c('div',[_c('b-table',{staticClass:\"mb-0\",attrs:{\"id\":\"archived\",\"responsive\":\"sm\",\"busy\":_vm.busy,\"per-page\":_vm.archivedPage.maxResults,\"current-page\":_vm.archivedPage.page,\"fields\":_vm.fields,\"items\":_vm.archivedProvider},on:{\"update:busy\":function($event){_vm.busy=$event}},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center my-2\"},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\",\"label\":\"Laddar...\"}})],1)]},proxy:true},{key:\"cell(showDetails)\",fn:function(data){return [_c('b-link',{staticClass:\"d-inline-flex float-right pl-2\",class:data.item.expanded ? null : 'collapsed',attrs:{\"aria-expanded\":data.item.expanded ? 'true' : 'false',\"aria-controls\":\"collapse-4\"},on:{\"click\":data.toggleDetails}},[_c('span',{staticClass:\"when-opened\"},[_c('b-img',{attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_collapse.svg\")}})],1),_c('span',{staticClass:\"when-closed\"},[_c('b-img',{attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_expand.svg\")}})],1)])]}},{key:\"cell(subject)\",fn:function(data){return [_c('b-badge',{attrs:{\"variant\":\"primary\",\"pill\":\"\"}},[_vm._v(_vm._s(data.item.subject))]),_c('p',{staticClass:\"text-left m-0\"},[_vm._v(_vm._s(data.item.body))])]}},{key:\"cell(caseId)\",fn:function(data){return [_c('p',{staticClass:\"text-left m-0\"},[_c('b-link',{on:{\"click\":function($event){return _vm.caseDetails(data)}}},[_vm._v(_vm._s(data.item.caseId))])],1)]}},{key:\"row-details\",fn:function(data){return [_c('div',{staticClass:\"bg-white pt-2 pb-2\"},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('hr',{staticStyle:{\"border\":\"0\",\"border-top\":\"1px dashed rgba(0, 0, 0, 0.1)\"}}),_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Detaljer\")]),_c('b-row',[_c('b-col',{attrs:{\"col\":\"\",\"sm\":\"auto\"}},[_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Kund.nr/Ref.nr\")]),_vm._v(\" ??? \")]),_c('b-col',{attrs:{\"col\":\"\",\"sm\":\"auto\"}},[_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Kli.nr\")]),_vm._v(\" \"+_vm._s(data.item.clientId)+\" \")]),_c('b-col',{attrs:{\"col\":\"\",\"sm\":\"auto\"}},[_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Användare\")]),_vm._v(\" \"+_vm._s(data.item.userId)+\" \")])],1),_c('hr',{staticStyle:{\"border\":\"0\",\"border-top\":\"1px dashed rgba(0, 0, 0, 0.1)\"}}),_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-3\"},[_c('b-col',{staticClass:\"my-auto order-last\",attrs:{\"cols\":\"2\",\"md\":\"1\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/ico_message_visma.svg\"),\"alt\":\"\"}})],1),_c('b-col',{staticClass:\"my-auto\",attrs:{\"cols\":\"10\",\"md\":\"11\"}},[_c('b-card',{staticClass:\"border-0\",attrs:{\"no-body\":\"\"}},[_c('div',{staticClass:\"rounded p-3\",staticStyle:{\"background-color\":\"#F0F2F5\"}},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(_vm._s(data.item.body))])])])],1)],1),_c('b-row',{staticClass:\"mb-3\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right ml-2\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.caseMessages(data)}}},[_vm._v(\"Se alla meddelande\")])],1)],1),_c('hr'),_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right ml-2\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"}},[_vm._v(\"Tilldela meddelande\")]),_c('div',{staticClass:\"float-right pl-2\"},[_vm._v(\" Grupp \"),_c('b-form-select',{staticClass:\"custom-select\",staticStyle:{\"width\":\"162px\"}})],1),_c('div',{staticClass:\"float-right pl-2\"},[_vm._v(\" Person \"),_c('b-form-select',{staticClass:\"custom-select\",staticStyle:{\"width\":\"162px\"}})],1),_c('b-button',{staticClass:\"float-right mr-3\",attrs:{\"variant\":\"light\",\"size\":\"sm\"}},[_vm._v(\"Radera\")]),_c('b-button',{staticClass:\"float-right mr-3\",attrs:{\"variant\":\"light\",\"size\":\"sm\"}},[_vm._v(\"Arkivera\")])],1)],1)],1)],1)],1)],1)],1)]}}])}),_c('b-pagination',{staticClass:\"justify-content-center pt-4 pb-4\",attrs:{\"pills\":\"\",\"aria-controls\":\"archived\",\"total-rows\":_vm.archivedPage.total,\"per-page\":_vm.archivedPage.maxResults,\"hide-goto-end-buttons\":true},model:{value:(_vm.archivedPage.page),callback:function ($$v) {_vm.$set(_vm.archivedPage, \"page\", $$v)},expression:\"archivedPage.page\"}})],1)]],2)],1)],1)],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { Page, APIError, isPage } from '@/store/modules/creditorsAPI'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { CreditorUserMessage } from '@/store/modules/creditorUserMessages'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Cases = namespace('cases')\r\nconst CreditorUserMessages = namespace('creditorUserMessages')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class MessagesArchivedView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @Cases.Action switchCurrentCaseId!: (caseId: number) => Promise\r\n @CreditorUserMessages.Action refreshArchived!: (page: number) => Promise | APIError>\r\n\r\n busy = false\r\n\r\n archivedPage: Page = new Page([], 0, 10, 1)\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n caseDetails(data: {item: CreditorUserMessage}) {\r\n this.switchCurrentCaseId(data.item.caseId)\r\n router.push({ name: 'CaseDetailsView', params: { source: 'archived' } })\r\n }\r\n\r\n caseMessages(data: {item: CreditorUserMessage}) {\r\n this.switchCurrentCaseId(data.item.caseId)\r\n router.push({ name: 'CaseDetailsView', params: { source: 'archived' } })\r\n }\r\n\r\n archivedProvider(ctx: { currentPage: number; perPage: number }, callback: (items: any[]) => void): any[] | null {\r\n this.refreshArchived(ctx.currentPage)\r\n .then((page) => {\r\n if (isPage(page)) {\r\n this.archivedPage = page ?? this.archivedPage\r\n callback(page?.items ?? [])\r\n } else {\r\n callback([])\r\n }\r\n })\r\n .catch(() => {\r\n callback([])\r\n })\r\n return null\r\n }\r\n\r\n get fields(): { key: string; label: string; sortable: boolean; tdClass: string }[] {\r\n return [\r\n {\r\n key: 'subject', label: 'Ärende', sortable: true, tdClass: '',\r\n },\r\n {\r\n key: 'caseId', label: 'Akt.nr', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'faktNr', label: 'Fakt.nr', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'groupMessageId', label: 'Grupp', sortable: true, tdClass: '',\r\n },\r\n {\r\n key: 'clientId', label: 'Avd.', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'createDate', label: 'Datum', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'showDetails', label: '', sortable: false, tdClass: '',\r\n },\r\n ]\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MessagesArchivedView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MessagesArchivedView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MessagesArchivedView.vue?vue&type=template&id=6c1a7e41&scoped=true\"\nimport script from \"./MessagesArchivedView.vue?vue&type=script&lang=ts\"\nexport * from \"./MessagesArchivedView.vue?vue&type=script&lang=ts\"\nimport style0 from \"./MessagesArchivedView.vue?vue&type=style&index=0&id=6c1a7e41&prod&scoped=true&lang=css\"\nimport style1 from \"./MessagesArchivedView.vue?vue&type=style&index=1&id=6c1a7e41&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c1a7e41\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('b-container',{staticClass:\"sub-page-padding pl-4 pr-4 pb-4\",attrs:{\"fluid\":\"\"}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-5 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(\"Du har just nu \"),_c('b-badge',{staticClass:\"badge-blue-box\",attrs:{\"variant\":\"light\",\"pill\":\"\"}},[_vm._v(_vm._s(_vm.inboxPage.total))]),_vm._v(\" meddelanden i inkorgen.\")],1)]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_messages.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"pt-2\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('h1',{staticClass:\"section-header\"},[_vm._v(\"Meddelanden\")])]),_c('b-col',[_c('div',{staticClass:\"float-right pl-2\"},[_vm._v(\" Grupp \"),_c('b-form-select',{staticClass:\"custom-select\",staticStyle:{\"width\":\"162px\"},attrs:{\"options\":_vm.creditorUserMessageGroupsOptions}})],1),_c('div',{staticClass:\"float-right pl-2\"},[_vm._v(\" Etikett \"),_c('b-form-select',{staticClass:\"custom-select\",staticStyle:{\"width\":\"162px\"},attrs:{\"options\":_vm.creditorUserMessageSubjectsOptions}})],1)])],1)],1),_c('b-container',{staticClass:\"pt-2\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('b-tabs',{staticClass:\"mt-3 tabs\"},[_c('b-tab',{attrs:{\"title\":\"\",\"active\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Inkorg \"),_c('b-badge',{attrs:{\"variant\":\"light\",\"pill\":\"\"}},[_vm._v(_vm._s(_vm.inboxPage.total))])]},proxy:true}])},[[_c('div',[_c('b-table',{staticClass:\"mb-0\",attrs:{\"id\":\"inbox\",\"responsive\":\"sm\",\"busy\":_vm.busy,\"per-page\":_vm.inboxPage.maxResults,\"current-page\":_vm.inboxPage.page,\"fields\":_vm.fields,\"items\":_vm.inboxProvider},on:{\"update:busy\":function($event){_vm.busy=$event}},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center my-2\"},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\",\"label\":\"Laddar...\"}})],1)]},proxy:true},{key:\"cell(showDetails)\",fn:function(data){return [_c('b-link',{staticClass:\"d-inline-flex float-right pl-2\",class:data.item.expanded ? null : 'collapsed',attrs:{\"aria-expanded\":data.item.expanded ? 'true' : 'false',\"aria-controls\":\"collapse-4\"},on:{\"click\":data.toggleDetails}},[_c('span',{staticClass:\"when-opened\"},[_c('b-img',{attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_collapse.svg\")}})],1),_c('span',{staticClass:\"when-closed\"},[_c('b-img',{attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_expand.svg\")}})],1)])]}},{key:\"cell(subject)\",fn:function(data){return [_c('b-badge',{attrs:{\"variant\":\"primary\",\"pill\":\"\"}},[_vm._v(_vm._s(data.item.subject))]),_c('p',{staticClass:\"text-left m-0\"},[_vm._v(_vm._s(data.item.body))])]}},{key:\"cell(caseId)\",fn:function(data){return [_c('p',{staticClass:\"text-left m-0\"},[_c('b-link',{on:{\"click\":function($event){return _vm.caseDetails(data)}}},[_vm._v(_vm._s(data.item.caseId))])],1)]}},{key:\"row-details\",fn:function(data){return [_c('div',{staticClass:\"bg-white pt-2 pb-2\"},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('hr',{staticStyle:{\"border\":\"0\",\"border-top\":\"1px dashed rgba(0, 0, 0, 0.1)\"}}),_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Detaljer\")]),_c('b-row',[_c('b-col',{attrs:{\"col\":\"\",\"sm\":\"auto\"}},[_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Kund.nr/Ref.nr\")]),_vm._v(\" ??? \")]),_c('b-col',{attrs:{\"col\":\"\",\"sm\":\"auto\"}},[_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Kli.nr\")]),_vm._v(\" \"+_vm._s(data.item.clientId)+\" \")]),_c('b-col',{attrs:{\"col\":\"\",\"sm\":\"auto\"}},[_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Användare\")]),_vm._v(\" \"+_vm._s(data.item.userId)+\" \")])],1),_c('hr',{staticStyle:{\"border\":\"0\",\"border-top\":\"1px dashed rgba(0, 0, 0, 0.1)\"}}),_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-3\"},[_c('b-col',{staticClass:\"my-auto order-last\",attrs:{\"cols\":\"2\",\"md\":\"1\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/ico_message_visma.svg\"),\"alt\":\"\"}})],1),_c('b-col',{staticClass:\"my-auto\",attrs:{\"cols\":\"10\",\"md\":\"11\"}},[_c('b-card',{staticClass:\"border-0\",attrs:{\"no-body\":\"\"}},[_c('div',{staticClass:\"rounded p-3\",staticStyle:{\"background-color\":\"#F0F2F5\"}},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(_vm._s(data.item.body))])])])],1)],1),_c('b-row',{staticClass:\"mb-3\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right ml-2\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.caseMessages(data)}}},[_vm._v(\"Se alla meddelande\")])],1)],1),_c('hr'),_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right ml-2\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"}},[_vm._v(\"Tilldela meddelande\")]),_c('div',{staticClass:\"float-right pl-2\"},[_vm._v(\" Grupp \"),_c('b-form-select',{staticClass:\"custom-select\",staticStyle:{\"width\":\"162px\"}})],1),_c('div',{staticClass:\"float-right pl-2\"},[_vm._v(\" Person \"),_c('b-form-select',{staticClass:\"custom-select\",staticStyle:{\"width\":\"162px\"}})],1),_c('b-button',{staticClass:\"float-right mr-3\",attrs:{\"variant\":\"light\",\"size\":\"sm\"}},[_vm._v(\"Radera\")]),_c('b-button',{staticClass:\"float-right mr-3\",attrs:{\"variant\":\"light\",\"size\":\"sm\"}},[_vm._v(\"Arkivera\")])],1)],1)],1)],1)],1)],1)],1)]}}])}),_c('b-pagination',{staticClass:\"justify-content-center pt-4 pb-4\",attrs:{\"pills\":\"\",\"aria-controls\":\"inbox\",\"total-rows\":_vm.inboxPage.total,\"per-page\":_vm.inboxPage.maxResults,\"hide-goto-end-buttons\":true},model:{value:(_vm.inboxPage.page),callback:function ($$v) {_vm.$set(_vm.inboxPage, \"page\", $$v)},expression:\"inboxPage.page\"}})],1)]],2),_c('b-tab',{attrs:{\"title\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/messages-sent')}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Skickat \")]},proxy:true}])}),_c('b-tab',{attrs:{\"title\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/messages-archived')}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Arkiv \")]},proxy:true}])})],1)],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { Page, APIError, isPage } from '@/store/modules/creditorsAPI'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { CreditorUserMessage } from '@/store/modules/creditorUserMessages'\r\nimport { CreditorUserMessageGroup } from '@/store/modules/creditorUserMessageGroups'\r\nimport { CreditorUserMessageSubject } from '@/store/modules/creditorUserMessageSubjects'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Cases = namespace('cases')\r\nconst CreditorUserMessageGroups = namespace('creditorUserMessageGroups')\r\nconst CreditorUserMessages = namespace('creditorUserMessages')\r\nconst CreditorUserMessageSubjects = namespace('creditorUserMessageSubjects')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class MessagesInboxView extends Vue {\r\n @CreditorUserMessageGroups.Getter getAllCreditorUserMessageGroups!: CreditorUserMessageGroup[]\r\n @CreditorUserMessageSubjects.Getter getAllCreditorUserMessageSubjects!: CreditorUserMessageSubject[]\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @Cases.Action switchCurrentCaseId!: (caseId: number) => Promise\r\n @CreditorUserMessageGroups.Action refreshCreditorUserMessageGroups!: (page: number) => Promise | APIError>\r\n @CreditorUserMessages.Action refreshInbox!: (page: number) => Promise | APIError>\r\n @CreditorUserMessageSubjects.Action refreshCreditorUserMessageSubjects!: (page: number) => Promise | APIError>\r\n\r\n busy = false\r\n\r\n inboxPage: Page = new Page([], 0, 10, 1)\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n sentView() {\r\n router.push('/messages-sent')\r\n }\r\n\r\n caseDetails(data: {item: CreditorUserMessage}) {\r\n this.switchCurrentCaseId(data.item.caseId)\r\n router.push({ name: 'CaseDetailsView', params: { source: 'inbox' } })\r\n }\r\n\r\n caseMessages(data: {item: CreditorUserMessage}) {\r\n this.switchCurrentCaseId(data.item.caseId)\r\n router.push({ name: 'CaseDetailsView', params: { source: 'inbox' } })\r\n }\r\n\r\n get creditorUserMessageGroupsOptions(): { value: number; text: string }[] {\r\n return this.getAllCreditorUserMessageGroups.map((it) => ({ value: it.groupMessageId, text: it.name }))\r\n }\r\n\r\n get creditorUserMessageSubjectsOptions(): { value: string; text: string }[] {\r\n return this.getAllCreditorUserMessageSubjects.map((it) => ({ value: it.subject, text: it.subject }))\r\n }\r\n\r\n inboxProvider(ctx: { currentPage: number; perPage: number}, callback: (items: any[]) => void): any[] | null {\r\n this.refreshInbox(ctx.currentPage)\r\n .then((page) => {\r\n if (isPage(page)) {\r\n this.inboxPage = page ?? this.inboxPage\r\n callback(page?.items ?? [])\r\n } else {\r\n callback([])\r\n }\r\n })\r\n .catch(() => {\r\n callback([])\r\n })\r\n return null\r\n }\r\n\r\n get fields(): { key: string; label: string; sortable: boolean; tdClass: string }[] {\r\n return [\r\n {\r\n key: 'subject', label: 'Ärende', sortable: true, tdClass: '',\r\n },\r\n {\r\n key: 'caseId', label: 'Akt.nr', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'faktNr', label: 'Fakt.nr', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'groupMessageId', label: 'Grupp', sortable: true, tdClass: '',\r\n },\r\n {\r\n key: 'clientId', label: 'Avd.', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'createDate', label: 'Datum', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'showDetails', label: '', sortable: false, tdClass: '',\r\n },\r\n ]\r\n }\r\n\r\n async mounted() {\r\n await this.refreshCreditorUserMessageGroups(1)\r\n await this.refreshCreditorUserMessageSubjects(1)\r\n this.busy = false\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MessagesInboxView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MessagesInboxView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MessagesInboxView.vue?vue&type=template&id=c9a1abfe&scoped=true\"\nimport script from \"./MessagesInboxView.vue?vue&type=script&lang=ts\"\nexport * from \"./MessagesInboxView.vue?vue&type=script&lang=ts\"\nimport style0 from \"./MessagesInboxView.vue?vue&type=style&index=0&id=c9a1abfe&prod&scoped=true&lang=css\"\nimport style1 from \"./MessagesInboxView.vue?vue&type=style&index=1&id=c9a1abfe&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c9a1abfe\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('b-container',{staticClass:\"sub-page-padding pl-4 pr-4 pb-4\",attrs:{\"fluid\":\"\"}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-5 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(\"Du har just nu \"),_c('b-badge',{staticClass:\"badge-blue-box\",attrs:{\"variant\":\"light\",\"pill\":\"\"}},[_vm._v(_vm._s(_vm.sentPage.total))]),_vm._v(\" meddelanden i inkorgen.\")],1)]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_messages.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"pt-2\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('h1',{staticClass:\"section-header\"},[_vm._v(\"Meddelanden\")])]),_c('b-col')],1)],1),_c('b-container',{staticClass:\"pt-2\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('b-tabs',{staticClass:\"mt-3 tabs\"},[_c('b-tab',{attrs:{\"title\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/messages-inbox')}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Inkorg \")]},proxy:true}])}),_c('b-tab',{attrs:{\"title\":\"\",\"active\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Skickat \"),_c('b-badge',{attrs:{\"variant\":\"light\",\"pill\":\"\"}},[_vm._v(_vm._s(_vm.sentPage.total))])]},proxy:true}])},[_c('b-container',{staticClass:\"p-4 bg-white\",attrs:{\"fluid\":\"\"}},[[_c('div',[_c('b-table',{staticClass:\"mb-0\",attrs:{\"id\":\"sent\",\"responsive\":\"sm\",\"busy\":_vm.busy,\"per-page\":_vm.sentPage.maxResults,\"current-page\":_vm.sentPage.page,\"fields\":_vm.fields,\"items\":_vm.sentProvider},on:{\"update:busy\":function($event){_vm.busy=$event}},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center my-2\"},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\",\"label\":\"Laddar...\"}})],1)]},proxy:true},{key:\"cell(showDetails)\",fn:function(data){return [_c('b-link',{staticClass:\"d-inline-flex float-right pl-2\",class:data.item.expanded ? null : 'collapsed',attrs:{\"aria-expanded\":data.item.expanded ? 'true' : 'false',\"aria-controls\":\"collapse-4\"},on:{\"click\":data.toggleDetails}},[_c('span',{staticClass:\"when-opened\"},[_c('b-img',{attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_collapse.svg\")}})],1),_c('span',{staticClass:\"when-closed\"},[_c('b-img',{attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_expand.svg\")}})],1)])]}},{key:\"cell(subject)\",fn:function(data){return [_c('b-badge',{attrs:{\"variant\":\"primary\",\"pill\":\"\"}},[_vm._v(_vm._s(data.item.subject))]),_c('p',{staticClass:\"text-left m-0\"},[_vm._v(_vm._s(data.item.body))])]}},{key:\"cell(caseId)\",fn:function(data){return [_c('p',{staticClass:\"text-left m-0\"},[_c('b-link',{on:{\"click\":function($event){return _vm.caseDetails(data)}}},[_vm._v(_vm._s(data.item.caseId))])],1)]}},{key:\"row-details\",fn:function(data){return [_c('div',{staticClass:\"bg-white pt-2 pb-2\"},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('hr',{staticStyle:{\"border\":\"0\",\"border-top\":\"1px dashed rgba(0, 0, 0, 0.1)\"}}),_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Detaljer\")]),_c('b-row',[_c('b-col',{attrs:{\"col\":\"\",\"sm\":\"auto\"}},[_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Kund.nr/Ref.nr\")]),_vm._v(\" ??? \")]),_c('b-col',{attrs:{\"col\":\"\",\"sm\":\"auto\"}},[_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Kli.nr\")]),_vm._v(\" \"+_vm._s(data.item.clientId)+\" \")]),_c('b-col',{attrs:{\"col\":\"\",\"sm\":\"auto\"}},[_c('p',{staticClass:\"text-left m-0 text-muted\"},[_vm._v(\"Användare\")]),_vm._v(\" \"+_vm._s(data.item.userId)+\" \")])],1),_c('hr',{staticStyle:{\"border\":\"0\",\"border-top\":\"1px dashed rgba(0, 0, 0, 0.1)\"}}),_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-3\"},[_c('b-col',{staticClass:\"my-auto order-last\",attrs:{\"cols\":\"2\",\"md\":\"1\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/ico_message_visma.svg\"),\"alt\":\"\"}})],1),_c('b-col',{staticClass:\"my-auto\",attrs:{\"cols\":\"10\",\"md\":\"11\"}},[_c('b-card',{staticClass:\"border-0\",attrs:{\"no-body\":\"\"}},[_c('div',{staticClass:\"rounded p-3\",staticStyle:{\"background-color\":\"#F0F2F5\"}},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(_vm._s(data.item.body))])])])],1)],1),_c('b-row',{staticClass:\"mb-3\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right ml-2\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.caseMessages(data)}}},[_vm._v(\"Se alla meddelande\")])],1)],1),_c('hr'),_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right ml-2\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"}},[_vm._v(\"Tilldela meddelande\")]),_c('div',{staticClass:\"float-right pl-2\"},[_vm._v(\" Grupp \"),_c('b-form-select',{staticClass:\"custom-select\",staticStyle:{\"width\":\"162px\"}})],1),_c('div',{staticClass:\"float-right pl-2\"},[_vm._v(\" Person \"),_c('b-form-select',{staticClass:\"custom-select\",staticStyle:{\"width\":\"162px\"}})],1),_c('b-button',{staticClass:\"float-right mr-3\",attrs:{\"variant\":\"light\",\"size\":\"sm\"}},[_vm._v(\"Radera\")]),_c('b-button',{staticClass:\"float-right mr-3\",attrs:{\"variant\":\"light\",\"size\":\"sm\"}},[_vm._v(\"Arkivera\")])],1)],1)],1)],1)],1)],1)],1)]}}])}),_c('b-pagination',{staticClass:\"justify-content-center pt-4 pb-4\",attrs:{\"pills\":\"\",\"aria-controls\":\"sent\",\"total-rows\":_vm.sentPage.total,\"per-page\":_vm.sentPage.maxResults,\"hide-goto-end-buttons\":true},model:{value:(_vm.sentPage.page),callback:function ($$v) {_vm.$set(_vm.sentPage, \"page\", $$v)},expression:\"sentPage.page\"}})],1)]],2)],1),_c('b-tab',{attrs:{\"title\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/messages-archived')}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Arkiv \")]},proxy:true}])})],1)],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { Page, APIError, isPage } from '@/store/modules/creditorsAPI'\r\nimport { CreditorUserMessage } from '@/store/modules/creditorUserMessages'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Cases = namespace('cases')\r\nconst CreditorUserMessages = namespace('creditorUserMessages')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class MessagesSentView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @Cases.Action switchCurrentCaseId!: (caseId: number) => Promise\r\n @CreditorUserMessages.Action refreshSent!: (page: number) => Promise | APIError>\r\n\r\n busy = false\r\n\r\n sentPage: Page = new Page([], 0, 10, 1)\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n caseDetails(data: { item: CreditorUserMessage }) {\r\n this.switchCurrentCaseId(data.item.caseId)\r\n router.push({ name: 'CaseDetailsView', params: { source: 'sent' } })\r\n }\r\n\r\n caseMessages(data: { item: CreditorUserMessage }) {\r\n this.switchCurrentCaseId(data.item.caseId)\r\n router.push({ name: 'CaseMessagesView', params: { source: 'sent' } })\r\n }\r\n\r\n sentProvider(ctx: { currentPage: number; perPage: number }, callback: (items: any[]) => void): any[] | null {\r\n this.refreshSent(ctx.currentPage)\r\n .then((page) => {\r\n if (isPage(page)) {\r\n this.sentPage = page ?? this.sentPage\r\n callback(page?.items ?? [])\r\n } else {\r\n callback([])\r\n }\r\n })\r\n .catch(() => {\r\n callback([])\r\n })\r\n return null\r\n }\r\n\r\n get fields(): { key: string; label: string; sortable: boolean; tdClass: string }[] {\r\n return [\r\n {\r\n key: 'subject', label: 'Ärende', sortable: true, tdClass: '',\r\n },\r\n {\r\n key: 'caseId', label: 'Akt.nr', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'faktNr', label: 'Fakt.nr', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'groupMessageId', label: 'Grupp', sortable: true, tdClass: '',\r\n },\r\n {\r\n key: 'clientId', label: 'Avd.', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'createDate', label: 'Datum', sortable: false, tdClass: '',\r\n },\r\n {\r\n key: 'showDetails', label: '', sortable: false, tdClass: '',\r\n },\r\n ]\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MessagesSentView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MessagesSentView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MessagesSentView.vue?vue&type=template&id=7b54c9c5&scoped=true\"\nimport script from \"./MessagesSentView.vue?vue&type=script&lang=ts\"\nexport * from \"./MessagesSentView.vue?vue&type=script&lang=ts\"\nimport style0 from \"./MessagesSentView.vue?vue&type=style&index=0&id=7b54c9c5&prod&scoped=true&lang=css\"\nimport style1 from \"./MessagesSentView.vue?vue&type=style&index=1&id=7b54c9c5&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b54c9c5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('register.import.preview.title')))]),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('register.import.preview.choose')))]),_c('div',{attrs:{\"id\":\"fade\"}},[_c('b-table',{attrs:{\"responsive\":\"\",\"small\":\"\",\"items\":_vm.getImportCases,\"fields\":_vm.fields,\"busy\":_vm.busy,\"table-class\":\"text-nowrap tbl-sm preview-height\"},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center my-2\"},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\",\"label\":_vm.$t('common.loading')}})],1)]},proxy:true},{key:\"cell(selected)\",fn:function(data){return [_c('div',{staticClass:\"pt-1\",staticStyle:{\"width\":\"1rem\"}},[_c('nordic-cool-input-checkbox',{attrs:{\"id\":`selected-${data.item.row}`,\"strict\":_vm.strict},model:{value:(data.item.selected),callback:function ($$v) {_vm.$set(data.item, \"selected\", $$v)},expression:\"data.item.selected\"}})],1)]}},{key:\"cell(debtorType)\",fn:function(data){return [_c('div',{staticClass:\"mx-2\",staticStyle:{\"width\":\"8rem\"}},[_c('nordic-cool-input-select',{staticClass:\"sel\",attrs:{\"id\":`debtorType-${data.item.row}`,\"strict\":_vm.strict,\"disabled\":_vm.isDisabled(data.item)},model:{value:(data.item.debtorType),callback:function ($$v) {_vm.$set(data.item, \"debtorType\", $$v)},expression:\"data.item.debtorType\"}})],1)]}},{key:\"cell(organisationId)\",fn:function(data){return [_c('div',{staticClass:\"mx-2\",staticStyle:{\"width\":\"8rem\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":`organisationId-${data.item.row}`,\"strict\":_vm.strict,\"disabled\":_vm.isDisabled(data.item)},model:{value:(data.item.organisationId),callback:function ($$v) {_vm.$set(data.item, \"organisationId\", $$v)},expression:\"data.item.organisationId\"}})],1)]}},{key:\"cell(name)\",fn:function(data){return [_c('div',{staticClass:\"mx-2\",staticStyle:{\"width\":\"15rem\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":`name-${data.item.row}`,\"strict\":_vm.strict,\"disabled\":_vm.isDisabled(data.item)},model:{value:(data.item.name),callback:function ($$v) {_vm.$set(data.item, \"name\", $$v)},expression:\"data.item.name\"}})],1)]}},{key:\"cell(address)\",fn:function(data){return [_c('div',{staticClass:\"mx-2\",staticStyle:{\"width\":\"15rem\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":`address-${data.item.row}`,\"strict\":_vm.strict,\"disabled\":_vm.isDisabled(data.item)},model:{value:(data.item.address),callback:function ($$v) {_vm.$set(data.item, \"address\", $$v)},expression:\"data.item.address\"}})],1)]}},{key:\"cell(postalCode)\",fn:function(data){return [_c('div',{staticClass:\"mx-2\",staticStyle:{\"width\":\"7rem\"}},[_c('nordic-cool-input-number',{attrs:{\"id\":`postalCode-${data.item.row}`,\"strict\":_vm.strict,\"disabled\":_vm.isDisabled(data.item)},model:{value:(data.item.postalCode),callback:function ($$v) {_vm.$set(data.item, \"postalCode\", $$v)},expression:\"data.item.postalCode\"}})],1)]}},{key:\"cell(city)\",fn:function(data){return [_c('div',{staticClass:\"mx-2\",staticStyle:{\"width\":\"20rem\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":`city-${data.item.row}`,\"strict\":_vm.strict,\"disabled\":_vm.isDisabled(data.item)},model:{value:(data.item.city),callback:function ($$v) {_vm.$set(data.item, \"city\", $$v)},expression:\"data.item.city\"}})],1)]}},{key:\"cell(invoiceNumber)\",fn:function(data){return [_c('div',{staticClass:\"mx-2\",staticStyle:{\"width\":\"8rem\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":`invoiceNumber-${data.item.row}`,\"strict\":_vm.strict,\"disabled\":_vm.isDisabled(data.item)},model:{value:(data.item.invoiceNumber),callback:function ($$v) {_vm.$set(data.item, \"invoiceNumber\", $$v)},expression:\"data.item.invoiceNumber\"}})],1)]}},{key:\"cell(invoiceDescription)\",fn:function(data){return [_c('div',{staticClass:\"mx-2\",staticStyle:{\"width\":\"15rem\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":`invoiceDescription-${data.item.row}`,\"strict\":_vm.strict,\"disabled\":_vm.isDisabled(data.item)},model:{value:(data.item.invoiceDescription),callback:function ($$v) {_vm.$set(data.item, \"invoiceDescription\", $$v)},expression:\"data.item.invoiceDescription\"}})],1)]}},{key:\"cell(invoiceDate)\",fn:function(data){return [_c('div',{staticClass:\"mx-2\",staticStyle:{\"width\":\"15rem\"}},[_c('nordic-cool-input-date',{attrs:{\"id\":`invoiceDate-${data.item.row}`,\"strict\":_vm.strict,\"disabled\":_vm.isDisabled(data.item)},model:{value:(data.item.invoiceDates[0]),callback:function ($$v) {_vm.$set(data.item.invoiceDates, 0, $$v)},expression:\"data.item.invoiceDates[0]\"}})],1)]}},{key:\"cell(invoiceDueDate)\",fn:function(data){return [_c('div',{staticClass:\"mx-2\",staticStyle:{\"width\":\"15rem\"}},[_c('nordic-cool-input-date',{attrs:{\"id\":`invoiceDueDate-${data.item.row}`,\"strict\":_vm.strict,\"disabled\":_vm.isDisabled(data.item)},model:{value:(data.item.invoiceDates[1]),callback:function ($$v) {_vm.$set(data.item.invoiceDates, 1, $$v)},expression:\"data.item.invoiceDates[1]\"}})],1)]}},{key:\"cell(remainingCapital)\",fn:function(data){return [_c('div',{staticClass:\"mx-2\",staticStyle:{\"width\":\"7rem\"}},[_c('nordic-cool-input-number',{attrs:{\"id\":`remainingCapital-${data.item.row}`,\"strict\":_vm.strict,\"disabled\":_vm.isDisabled(data.item)},model:{value:(data.item.remainingCapital),callback:function ($$v) {_vm.$set(data.item, \"remainingCapital\", $$v)},expression:\"data.item.remainingCapital\"}})],1)]}}])},[_c('template',{slot:\"bottom-row\"},[_c('p',[_vm._v(\" \")])])],2)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-left w-40\",attrs:{\"variant\":\"light\",\"size\":\"sm\"},on:{\"click\":_vm.previous}},[_vm._v(_vm._s(_vm.$t('common.back')))]),_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.next')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputFile } from '@/models/validations'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { DebtorOption } from '@/store/modules/caseDebtors'\r\nimport { CreditorDepartment } from '@/store/modules/creditorDepartments'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\nimport { CaseImport } from '@/store/modules/cases'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Cases = namespace('cases')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class RegisterImportPreviewView extends Vue {\r\n @Cases.Getter getImportCases!: CaseImport[]\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @Cases.Action previewCSV!: () => void\r\n @Cases.Action importCSV!: () => Promise\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) alert!: Alert | undefined\r\n\r\n busy = true\r\n strict = true\r\n\r\n isDisabled(c: CaseImport): boolean { return !c.selected.value }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n get fields(): { key: string, label: string }[] {\r\n return [\r\n { key: 'selected', label: '' },\r\n { key: 'invoiceNumber', label: this.$i18n.tc('common.fields.invoiceNumber') },\r\n { key: 'debtorType', label: this.$i18n.tc('register.manually.start.debtorType') },\r\n { key: 'organisationId', label: this.$i18n.tc('common.fields.orgPersonId') },\r\n { key: 'name', label: this.$i18n.tc('common.fields.name') },\r\n { key: 'address', label: this.$i18n.tc('common.fields.address') },\r\n { key: 'postalCode', label: this.$i18n.tc('common.fields.postalCode') },\r\n { key: 'city', label: this.$i18n.tc('common.fields.city') },\r\n { key: 'invoiceDescription', label: this.$i18n.tc('common.fields.description') },\r\n { key: 'invoiceDate', label: this.$i18n.tc('common.fields.invoiceDate') },\r\n { key: 'invoiceDueDate', label: this.$i18n.tc('common.fields.invoiceDueDate') },\r\n { key: 'remainingCapital', label: this.$i18n.tc('common.fields.remainingCapital') },\r\n ]\r\n }\r\n\r\n async next() {\r\n if (await this.importCSV() === true) {\r\n router.push('/register-import-success')\r\n }\r\n }\r\n\r\n async mounted() {\r\n await this.previewCSV()\r\n this.busy = false\r\n }\r\n\r\n previous() {\r\n router.push('/register-import-start')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterImportPreviewView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterImportPreviewView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RegisterImportPreviewView.vue?vue&type=template&id=4fe30006&scoped=true\"\nimport script from \"./RegisterImportPreviewView.vue?vue&type=script&lang=ts\"\nexport * from \"./RegisterImportPreviewView.vue?vue&type=script&lang=ts\"\nimport style0 from \"./RegisterImportPreviewView.vue?vue&type=style&index=0&id=4fe30006&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4fe30006\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('h1',{staticClass:\"section-header\"},[_vm._v(_vm._s(_vm.$t('register.import.start.title')))]),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{staticClass:\"mb-4\",attrs:{\"lg\":\"4\"}},[_c('h2',{staticClass:\"sub-section-header pt-3\"},[_vm._v(_vm._s(_vm.$t('register.import.start.import')))]),_c('p',{staticClass:\"text-left m-0 mb-2\"},[_vm._v(_vm._s(_vm.$t('register.import.start.body')))])]),_c('b-col',{staticClass:\"mb-4 text-center\",attrs:{\"lg\":\"3\"}},[_c('b-link',{on:{\"click\":function($event){return _vm.$bvModal.show('modal-example')}}},[_c('b-img',{staticClass:\"mt-4 mb-2\",attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/img_structure_example.svg\")}}),_vm._v(\" \"+_vm._s(_vm.$t('register.import.start.example'))+\" \")],1),_c('div',[_c('b-modal',{attrs:{\"id\":\"modal-example\",\"size\":\"lg\",\"hide-footer\":\"\"}},[_c('div',{staticClass:\"d-block text-center\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('register.import.start.overlayTitle')))]),_c('b-img',{staticClass:\"mt-4 mb-2\",attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/img_structure_example.svg\")}}),_c('p',[_vm._v(_vm._s(_vm.$t('register.import.start.overlayBody')))]),_c('b-button',{staticClass:\"mt-3\",on:{\"click\":function($event){return _vm.$bvModal.hide('modal-example')}}},[_vm._v(_vm._s(_vm.$t('common.ok')))])],1)])],1)],1),_c('b-col',{attrs:{\"lg\":\"7\"}},[_c('hr',{staticClass:\"margin-top-bottom\"})])],1),(_vm.hasDepartments)?[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"lg\":\"7\"}},[_c('nordic-cool-input-select',{attrs:{\"id\":\"creditorDepartment\",\"label\":_vm.$t('register.manually.start.department'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.creditorDepartment),callback:function ($$v) {_vm.creditorDepartment=$$v},expression:\"creditorDepartment\"}})],1)],1)]:_vm._e(),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"lg\":\"7\"}},[_c('vue-csv-import',{attrs:{\"map-fields\":_vm.csvFields,\"autoMatchFields\":true,\"autoMatchIgnoreCase\":true},scopedSlots:_vm._u([{key:\"hasHeaders\",fn:function({headers, toggle}){return [_c('label',[_c('input',{staticClass:\"mr-2\",attrs:{\"type\":\"checkbox\",\"id\":\"hasHeaders\"},domProps:{\"value\":headers},on:{\"change\":toggle}}),_vm._v(\" \"+_vm._s(_vm.$t('register.import.start.headings'))+\" \")])]}},{key:\"next\",fn:function({load}){return [_c('button',{staticClass:\"btn float-right btn-secondary btn-sm\",on:{\"click\":function($event){$event.preventDefault();return load.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.$t('register.import.start.analyze'))+\" \")])]}}]),model:{value:(_vm.csv),callback:function ($$v) {_vm.csv=$$v},expression:\"csv\"}},[_c('template',{slot:\"error\"},[_vm._v(\" \"+_vm._s(_vm.$t('register.import.start.fileError'))+\" \")]),_c('template',{slot:\"thead\"},[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('register.import.start.fields')))]),_c('th',[_vm._v(_vm._s(_vm.$t('register.import.start.imports')))])])])],2)],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\",\"disabled\":_vm.disabled},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.next')))])],1)],1)],2)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputFile, InputSelect, validInputs } from '@/models/validations'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { DebtorOption } from '@/store/modules/caseDebtors'\r\nimport { CreditorDepartment } from '@/store/modules/creditorDepartments'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Cases = namespace('cases')\r\nconst CreditorDepartments = namespace('creditorDepartments')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class RegisterImportStartView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Cases.Mutation setImportCSV!: (csv: any[] | undefined) => void\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @Cases.Action startCreatingReminder!: () => void\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) alert!: Alert | undefined\r\n @State2Way('cases/setImportFile', (state) => state.cases.importFile) importFile!: InputFile\r\n @State2Way('creditorDepartments/setCreditorDepartment', (state) => state.creditorDepartments.creditorDepartment) creditorDepartment!: InputSelect\r\n\r\n strict = false\r\n disabled = true\r\n _csv: any[] = []\r\n departmentCount = 0\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n get csv(): any[] { return this._csv }\r\n set csv(csv: any[]) {\r\n this.disabled = false\r\n this._csv = csv\r\n }\r\n\r\n get hasDepartments(): boolean { return this.creditorDepartment.optionCount > 1 }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n get csvFields(): any {\r\n return {\r\n isPrivate: this.$i18n.tc('common.fields.isPrivate'),\r\n organisationId: this.$i18n.tc('common.fields.orgPersonId'),\r\n invoiceNumber: this.$i18n.tc('common.fields.invoiceNumber'),\r\n invoiceDescription: this.$i18n.tc('common.fields.description'),\r\n invoiceDate: this.$i18n.tc('common.fields.invoiceDate'),\r\n invoiceDueDate: this.$i18n.tc('common.fields.invoiceDueDate'),\r\n remainingCapital: this.$i18n.tc('common.fields.remainingCapital'),\r\n }\r\n }\r\n\r\n next() {\r\n const inputs = [this.creditorDepartment]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n this.setImportCSV(this._csv)\r\n router.push('/register-import-preview')\r\n }\r\n }\r\n\r\n async mounted() {\r\n this.startCreatingReminder()\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterImportStartView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterImportStartView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RegisterImportStartView.vue?vue&type=template&id=b2f928a6&scoped=true\"\nimport script from \"./RegisterImportStartView.vue?vue&type=script&lang=ts\"\nexport * from \"./RegisterImportStartView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b2f928a6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 green-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white text-center\"},[_vm._v(_vm._s(_vm.$t('register.import.success.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_check.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('register.import.success.body'))+\" \")])])],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.done')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class RegisterImportSuccessView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) alert!: Alert | undefined\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n next() {\r\n router.push('/register')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterImportSuccessView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterImportSuccessView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RegisterImportSuccessView.vue?vue&type=template&id=61b7c5d4\"\nimport script from \"./RegisterImportSuccessView.vue?vue&type=script&lang=ts\"\nexport * from \"./RegisterImportSuccessView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('register.manually.debtor.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_receiver.svg\"),\"alt\":\"\"}})],1)],1)],1),(_vm.busy)?_c('div',[_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded text-center\",attrs:{\"fluid\":\"\"}},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\",\"label\":_vm.$t('common.loading')}})],1)],1):_vm._e(),(!_vm.busy)?_c('div',[_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('register.manually.debtor.address')))])])],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"name\",\"label\":_vm.$t('common.fields.name'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"address\",\"label\":_vm.$t('common.fields.address'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.address),callback:function ($$v) {_vm.address=$$v},expression:\"address\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-number',{attrs:{\"id\":\"postalCode\",\"label\":_vm.$t('common.fields.postalCode'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.postalCode),callback:function ($$v) {_vm.postalCode=$$v},expression:\"postalCode\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"city\",\"label\":_vm.$t('common.fields.city'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.city),callback:function ($$v) {_vm.city=$$v},expression:\"city\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-left w-40\",attrs:{\"variant\":\"light\",\"size\":\"sm\"},on:{\"click\":_vm.previous}},[_vm._v(_vm._s(_vm.$t('common.back')))]),_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.next')))])],1)],1)],1)],1):_vm._e()],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputText, InputNumber, validInputs } from '@/models/validations'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { DebtorOption } from '@/store/modules/caseDebtors'\r\nimport { CreditorDepartment } from '@/store/modules/creditorDepartments'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Cases = namespace('cases')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class RegisterManuallyDebtorView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @Cases.Action lookupAddress!: ({ reportError }: { reportError: boolean }) => Promise\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) alert!: Alert | undefined\r\n @State2Way('cases/setName', (state) => state.cases.name) name!: InputText\r\n @State2Way('cases/setAddress', (state) => state.cases.address) address!: InputText\r\n @State2Way('cases/setPostalCode', (state) => state.cases.postalCode) postalCode!: InputNumber\r\n @State2Way('cases/setCity', (state) => state.cases.city) city!: InputText\r\n\r\n strict = false\r\n busy = true\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n async mounted() {\r\n if (await this.lookupAddress({ reportError: true }) === true) {\r\n this.strict = true\r\n }\r\n this.busy = false\r\n }\r\n\r\n next() {\r\n const inputs = [this.name, this.address, this.postalCode, this.city]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n router.push('/register-manually-debt')\r\n }\r\n }\r\n\r\n previous() {\r\n router.push('/register-manually-start')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterManuallyDebtorView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterManuallyDebtorView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RegisterManuallyDebtorView.vue?vue&type=template&id=7dc85af0&scoped=true\"\nimport script from \"./RegisterManuallyDebtorView.vue?vue&type=script&lang=ts\"\nexport * from \"./RegisterManuallyDebtorView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7dc85af0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('register.manually.debt.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_payment.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('register.manually.debt.invoice')))])])],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"invoiceNumber\",\"label\":_vm.$t('common.fields.invoiceNumber'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.invoiceNumber),callback:function ($$v) {_vm.invoiceNumber=$$v},expression:\"invoiceNumber\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"invoiceDescription\",\"label\":_vm.$t('common.fields.description'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.invoiceDescription),callback:function ($$v) {_vm.invoiceDescription=$$v},expression:\"invoiceDescription\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-date',{attrs:{\"id\":\"invoiceDate\",\"label\":_vm.$t('common.fields.invoiceDate'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.invoiceDates[0]),callback:function ($$v) {_vm.$set(_vm.invoiceDates, 0, $$v)},expression:\"invoiceDates[0]\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-date',{attrs:{\"id\":\"invoiceDueDate\",\"label\":_vm.$t('common.fields.invoiceDueDate'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.invoiceDates[1]),callback:function ($$v) {_vm.$set(_vm.invoiceDates, 1, $$v)},expression:\"invoiceDates[1]\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-number',{attrs:{\"id\":\"remainingCapital\",\"label\":_vm.$t('common.fields.remainingCapital'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.remainingCapital),callback:function ($$v) {_vm.remainingCapital=$$v},expression:\"remainingCapital\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-left w-40\",attrs:{\"variant\":\"light\",\"size\":\"sm\"},on:{\"click\":_vm.previous}},[_vm._v(_vm._s(_vm.$t('common.back')))]),_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.create}},[_vm._v(_vm._s(_vm.$t('register.manually.debt.register')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputText, InputNumber, InputDate, validInputs } from '@/models/validations'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { DebtorOption } from '@/store/modules/caseDebtors'\r\nimport { CreditorDepartment } from '@/store/modules/creditorDepartments'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Cases = namespace('cases')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class RegisterManuallyDebtView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @Cases.Action createReminder!: () => Promise\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) alert!: Alert | undefined\r\n @State2Way('cases/setInvoiceNumber', (state) => state.cases.invoiceNumber) invoiceNumber!: InputText\r\n @State2Way('cases/setInvoiceDescription', (state) => state.cases.invoiceDescription) invoiceDescription!: InputText\r\n @State2Way('cases/setInvoiceDates', (state) => state.cases.invoiceDates) invoiceDates!: [InputDate, InputDate]\r\n @State2Way('cases/setRemainingCapital', (state) => state.cases.remainingCapital) remainingCapital!: InputNumber\r\n\r\n strict = false\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n async create() {\r\n const inputs = [this.invoiceNumber, this.invoiceDescription, this.invoiceDates[0], this.invoiceDates[1], this.remainingCapital]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n if (await this.createReminder()) router.push('/register-manually-success')\r\n }\r\n }\r\n\r\n previous() {\r\n router.push('/register-manually-debtor')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterManuallyDebtView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterManuallyDebtView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RegisterManuallyDebtView.vue?vue&type=template&id=2c238e46&scoped=true\"\nimport script from \"./RegisterManuallyDebtView.vue?vue&type=script&lang=ts\"\nexport * from \"./RegisterManuallyDebtView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c238e46\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('register.manually.start.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_receiver.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[(_vm.hasDepartments)?[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-select',{attrs:{\"id\":\"creditorDepartment\",\"label\":_vm.$t('register.manually.start.department'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.creditorDepartment),callback:function ($$v) {_vm.creditorDepartment=$$v},expression:\"creditorDepartment\"}})],1)],1)]:_vm._e(),_c('b-row',[_c('b-col',[_c('p',{staticClass:\"header text-left m-0\"},[_vm._v(_vm._s(_vm.$t('register.manually.start.debtor')))])])],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-select',{attrs:{\"id\":\"debtorOption\",\"label\":_vm.$t('register.manually.start.debtorType'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.debtorOption),callback:function ($$v) {_vm.debtorOption=$$v},expression:\"debtorOption\"}})],1)],1),_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[_c('nordic-cool-input-text',{attrs:{\"id\":\"organisationId\",\"label\":_vm.$t('common.fields.orgPersonId'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.organisationId),callback:function ($$v) {_vm.organisationId=$$v},expression:\"organisationId\"}})],1)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.next}},[_vm._v(_vm._s(_vm.$t('common.next')))])],1)],1)],2)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputSelect, InputText, validInputs } from '@/models/validations'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Cases = namespace('cases')\r\nconst CaseDebtors = namespace('caseDebtors')\r\nconst CreditorDepartments = namespace('creditorDepartments')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class RegisterManuallyStartView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n @Cases.Action startCreatingReminder!: () => void\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) alert!: Alert | undefined\r\n @State2Way('cases/setOrganisationId', (state) => state.cases.organisationId) organisationId!: InputText\r\n @State2Way('caseDebtors/setDebtorOption', (state) => state.caseDebtors.debtorOption) debtorOption!: InputSelect\r\n @State2Way('creditorDepartments/setCreditorDepartment', (state) => state.creditorDepartments.creditorDepartment) creditorDepartment!: InputSelect\r\n\r\n strict = false\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n get hasDepartments(): boolean { return this.creditorDepartment.optionCount > 1 }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n next() {\r\n const inputs = [this.creditorDepartment, this.debtorOption, this.organisationId]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n router.push('/register-manually-debtor')\r\n }\r\n }\r\n\r\n async mounted() {\r\n this.startCreatingReminder()\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterManuallyStartView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterManuallyStartView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RegisterManuallyStartView.vue?vue&type=template&id=c71e3f30&scoped=true\"\nimport script from \"./RegisterManuallyStartView.vue?vue&type=script&lang=ts\"\nexport * from \"./RegisterManuallyStartView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c71e3f30\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.casesAlert),callback:function ($$v) {_vm.casesAlert=$$v},expression:\"casesAlert\"}}),_c('nordic-cool-alert',{model:{value:(_vm.caseDocumentsAlert),callback:function ($$v) {_vm.caseDocumentsAlert=$$v},expression:\"caseDocumentsAlert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 green-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('register.manually.success.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_check.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[(_vm.progress !== 'UPLOADING')?[_c('p',{staticClass:\"text-left m-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('register.manually.success.body'))+\" \")])]:_vm._e()],2)],1),_c('b-row',{staticClass:\"mt-3 mb-5\",attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"sm\":\"7\"}},[(_vm.progress === 'INITIAL')?[_c('p',{staticClass:\"header text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('register.manually.success.invoice'))+\" \")]),_c('nordic-cool-input-file',{attrs:{\"id\":\"currentFile\",\"label\":_vm.$t('register.manually.success.file'),\"placeholder\":_vm.$t('common.nofile'),\"dropplaceholder\":_vm.$t('common.dropfile'),\"browsetext\":_vm.$t('common.browsefile'),\"strict\":_vm.strict,\"reset\":_vm.reset},model:{value:(_vm.currentFile),callback:function ($$v) {_vm.currentFile=$$v},expression:\"currentFile\"}}),_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.upload}},[_vm._v(_vm._s(_vm.$t('register.manually.success.attach')))])]:_vm._e(),(_vm.progress === 'UPLOADING')?[_c('div',{staticClass:\"text-center my-2\"},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\",\"label\":_vm.$t('common.loading')}}),_c('p',{staticClass:\"text-center mt-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('register.manually.success.uploading'))+\" \")])],1)]:_vm._e(),(_vm.progress === 'UPLOADED')?[_c('b-img',{attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/ico_uploaded.svg\"),\"alt\":\"\"}}),_c('p',{staticClass:\"text-center mt-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('register.manually.success.uploaded'))+\" \")])]:_vm._e()],2)],1),_c('hr',{staticClass:\"margin-top-bottom\"}),_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',[_c('b-button',{staticClass:\"float-right w-40\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.success}},[_vm._v(_vm._s(_vm.$t('common.done')))])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport Component from 'vue-class-component'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport { Alert } from '@/models/alerts'\r\nimport { InputText, InputFile, validInputs } from '@/models/validations'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { DocumentType } from '@/models/documents'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Cases = namespace('cases')\r\nconst CaseDocuments = namespace('caseDocuments')\r\nconst Navigation = namespace('navigation')\r\n\r\ntype Progress = 'INITIAL' | 'UPLOADING' | 'UPLOADED'\r\n\r\n@Component\r\nexport default class RegisterManuallySuccessView extends Vue {\r\n @Cases.Getter getInvoiceDescription!: InputText\r\n @Cases.Getter getCurrentRegisterId!: number\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @CaseDocuments.Mutation setCurrentDescription!: (currentDescription: InputText) => void\r\n @CaseDocuments.Mutation setCurrentDocumentType!: (documentType: DocumentType) => void\r\n\r\n @CaseDocuments.Action startUploadCaseDocument!: () => void\r\n @CaseDocuments.Action uploadCaseDocument!: (registerId: number) => Promise\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n @State2Way('cases/setAlert', (state) => state.cases.alert) casesAlert!: Alert | undefined\r\n @State2Way('caseDocuments/setAlert', (state) => state.caseDocuments.alert) caseDocumentsAlert!: Alert | undefined\r\n @State2Way('caseDocuments/setCurrentFile', (state) => state.caseDocuments.currentFile) currentFile!: InputFile\r\n\r\n strict = false\r\n invoiceFile: File | null = null\r\n current: Progress = 'INITIAL'\r\n\r\n async reset() {\r\n this.strict = false\r\n }\r\n\r\n get progress(): Progress { return this.current }\r\n set progress(progress: Progress) { this.current = progress }\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n\r\n async upload() {\r\n const inputs = [this.currentFile]\r\n this.strict = true\r\n if (validInputs(inputs, this.strict)) {\r\n this.progress = 'UPLOADING'\r\n if (await this.uploadCaseDocument(this.getCurrentRegisterId) === true) {\r\n this.progress = 'UPLOADED'\r\n } else {\r\n this.progress = 'INITIAL'\r\n }\r\n this.strict = false\r\n }\r\n }\r\n\r\n success() {\r\n router.push('/register-manually-start')\r\n }\r\n\r\n async mounted() {\r\n this.progress = 'INITIAL'\r\n await this.startUploadCaseDocument()\r\n this.setCurrentDescription(this.getInvoiceDescription)\r\n this.setCurrentDocumentType('INVOICE')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterManuallySuccessView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RegisterManuallySuccessView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RegisterManuallySuccessView.vue?vue&type=template&id=b5d53e56&scoped=true\"\nimport script from \"./RegisterManuallySuccessView.vue?vue&type=script&lang=ts\"\nexport * from \"./RegisterManuallySuccessView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b5d53e56\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"h-100\",attrs:{\"fluid\":\"\"}},[_c('nordic-cool-alert',{model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}}),_c('nordic-cool-menu',{attrs:{\"menuBar\":_vm.getMenuBar,\"select\":_vm.switchCreditor}}),_c('nordic-cool-page',{attrs:{\"menuBar\":_vm.getMenuBar}},[_c('b-card',{staticClass:\"mb-4 p-4 pr-lg-5 pl-lg-5 pt-lg-4 pb-lg-4 blue-box\",attrs:{\"no-body\":\"\"}},[_c('b-row',{staticClass:\"pl-lg-4 pr-lg-4\"},[_c('b-col',{staticClass:\"align-self-center\",attrs:{\"sm\":\"9\",\"order\":\"2\",\"order-sm\":\"1\"}},[_c('h2',{staticClass:\"text-white\"},[_vm._v(_vm._s(_vm.$t('support.contact.title')))])]),_c('b-col',{staticClass:\"mx-auto align-self-top\",attrs:{\"sm\":\"3\",\"order\":\"1\",\"order-sm\":\"2\"}},[_c('b-img',{staticClass:\"ico-responsive pb-4\",attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_contact.svg\"),\"alt\":\"\"}})],1)],1)],1),_c('b-container',{staticClass:\"mt-4 p-4 bg-white shadow-sm rounded\",attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"p-md-4\"},[_c('b-col',{staticClass:\"text-center pt-4\",attrs:{\"sm\":\"4\"}},[_c('b-img',{attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_contact_adress.svg\"),\"alt\":\"\"}}),_c('h1',{staticClass:\"section-header pt-4\"},[_vm._v(_vm._s(_vm.$t('common.fields.address')))]),_vm._v(\" Redaregatan 50, 252 25 Helsingborg \")],1),_c('b-col',{staticClass:\"text-center pt-4\",attrs:{\"sm\":\"4\"}},[_c('b-img',{attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_contact_phone.svg\"),\"alt\":\"\"}}),_c('h1',{staticClass:\"section-header pt-4\"},[_vm._v(_vm._s(_vm.$t('common.fields.phone')))]),_c('a',{attrs:{\"href\":\"tel:0771-232405\"}},[_vm._v(\"0771 - 23 24 05\")])],1),_c('b-col',{staticClass:\"text-center pt-4\",attrs:{\"sm\":\"4\"}},[_c('b-img',{attrs:{\"center\":\"\",\"src\":require(\"@/assets/img/illu_contact_email.svg\"),\"alt\":\"\"}}),_c('h1',{staticClass:\"section-header pt-4\"},[_vm._v(_vm._s(_vm.$t('common.fields.email')))]),_c('a',{attrs:{\"href\":\"mailto:kundsupport@amili.se\"}},[_vm._v(\"kundsupport@amili.se\")])],1)],1)],1)],1),_c('ekrav-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\nimport { namespace } from 'vuex-class'\r\nimport { State2Way } from 'vuex-class-state2way'\r\nimport Component from 'vue-class-component'\r\nimport { MenuBar } from '@/models/menus'\r\nimport { APIError } from '@/store/modules/creditorsAPI'\r\nimport { Alert } from '@/models/alerts'\r\n\r\nconst Authentications = namespace('authentications')\r\nconst Navigation = namespace('navigation')\r\n\r\n@Component\r\nexport default class SupportContactView extends Vue {\r\n @Navigation.Getter getMenuBar!: MenuBar\r\n\r\n @Authentications.Action switchCurrentCreditor!: (creditorId: number) => Promise\r\n\r\n @State2Way('authentications/setAlert', (state) => state.authentications.alert) alert!: Alert | undefined\r\n\r\n async switchCreditor(creditorId: number) {\r\n if (await this.switchCurrentCreditor(creditorId) === true) router.push('/cases-overviews')\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SupportContactView.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SupportContactView.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SupportContactView.vue?vue&type=template&id=3e146168\"\nimport script from \"./SupportContactView.vue?vue&type=script&lang=ts\"\nexport * from \"./SupportContactView.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport store from '@/store'\r\nimport VueRouter from 'vue-router'\r\nimport DesignView from '@/views/Onboarding/DesignView.vue'\r\nimport OnboardingBankIDView from '@/views/Onboarding/OnboardingBankIDView.vue'\r\nimport OnboardingCookiesView from '@/views/Onboarding/OnboardingCookiesView.vue'\r\nimport OnboardingLoginView from '@/views/Onboarding/OnboardingLoginView.vue'\r\nimport OnboardingLogoutView from '@/views/Onboarding/OnboardingLogoutView.vue'\r\nimport OnboardingSignupSuccessView from '@/views/Onboarding/OnboardingSignupSuccessView.vue'\r\nimport OnboardingSignupContactView from '@/views/Onboarding/OnboardingSignupContactView.vue'\r\nimport OnboardingSignupCreditorView from '@/views/Onboarding/OnboardingSignupCreditorView.vue'\r\nimport OnboardingSignupStartView from '@/views/Onboarding/OnboardingSignupStartView.vue'\r\nimport OnboardingStartView from '@/views/Onboarding/OnboardingStartView.vue'\r\nimport CaseActionStartView from '@/views/Cases/CaseActionStartView.vue'\r\nimport CaseActionSuccessView from '@/views/Cases/CaseActionSuccessView.vue'\r\nimport CaseDebtorsView from '@/views/Cases/CaseDebtorsView.vue'\r\nimport CaseDebtsView from '@/views/Cases/CaseDebtsView.vue'\r\nimport CaseHistoryView from '@/views/Cases/CaseHistoryView.vue'\r\nimport CaseMessagesView from '@/views/Cases/CaseMessagesView.vue'\r\nimport CaseDetailsView from '@/views/Cases/CaseDetailsView.vue'\r\nimport CaseDocumentsView from '@/views/Cases/CaseDocumentsView.vue'\r\nimport CasePaymentStartView from '@/views/Cases/CasePaymentStartView.vue'\r\nimport CasePaymentSuccessView from '@/views/Cases/CasePaymentSuccessView.vue'\r\nimport CasesClosedView from '@/views/Cases/CasesClosedView.vue'\r\nimport CasesOngoingView from '@/views/Cases/CasesOngoingView.vue'\r\nimport CasesOverviewsView from '@/views/Cases/CasesOverviewsView.vue'\r\nimport CreditorDepartmentsView from '@/views/Creditors/CreditorDepartmentsView.vue'\r\nimport CreditorDepartmentEditView from '@/views/Creditors/CreditorDepartmentEditView.vue'\r\nimport CreditorDepartmentSuccessView from '@/views/Creditors/CreditorDepartmentSuccessView.vue'\r\nimport CreditorOverviewView from '@/views/Creditors/CreditorOverviewView.vue'\r\nimport CreditorUserDepartmentAccessesView from '@/views/Creditors/CreditorUserDepartmentAccessesView.vue'\r\nimport CreditorUsersView from '@/views/Creditors/CreditorUsersView.vue'\r\nimport CreditorUserEditView from '@/views/Creditors/CreditorUserEditView.vue'\r\nimport CreditorUserSuccessView from '@/views/Creditors/CreditorUserSuccessView.vue'\r\nimport EnrollCreditorView from '@/views/Enroll/EnrollCreditorView.vue'\r\nimport EnrollStartView from '@/views/Enroll/EnrollStartView.vue'\r\nimport EnrollSuccessView from '@/views/Enroll/EnrollSuccessView.vue'\r\nimport MessagesArchivedView from '@/views/Messages/MessagesArchivedView.vue'\r\nimport MessagesInboxView from '@/views/Messages/MessagesInboxView.vue'\r\nimport MessagesSentView from '@/views/Messages/MessagesSentView.vue'\r\nimport RegisterImportPreviewView from '@/views/Register/RegisterImportPreviewView.vue'\r\nimport RegisterImportStartView from '@/views/Register/RegisterImportStartView.vue'\r\nimport RegisterImportSuccessView from '@/views/Register/RegisterImportSuccessView.vue'\r\nimport RegisterManuallyDebtorView from '@/views/Register/RegisterManuallyDebtorView.vue'\r\nimport RegisterManuallyDebtView from '@/views/Register/RegisterManuallyDebtView.vue'\r\nimport RegisterManuallyStartView from '@/views/Register/RegisterManuallyStartView.vue'\r\nimport RegisterManuallySuccessView from '@/views/Register/RegisterManuallySuccessView.vue'\r\nimport SupportContactView from '@/views/Support/SupportContactView.vue'\r\n\r\nVue.use(VueRouter)\r\n\r\nconst routes = [\r\n {\r\n path: '/design',\r\n name: 'DesignView',\r\n component: DesignView,\r\n },\r\n {\r\n path: '/start',\r\n name: 'OnboardingStartView',\r\n component: OnboardingStartView,\r\n },\r\n {\r\n path: '/logout',\r\n name: 'OnboardingLogoutView',\r\n component: OnboardingLogoutView,\r\n },\r\n {\r\n path: '/cookies',\r\n name: 'OnboardingCookiesView',\r\n component: OnboardingCookiesView,\r\n },\r\n {\r\n path: '/',\r\n name: 'OnboardingLoginView',\r\n component: OnboardingLoginView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/mbid',\r\n name: 'OnboardingBankIDView',\r\n component: OnboardingBankIDView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/signup-start',\r\n name: 'OnboardingSignupStartView',\r\n component: OnboardingSignupStartView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/signup-creditor',\r\n name: 'OnboardingSignupCreditorView',\r\n component: OnboardingSignupCreditorView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/signup-contact',\r\n name: 'OnboardingSignupContactView',\r\n component: OnboardingSignupContactView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/signup-success',\r\n name: 'OnboardingSignupSuccessView',\r\n component: OnboardingSignupSuccessView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/cases',\r\n redirect: '/cases-overviews',\r\n },\r\n {\r\n path: '/cases-overviews',\r\n name: 'CasesOverviewsView',\r\n component: CasesOverviewsView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/cases-closed',\r\n name: 'CasesClosedView',\r\n component: CasesClosedView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/cases-ongoing',\r\n name: 'CasesOngoingView',\r\n component: CasesOngoingView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/case-details',\r\n name: 'CaseDetailsView',\r\n component: CaseDetailsView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/case-history',\r\n name: 'CaseHistoryView',\r\n component: CaseHistoryView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/case-messages',\r\n name: 'CaseMessagesView',\r\n component: CaseMessagesView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/case-debts',\r\n name: 'CaseDebtsView',\r\n component: CaseDebtsView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/case-debtors',\r\n name: 'CaseDebtorsView',\r\n component: CaseDebtorsView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/case-documents',\r\n name: 'CaseDocumentsView',\r\n component: CaseDocumentsView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/case-payment-start',\r\n name: 'CasePaymentStartView',\r\n component: CasePaymentStartView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/case-payment-success',\r\n name: 'CasePaymentSuccessView',\r\n component: CasePaymentSuccessView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/case-action-start',\r\n name: 'CaseActionStartView',\r\n component: CaseActionStartView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/case-action-success',\r\n name: 'CaseActionSuccessView',\r\n component: CaseActionSuccessView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/register',\r\n redirect: '/register-manually-start',\r\n },\r\n {\r\n path: '/register-manually-start',\r\n name: 'RegisterManuallyStartView',\r\n component: RegisterManuallyStartView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/register-manually-debtor',\r\n name: 'RegisterManuallyDebtorView',\r\n component: RegisterManuallyDebtorView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/register-manually-debt',\r\n name: 'RegisterManuallyDebtView',\r\n component: RegisterManuallyDebtView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/register-manually-success',\r\n name: 'RegisterManuallySuccessView',\r\n component: RegisterManuallySuccessView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/register-import-start',\r\n name: 'RegisterImportStartView',\r\n component: RegisterImportStartView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/register-import-preview',\r\n name: 'RegisterImportPreviewView',\r\n component: RegisterImportPreviewView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/register-import-success',\r\n name: 'RegisterImportSuccessView',\r\n component: RegisterImportSuccessView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/creditor',\r\n redirect: '/creditor-overview',\r\n },\r\n {\r\n path: '/creditor-overview',\r\n name: 'CreditorOverviewView',\r\n component: CreditorOverviewView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/creditor-user-department-accesses',\r\n name: 'CreditorUserDepartmentAccessesView',\r\n component: CreditorUserDepartmentAccessesView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/creditor-departments',\r\n name: 'CreditorDepartmentsView',\r\n component: CreditorDepartmentsView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/creditor-department-edit',\r\n name: 'CreditorDepartmentEditView',\r\n component: CreditorDepartmentEditView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/creditor-department-success',\r\n name: 'CreditorDepartmentSuccessView',\r\n component: CreditorDepartmentSuccessView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/creditor-users',\r\n name: 'CreditorUsersView',\r\n component: CreditorUsersView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/creditor-user-edit',\r\n name: 'CreditorUserEditView',\r\n component: CreditorUserEditView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/creditor-user-success',\r\n name: 'CreditorUserSuccessView',\r\n component: CreditorUserSuccessView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/enroll-start',\r\n name: 'EnrollStartView',\r\n component: EnrollStartView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/enroll-creditor',\r\n name: 'EnrollCreditorView',\r\n component: EnrollCreditorView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/enroll-success',\r\n name: 'EnrollSuccessView',\r\n component: EnrollSuccessView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/messages-inbox',\r\n name: 'MessagesInboxView',\r\n component: MessagesInboxView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/messages-sent',\r\n name: 'MessagesSentView',\r\n component: MessagesSentView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/messages-archived',\r\n name: 'MessagesArchivedView',\r\n component: MessagesArchivedView,\r\n meta: { requiresToken: true },\r\n },\r\n {\r\n path: '/support-contact',\r\n name: 'SupportContactView',\r\n component: SupportContactView,\r\n meta: { requiresToken: true },\r\n },\r\n]\r\n\r\ntype Position = { x: number; y: number }\r\nconst router = new VueRouter({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes,\r\n scrollBehavior: (to, from, savedPosition) => { x: 0, y: 0 },\r\n})\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n const token = store.getters['creditorsAPI/getToken']\r\n const requiresToken = to.matched.some((record) => record.meta.requiresToken === true)\r\n\r\n if (requiresToken && token === undefined) {\r\n location.href = `${process.env.VUE_APP_BACKEND_BASE_URL}/authenticates/app-init/${process.env.VUE_APP_APP_ID}`\r\n next(false)\r\n } else store.dispatch('navigation/switchActiveRoute', to)\r\n next()\r\n})\r\n\r\nexport default router\r\n","import VueGtm from '@gtm-support/vue2-gtm'\r\nimport Vue from 'vue'\r\nimport router from '@/router'\r\n\r\nVue.use(VueGtm, {\r\n id: 'GTM-WWZFNL9',\r\n enabled: true,\r\n debug: false,\r\n vueRouter: router,\r\n})\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('router-view')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\n\r\nexport default Vue.extend({\r\n name: 'App',\r\n components: {\r\n },\r\n data: () => ({\r\n //\r\n }),\r\n})\r\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./App.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./App.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=283a8305\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=283a8305&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"fluid-container\"},[_c('b-img',{staticClass:\"pt-3 pb-4\",attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/visma-logo.svg\"),\"alt\":\"Visma logo\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\n// import { Mutation, namespace, State } from 'vuex-class'\r\n\r\n@Component\r\nexport default class Footer extends Vue {\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Footer.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Footer.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=ae77d31a&scoped=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Footer.vue?vue&type=style&index=0&id=ae77d31a&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ae77d31a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-modal',{attrs:{\"id\":\"nordic-cool-alert\",\"centered\":\"\",\"hide-header\":true,\"no-close-on-esc\":true,\"no-close-on-backdrop\":true},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('div',{staticClass:\"w-100 text-center\"},[_c('b-button',{staticClass:\"w-25\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('common.ok'))+\" \")])],1)]},proxy:true}]),model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('b-container',{staticClass:\"pl-3 pr-3\",attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"12\"}},[(_vm.warning)?[_c('b-img',{staticClass:\"mb-4 mt-4\",attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_warning.svg\")}})]:_vm._e(),(_vm.error)?[_c('b-img',{staticClass:\"mb-4 mt-4\",attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_error.svg\")}})]:_vm._e()],2),_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"12\"}},[_c('p',{staticClass:\"text-left m-0\",staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"16px\"},attrs:{\"id\":\"nordic-cool-alert-title\"}},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")])]),_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"12\"}},[_c('p',[_vm._v(_vm._s(_vm.message))])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { Alert, Severity } from '@/models/alerts'\r\nimport router from '@/router'\r\n\r\n@Component\r\nexport default class NordicCoolAlert extends Vue {\r\n @Prop(Object) readonly value: Alert | undefined\r\n\r\n get title(): string {\r\n return this.value?.title ?? ''\r\n }\r\n\r\n get message(): string {\r\n return this.value?.message ?? ''\r\n }\r\n\r\n get warning(): boolean {\r\n return this.value?.severity === Severity.Warning\r\n }\r\n\r\n get error(): boolean {\r\n return this.value?.severity === Severity.Error\r\n }\r\n\r\n get show(): boolean {\r\n return this.value !== undefined\r\n }\r\n\r\n close() {\r\n this.$emit('input', undefined)\r\n const route = this.value?.cancel\r\n if (route != null) {\r\n router.push(route)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolAlert.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolAlert.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolAlert.vue?vue&type=template&id=1cc37d9e\"\nimport script from \"./NordicCoolAlert.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolAlert.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-link',{staticClass:\"pb-3 d-block\",on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_c('b-img',{attrs:{\"src\":require(\"@/assets/img/ico_back_arrow.svg\"),\"alt\":\"\"}}),_vm._v(\" \"+_vm._s(_vm.$t('common.back'))+\" \")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\n\r\n@Component\r\nexport default class NordicCoolBack extends Vue {\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolBack.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolBack.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolBack.vue?vue&type=template&id=114e3930\"\nimport script from \"./NordicCoolBack.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolBack.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-modal',{attrs:{\"id\":\"nordic-cool-confirm\",\"centered\":\"\",\"hide-header\":true,\"no-close-on-esc\":true,\"no-close-on-backdrop\":true},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('div',{staticClass:\"w-100 text-center\"},[_c('b-button',{staticClass:\"w-25\",attrs:{\"variant\":\"light\",\"size\":\"sm\"},on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t('common.cancel')))]),_c('b-button',{staticClass:\"w-25 ml-2\",attrs:{\"variant\":\"light\",\"size\":\"sm\"},on:{\"click\":_vm.proceed}},[_vm._v(_vm._s(_vm.confirm))])],1)]},proxy:true}]),model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('b-container',{staticClass:\"pl-3 pr-3\",attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"12\"}},[_c('b-img',{staticClass:\"mb-4 mt-4\",attrs:{\"fluid\":\"\",\"center\":\"\",\"src\":require(\"@/assets/img/ico_warning.svg\")}})],1),_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"12\"}},[_c('p',[_vm._v(_vm._s(_vm.message))])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class NordicCoolConfirm extends Vue {\r\n @Prop(Boolean) readonly value: boolean | undefined\r\n @Prop(String) readonly message: string | undefined\r\n @Prop(String) readonly confirm: string | undefined\r\n @Prop({ type: Function, default: undefined }) readonly next: Function | undefined\r\n\r\n get show(): boolean {\r\n return this.value === true\r\n }\r\n\r\n proceed() {\r\n this.$emit('input', false)\r\n if (this.next !== undefined) this.next()\r\n }\r\n\r\n close() {\r\n this.$emit('input', false)\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolConfirm.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolConfirm.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolConfirm.vue?vue&type=template&id=b9e57032\"\nimport script from \"./NordicCoolConfirm.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolConfirm.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',{staticClass:\"mb-2\"},[(_vm.buttonTitle !== undefined)?[_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.label)+\":\")])]),_c('b-col',{attrs:{\"sm\":\"8\"}},[_c('b-button',{staticClass:\"btn-light\",attrs:{\"block\":\"\",\"variant\":\"secondary\",\"href\":_vm.buttonLink,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(_vm._s(_vm.buttonTitle))]),_c('b-form-checkbox',{staticClass:\"pt-3\",attrs:{\"id\":_vm.id,\"state\":_vm.state,\"disabled\":_vm.disabled},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}},[_vm._v(\" \"+_vm._s(_vm.body)+\" \")]),_c('b-form-invalid-feedback',{attrs:{\"id\":_vm.id}})],1)]:[_c('b-col',[_c('b-form-checkbox',{attrs:{\"id\":_vm.id,\"state\":_vm.state,\"disabled\":_vm.disabled},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}},[_c('label',[_vm._v(_vm._s(_vm.label))])]),_c('b-form-invalid-feedback',{attrs:{\"id\":_vm.id}})],1)]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { InputCheckbox, validInputCheckbox } from '@/models/validations'\r\n\r\n@Component\r\nexport default class NordicCoolInputCheckbox extends Vue {\r\n @Prop(String) readonly id: string | undefined\r\n @Prop(String) readonly label: string | undefined\r\n @Prop(String) readonly body: string | undefined\r\n @Prop(String) readonly buttonTitle: string | undefined\r\n @Prop(String) readonly buttonLink: string | undefined\r\n @Prop(Object) readonly value: InputCheckbox | undefined\r\n @Prop(Boolean) readonly disabled: boolean | undefined\r\n @Prop(Boolean) readonly strict: boolean | undefined\r\n @Prop({ type: Function, default: undefined }) readonly reset!: () => void\r\n\r\n get state(): true | false | null {\r\n if (this.disabled === true) return null\r\n if (this.value === undefined) {\r\n return null\r\n }\r\n return validInputCheckbox(this.value, this.strict ?? false)\r\n }\r\n\r\n get localValue(): boolean {\r\n if (this.value === undefined) {\r\n return false\r\n }\r\n return this.value.value ?? false\r\n }\r\n\r\n set localValue(localValue: boolean) {\r\n if (this.reset !== undefined) this.reset()\r\n if (this.value !== undefined) {\r\n const input = this.value\r\n input.value = localValue\r\n this.$emit('input', input)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputCheckbox.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputCheckbox.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolInputCheckbox.vue?vue&type=template&id=f507dd70\"\nimport script from \"./NordicCoolInputCheckbox.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolInputCheckbox.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',{staticClass:\"mb-2\"},[(_vm.label !== undefined)?[_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.label)+\":\")])]),_c('b-col',{attrs:{\"sm\":\"8\"}},[_c('b-form-datepicker',{attrs:{\"id\":_vm.id,\"value-as-date\":true,\"label-no-date-selected\":_vm.placeholder,\"state\":_vm.state,\"disabled\":_vm.disabled,\"min\":_vm.min,\"max\":_vm.max,\"locale\":\"sv-SE\"},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})],1)]:[_c('b-form-datepicker',{attrs:{\"id\":_vm.id,\"value-as-date\":true,\"label-no-date-selected\":_vm.placeholder,\"state\":_vm.state,\"disabled\":_vm.disabled,\"min\":_vm.min,\"max\":_vm.max,\"locale\":\"sv-SE\"},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { InputDate, validInputDate, placeholderInputDate } from '@/models/validations'\r\n\r\n@Component\r\nexport default class NordicCoolInputDate extends Vue {\r\n @Prop(String) readonly id: string | undefined\r\n @Prop(String) readonly label: string | undefined\r\n @Prop(Object) readonly value: InputDate | undefined\r\n @Prop(Boolean) readonly disabled: boolean | undefined\r\n @Prop(Boolean) readonly strict: boolean | undefined\r\n @Prop({ type: Function, default: undefined }) readonly reset!: () => void\r\n\r\n get placeholder(): string {\r\n if (this.disabled === true) return ''\r\n if (this.value === undefined) return ''\r\n return placeholderInputDate(this.value)\r\n }\r\n\r\n get min(): Date | null {\r\n if (this.value === undefined) {\r\n return null\r\n }\r\n return this.value.minValue ?? null\r\n }\r\n\r\n get max(): Date | null {\r\n if (this.value === undefined) {\r\n return null\r\n }\r\n return this.value.maxValue ?? null\r\n }\r\n\r\n get state(): true | false | null {\r\n if (this.disabled === true) return null\r\n if (this.value === undefined) {\r\n return null\r\n }\r\n return validInputDate(this.value, this.strict ?? false)\r\n }\r\n\r\n get localValue(): Date | null {\r\n if (this.value === undefined) {\r\n return null\r\n }\r\n return this.value.value ?? null\r\n }\r\n\r\n set localValue(localValue: Date | null) {\r\n if (this.reset !== undefined) this.reset()\r\n if (this.value !== undefined) {\r\n const input = this.value\r\n input.value = localValue ?? null\r\n this.$emit('input', input)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputDate.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputDate.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolInputDate.vue?vue&type=template&id=571eef61\"\nimport script from \"./NordicCoolInputDate.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolInputDate.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.label)+\":\")])]),_c('b-col',{attrs:{\"sm\":\"8\"}},[_c('b-form-input',{attrs:{\"id\":_vm.id,\"type\":\"email\",\"state\":_vm.state,\"disabled\":_vm.disabled,\"placeholder\":_vm.placeholder},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":_vm.id}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { InputText, validInputText, placeholderInputText, filteredInputText } from '@/models/validations'\r\n\r\n@Component\r\nexport default class NordicCoolInputEmail extends Vue {\r\n @Prop(String) readonly id: string | undefined\r\n @Prop(String) readonly label: string | undefined\r\n @Prop(Object) readonly value: InputText | undefined\r\n @Prop(Boolean) readonly disabled: boolean | undefined\r\n @Prop(Boolean) readonly strict: boolean | undefined\r\n @Prop({ type: Function, default: undefined }) readonly reset!: () => void\r\n\r\n get placeholder(): string {\r\n if (this.disabled === true) return ''\r\n if (this.value === undefined) return ''\r\n return placeholderInputText(this.value)\r\n }\r\n\r\n get state(): true | false | null {\r\n if (this.disabled === true) return null\r\n if (this.value === undefined) {\r\n return null\r\n }\r\n return validInputText(this.value, this.strict ?? false)\r\n }\r\n\r\n get localValue(): string {\r\n if (this.value === undefined) {\r\n return ''\r\n }\r\n return this.value.value ?? ''\r\n }\r\n\r\n set localValue(localValue: string) {\r\n if (this.reset !== undefined) this.reset()\r\n if (this.value !== undefined) {\r\n const input = this.value\r\n input.value = filteredInputText(input, localValue)\r\n this.$emit('input', input)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputEmail.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputEmail.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolInputEmail.vue?vue&type=template&id=7aa71064\"\nimport script from \"./NordicCoolInputEmail.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolInputEmail.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.label)+\":\")])]),_c('b-col',{attrs:{\"sm\":\"8\"}},[_c('b-form-file',{attrs:{\"id\":_vm.id,\"placeholder\":_vm.placeholder,\"drop-placeholder\":_vm.dropplaceholder,\"browse-text\":_vm.browsetext,\"state\":_vm.state,\"disabled\":_vm.disabled},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":_vm.id}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { InputFile, validInputFile } from '@/models/validations'\r\n\r\n@Component\r\nexport default class NordicCoolInputFile extends Vue {\r\n @Prop(String) readonly id: string | undefined\r\n @Prop(String) readonly label: string | undefined\r\n @Prop(String) readonly placeholder: string | undefined\r\n @Prop(String) readonly browsetext: string | undefined\r\n @Prop(String) readonly dropplaceholder: string | undefined\r\n @Prop(Object) readonly value: InputFile | undefined\r\n @Prop(Boolean) readonly disabled: boolean | undefined\r\n @Prop(Boolean) readonly strict: boolean | undefined\r\n @Prop({ type: Function, default: undefined }) readonly reset!: () => void\r\n\r\n get state(): true | false | null {\r\n if (this.value === undefined) return null\r\n return validInputFile(this.value, this.strict ?? false)\r\n }\r\n\r\n get localValue(): File | null {\r\n if (this.value === undefined) return null\r\n return this.value.value\r\n }\r\n\r\n set localValue(localValue: File | null) {\r\n if (this.reset !== undefined) this.reset()\r\n if (this.value === undefined) {\r\n /**/\r\n } else {\r\n const input = this.value\r\n input.value = localValue\r\n this.$emit('input', input)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputFile.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputFile.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolInputFile.vue?vue&type=template&id=7a1d2f22\"\nimport script from \"./NordicCoolInputFile.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolInputFile.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',{staticClass:\"mb-2\"},[(_vm.label !== undefined)?[_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.label)+\":\")])]),_c('b-col',{attrs:{\"sm\":\"8\"}},[_c('b-form-input',{attrs:{\"id\":_vm.id,\"type\":\"text\",\"state\":_vm.state,\"disabled\":_vm.disabled,\"placeholder\":_vm.placeholder},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":_vm.id}})],1)]:[_c('b-form-input',{attrs:{\"id\":_vm.id,\"type\":\"text\",\"state\":_vm.state,\"disabled\":_vm.disabled,\"placeholder\":_vm.placeholder},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":_vm.id}})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { InputNumber, validInputNumber, placeholderInputNumber } from '@/models/validations'\r\nimport { Formatting } from '@/models/formatting'\r\n\r\n@Component\r\nexport default class NordicCoolInputNumber extends Vue {\r\n @Prop(String) readonly id: string | undefined\r\n @Prop(String) readonly label: string | undefined\r\n @Prop(Object) readonly value: InputNumber | undefined\r\n @Prop(Boolean) readonly noPlaceholder: boolean | undefined\r\n @Prop(Boolean) readonly disabled: boolean | undefined\r\n @Prop(Boolean) readonly strict: boolean | undefined\r\n @Prop({ type: Function, default: undefined }) readonly reset!: () => void\r\n\r\n get placeholder(): string {\r\n if (this.disabled === true) return ''\r\n if (this.value === undefined) return ''\r\n if (this.noPlaceholder === true) return ''\r\n return placeholderInputNumber(this.value)\r\n }\r\n\r\n get state(): true | false | null {\r\n if (this.disabled === true) return null\r\n if (this.value === undefined) {\r\n return null\r\n }\r\n return validInputNumber(this.value, this.strict ?? false)\r\n }\r\n\r\n get localValue(): string {\r\n if (this.value === undefined) {\r\n return ''\r\n }\r\n if (this.value.value === null) return ''\r\n if (this.value.value === 0 && this.value.zeroIsBlank) return ''\r\n if (this.value.numberIsAmount && this.strict === true) return Formatting.formatFixedNumber(this.value.value)\r\n if (this.value.numberIsAmount) return Formatting.formatNumber(this.value.value)\r\n return this.value.value.toString()\r\n }\r\n\r\n set localValue(localValue: string) {\r\n if (this.reset !== undefined) this.reset()\r\n if (this.value !== undefined) {\r\n const input = this.value\r\n input.value = localValue === '' ? 0 : Formatting.parseNumber(localValue) ?? null\r\n this.$emit('input', input)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputNumber.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputNumber.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolInputNumber.vue?vue&type=template&id=b326cce8\"\nimport script from \"./NordicCoolInputNumber.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolInputNumber.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.label)+\":\")])]),_c('b-col',{attrs:{\"sm\":\"8\"}},[_c('b-form-input',{attrs:{\"id\":_vm.id,\"type\":\"tel\",\"state\":_vm.state,\"disabled\":_vm.disabled,\"placeholder\":_vm.placeholder},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":_vm.id}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { InputText, validInputText, placeholderInputText, filteredInputText } from '@/models/validations'\r\n\r\n@Component\r\nexport default class NordicCoolInputPhone extends Vue {\r\n @Prop(String) readonly id: string | undefined\r\n @Prop(String) readonly label: string | undefined\r\n @Prop(Object) readonly value: InputText | undefined\r\n @Prop(Boolean) readonly disabled: boolean | undefined\r\n @Prop(Boolean) readonly strict: boolean | undefined\r\n @Prop({ type: Function, default: undefined }) readonly reset!: () => void\r\n\r\n get placeholder(): string {\r\n if (this.disabled === true) return ''\r\n if (this.value === undefined) return ''\r\n return placeholderInputText(this.value)\r\n }\r\n\r\n get state(): true | false | null {\r\n if (this.disabled === true) return null\r\n if (this.value === undefined) {\r\n return null\r\n }\r\n return validInputText(this.value, this.strict ?? false)\r\n }\r\n\r\n get localValue(): string {\r\n if (this.value === undefined) {\r\n return ''\r\n }\r\n return this.value.value ?? ''\r\n }\r\n\r\n set localValue(localValue: string) {\r\n if (this.reset !== undefined) this.reset()\r\n if (this.value !== undefined) {\r\n const input = this.value\r\n input.value = filteredInputText(input, localValue)\r\n this.$emit('input', input)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputPhone.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputPhone.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolInputPhone.vue?vue&type=template&id=5d19bf61\"\nimport script from \"./NordicCoolInputPhone.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolInputPhone.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',{staticClass:\"mb-2\"},[(_vm.label !== undefined)?[_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.label)+\":\")])]),_c('b-col',{attrs:{\"sm\":\"8\"}},[_c('b-form-select',{attrs:{\"id\":_vm.id,\"disabled\":_vm.disabled,\"options\":_vm.options},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":_vm.id}})],1)]:[_c('b-form-select',{attrs:{\"id\":_vm.id,\"disabled\":_vm.disabled,\"options\":_vm.options},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":_vm.id}})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { InputOption, InputSelect } from '@/models/validations'\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class NordicCoolInputSelect extends Vue {\r\n @Prop(String) readonly id: string | undefined\r\n @Prop(String) readonly label: string | undefined\r\n @Prop(Object) readonly value: InputSelect | undefined\r\n @Prop(Boolean) readonly disabled: boolean | undefined\r\n @Prop(Boolean) readonly strict: boolean | undefined\r\n @Prop({ type: Function, default: undefined }) readonly reset!: () => void\r\n\r\n get options(): InputOption[] {\r\n let result: InputOption[] = []\r\n const options = this.value?.options ?? null\r\n if (options !== null) {\r\n result = [...result, ...options]\r\n }\r\n return result\r\n }\r\n\r\n get localValue(): number {\r\n return this.value?.value ?? 0\r\n }\r\n\r\n set localValue(localValue: number) {\r\n if (this.reset !== undefined) this.reset()\r\n if (this.value !== undefined) {\r\n const input = this.value\r\n input.value = localValue\r\n this.$emit('input', input)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputSelect.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputSelect.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolInputSelect.vue?vue&type=template&id=07e126f0\"\nimport script from \"./NordicCoolInputSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolInputSelect.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',{staticClass:\"mb-2\"},[(_vm.label !== undefined)?[_c('b-col',{staticClass:\"my-auto\",attrs:{\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.label)+\":\")])]),_c('b-col',{attrs:{\"sm\":\"8\"}},[_c('b-form-input',{attrs:{\"id\":_vm.id,\"type\":\"text\",\"state\":_vm.state,\"disabled\":_vm.disabled,\"placeholder\":_vm.placeholder},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":_vm.id}})],1)]:[_c('b-form-input',{attrs:{\"id\":_vm.id,\"type\":\"text\",\"state\":_vm.state,\"disabled\":_vm.disabled,\"placeholder\":_vm.placeholder},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}}),_c('b-form-invalid-feedback',{attrs:{\"id\":_vm.id}})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { InputText, validInputText, placeholderInputText, filteredInputText } from '@/models/validations'\r\n\r\n@Component\r\nexport default class NordicCoolInputText extends Vue {\r\n @Prop(String) readonly id: string | undefined\r\n @Prop(String) readonly label: string | undefined\r\n @Prop(Object) readonly value: InputText | undefined\r\n @Prop(Boolean) readonly noPlaceholder: boolean | undefined\r\n @Prop(Boolean) readonly disabled: boolean | undefined\r\n @Prop(Boolean) readonly strict: boolean | undefined\r\n @Prop({ type: Function, default: undefined }) readonly reset!: () => void\r\n\r\n get placeholder(): string {\r\n if (this.disabled === true) return ''\r\n if (this.value === undefined) return ''\r\n if (this.noPlaceholder === true) return ''\r\n return placeholderInputText(this.value)\r\n }\r\n\r\n get state(): true | false | null {\r\n if (this.disabled === true) return null\r\n if (this.value === undefined) {\r\n return null\r\n }\r\n return validInputText(this.value, this.strict ?? false)\r\n }\r\n\r\n get localValue(): string {\r\n if (this.value === undefined) {\r\n return ''\r\n }\r\n return this.value.value ?? ''\r\n }\r\n\r\n set localValue(localValue: string) {\r\n if (this.reset !== undefined) this.reset()\r\n if (this.value !== undefined) {\r\n const input = this.value\r\n input.value = filteredInputText(input, localValue)\r\n this.$emit('input', input)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputText.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolInputText.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolInputText.vue?vue&type=template&id=18609b58\"\nimport script from \"./NordicCoolInputText.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolInputText.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('b-navbar',{class:_vm.navbarStyles,attrs:{\"toggleable\":\"lg\",\"type\":\"light\",\"variant\":\"light\",\"fixed\":\"top\"}},[_c('b-navbar-brand',{attrs:{\"to\":_vm.appMenuItem.path}},[_vm._v(_vm._s(_vm.appMenuItem.title))]),_c('b-navbar-toggle',{attrs:{\"target\":\"nav-collapse\"}}),_c('b-collapse',{attrs:{\"id\":\"nav-collapse\",\"is-nav\":\"\"}},[_c('b-navbar-nav',_vm._l((_vm.topItems),function(item){return _c('div',{key:item.title},[(item.visible)?[_c('b-nav-item',{attrs:{\"to\":item.path,\"active\":item.active,\"disabled\":item.disabled}},[_vm._v(_vm._s(item.title))])]:_vm._e()],2)}),0),_c('b-navbar-nav',{staticClass:\"ml-auto\"},[_c('b-nav-item-dropdown',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.fullName)+\" \"),_c('small',{staticClass:\"d-block text-muted\"},[_vm._v(\" \"+_vm._s(_vm.companyName)+\" \")])]},proxy:true}])},[_c('b-dropdown-form',{staticClass:\"mb-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('menu.company'))+\": \"),_c('b-form-select',{attrs:{\"options\":_vm.options},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_vm._l((_vm.extendedItems),function(item){return _c('div',{key:item.title},[(item.visible)?[(_vm.checkMenuItem(item))?[(item.external)?[_c('b-dropdown-item',{staticClass:\"d-flex\",attrs:{\"href\":item.path,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"disabled\":item.disabled}},[_vm._v(\" \"+_vm._s(item.title)+\" \"),_c('b-img',{staticClass:\"float-right pt-1\",attrs:{\"src\":require(\"@/assets/img/ico_external_link.svg\"),\"alt\":\"\"}})],1)]:[_c('b-dropdown-item',{staticClass:\"d-flex\",attrs:{\"to\":item.path,\"disabled\":item.disabled}},[_vm._v(\" \"+_vm._s(item.title)+\" \")])]]:_vm._e(),(_vm.checkDivider(item))?[_c('b-dropdown-divider')]:_vm._e()]:_vm._e()],2)})],2)],1)],1)],1),_c('b-nav',{staticClass:\"sub-menus\"},_vm._l((_vm.subItems),function(item){return _c('div',{key:item.title},[(item.visible)?[(_vm.checkBack(item))?[_c('b-link',{staticClass:\"pb-3 d-block nav-back\",attrs:{\"to\":item.path}},[_c('b-img',{attrs:{\"src\":require(\"@/assets/img/ico_back_arrow.svg\"),\"alt\":\"\"}}),_vm._v(\" \"+_vm._s(item.title)+\" \")],1)]:_vm._e(),(_vm.checkMenuItem(item))?[_c('b-nav-item',{class:_vm.subMenuItemStyles(item),attrs:{\"to\":item.path,\"active\":item.active,\"disabled\":item.disabled}},[_vm._v(\" \"+_vm._s(item.title)+\" \"),(item.dot)?[_c('img',{staticStyle:{\"margin-top\":\"-7px\",\"margin-left\":\"-7px\"},attrs:{\"width\":\"16px\",\"src\":require(\"@/assets/img/ico_message_notification.svg\")}})]:_vm._e()],2)]:_vm._e()]:_vm._e()],2)}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { Menu, MenuItem, MenuBar, isMenuItem, isDivider, Back, isBack, Divider } from '@/models/menus'\r\n\r\n@Component\r\nexport default class NordicCoolMenu extends Vue {\r\n @Prop(Object) readonly menuBar!: MenuBar\r\n\r\n @Prop({ type: Function, default: undefined }) readonly select!: (id: number) => void | undefined\r\n\r\n get navbarStyles(): string {\r\n if (this.menuBar.hasSubMenu()) {\r\n return 'navbar-no-shadow'\r\n }\r\n return 'navbar-shadow'\r\n }\r\n\r\n subMenuItemStyles(item: (MenuItem | Back | Divider)): string {\r\n if (isMenuItem(item) && item.active) return 'sub-meny-active'\r\n return 'sub-meny-inactive'\r\n }\r\n\r\n checkMenuItem(item: (MenuItem | Back | Divider)): boolean {\r\n return isMenuItem(item)\r\n }\r\n\r\n checkBack(item: (MenuItem | Back | Divider)): boolean {\r\n return isBack(item)\r\n }\r\n\r\n checkDivider(item: (MenuItem | Back | Divider)): boolean {\r\n return isDivider(item)\r\n }\r\n\r\n get appMenuItem(): MenuItem {\r\n return this.menuBar.appMenuItem\r\n }\r\n\r\n get topItems(): (MenuItem | Back | Divider)[] {\r\n return this.menuBar.topMenu.items\r\n }\r\n\r\n get subItems(): (MenuItem | Back | Divider)[] {\r\n return this.menuBar.currentSubMenu()?.items ?? []\r\n }\r\n\r\n get extendedItems(): (MenuItem | Back | Divider)[] {\r\n return this.menuBar.extendedMenu.menu.items\r\n }\r\n\r\n get fullName(): string {\r\n return this.menuBar.extendedMenu.fullName ?? ''\r\n }\r\n\r\n get companyName(): string {\r\n return this.menuBar.extendedMenu.companyName ?? ''\r\n }\r\n\r\n get selected(): number {\r\n const { companies } = this.menuBar.extendedMenu\r\n return companies.find((it) => it.selected)?.id ?? 0\r\n }\r\n\r\n set selected(v: number) {\r\n this.select(v)\r\n }\r\n\r\n get options(): { value: number; text: string }[] {\r\n const { companies } = this.menuBar.extendedMenu\r\n return companies.map((it) => ({ value: it.id, text: it.title }))\r\n }\r\n\r\n mounted() {\r\n const element = document.querySelector('.sub-meny-active')\r\n if (element != null) {\r\n this.$nextTick(() => element.scrollIntoView({ behavior: 'smooth', inline: 'center' }))\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolMenu.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolMenu.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolMenu.vue?vue&type=template&id=94f49482\"\nimport script from \"./NordicCoolMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolMenu.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{class:_vm.styles,attrs:{\"fluid\":\"\"}},[_c('fieldset',{attrs:{\"disabled\":_vm.isBusy}},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { MenuBar } from '@/models/menus'\r\n\r\n@Component\r\nexport default class NordicCoolPage extends Vue {\r\n @Prop(Object) readonly menuBar!: MenuBar\r\n @Prop(Boolean) readonly busy: boolean | undefined\r\n\r\n get hasSubMenu(): boolean { return this.menuBar.hasSubMenu() }\r\n get isBusy(): boolean { return this.busy ?? false }\r\n\r\n get styles(): string {\r\n var styles = ''\r\n if (this.hasSubMenu) {\r\n styles += 'sub-page-padding pl-4 pr-4 pb-4'\r\n } else {\r\n styles += 'page-padding pl-4 pr-4 pb-4'\r\n }\r\n if (this.isBusy) {\r\n styles += ' page-busy'\r\n }\r\n return styles\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolPage.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolPage.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolPage.vue?vue&type=template&id=3615dfd5\"\nimport script from \"./NordicCoolPage.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolPage.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"bg-white\",attrs:{\"fluid\":\"\"}},[_c('b-table',{attrs:{\"id\":_vm.id,\"responsive\":\"\",\"hover\":\"\",\"show-empty\":\"\",\"busy\":_vm.isBusy,\"per-page\":_vm.perPage,\"current-page\":_vm.currentPage,\"fields\":_vm.styledFields,\"items\":_vm.itemsProvider},on:{\"update:busy\":function($event){_vm.isBusy=$event}},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center my-2\"},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\",\"label\":_vm.$t('common.loading')}})],1)]},proxy:true},{key:\"cell(symbol)\",fn:function(data){return [(_vm.isDotSymbol(data))?[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_message_notification.svg\")}})]:_vm._e(),(_vm.isLockSymbol(data))?[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_lock.svg\")}})]:_vm._e()]}},{key:\"cell(actions)\",fn:function(data){return [(_vm.hasView)?[_c('b-link',{on:{\"click\":function($event){return _vm.viewClick(data)}}},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_view.svg\")}})])]:_vm._e(),(_vm.hasEdit)?[_c('b-link',{on:{\"click\":function($event){return _vm.editClick(data)}}},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_edit.svg\")}})])]:_vm._e(),(_vm.hasDownload)?[_c('b-link',{on:{\"click\":function($event){return _vm.downloadClick(data)}}},[_c('img',{attrs:{\"src\":require(\"@/assets/img/ico_download.svg\")}})])]:_vm._e()]}},{key:\"cell()\",fn:function(data){return [_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.renderData(data))}})]}},{key:\"empty\",fn:function(){return [_c('p',{staticClass:\"text-center text-muted m-0\"},[_vm._v(_vm._s(_vm.$t('common.emptylist')))])]},proxy:true}])}),(_vm.hasPagination)?[_c('b-pagination',{staticClass:\"justify-content-center pt-4 pb-4\",attrs:{\"pills\":\"\",\"aria-controls\":_vm.id,\"total-rows\":_vm.total,\"per-page\":_vm.perPage,\"hide-goto-end-buttons\":true},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { Page } from '@/store/modules/creditorsAPI'\r\n\r\nexport type FieldSize = 'flex' | 'xsmall' | 'small' | 'medium' | 'large' | 'actions' | 'symbol' | 'text'\r\nexport type FieldAlignment = 'left' | 'right'\r\nexport type FieldSymbol = 'none' | 'dot' | 'lock'\r\nexport interface FieldType {\r\n key: string;\r\n label: string;\r\n sortable: boolean;\r\n size: FieldSize;\r\n alignment: FieldAlignment;\r\n}\r\n\r\n@Component\r\nexport default class NordicCoolTable extends Vue {\r\n @Prop(String) readonly id: string | undefined\r\n @Prop(Array) readonly fields: FieldType[] | undefined\r\n @Prop(Object) readonly extra: any | undefined\r\n @Prop({ type: Function, default: undefined }) readonly items!: (page: number, extra: any | undefined) => Promise | undefined>\r\n @Prop({ type: Function, default: undefined }) readonly viewClick: Function | undefined\r\n @Prop({ type: Function, default: undefined }) readonly editClick: Function | undefined\r\n @Prop({ type: Function, default: undefined }) readonly downloadClick: Function | undefined\r\n @Prop({ type: Function, default: undefined }) readonly hasSymbol: Function | undefined\r\n\r\n isBusy = false\r\n currentPage = 1\r\n perPage = 10\r\n total = 0\r\n\r\n get hasView(): boolean { return this.viewClick !== undefined }\r\n get hasEdit(): boolean { return this.editClick !== undefined }\r\n get hasDownload(): boolean { return this.downloadClick !== undefined }\r\n get hasPagination(): boolean { return this.isBusy === false && this.total > this.perPage }\r\n\r\n checkSymbol(data: any): FieldSymbol { return this.hasSymbol !== undefined ? this.hasSymbol(data.item) : 'none' }\r\n isDotSymbol(data: any): boolean { return this.checkSymbol(data) === 'dot' }\r\n isLockSymbol(data: any): boolean { return this.checkSymbol(data) === 'lock' }\r\n\r\n renderData(data: any): string {\r\n var html = ''\r\n if (Array.isArray(data.value)) {\r\n html = data.value.join('
')\r\n } else {\r\n html = data.value\r\n }\r\n return html\r\n }\r\n\r\n get styledFields(): { key: string; label: string; sortable: boolean; tdClass: string }[] {\r\n return this.fields?.map((it) => {\r\n switch (it.size) {\r\n case 'flex':\r\n return {\r\n key: it.key, label: it.label, sortable: it.sortable, tdClass: `table-${it.alignment}`, thClass: `table-flex table-${it.alignment}`,\r\n }\r\n case 'xsmall':\r\n return {\r\n key: it.key, label: it.label, sortable: it.sortable, tdClass: `table-${it.alignment}`, thClass: `table-xsmall table-${it.alignment}`,\r\n }\r\n case 'small':\r\n return {\r\n key: it.key, label: it.label, sortable: it.sortable, tdClass: `table-${it.alignment}`, thClass: `table-small table-${it.alignment}`,\r\n }\r\n case 'medium':\r\n return {\r\n key: it.key, label: it.label, sortable: it.sortable, tdClass: `table-${it.alignment}`, thClass: `table-medium table-${it.alignment}`,\r\n }\r\n case 'large':\r\n return {\r\n key: it.key, label: it.label, sortable: it.sortable, tdClass: `table-${it.alignment}`, thClass: `table-large table-${it.alignment}`,\r\n }\r\n case 'actions':\r\n return {\r\n key: it.key, label: it.label, sortable: it.sortable, tdClass: `table-${it.alignment} sticky-right`, thClass: `table-actions table-${it.alignment} sticky-right`,\r\n }\r\n case 'symbol':\r\n return {\r\n key: it.key, label: it.label, sortable: it.sortable, tdClass: `table-${it.alignment} pr-0 pl-1`, thClass: `table-symbol table-${it.alignment}`,\r\n }\r\n case 'text':\r\n return {\r\n key: it.key, label: it.label, sortable: it.sortable, tdClass: `table-${it.alignment}`, thClass: `table-text table-${it.alignment}`,\r\n }\r\n default:\r\n return {\r\n key: it.key, label: it.label, sortable: it.sortable, tdClass: '',\r\n }\r\n }\r\n }) ?? []\r\n }\r\n\r\n itemsProvider(ctx: { currentPage: number; perPage: number}, callback: (items: any[]) => void): any[] | null {\r\n if (this.items === undefined) {\r\n callback([])\r\n } else {\r\n this.items(ctx.currentPage, this.extra)\r\n .then((page) => {\r\n this.currentPage = page?.page ?? 1\r\n this.perPage = page?.maxResults ?? 10\r\n this.total = page?.total ?? 0\r\n callback(page?.items ?? [])\r\n })\r\n .catch(() => {\r\n callback([])\r\n })\r\n }\r\n return null\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolTable.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolTable.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolTable.vue?vue&type=template&id=4b034886\"\nimport script from \"./NordicCoolTable.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolTable.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-alert',{staticClass:\"w-75 mx-auto\",attrs:{\"id\":\"nordic-cool-toast\",\"dismissible\":\"\",\"fade\":\"\",\"variant\":\"success\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('p',{staticClass:\"m-0\"},[_vm._v(_vm._s(_vm.message))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class NordicCoolToast extends Vue {\r\n @Prop(Boolean) readonly value: boolean | undefined\r\n @Prop(String) readonly message: string | undefined\r\n\r\n get show(): number {\r\n return this.value === true ? 5 : 0\r\n }\r\n set show(value: number) {\r\n if (value === 0) {\r\n this.$emit('input', false)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolToast.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/webpack-preprocessor-loader/index.js??clonedRuleSet-44.use[0]!../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NordicCoolToast.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NordicCoolToast.vue?vue&type=template&id=d9aff1d0\"\nimport script from \"./NordicCoolToast.vue?vue&type=script&lang=ts\"\nexport * from \"./NordicCoolToast.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport axios from 'axios'\r\nimport '@/plugins/bootstrapVue'\r\nimport i18n from '@/plugins/i18n'\r\nimport '@/plugins/cookies'\r\nimport '@/plugins/csvImport'\r\nimport '@/plugins/gtm'\r\nimport App from '@/App.vue'\r\nimport router from '@/router'\r\nimport store from '@/store'\r\nimport Footer from '@/components/Footer.vue'\r\nimport NordicCoolAlert from '@/components/NordicCoolAlert.vue'\r\nimport NordicCoolBack from '@/components/NordicCoolBack.vue'\r\nimport NordicCoolConfirm from '@/components/NordicCoolConfirm.vue'\r\nimport NordicCoolInputCheckbox from '@/components/NordicCoolInputCheckbox.vue'\r\nimport NordicCoolInputDate from '@/components/NordicCoolInputDate.vue'\r\nimport NordicCoolInputEmail from '@/components/NordicCoolInputEmail.vue'\r\nimport NordicCoolInputFile from '@/components/NordicCoolInputFile.vue'\r\nimport NordicCoolInputNumber from '@/components/NordicCoolInputNumber.vue'\r\nimport NordicCoolInputPhone from '@/components/NordicCoolInputPhone.vue'\r\nimport NordicCoolInputSelect from '@/components/NordicCoolInputSelect.vue'\r\nimport NordicCoolInputText from '@/components/NordicCoolInputText.vue'\r\nimport NordicCoolMenu from '@/components/NordicCoolMenu.vue'\r\nimport NordicCoolPage from '@/components/NordicCoolPage.vue'\r\nimport NordicCoolTable from '@/components/NordicCoolTable.vue'\r\nimport NordicCoolToast from '@/components/NordicCoolToast.vue'\r\nimport './registerServiceWorker'\r\n\r\nVue.config.productionTip = false\r\n\r\naxios.interceptors.request.use((request) => {\r\n console.log('REQUEST: ', request)\r\n return request\r\n})\r\n\r\naxios.interceptors.response.use((response) => {\r\n console.log('RESPONSE:', response)\r\n return response\r\n})\r\n\r\nfunction noop() {}\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n console.log = noop\r\n console.debug = noop\r\n console.trace = noop\r\n console.warn = noop\r\n console.error = noop\r\n}\r\n\r\nconsole.log(`BACKEND_BASE_URL: ${process.env.VUE_APP_BACKEND_BASE_URL}`)\r\nconsole.log(`APP_ID: ${process.env.VUE_APP_APP_ID}`)\r\n\r\nVue.component('nordic-cool-alert', NordicCoolAlert)\r\nVue.component('nordic-cool-back', NordicCoolBack)\r\nVue.component('nordic-cool-confirm', NordicCoolConfirm)\r\nVue.component('nordic-cool-input-checkbox', NordicCoolInputCheckbox)\r\nVue.component('nordic-cool-input-date', NordicCoolInputDate)\r\nVue.component('nordic-cool-input-email', NordicCoolInputEmail)\r\nVue.component('nordic-cool-input-file', NordicCoolInputFile)\r\nVue.component('nordic-cool-input-number', NordicCoolInputNumber)\r\nVue.component('nordic-cool-input-phone', NordicCoolInputPhone)\r\nVue.component('nordic-cool-input-select', NordicCoolInputSelect)\r\nVue.component('nordic-cool-input-text', NordicCoolInputText)\r\nVue.component('nordic-cool-menu', NordicCoolMenu)\r\nVue.component('nordic-cool-page', NordicCoolPage)\r\nVue.component('nordic-cool-table', NordicCoolTable)\r\nVue.component('nordic-cool-toast', NordicCoolToast)\r\n\r\nVue.component('ekrav-footer', Footer)\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n i18n,\r\n render: (h) => h(App),\r\n}).$mount('#app')\r\n","/* eslint-disable no-console */\r\n\r\nimport { register } from 'register-service-worker'\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n register(`${process.env.BASE_URL}service-worker.js`, {\r\n ready() {\r\n console.log(\r\n 'App is being served from cache by a service worker.\\n'\r\n + 'For more details, visit https://goo.gl/AFskqB',\r\n )\r\n },\r\n registered() {\r\n console.log('Service worker has been registered.')\r\n },\r\n cached() {\r\n console.log('Content has been cached for offline use.')\r\n },\r\n updatefound() {\r\n console.log('New content is downloading.')\r\n },\r\n updated() {\r\n console.log('New content is available; please refresh.')\r\n },\r\n offline() {\r\n console.log('No internet connection found. App is running in offline mode.')\r\n },\r\n error(error) {\r\n console.error('Error during service worker registration:', error)\r\n },\r\n })\r\n}\r\n","var map = {\n\t\"./en.json\": 6375,\n\t\"./sv.json\": 6125\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5432;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkvisma_ekrav\"] = self[\"webpackChunkvisma_ekrav\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(8517); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["Vue","use","BootstrapVue","loadLocaleMessages","locales","require","messages","keys","forEach","key","matched","match","length","locale","VueI18n","process","fallbackLocale","VueCookies","component","VueCsvImport","MOCK_SIMPLIFIED_TOKEN","MOCK_OTHER_TOKEN","MOCK_UNAUTHORIZED_TOKEN","Pagination","constructor","maxResults","page","_defineProperty","this","Page","items","total","map","callbackfn","transform","model","_items","_total","_max_results","_page","isPage","object","isAPIError","missingError","value","errors","message","state","host","token","undefined","expires","namespaced","getters","getToken","getExpires","mutations","setToken","Date","jwt_decode","t_exp","console","log","setExpires","sleep","milliseconds","Promise","resolve","setTimeout","actions","call","store","request","headers","data","mock","extra","commit","root","action","dispatch","query","paging","path","includes","_etag","response","Axios","method","url","Object","err","AxiosError","axiosError","apiError","status","upload","formData","FormData","append","file","creditorsAPI","Severity","applicationError","alert","severity","Error","title","i18n","tc","error","cancel","entries","join","taxCodeRequired","taxCodeUnavailable","bankidCancelled","Warning","bankidFailed","importValidationFailed","invoiceNumber","mockTokenModel","mockUserListTokenModelComplete","InputText","minLength","maxLength","rangeIsEither","numberLike","digitsOnly","required","expression","isBlank","minimum","unconstrained","standard","either","eitherNumberLike","email","toString","filteredInputText","toPersonalNumber","year","parseInt","substring","toOrganisationNumber","isCompany","month","InputNumber","minValue","maxValue","rangeIsLength","zeroIsBlank","numberIsAmount","unconstrainedAmount","valueInRange","amountInRange","lengthInRange","eitherValues","eitherLengths","toNumber","InputDate","additional","toDate","InputFile","InputCheckbox","requiredTrue","InputSelect","optionCount","options","selected","filter","it","isInputText","isInputNumber","isInputDate","isInputFile","isInputCheckbox","isInputSelect","validInputs","inputs","strict","result","validInputText","validInputNumber","validInputDate","validInputFile","validInputCheckbox","validInputSelect","input","text","filteredText","replace","min","max","validValue","filteredValue","isEither","testedValue","checkRequired","checkLengthInRange","checkLengthIsEither","checkNumberLike","checkExpression","test","placeholderInputText","stringValue","isLength","checkValueInRange","checkValueIsEither","placeholderInputNumber","checkAdditional","placeholderInputDate","resetPersonalNumber","firstName","lastName","unauthorizedToken","userTokens","personalNumber","getAlert","getPersonalNumber","getFirstName","getLastName","getIsAuthorized","getUnauthorizedToken","getFullName","rootState","rootGetters","currentId","getCurrentCreditorId","userToken","find","creditor","creditorId","fullName","getCreditorUserId","creditorUserId","getCurrentUserToken","getAllUserTokens","setAlert","setPersonalNumber","setFirstName","setLastName","setUnauthorizedToken","setProgress","progress","setUserTokens","startAuthentication","personal_number","cancelAuthentication","recieveTokenModel","waitAuthentication","renewAuthentication","recieveUserListTokenModel","token_list","user","creditor_user_id","creditor_id","creditorName","creditor_name","first_name","last_name","full_name","description","user_token","expiration","functionalScope","functional_scope","unauthorized_token","switchCurrentCreditor","decoded","mb_id","result1","startLogin","refreshUnauthorizedToken","refreshToken","authentications","modules","mockCaseActionsPostResponseModel","mockCaseActionsGetModel","pagination","results","start","end","slice","NumberParser","parts","Intl","NumberFormat","formatToParts","numerals","useGrouping","format","reverse","index","Map","d","i","_group","RegExp","type","_decimal","_numeral","_index","get","parse","step1","trim","step2","step3","step4","step5","Number","isNaN","dateFormatter","DateTimeFormat","day","amountFormatter","style","currency","minimumFractionDigits","numberFormatter","fixedNumberFormatter","numberParser","Formatting","formatDate","formatAmount","formatNumber","formatFixedNumber","parseDate","parseNumber","caseActions","getCaseActions","setCaseActions","CaseActions","refreshCaseActions","currentCase","caseId","recieveCaseActionsGetModel","date","dateFormatted","createCaseAction","action_code","action_date","recieveCaseActionsPostResponseModel","translateCostType","cost","mockCaseCostsGetModel","caseCosts","getCaseCosts","setCaseCosts","refreshCaseCosts","recieveCaseCostsGetModel","created","createdFormatted","costType","remainingCapital","remaining_capital","remainingCapitalFormatted","remainingInterest","remaining_interest","remainingInterestFormatted","translateDebtorType","debtor","translateRoleType","role","mockCaseDebtorsGetModel","allDebtorOptions","id","matches","debtorTypeFromInput","select","resetDebtorOption","debtorType","caseDebtors","debtorOptions","debtorOption","getCaseDebtors","getMainCaseDebtor","roleType","getAllDebtorOptions","getDebtorOption","getCurrentDebtorOption","setCaseDebtors","setDebtorOption","setCurrentDebtorType","setCurrentDebtorOptionId","debtorOptionId","refreshCaseDebtors","recieveCaseGetModel","caseDebtorId","case_debtor_id","organisationId","organisation_id","name","translateDebtType","debt","toLocaleUpperCase","mockCaseDebtsGetModel","caseDebts","getCaseDebts","setCaseDebts","refreshCaseDebts","recieveCaseDebtsGetModel","invoice_date","invoice_due_date","debt_type","debtType","invoice_number","invoiceDescription","invoice_description","invoiceDate","invoiceDateFormatted","invoiceDueDate","invoiceDueDateFormatted","translateDocumentType","document","mockCaseDocumentsDetailsModel","caseDocumentId","url_path","filename","mockCaseDocumentsGetModel","allDocumentOptions","resetDocumentOption","resetFile","resetDescription","caseDocuments","documentOptions","currentFile","currentDocumentOption","currentDescription","currentDocumentUrl","getCaseDocuments","getAllDocumentOptions","getCurrentFile","getCurrentDocumentOption","getCurrentDescription","getCurrentDocumentUrl","setCaseDocuments","setCurrentFile","setCurrentDocumentOption","documentOption","setCurrentDocumentOptionId","documentOptionId","setCurrentDocumentType","documentType","setCurrentDescription","setCurrentDocumentUrl","refreshCaseDocuments","recieveCaseDocumentsGetModel","case_document_id","document_type","createFormatted","create_date","createDate","uploadCaseDocument","registerId","recieveCaseDocumentsPostResponseModel","queryCaseDocumentUrl","recieveCaseDocumentsDetailsModel","startUploadCaseDocument","mockCaseHistoryLogsGetModel","caseHistoryLogs","getHistoryLogs","setCaseHistoryLogs","refreshCaseHistoryLogs","recieveCaseHistoryLogsGetModel","caseHistoryLogId","case_history_log_id","headline","translateSentToType","sentTo","mockCaseMessagesPostModel","caseMessage","mockCaseMessages","push","mockCaseMessagesPatchModel","caseMessageId","case_message_id","is_read","mockCaseMessagesGetModel","sent_to","sort","lhs","rhs","subject","body","label","client_id","user_id","group_message_id","resetMessage","inbox","sent","caseMessages","getInbox","getSent","getCaseMessages","getMessage","setInbox","setSent","setCaseMessages","setMessage","refreshInbox","refreshSent","refreshCaseMessages","recieveCaseMessagesGetModel","sentToType","isRead","clientId","userId","groupMessageId","markMessageAsRead","sendCaseMessage","currentCreditorId","recieveCaseMessagesPostModel","startCreatingMessage","translatePaymentType","payment","translateReceiverType","receiver","mockCasePaymentsPostResponseModel","mockCasePaymentsGetModel","resetInvoiceNumber","resetAccountingDate","resetAmount","resetPaymentMessage","casePayments","accountingDate","amount","paymentMessage","getCasePayments","getInvoiceNumber","getAccountingDate","getAmount","getPaymentMessage","setCasePayments","setInvoiceNumber","setAccountingDate","setAmount","setPaymentMessage","refreshCasePayments","recieveCasePaymentsGetModel","payment_type","paymentType","payment_receiver","receiverType","accounting_date","accountingDateFormatted","referenceNumber","reference_number","amountFormatted","createCasePayment","payment_message","recieveCasePaymentsPostResponseModel","startCreatingCasePayment","invoiceNumbers","translateStatusType","translateClosureCodeType","closureCode","translateActionType","mockGetDashboardGetModel","invoice","mockDashboardEntryModel","reminder","collection","surveillance","verdict_warning","verdict","enforcement","amortisation","other","mockItems","mockCasePostResponseModels","mockCaseDetailsModel","current","closureDate","toDateString","mockCaseGetModel","isClosed","creditorDepartmentId","referenceId","creditor_department_id","case_id","creditor_case_reference_id","closure_code","mockCreditSafeCompanyResponseModel","mockCreditSafePersonalResponseModel","allStatusOptions","resetStatusOption","statusOption","resetSelected","resetSearchCaseId","resetSearchReferenceId","resetSearchInvoiceNumber","resetOrganisationId","resetName","resetAddress","resetPostalCode","resetCity","resetInvoiceDescription","resetInvoiceDates","value1","value2","resetRemainingCapital","ongoingCases","closedCases","activeCount","activeRemainingTotal","activeCaseMessagesUnread","currentCaseMessagesUnread","searchCaseId","searchReferenceId","searchInvoiceNumber","address","postalCode","city","invoiceDates","currentRegisterId","importCSV","importCases","getOngoingCases","getClosedCases","getCurrentCase","getActiveCount","getActiveRemainingTotal","getActiveCaseMessagesUnread","getCurrentCaseDetails","statusType","registrationDate","nextAction","nextActionType","nextActionDate","ocr","creditorSystemId","department","departmentSystemId","formattedClosureDate","closureCodeType","remainingTotal","remainingTotalFormatted","currencyCode","getStatusOption","getCurrentCaseMessagesUnread","getOrganisationId","getSearchCaseId","getSearchReferenceId","getSearchInvoiceNumber","getName","getAddress","getPostalCode","getCity","getInvoiceDescription","getInvoiceDates","getRemainingCapital","getCurrentRegisterId","getImportCSV","getImportCases","setOngoingCases","setClosedCases","setCurrentCase","c","setActiveCount","setActiveRemainingTotal","setActiveCaseMessagesUnread","setCurrentCaseMessagesUnread","caseMessagesUnread","setStatusOption","setOrganisationId","setSearchCaseId","setSearchReferenceId","setSearchInvoiceNumber","setName","setPostalCode","setAddress","setCity","setInvoiceDescription","setInvoiceDates","setRemainingCapital","setCurrentRegisterId","setImportCSV","setImportCases","refreshOngoingCases","creditorDepartment","lookup","refreshClosedCases","today","to","setFullYear","getFullYear","from","cases","closure_date","register_id","jointCaseId","joint_case_id","registration_date","creditorCaseReferenceId","currency_code","remaining_total","formattedTotal","case_messages","case_messages_unread","next_action","next_action_type","next_action_date","invoices","invoiceDatesFormatted","invoiceInitialCapitalFormatted","initial_capital","mainDebtorName","main_debtor_name","refreshCurrentCaseDetails","recieveCaseDetailsModel","details","creditor_system_id","department_system_id","savedRemainingInterest","saved_remaining_interest","savedRemainingInterestDate","saved_remaining_interest_date","accruedInterest","accrued_interest","remainingCost","remaining_cost","remainingFee","remaining_fee","createReminder","start_action","debtor_main","debtor_role","debtor_type","address_line_main","postal_code","country_code","debts","interest_from","interest_rate","interest_type","recieveCasePostResponseModels","models","previewCSV","csv","all","async","isPrivate","toLowerCase","addressFound","reportError","caseImport","row","containsErrors","valid","sortedCases","failures","recieveImportCasePostResponseModels","startCreatingReminder","switchCurrentCaseId","lookupAddress","personal","recieveCreditSafeCompanyResponseModel","company_name","zip_code","recieveCreditSafePersonalResponseModel","decrementUnreadCaseMessages","mockCreditorDepartmentsDetailsModel","mockCreditorDepartmentsPatchResponseModel","mockCreditorDepartmentsGetModel","resetCreditorDepartment","creditorDepartments","resetSearchCreditorDepartment","none","resetCurrency","resetBankgiro","resetIban","resetBic","currentCreditorDepartment","currentEtag","searchCreditorDepartment","bankgiro","iban","bic","getAllCreditorDepartments","getCreditorDepartments","getCurrentCreditorDepartment","getCurrentEtag","getCreditorDepartment","getSearchCreditorDepartment","getCurrency","getBankgiro","getIban","getBic","setCreditorDepartments","setCurrentCreditorDepartment","setCurrentEtag","setCreditorDepartment","setSearchCreditorDepartment","setCurrency","setBankgiro","setIban","setBic","refreshCreditorDepartments","recieveCreditorDepartmentsGetModels","creditorNumber","creditor_number","departmentNumber","department_number","refreshCurrentCreditorDepartmentDetails","recieveCreditorDepartmentsDetailsModel","plusgiro","coAddress","co_address","countryCode","editCreditorDepartment","recieveCreditorDepartmentsPatchResponseModel","switchCurrentCreditorDepartmentId","CreditorDepartment","startCreatingCreditorDepartment","mockCreditorDetailsModel","mockCreditorSelfRegistrationsPostResponseModel","resetFirstName","resetLastName","resetMobilePhone","resetEmail","resetAgree","currentCreditor","taxCode","mobilePhone","agree","getCurrentCreditor","getTaxCode","getMobilePhone","getEmail","getAgree","setCurrentCreditor","setTaxCode","setMobilePhone","setEmail","setAgree","refreshCurrentCreditorDetails","recieveCreditorDetailsModel","f_tax","createCreditor","unique_identifier","user_messages_by_rest_api","creditor_user","personal_id_mobile_bankid","mobile_phone","no_messages","administration_rights","recieveCreditorSelfRegistrationsPostResponseModel","startCreditorSignup","startCreditorEnroll","creditorUser","creditors","mockCreditorUserDepartmentAccessesPostResponseModel","mockCreditorUserDepartmentAccessesGetModel","mockCreditorUserDepartmentAccessesGetModels","creditorUserDepartmentAccesses","getAllCreditorUserDepartmentAccesses","getCreditorUserDepartmentAccesses","setCreditorUserDepartmentAccesses","refreshCreditorUserDepartmentAccesses","getCreditorUserMessageGroups","recieveCreditorUserDepartmentAccessesGetModel","creditorUserDepartmentAccess","creditor_department","createCreditorUserDepartmentAccesses","creditorDepartmentIds","recieveCreditorUserDepartmentAccessesPostResponseModel","mockCreditorUserMessageGroupsGetModel","mockCreditorUserMessageGroupsGetModels","creditorUserMessageGroups","getAllCreditorUserMessageGroups","setCreditorUserMessageGroups","refreshCreditorUserMessageGroups","recieveCreditorUserMessageGroupsGetModel","mockCreditorUserMessagesGetModel","mockCreditorUserMessagesGetModels","archived","getArchived","setArchived","refreshArchived","recieveCreditorUserMessagesGetModel","creditorUserMessages","expanded","mockCreditorUserMessageSubjectsGetModel","mockCreditorUserMessageSubjectsGetModels","creditorUserMessageSubjects","getAllCreditorUserMessageSubjects","getCreditorUserMessageSubjects","setCreditorUserMessageSubjects","refreshCreditorUserMessageSubjects","recieveCreditorUserMessageSubjectsGetModel","mockCreditorUsersDetailsModel","mockCreditorUsersPostResponseModel","mockCreditorUsersPatchResponseModel","mockCreditorUsersGetModel","resetRightsAll","resetRightsUser","resetRightsDepartment","resetRightsCase","resetReportSettlement","resetReportInvoiceSpecification","creditorUsers","currentCreditorUser","rightsAll","rightsUser","rightsDepartment","rightsCase","reportSettlement","reportInvoiceSpecification","getCreditorUsers","getCurrentCreditorUser","getCreatedCreditorUserId","createdCreditorUserId","getRightsAll","getRightsUser","getRightsDepartment","getRightsCase","getReportSettlement","getReportInvoiceSpecification","setCreditorUsers","setCurrentCreditorUser","administrationRights","setCreatedCreditorUserId","setRightsAll","setRightsUser","setRightsDepartment","setRightsCase","setReportSettlement","setReportInvoiceSpecification","refreshCreditorUsers","recieveCreditorUsersGetModels","userName","user_name","isCurrent","retrieveCreditorUserDetails","refreshCurrentCreditorUserDetails","recieveCreditorUsersDetailsModel","send_settlement_report","send_invoice_specification","createCreditorUser","recieveCreditorUsersPostResponseModel","editCreditorUser","recieveCreditorUsersPatchModel","removeCreditorUser","startCreatingCreditorUser","switchCurrentCreditorUserId","dashboards","getProgress","getDashboards","setDashboards","found","updated","count","refreshDashboards","totalCount","reduce","previous","recieveGetDashboardGetModel","extractDashboard","active","acc","joinDashboardEntries","unread_messages","statuses","entry","primary","MenuItem","paths","visible","dot","disabled","external","sub","group","submenu","placeholder","standardDotted","submenuDotted","hidden","divider","Divider","unshift","activeMenuItems","Back","menuItem","Menu","flatMap","isMenuItem","Company","ExtendedMenu","companyName","companies","menu","MenuBar","appMenuItem","topMenu","extendedMenu","concat","currentSubMenu","hasSubMenu","visibleItems","item","isBack","isDivider","casesOverviewItem","subMenu","ongoingCasesItem","casesOverviewSubMenu","source","caseUnreadMessages","caseDetailsSubMenu","casesMenuItem","messagesInboxSubMenu","back","inboxMenuItem","messagesMenuItem","registerSubMenu","registerMenuItem","creditorOverviewMenuItem","creditorDepartmentsMenuItem","creditorUsersMenuItem","creditorDepartmentsDetailsSubMenu","creditorUsersDetailsSubMenu","mode","caseDepartmentOverviewSubMenu","extendedSubMenu","menuBar","getActive","getMode","getSource","getMenuBar","getCurrentFunctionalScope","currentUserToken","setActive","setMode","setSource","switchActiveRoute","route","params","navigation","Vuex","version","Math","floor","random","currentFunctionalScope","setCurrentCreditorId","setCurrentFunctionalScope","plugins","render","_vm","_c","_self","staticClass","attrs","_v","show","on","onSubmit","validation","callback","$$v","_e","staticRenderFns","form","methods","evt","preventDefault","computed","_setupProxy","_s","$t","staticStyle","Authentications","namespace","CreditorsAPI","OnboardingBankIDView","args","cancelled","router","mounted","__decorate","State","Mutation","Action","State2Way","Component","OnboardingCookiesView","$event","reset","login","userAcceptedCookies","acceptCookies","OnboardingLoginView","$cookies","mockLogin","mockSignup","set","demo_mode","OnboardingLogoutView","next","OnboardingSignupSuccessView","Creditors","OnboardingSignupContactView","busy","address_strict","bank_strict","OnboardingSignupCreditorView","OnboardingSignupStartView","OnboardingStartView","$route","switchCreditor","$router","Navigation","CaseActionStartView","Getter","CaseActionSuccessView","caseDebtorItems","caseDebtorFields","CaseDebtors","CaseDebtorsView","$i18n","sortable","size","alignment","caseDebtItems","caseDebtFields","CaseDebts","CaseDebtsView","caseHistoryLogItems","fields","CaseHistoryLogs","CaseHistoryView","send","isBusy","perPage","currentPage","itemsProvider","scopedSlots","_u","fn","proxy","class","bubble","markAsRead","hasPagination","CaseMessages","CaseMessagesView","$root","$emit","ctx","then","catch","casesAlert","caseActionsAlert","caseIsClosed","casePaymentItems","casePaymentFields","caseCostItems","caseCostFields","CaseCosts","CasePayments","Cases","CaseDetailsView","caseDocumentsItems","download","CaseDocuments","CaseDocumentsView","window","open","CasePaymentStartView","CasePaymentSuccessView","closedCaseItems","closedCaseFields","CasesClosedView","strictSearchCaseId","strictSearchCreditorDepartment","strictSearchReferenceId","advancedSearch","clearSearch","selectedStatusOption","ongoingCaseItems","ongoingCaseFields","caseDetails","caseSymbol","CasesOngoingView","hasUnreadMessages","v","statusOptions","option","isEmpty","dashboard","showDashboard","Dashboards","CasesOverviewsView","newCreditorDepartment","creditorDepartmentItems","creditorDepartmentFields","CreditorDepartments","CreditorDepartmentsView","isCreate","save","isEdit","CreditorDepartmentView","remove","CreditorDepartmentSuccessView","getCurrentCreditorName","getCurrentCreditorOrganisationId","newCreditorUser","creditorUserItems","creditorUserFields","currentSymbol","CreditorUsers","CreditorOverviewView","creditorUserDepartmentAccessItems","creditorUserDepartmentAccessFields","CreditorUserDepartmentAccesses","CreditorUserDepartmentAccessesView","CreditorUsersView","proceedRemove","isConfirm","CreditorUserView","CreditorUserSuccessView","EnrollCreditorView","EnrollStartView","EnrollSuccessView","archivedPage","archivedProvider","toggleDetails","$set","CreditorUserMessages","MessagesArchivedView","tdClass","inboxPage","creditorUserMessageGroupsOptions","creditorUserMessageSubjectsOptions","inboxProvider","CreditorUserMessageGroups","CreditorUserMessageSubjects","MessagesInboxView","sentView","sentPage","sentProvider","MessagesSentView","isDisabled","slot","RegisterImportPreviewView","$bvModal","hide","hasDepartments","csvFields","toggle","domProps","load","apply","arguments","RegisterImportStartView","_csv","importFile","RegisterImportSuccessView","RegisterManuallyDebtorView","create","RegisterManuallyDebtView","RegisterManuallyStartView","caseDocumentsAlert","success","RegisterManuallySuccessView","SupportContactView","VueRouter","routes","DesignView","meta","requiresToken","redirect","CreditorDepartmentEditView","CreditorUserEditView","base","scrollBehavior","savedPosition","x","y","beforeEach","some","record","location","href","VueGtm","enabled","debug","vueRouter","extend","components","Footer","close","warning","NordicCoolAlert","Prop","go","NordicCoolBack","proceed","confirm","NordicCoolConfirm","Boolean","String","Function","default","buttonTitle","buttonLink","localValue","NordicCoolInputCheckbox","NordicCoolInputDate","NordicCoolInputEmail","dropplaceholder","browsetext","NordicCoolInputFile","NordicCoolInputNumber","noPlaceholder","NordicCoolInputPhone","NordicCoolInputSelect","NordicCoolInputText","navbarStyles","_l","topItems","extendedItems","checkMenuItem","checkDivider","subItems","checkBack","subMenuItemStyles","NordicCoolMenu","element","querySelector","$nextTick","scrollIntoView","behavior","inline","styles","_t","NordicCoolPage","styledFields","isDotSymbol","isLockSymbol","hasView","viewClick","hasEdit","editClick","hasDownload","downloadClick","renderData","NordicCoolTable","checkSymbol","hasSymbol","html","Array","isArray","thClass","NordicCoolToast","noop","register","ready","registered","cached","updatefound","offline","config","productionTip","axios","interceptors","trace","warn","h","App","$mount","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","module","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","m","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","splice","r","n","getter","__esModule","a","definition","defineProperty","enumerable","g","globalThis","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","children","p","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}