{"version":3,"file":"js/index.85c0c36f.js","mappings":"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,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA,MACAA,EAAAA,OAAAA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","sources":["webpack://easy-budget/./.demo/data.ts","webpack://easy-budget/./.demo/apiMock.ts","webpack://easy-budget/./src/App.vue?6aa5","webpack://easy-budget/./src/App.vue?847a","webpack://easy-budget/./src/App.vue","webpack://easy-budget/./src/registerServiceWorker.ts","webpack://easy-budget/./src/helpers/Extensions.ts","webpack://easy-budget/./src/directives/Ripple/RippleDirective.ts","webpack://easy-budget/./src/analytics/index.ts","webpack://easy-budget/./src/main.ts","webpack://easy-budget/./src/api/Budget.ts","webpack://easy-budget/./src/api/Subscription.ts","webpack://easy-budget/./src/api/UserProfile.ts","webpack://easy-budget/./src/api/base/BaseHttpClient.ts","webpack://easy-budget/./src/api/base/HttpClient.ts","webpack://easy-budget/./src/api/contracts/models.ts","webpack://easy-budget/./src/auth/AuthService.ts","webpack://easy-budget/./src/auth/useUseManagerSettings.ts","webpack://easy-budget/./src/composables/queries/useBudgetQuery.ts","webpack://easy-budget/./src/composables/queries/useBudgetsQuery.ts","webpack://easy-budget/./src/composables/queries/useSubscriptionQuery.ts","webpack://easy-budget/./src/composables/queries/useUserProfileQuery.ts","webpack://easy-budget/./src/composables/stores/useBudgetStore.ts","webpack://easy-budget/./src/composables/useDeviceInfo.ts","webpack://easy-budget/./src/composables/useEventBus.ts","webpack://easy-budget/./src/composables/useFreshDesk.ts","webpack://easy-budget/./src/composables/useParams.ts","webpack://easy-budget/./src/composables/useThemes.ts","webpack://easy-budget/./src/helpers/Analytics.ts","webpack://easy-budget/./src/i18n/index.ts","webpack://easy-budget/./src/plugins/easy-toast/components/EasyToast.vue?82b8","webpack://easy-budget/./src/plugins/easy-toast/components/EasyToast.vue?575f","webpack://easy-budget/./src/plugins/easy-toast/components/EasyToast.vue","webpack://easy-budget/./src/plugins/easy-toast/EasyToastPlugin.ts","webpack://easy-budget/./src/router/auth.ts","webpack://easy-budget/./src/auth/AuthGuard.ts","webpack://easy-budget/./src/router/helpers.ts","webpack://easy-budget/./src/router/subscriptionGuard.ts","webpack://easy-budget/./src/router/accountDisabledGuard.ts","webpack://easy-budget/./src/router/desktopRoutes.ts","webpack://easy-budget/./src/router/mobileRoutes.ts","webpack://easy-budget/./src/router/index.ts","webpack://easy-budget/./src/validation/customValidators.ts","webpack://easy-budget/./src/validation/index.ts","webpack://easy-budget/./src/vue-query/QueryKeys.ts","webpack://easy-budget/./src/components/ErrorComponent.vue?540e","webpack://easy-budget/./src/components/ErrorComponent.vue?0a0b","webpack://easy-budget/./src/components/ErrorComponent.vue","webpack://easy-budget/./src/components/LoadingComponent.vue?c6d0","webpack://easy-budget/./src/components/LoadingComponent.vue?9d7b","webpack://easy-budget/./src/components/LoadingComponent.vue","webpack://easy-budget/webpack/bootstrap","webpack://easy-budget/webpack/runtime/amd define","webpack://easy-budget/webpack/runtime/amd options","webpack://easy-budget/webpack/runtime/chunk loaded","webpack://easy-budget/webpack/runtime/chunk prefetch function","webpack://easy-budget/webpack/runtime/compat get default export","webpack://easy-budget/webpack/runtime/define property getters","webpack://easy-budget/webpack/runtime/ensure chunk","webpack://easy-budget/webpack/runtime/get javascript chunk filename","webpack://easy-budget/webpack/runtime/get mini-css chunk filename","webpack://easy-budget/webpack/runtime/global","webpack://easy-budget/webpack/runtime/harmony module decorator","webpack://easy-budget/webpack/runtime/hasOwnProperty shorthand","webpack://easy-budget/webpack/runtime/load script","webpack://easy-budget/webpack/runtime/make namespace object","webpack://easy-budget/webpack/runtime/node module decorator","webpack://easy-budget/webpack/runtime/publicPath","webpack://easy-budget/webpack/runtime/css loading","webpack://easy-budget/webpack/runtime/jsonp chunk loading","webpack://easy-budget/webpack/runtime/startup prefetch","webpack://easy-budget/webpack/startup"],"sourcesContent":["import dayjs, { Dayjs } from 'dayjs'\r\n\r\nif (!localStorage.isDataSet) {\r\n var today = new Date()\r\n var periodKey = dayjs(today).format('YYYYMM')\r\n localStorage.transactions = JSON.stringify([\r\n {\r\n id: '1',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '1',\r\n value: 1000,\r\n type: 'Inflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n },\r\n {\r\n id: '2',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '2',\r\n value: 1000,\r\n type: 'Inflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n },\r\n {\r\n id: '3',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '2',\r\n value: 1000,\r\n type: 'Inflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n },\r\n {\r\n id: '4',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '3',\r\n value: 1000,\r\n type: 'Outflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n },\r\n {\r\n id: '5',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '4',\r\n value: 1000,\r\n type: 'Outflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n },\r\n {\r\n id: '6',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '4',\r\n value: 1000,\r\n type: 'Outflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n },\r\n {\r\n id: '7',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '4',\r\n value: 1000,\r\n type: 'Outflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n },\r\n {\r\n id: '8',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '4',\r\n value: 1000,\r\n type: 'Outflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n },\r\n {\r\n id: '9',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '4',\r\n value: 1000,\r\n type: 'Outflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n },\r\n {\r\n id: '10',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '4',\r\n value: 1000,\r\n type: 'Outflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n },\r\n {\r\n id: '11',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '4',\r\n value: 1000,\r\n type: 'Outflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n },\r\n {\r\n id: '12',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n date: today,\r\n categoryId: '4',\r\n value: 1000,\r\n type: 'Outflow',\r\n note: 'Notatka moja fajna',\r\n paidBy: 'Marcin'\r\n }\r\n ])\r\n\r\n localStorage.categoryGroups = JSON.stringify([\r\n {\r\n id: '1',\r\n budgetId: '1',\r\n name: 'Przychód',\r\n order: 0,\r\n type: 'Income'\r\n },\r\n {\r\n id: '2',\r\n budgetId: '1',\r\n name: 'Wydatki - dom',\r\n order: 1,\r\n type: 'Expense',\r\n expenseType: 'Housing'\r\n },\r\n {\r\n id: '4',\r\n budgetId: '1',\r\n name: 'Wydatki - jedzenie',\r\n order: 2,\r\n type: 'Expense',\r\n expenseType: 'Food'\r\n },\r\n {\r\n id: '12',\r\n budgetId: '1',\r\n name: 'Wydatki - transport',\r\n order: 2,\r\n type: 'Expense',\r\n expenseType: 'Transport'\r\n },\r\n {\r\n id: '13',\r\n budgetId: '1',\r\n name: 'Wydatki - osobiste',\r\n order: 2,\r\n type: 'Expense',\r\n expenseType: 'Self'\r\n },\r\n {\r\n id: '3',\r\n budgetId: '1',\r\n name: 'Oszczędności',\r\n order: 3,\r\n type: 'Saving'\r\n },\r\n {\r\n id: '5',\r\n budgetId: '1',\r\n name: 'Oszczędności 5',\r\n order: 4,\r\n type: 'Saving'\r\n },\r\n {\r\n id: '6',\r\n budgetId: '1',\r\n name: 'Oszczędności 6',\r\n order: 5,\r\n type: 'Saving'\r\n },\r\n {\r\n id: '7',\r\n budgetId: '1',\r\n name: 'Oszczędności 7',\r\n order: 6,\r\n type: 'Saving'\r\n },\r\n {\r\n id: '8',\r\n budgetId: '1',\r\n name: 'Oszczędności 8',\r\n order: 7,\r\n type: 'Saving'\r\n },\r\n {\r\n id: '9',\r\n budgetId: '1',\r\n name: 'Oszczędności 9',\r\n order: 8,\r\n type: 'Saving'\r\n },\r\n {\r\n id: '10',\r\n budgetId: '1',\r\n name: 'Oszczędności 10',\r\n order: 9,\r\n type: 'Saving'\r\n },\r\n {\r\n id: '11',\r\n budgetId: '1',\r\n name: 'Oszczędności 11',\r\n order: 10,\r\n type: 'Saving'\r\n }\r\n ])\r\n\r\n localStorage.categories = JSON.stringify([\r\n {\r\n id: '1',\r\n name: 'Praca 1',\r\n order: 1,\r\n categoryGroupId: '1',\r\n type: 'Income'\r\n },\r\n {\r\n id: '2',\r\n name: 'Praca 2',\r\n order: 0,\r\n categoryGroupId: '1',\r\n type: 'Income'\r\n },\r\n {\r\n id: '3',\r\n name: 'Jedzenie dom',\r\n order: 0,\r\n categoryGroupId: '4',\r\n type: 'Expense'\r\n },\r\n {\r\n id: '4',\r\n name: 'Rachunki',\r\n order: 0,\r\n categoryGroupId: '2',\r\n type: 'Expense'\r\n },\r\n {\r\n id: '5',\r\n name: 'Halo',\r\n order: 0,\r\n categoryGroupId: '3',\r\n type: 'Expense'\r\n }\r\n ])\r\n\r\n localStorage.plans = JSON.stringify([\r\n {\r\n id: '1',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n categoryId: '1',\r\n value: 2000,\r\n note: 'Notatka ma'\r\n },\r\n {\r\n id: '2',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n categoryId: '2',\r\n value: 1000,\r\n note: 'Notatka ma'\r\n },\r\n {\r\n id: '3',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n categoryId: '3',\r\n value: 1000,\r\n note: 'Notatka ma'\r\n },\r\n {\r\n id: '4',\r\n budgetId: '1',\r\n periodKey: periodKey,\r\n categoryId: '4',\r\n value: 1000,\r\n note: 'Notatka ma'\r\n }\r\n ])\r\n\r\n localStorage.subscription = JSON.stringify({\r\n expiresAt: new Date(2022, 1, 1),\r\n type: 1,\r\n isExpired: false\r\n })\r\n\r\n localStorage.budget = JSON.stringify({\r\n id: 1\r\n })\r\n\r\n localStorage.userProfile = JSON.stringify({\r\n id: 1,\r\n name: 'EasyBudget User',\r\n email: 'email@domena.pl',\r\n finishedOnboarding: false\r\n })\r\n\r\n localStorage.notificationsSettings = JSON.stringify({\r\n budgetingNotificationEnabled: false\r\n })\r\n\r\n localStorage.isDataSet = true\r\n}\r\n","import { setupWorker, rest } from 'msw'\r\nimport './data'\r\nimport {\r\n CategoryGroupDto,\r\n CategoryDto,\r\n PlanDto,\r\n UserDto,\r\n UserSettingsDto,\r\n TransactionSplitDto\r\n} from '../src/api/contracts/models'\r\nimport dayjs from 'dayjs'\r\n\r\n// 2. Define request handlers and response resolvers.\r\nconst worker = setupWorker(\r\n rest.get(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/budget/`,\r\n (req, res, ctx) => {\r\n return res(\r\n ctx.delay(100),\r\n ctx.status(202, 'Mocked status'),\r\n ctx.json(JSON.parse(localStorage.budget))\r\n )\r\n }\r\n ),\r\n\r\n rest.get(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/budget/:budgetId/transactions`,\r\n (req, res, ctx) => {\r\n return res(\r\n ctx.delay(100),\r\n ctx.status(202, 'Mocked status'),\r\n ctx.json(JSON.parse(localStorage.transactions))\r\n )\r\n }\r\n ),\r\n\r\n rest.delete(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/transactions/:id`,\r\n (req, res, ctx) => {\r\n const { id } = req.params\r\n const transactions = JSON.parse(localStorage.transactions)\r\n const transaction = transactions.find((m) => m.id == id)\r\n const transactionIndex = transactions.indexOf(transaction)\r\n if (transactionIndex > -1) {\r\n transactions.splice(transactionIndex, 1)\r\n localStorage.transactions = JSON.stringify(transactions)\r\n }\r\n\r\n return res(\r\n ctx.delay(100),\r\n ctx.status(202, 'Mocked status'),\r\n ctx.json(JSON.parse(localStorage.transactions))\r\n )\r\n }\r\n ),\r\n\r\n rest.put(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/transactions/:id`,\r\n (req, res, ctx) => {\r\n const { id } = req.params\r\n const transactions = JSON.parse(localStorage.transactions)\r\n const transaction = transactions.find((m) => m.id == id)\r\n const transactionIndex = transactions.indexOf(transaction)\r\n if (transactionIndex > -1) {\r\n transactions[transactionIndex] = req.body\r\n localStorage.transactions = JSON.stringify(transactions)\r\n }\r\n\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.post(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/transactions`,\r\n (req, res, ctx) => {\r\n const transactions = JSON.parse(localStorage.transactions)\r\n\r\n const newTransaction = req.body as TransactionSplitDto\r\n\r\n // NOTE: czemu pomimo typowania newTransaction.date jest stringiem?\r\n const transactionDate = new Date(newTransaction.date)\r\n\r\n newTransaction.periodKey =\r\n transactionDate.getFullYear().toString() +\r\n ('0' + (transactionDate.getMonth() + 1)).slice(-2).toString()\r\n\r\n const profile = JSON.parse(localStorage.userProfile) as UserDto\r\n\r\n transactions.push({\r\n ...newTransaction,\r\n paidBy: profile.name,\r\n paidById: profile.id\r\n })\r\n localStorage.transactions = JSON.stringify(transactions)\r\n\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.get(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/budget/:budgetId/categories`,\r\n (req, res, ctx) => {\r\n return res(\r\n ctx.delay(100),\r\n ctx.status(202, 'Mocked status'),\r\n ctx.json(JSON.parse(localStorage.categories))\r\n )\r\n }\r\n ),\r\n\r\n rest.post(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/categories`,\r\n (req, res, ctx) => {\r\n const categories = JSON.parse(localStorage.categories)\r\n const newCategory = req.body as CategoryDto\r\n categories.push(newCategory)\r\n localStorage.categories = JSON.stringify(categories)\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.delete(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/categories/:id`,\r\n (req, res, ctx) => {\r\n const { id } = req.params\r\n const categories = JSON.parse(localStorage.categories)\r\n const category = categories.find((m) => m.id == id)\r\n\r\n const categoryIndex = categories.indexOf(category)\r\n if (categoryIndex > -1) {\r\n categories.splice(categoryIndex, 1)\r\n localStorage.categories = JSON.stringify(categories)\r\n }\r\n\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.put(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/categories/:id`,\r\n (req, res, ctx) => {\r\n const { id } = req.params\r\n\r\n const categories = JSON.parse(localStorage.categories)\r\n\r\n const category = categories.find((m) => m.id == id)\r\n\r\n const updatedCategory = req.body as CategoryDto\r\n\r\n const categoryIndex = categories.indexOf(category)\r\n categories[categoryIndex] = updatedCategory\r\n\r\n localStorage.categories = JSON.stringify(categories)\r\n\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.put(\r\n `${process.env.VUE_APP_API_BASE_URL}categories/:id/order/:order`,\r\n (req, res, ctx) => {\r\n const { id, order } = req.params\r\n\r\n const categories = JSON.parse(localStorage.categories)\r\n\r\n const category = categories.find((m) => m.id == id)\r\n const categoryOrder = parseInt(order)\r\n\r\n // NOTE: order changed, need to update other Categories\r\n if (category.order != categoryOrder) {\r\n for (const el of categories) {\r\n if (\r\n el.id == id ||\r\n el.categoryGroupId != category.categoryGroupId\r\n ) {\r\n continue\r\n }\r\n\r\n //el.order = computeOrder(category.order, categoryOrder, el.order)\r\n\r\n const elementIndex = categories.indexOf(el)\r\n categories[elementIndex] = el\r\n }\r\n }\r\n\r\n const categoryIndex = categories.indexOf(category)\r\n categories[categoryIndex] = {\r\n ...categories[categoryIndex],\r\n order: categoryOrder\r\n }\r\n\r\n localStorage.categories = JSON.stringify(categories)\r\n\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.get(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/budget/:budgetId/category-groups`,\r\n (req, res, ctx) => {\r\n return res(\r\n ctx.delay(100),\r\n ctx.status(202, 'Mocked status'),\r\n ctx.json(JSON.parse(localStorage.categoryGroups))\r\n )\r\n }\r\n ),\r\n\r\n rest.put(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/category-groups/:id`,\r\n (req, res, ctx) => {\r\n const { id } = req.params\r\n const categoryGroups = JSON.parse(localStorage.categoryGroups)\r\n const categoryGroup = categoryGroups.find((m) => m.id == id)\r\n\r\n const updatedCategoryGroup = req.body as CategoryGroupDto\r\n\r\n const categoryGroupIndex = categoryGroups.indexOf(categoryGroup)\r\n categoryGroups[categoryGroupIndex] = updatedCategoryGroup\r\n\r\n localStorage.categoryGroups = JSON.stringify(categoryGroups)\r\n\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.post(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/category-groups`,\r\n (req, res, ctx) => {\r\n const categoryGroups = JSON.parse(localStorage.categoryGroups)\r\n const newCategoryGroup = req.body as CategoryGroupDto\r\n categoryGroups.push(newCategoryGroup)\r\n localStorage.categoryGroups = JSON.stringify(categoryGroups)\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.delete(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/category-groups/:id`,\r\n (req, res, ctx) => {\r\n const { id } = req.params\r\n const categoryGroups = JSON.parse(localStorage.categoryGroups)\r\n const categoryGroup = categoryGroups.find((m) => m.id == id)\r\n\r\n const categoryIndex = categoryGroups.indexOf(categoryGroup)\r\n if (categoryIndex > -1) {\r\n categoryGroups.splice(categoryIndex, 1)\r\n localStorage.categoryGroups = JSON.stringify(categoryGroups)\r\n }\r\n\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.get(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/budget/:budgetId/plans`,\r\n (req, res, ctx) => {\r\n return res(\r\n ctx.delay(100),\r\n ctx.status(202, 'Mocked status'),\r\n ctx.json(JSON.parse(localStorage.plans))\r\n )\r\n }\r\n ),\r\n\r\n rest.post(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/plans`,\r\n (req, res, ctx) => {\r\n const newPlan = req.body as PlanDto\r\n\r\n const plans = JSON.parse(localStorage.plans)\r\n\r\n const plan = plans.find(\r\n (m) =>\r\n m.categoryId == newPlan.categoryId &&\r\n m.periodKey == newPlan.periodKey\r\n )\r\n const planIndex = plans.indexOf(plan)\r\n\r\n if (planIndex > -1) {\r\n plans[planIndex] = req.body\r\n } else {\r\n plans.push(newPlan)\r\n }\r\n\r\n localStorage.plans = JSON.stringify(plans)\r\n\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.put(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/plans/:id/note`,\r\n (req, res, ctx) => {\r\n const { id } = req.params\r\n const plans = JSON.parse(localStorage.plans)\r\n const plan = plans.find((m) => m.id == id)\r\n const planIndex = plans.indexOf(plan)\r\n if (planIndex > -1) {\r\n plans[planIndex] = { ...plans[planIndex], note: req.body }\r\n localStorage.plans = JSON.stringify(plans)\r\n }\r\n\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.get(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/subscription`,\r\n (req, res, ctx) => {\r\n return res(\r\n ctx.delay(100),\r\n ctx.status(202, 'Mocked status'),\r\n ctx.json(JSON.parse(localStorage.subscription))\r\n )\r\n }\r\n ),\r\n\r\n rest.get(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/user-profile`,\r\n (req, res, ctx) => {\r\n return res(\r\n ctx.delay(100),\r\n ctx.status(202, 'Mocked status'),\r\n ctx.json(JSON.parse(localStorage.userProfile))\r\n )\r\n }\r\n ),\r\n\r\n rest.put(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/user-profile`,\r\n (req, res, ctx) => {\r\n const userProfile = req.body as UserDto\r\n localStorage.userProfile = JSON.stringify(userProfile)\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.post(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/onboarding/reason`,\r\n (req, res, ctx) => {\r\n const profile = JSON.parse(localStorage.userProfile)\r\n\r\n profile.joinReasons = req.body\r\n\r\n localStorage.userProfile = JSON.stringify(profile)\r\n\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n ),\r\n\r\n rest.post(\r\n `${process.env.VUE_APP_API_BASE_URL}/api/onboarding/finish`,\r\n (req, res, ctx) => {\r\n const profile = JSON.parse(localStorage.userProfile)\r\n\r\n profile.finishedOnboarding = true\r\n\r\n localStorage.userProfile = JSON.stringify(profile)\r\n\r\n return res(ctx.delay(100), ctx.status(202, 'Mocked status'))\r\n }\r\n )\r\n)\r\n\r\n// 3. Start the Service Worker.\r\nexport default worker\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"app\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_view)\n ]))\n}","\r\nimport { defineComponent, onMounted } from 'vue'\r\nimport { useFreshDesk } from './composables/useFreshDesk'\r\nimport useThemes from './composables/useThemes'\r\nimport { useAuthService } from './auth/AuthService'\r\n\r\nexport default defineComponent({\r\n name: 'App',\r\n setup() {\r\n const { hideLauncher } = useFreshDesk()\r\n const { init } = useThemes()\r\n init()\r\n hideLauncher()\r\n\r\n const authService = useAuthService()\r\n onMounted(async () => {\r\n await authService.clearStaleStateAsync()\r\n })\r\n\r\n return {}\r\n }\r\n})\r\n","import { render } from \"./App.vue?vue&type=template&id=28b09760&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=28b09760&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\easy-budget\\\\app\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/* eslint-disable no-console */\r\n\r\nimport { register } from 'register-service-worker'\r\n\r\nlet serviceWorkerName = 'service-worker.js'\r\nif (process.env.NODE_ENV !== 'production') {\r\n serviceWorkerName = 'test-service-worker.js'\r\n}\r\n\r\nregister(`${process.env.BASE_URL}${serviceWorkerName}`, {\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 window.location.reload()\r\n },\r\n offline() {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n )\r\n },\r\n error(error) {\r\n console.error('Error during service worker registration:', error)\r\n }\r\n})\r\n","import { useBudgetStore } from '@/composables/stores/useBudgetStore'\r\nimport dayjs, { Dayjs } from 'dayjs'\r\n\r\ndeclare global {\r\n interface Number {\r\n toCurrency(): string\r\n toCurrencyWithSign(): string\r\n toPercent(): string\r\n toFixedRoundingError(): number\r\n }\r\n\r\n interface String {\r\n periodToDayJs(): Dayjs\r\n toPeriodToDateFormat(format: string)\r\n formatDate(format: string): string\r\n capitalizeFirstLetter()\r\n }\r\n\r\n interface Date {\r\n toPeriodKey(): string\r\n toTimeZoneDate(): Date\r\n removeTime(): Date\r\n format(format: string): string\r\n }\r\n\r\n interface Array {\r\n moveToIndex(oldIndex, newIndex): void\r\n }\r\n}\r\n\r\nNumber.prototype.toCurrency = function toCurrency() {\r\n const store = useBudgetStore()\r\n\r\n return new Intl.NumberFormat(store.currencyLocale(), {\r\n style: 'currency',\r\n currency: store.budget?.currency ?? 'PLN'\r\n }).format(Math.round(((this as number) + Number.EPSILON) * 100) / 100)\r\n}\r\n\r\nNumber.prototype.toCurrencyWithSign = function toCurrencyWithSign() {\r\n const store = useBudgetStore()\r\n\r\n return new Intl.NumberFormat(store.currencyLocale(), {\r\n style: 'currency',\r\n currency: store.budget?.currency ?? 'PLN',\r\n signDisplay: 'always'\r\n }).format(this as number)\r\n}\r\n\r\nNumber.prototype.toPercent = function toPercent() {\r\n return `${((this as number) * 100).toFixed(3)} %`\r\n}\r\n\r\nNumber.prototype.toFixedRoundingError = function toFixedRoundingError() {\r\n return Math.round(((this as number) + Number.EPSILON) * 100) / 100\r\n}\r\n\r\nString.prototype.periodToDayJs = function toPeriod() {\r\n return dayjs(this as string, 'YYYYMM')\r\n}\r\n\r\nString.prototype.toPeriodToDateFormat = function toPeriodToDateFormat(\r\n format: string\r\n) {\r\n return dayjs(this as string, 'YYYYMM').format(format)\r\n}\r\n\r\nString.prototype.formatDate = function formatDate(format: string) {\r\n return dayjs(this as string).format(format)\r\n}\r\n\r\nString.prototype.capitalizeFirstLetter = function capitalizeFirstLetter() {\r\n return this.charAt(0).toUpperCase() + this.slice(1)\r\n}\r\n\r\nDate.prototype.toPeriodKey = function toPeriod() {\r\n return dayjs(this).format('YYYYMM')\r\n}\r\n\r\nDate.prototype.toTimeZoneDate = function toTimeZoneDate() {\r\n return dayjs(this).subtract(this.getTimezoneOffset(), 'minute').toDate()\r\n}\r\n\r\nDate.prototype.format = function format(format: string) {\r\n return dayjs(this).format(format)\r\n}\r\n\r\nArray.prototype.moveToIndex = function moveToIndex(oldIndex, newIndex) {\r\n if (newIndex >= this.length) {\r\n let k = newIndex - this.length + 1\r\n while (k--) {\r\n this.push(undefined)\r\n }\r\n }\r\n this.splice(newIndex, 0, this.splice(oldIndex, 1)[0])\r\n}\r\n\r\nDate.prototype.removeTime = function removeTime() {\r\n return dayjs(this).hour(0).minute(0).second(0).millisecond(0).toDate()\r\n}\r\n\r\nexport {}\r\n","import { ObjectDirective } from 'vue'\r\n\r\nconst RippleDirective = (): ObjectDirective => ({\r\n mounted(el: HTMLElement) {\r\n el.addEventListener('click', function () {\r\n el.classList.add('c-ripple-click')\r\n })\r\n\r\n el.addEventListener('webkitAnimationEnd', function () {\r\n el.classList.remove('c-ripple-click')\r\n })\r\n },\r\n\r\n unmounted(el: HTMLElement) {\r\n //TODO\r\n }\r\n})\r\n\r\nconst Ripple = RippleDirective()\r\nexport default Ripple\r\n","import { useEventBus } from '@/composables/useEventBus'\r\nimport { publishEvent } from '@/helpers/Analytics'\r\n\r\nexport function setUpGA4Events() {\r\n const eventBus = useEventBus()\r\n\r\n eventBus.on('onboardingSurveyCompleted', () => {\r\n publishEvent('onboarding_survey_completed')\r\n })\r\n\r\n eventBus.on('onboardingFirstStepCompleted', () => {\r\n publishEvent('onboarding_1_step_completed')\r\n })\r\n\r\n eventBus.on('onboardingSecondStepCompleted', () => {\r\n publishEvent('onboarding_2_step_completed')\r\n })\r\n\r\n eventBus.on('onboardingThirdStepCompleted', () => {\r\n publishEvent('onboarding_3_step_completed')\r\n })\r\n\r\n eventBus.on('onboardingCompleted', () => {\r\n publishEvent('onboarding_completed')\r\n })\r\n\r\n eventBus.on('autoAssignPerformed', () => {\r\n publishEvent('auto_assign')\r\n })\r\n\r\n eventBus.on('moneyAssigned', () => {\r\n publishEvent('money_assigned')\r\n })\r\n\r\n eventBus.on('transactionAdded', () => {\r\n publishEvent('transaction_added')\r\n })\r\n\r\n eventBus.on('templateAdded', () => {\r\n publishEvent('template_added')\r\n })\r\n\r\n eventBus.on('templateUsed', () => {\r\n publishEvent('template_used')\r\n })\r\n\r\n eventBus.on('targetSet', () => {\r\n publishEvent('target_set')\r\n })\r\n\r\n eventBus.on('importCsvStarted', (bankId: string) => {\r\n publishEvent('import_csv_started', {\r\n bankId\r\n })\r\n })\r\n\r\n eventBus.on('helpOpened', () => {\r\n publishEvent('help_opened')\r\n })\r\n}\r\n","import { router } from './router'\r\nimport App from './App.vue'\r\nimport './registerServiceWorker'\r\nimport dayjs from 'dayjs'\r\nimport duration from 'dayjs/plugin/duration'\r\nimport 'dayjs/locale/pl'\r\nimport vueDebounce from 'vue-debounce'\r\nimport { createApp } from 'vue'\r\n\r\nimport 'awesome-notifications/dist/style.css'\r\nrequire('vue-tour/dist/vue-tour.css')\r\nimport 'tippy.js/themes/light.css'\r\n\r\n/* PrimeVue + PrimeIcons + PrimeFlex */\r\nimport 'primeicons/primeicons.css'\r\n\r\nimport PrimeVue from 'primevue/config'\r\nimport Aura from '@primevue/themes/aura'\r\nimport { definePreset } from '@primevue/themes'\r\nimport Tooltip from 'primevue/tooltip'\r\n/* End Prime */\r\n\r\nimport '@/validation/index'\r\nimport 'tippy.js/dist/tippy.css'\r\nimport vClickOutside from 'click-outside-vue3'\r\nimport '@/helpers/Analytics'\r\nimport Vue3Tour from 'vue3-tour'\r\nimport 'vue3-tour/dist/vue3-tour.css'\r\nimport * as Sentry from '@sentry/vue'\r\nimport { Integrations } from '@sentry/tracing'\r\nimport '@/helpers/Extensions'\r\nimport { VueQueryPlugin } from 'vue-query'\r\n\r\nimport { EasyToastPlugin } from '@/plugins/easy-toast/EasyToastPlugin'\r\nimport { useEventBus } from './composables/useEventBus'\r\nimport { useDeviceInfo } from './composables/useDeviceInfo'\r\nimport { useInternationalization } from '@/i18n'\r\nimport Ripple from '@/directives/Ripple/RippleDirective'\r\nimport '@/directives/Ripple/styles.css'\r\nimport ConfirmationService from 'primevue/confirmationservice'\r\nimport { Chart } from 'chart.js'\r\nimport annotationPlugin from 'chartjs-plugin-annotation'\r\nimport VueShepherdPlugin from 'vue-shepherd'\r\nimport 'shepherd.js/dist/css/shepherd.css'\r\nimport { VueQueryDevTools } from 'vue-query/devtools'\r\nimport { setUpGA4Events } from '@/analytics'\r\nimport VueNumber from 'vue-number-animation'\r\nimport { createPinia } from 'pinia'\r\nimport 'floating-vue/dist/style.css'\r\nimport './styles.css'\r\n\r\nsetUpGA4Events()\r\n\r\nChart.register(annotationPlugin)\r\nconst pinia = createPinia()\r\nconst app = createApp(App)\r\napp.use(pinia)\r\napp.use(VueNumber)\r\napp.use(ConfirmationService)\r\napp.directive('tooltip', Tooltip)\r\napp.directive('ripple', Ripple)\r\napp.use(useInternationalization())\r\napp.use(VueShepherdPlugin)\r\n\r\napp.use(EasyToastPlugin, {\r\n eventBus: useEventBus(),\r\n isMobile: useDeviceInfo().isMobile\r\n})\r\n\r\napp.use(VueQueryPlugin, {\r\n // TODO: EB-711\r\n // queryClientConfig: {\r\n // defaultOptions: {\r\n // queries: {\r\n // refetchOnWindowFocus: false\r\n // }\r\n // }\r\n // }\r\n})\r\n\r\nconst preset = definePreset(Aura, {\r\n primitive: {\r\n orange: {\r\n 50: '#fffbf4',\r\n 100: '#ffebcc',\r\n 200: '#ffdba4',\r\n 300: '#ffcb7c',\r\n 400: '#ffbb53',\r\n 500: '#ffab2b',\r\n 600: '#d99125',\r\n 700: '#b3781e',\r\n 800: '#8c5e18',\r\n 900: '#664411',\r\n 950: '#664411'\r\n }\r\n },\r\n semantic: {\r\n primary: {\r\n 50: '{orange.50}',\r\n 100: '{orange.100}',\r\n 200: '{orange.200}',\r\n 300: '{orange.300}',\r\n 400: '{orange.400}',\r\n 500: '{orange.500}',\r\n 600: '{orange.600}',\r\n 700: '{orange.700}',\r\n 800: '{orange.800}',\r\n 900: '{orange.900}',\r\n 950: '{orange.950}'\r\n },\r\n colorScheme: {\r\n light: {\r\n surface: {\r\n 0: '#ffffff',\r\n 50: '{slate.50}',\r\n 100: '{slate.100}',\r\n 200: '{slate.200}',\r\n 300: '{slate.300}',\r\n 400: '{slate.400}',\r\n 500: '{slate.500}',\r\n 600: '{slate.600}',\r\n 700: '{slate.700}',\r\n 800: '{slate.800}',\r\n 900: '{slate.900}',\r\n 950: '{slate.950}'\r\n }\r\n },\r\n dark: {\r\n surface: {\r\n 0: '#ffffff',\r\n 50: '#e6e7e8',\r\n 100: '#cdcfd1',\r\n 200: '#b4b6ba',\r\n 300: '#9b9ea3',\r\n 400: '#82868c',\r\n 500: '#686e75',\r\n 600: '#4f565e',\r\n 700: '#0b213f',\r\n 800: '#1d2530',\r\n 900: '#071426',\r\n 950: '#040d19'\r\n }\r\n }\r\n }\r\n }\r\n})\r\n\r\napp.use(PrimeVue, {\r\n theme: {\r\n preset: preset,\r\n options: {\r\n darkModeSelector: '.app-dark',\r\n cssLayer: {\r\n name: 'primevue',\r\n order: 'tailwind-base, primevue, tailwind-utilities'\r\n }\r\n }\r\n },\r\n locale: {\r\n aria: {\r\n navigation: ''\r\n },\r\n startsWith: 'Starts with',\r\n contains: 'Contains',\r\n notContains: 'Not contains',\r\n endsWith: 'Ends with',\r\n equals: 'Equals',\r\n notEquals: 'Not equals',\r\n noFilter: 'No Filter',\r\n lt: 'Less than',\r\n lte: 'Less than or equal to',\r\n gt: 'Greater than',\r\n gte: 'Greater than or equal to',\r\n dateIs: 'Date is',\r\n dateIsNot: 'Date is not',\r\n dateBefore: 'Date is before',\r\n dateAfter: 'Date is after',\r\n clear: 'Wyczyść',\r\n apply: 'Apply',\r\n matchAll: 'Match All',\r\n matchAny: 'Match Any',\r\n addRule: 'Add Rule',\r\n removeRule: 'Remove Rule',\r\n accept: 'Tak',\r\n reject: 'Nie',\r\n choose: 'Choose',\r\n upload: 'Upload',\r\n cancel: 'Cancel',\r\n firstDayOfWeek: 1,\r\n dayNames: [\r\n 'Niedziela',\r\n 'Poniedziałek',\r\n 'Wtorek',\r\n 'Środa',\r\n 'Czwartek',\r\n 'Piątek',\r\n 'Sobota'\r\n ],\r\n dayNamesShort: ['Niedz', 'Pon', 'Wt', 'Śr', 'Czw', 'Pt', 'Sob'],\r\n dayNamesMin: ['N', 'Pn', 'Wt', 'Śr', 'Czw', 'Pt', 'Sb'],\r\n monthNames: [\r\n 'Styczeń',\r\n 'Luty',\r\n 'Marzec',\r\n 'Kwiecień',\r\n 'Maj',\r\n 'Czerwiec',\r\n 'Lipiec',\r\n 'Sierpień',\r\n 'Wrzesień',\r\n 'Październik',\r\n 'Listopad',\r\n 'Grudzień'\r\n ],\r\n monthNamesShort: [\r\n 'Sty',\r\n 'Lut',\r\n 'Mar',\r\n 'Kwi',\r\n 'Maj',\r\n 'Cze',\r\n 'Lip',\r\n 'Sie',\r\n 'Wrz',\r\n 'Paź',\r\n 'Lis',\r\n 'Gru'\r\n ]\r\n }\r\n})\r\n\r\napp.use(vClickOutside)\r\n\r\napp.use(Vue3Tour)\r\n\r\nif (process.env.VUE_APP_EB_ENV === 'Production') {\r\n const pjson = require('../package.json')\r\n Sentry.init({\r\n app,\r\n environment: 'Prod',\r\n release: 'EasyBudget.UI@' + pjson.version,\r\n dsn: 'https://e17c738ec11b463798e8a7635c58549a@o932785.ingest.sentry.io/5881700',\r\n replaysSessionSampleRate: 0.1,\r\n replaysOnErrorSampleRate: 1.0,\r\n integrations: [\r\n new Sentry.Replay(),\r\n new Integrations.BrowserTracing({\r\n routingInstrumentation: Sentry.vueRouterInstrumentation(router),\r\n tracingOrigins: [process.env.VUE_APP_APP_BASE_URL!, /^\\//]\r\n })\r\n ],\r\n tracesSampleRate: 1\r\n })\r\n}\r\n\r\napp.use(router)\r\n\r\napp.use(vueDebounce, {\r\n lock: true,\r\n listenTo: ['input'],\r\n defaultTime: '700'\r\n})\r\n\r\ndayjs.locale('pl')\r\ndayjs.extend(duration)\r\ndayjs.duration({ months: 12 })\r\n\r\nif (process.env.VUE_APP_EB_ENV !== 'Production') {\r\n app.config.performance = true\r\n}\r\n\r\napp.mount('#app')\r\n","import { ContentType, HttpClient, RequestParams } from './base/BaseHttpClient'\r\nimport { useHttpClient } from './base/HttpClient'\r\nimport {\r\n AssignmentRecordDto,\r\n BankAccountDto,\r\n BudgetCollaborationDto,\r\n BudgetDto,\r\n BudgetIdResult,\r\n BudgetUserDto,\r\n CategoryDto,\r\n CategoryGroupDto,\r\n CreateBudgetRequest,\r\n ExportBudgetRequest,\r\n FilterDto,\r\n LoanActivityDto,\r\n LoanDto,\r\n PlanDto,\r\n ScheduledLoanPaymentDto,\r\n TargetDto,\r\n TransactionDraftDto,\r\n TransactionDto,\r\n TransactionSplitDto,\r\n TransactionTemplateDto,\r\n TransactionTemplateSplitDto,\r\n UpdateBudgetRequest\r\n} from './contracts/models'\r\n\r\nexport class BudgetApi {\r\n http: HttpClient\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http\r\n }\r\n\r\n /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetBudgets\r\n * @request GET:/api/budget\r\n * @secure\r\n * @response `200` `(BudgetDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getBudgets = (params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name CreateBudget\r\n * @request POST:/api/budget\r\n * @secure\r\n * @response `200` `string` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n createBudget = (data: CreateBudgetRequest, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget`,\r\n method: 'POST',\r\n body: data,\r\n secure: true,\r\n type: ContentType.Json,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name Reset\r\n * @request POST:/api/budget/{budgetId}/reset\r\n * @secure\r\n * @response `200` `BudgetIdResult` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n reset = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/reset`,\r\n method: 'POST',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name ImportBudget\r\n * @request POST:/api/budget/import-budget/{appId}\r\n * @secure\r\n * @response `200` `BudgetIdResult` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n importBudget = (\r\n appId: string,\r\n data: {\r\n ContentType?: string\r\n ContentDisposition?: string\r\n Headers?: Record\r\n /** @format int64 */\r\n Length?: number\r\n Name?: string\r\n FileName?: string\r\n },\r\n params: RequestParams = {}\r\n ) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/import-budget/${appId}`,\r\n method: 'POST',\r\n body: data,\r\n secure: true,\r\n type: ContentType.FormData,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name UpdateBudget\r\n * @request PUT:/api/budget/{budgetId}\r\n * @secure\r\n * @response `200` `void` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n updateBudget = (\r\n budgetId: string,\r\n data: UpdateBudgetRequest,\r\n params: RequestParams = {}\r\n ) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}`,\r\n method: 'PUT',\r\n body: data,\r\n secure: true,\r\n type: ContentType.Json,\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name DeleteBudget\r\n * @request DELETE:/api/budget/{budgetId}\r\n * @secure\r\n * @response `200` `void` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n deleteBudget = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}`,\r\n method: 'DELETE',\r\n secure: true,\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name ExportBudget\r\n * @request POST:/api/budget/{budgetId}/export\r\n * @secure\r\n * @response `200` `File` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n exportBudget = (\r\n budgetId: string,\r\n data: ExportBudgetRequest,\r\n params: RequestParams = {}\r\n ) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/export`,\r\n method: 'POST',\r\n body: data,\r\n secure: true,\r\n type: ContentType.Json,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetPlans\r\n * @request GET:/api/budget/{budgetId}/plans\r\n * @secure\r\n * @response `200` `(PlanDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getPlans = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/plans`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetUsers\r\n * @request GET:/api/budget/{budgetId}/users\r\n * @secure\r\n * @response `200` `(BudgetUserDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getUsers = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/users`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetTransactions\r\n * @request GET:/api/budget/{budgetId}/transactions\r\n * @secure\r\n * @response `200` `(TransactionDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getTransactions = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/transactions`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetTransactionDrafts\r\n * @request GET:/api/budget/{budgetId}/transaction-drafts\r\n * @secure\r\n * @response `200` `(TransactionDraftDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getTransactionDrafts = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/transaction-drafts`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetTransactionSplits\r\n * @request GET:/api/budget/{budgetId}/transaction-splits\r\n * @secure\r\n * @response `200` `(TransactionSplitDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getTransactionSplits = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/transaction-splits`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetCategoryGroups\r\n * @request GET:/api/budget/{budgetId}/category-groups\r\n * @secure\r\n * @response `200` `(CategoryGroupDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getCategoryGroups = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/category-groups`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetCategories\r\n * @request GET:/api/budget/{budgetId}/categories\r\n * @secure\r\n * @response `200` `(CategoryDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getCategories = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/categories`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetBudgetCollaborations\r\n * @request GET:/api/budget/{budgetId}/budget-collaborations\r\n * @secure\r\n * @response `200` `(BudgetCollaborationDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getBudgetCollaborations = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/budget-collaborations`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetTransactionTemplates\r\n * @request GET:/api/budget/{budgetId}/transaction-templates\r\n * @secure\r\n * @response `200` `(TransactionTemplateDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getTransactionTemplates = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/transaction-templates`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetTransactionTemplateSplits\r\n * @request GET:/api/budget/{budgetId}/transaction-template-splits\r\n * @secure\r\n * @response `200` `(TransactionTemplateSplitDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getTransactionTemplateSplits = (\r\n budgetId: string,\r\n params: RequestParams = {}\r\n ) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/transaction-template-splits`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetTargets\r\n * @request GET:/api/budget/{budgetId}/targets\r\n * @secure\r\n * @response `200` `(TargetDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getTargets = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/targets`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetBankAccounts\r\n * @request GET:/api/budget/{budgetId}/bank-accounts\r\n * @secure\r\n * @response `200` `(BankAccountDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getBankAccounts = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/bank-accounts`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetLoans\r\n * @request GET:/api/budget/{budgetId}/loans\r\n * @secure\r\n * @response `200` `(LoanDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getLoans = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/loans`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetLoanSchedule\r\n * @request GET:/api/budget/{budgetId}/loans/{loanId}/schedule\r\n * @secure\r\n * @response `200` `(ScheduledLoanPaymentDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getLoanSchedule = (\r\n loanId: string,\r\n budgetId: string,\r\n params: RequestParams = {}\r\n ) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/loans/${loanId}/schedule`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetLoansSchedule\r\n * @request GET:/api/budget/{budgetId}/loans-schedule\r\n * @secure\r\n * @response `200` `(ScheduledLoanPaymentDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getLoansSchedule = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/loans-schedule`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetLoanActivities\r\n * @request GET:/api/budget/{budgetId}/loan-activities\r\n * @secure\r\n * @response `200` `(LoanActivityDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getLoanActivities = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/loan-activities`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetFilters\r\n * @request GET:/api/budget/{budgetId}/filters\r\n * @secure\r\n * @response `200` `(FilterDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getFilters = (budgetId: string, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/filters`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Budget\r\n * @name GetAssignmentRecords\r\n * @request GET:/api/budget/{budgetId}/period/{periodKey}/assignment-records\r\n * @secure\r\n * @response `200` `(AssignmentRecordDto)[]` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getAssignmentRecords = (\r\n budgetId: string,\r\n periodKey: string,\r\n params: RequestParams = {}\r\n ) =>\r\n this.http\r\n .request({\r\n path: `/api/budget/${budgetId}/period/${periodKey}/assignment-records`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data)\r\n}\r\n\r\nconst budgetApi = new BudgetApi(useHttpClient())\r\nexport function useBudgetApi(): BudgetApi {\r\n return budgetApi\r\n}\r\n","import { ContentType, HttpClient, RequestParams } from './base/BaseHttpClient'\r\nimport { useHttpClient } from './base/HttpClient'\r\nimport {\r\n PaymentConfirmation,\r\n StartPaymentRequest,\r\n SubscriptionDto\r\n} from './contracts/models'\r\n\r\nexport class SubscriptionApi {\r\n http: HttpClient\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http\r\n }\r\n\r\n /**\r\n * No description\r\n *\r\n * @tags Subscription\r\n * @name GetUserSubscription\r\n * @request GET:/api/subscription\r\n * @secure\r\n * @response `200` `SubscriptionDto` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n getUserSubscription = (params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/subscription`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Subscription\r\n * @name StartPayment\r\n * @request POST:/api/subscription/payment/start\r\n * @secure\r\n * @response `200` `string` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n startPayment = (data: StartPaymentRequest, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/subscription/payment/start`,\r\n method: 'POST',\r\n body: data,\r\n secure: true,\r\n type: ContentType.Json,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags Subscription\r\n * @name VerifyPayment\r\n * @request POST:/api/subscription/payment/verify\r\n * @secure\r\n * @response `200` `void` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n verifyPayment = (data: PaymentConfirmation, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/subscription/payment/verify`,\r\n method: 'POST',\r\n body: data,\r\n secure: true,\r\n type: ContentType.Json,\r\n ...params\r\n })\r\n .then((m) => m.data)\r\n}\r\n\r\nconst subscriptionApi = new SubscriptionApi(useHttpClient())\r\nexport function useSubscriptionApi(): SubscriptionApi {\r\n return subscriptionApi\r\n}\r\n","import { ContentType, HttpClient, RequestParams } from './base/BaseHttpClient'\r\nimport { useHttpClient } from './base/HttpClient'\r\nimport { RecordUserVisitRequest, UserDto } from './contracts/models'\r\n\r\nexport class UserProfileApi {\r\n http: HttpClient\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http\r\n }\r\n\r\n /**\r\n * No description\r\n *\r\n * @tags UserProfile\r\n * @name Get\r\n * @request GET:/api/user-profile\r\n * @secure\r\n * @response `200` `UserDto` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n get = (params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/user-profile`,\r\n method: 'GET',\r\n secure: true,\r\n format: 'json',\r\n ...params\r\n })\r\n .then((m) => m.data) /**\r\n * No description\r\n *\r\n * @tags UserProfile\r\n * @name RecordVisit\r\n * @request PUT:/api/user-profile/visit\r\n * @secure\r\n * @response `200` `void` Success\r\n * @response `401` `void` Unauthorized\r\n * @response `403` `void` Forbidden\r\n */\r\n recordVisit = (data: RecordUserVisitRequest, params: RequestParams = {}) =>\r\n this.http\r\n .request({\r\n path: `/api/user-profile/visit`,\r\n method: 'PUT',\r\n body: data,\r\n secure: true,\r\n type: ContentType.Json,\r\n ...params\r\n })\r\n .then((m) => m.data)\r\n}\r\n\r\nconst userProfileApi = new UserProfileApi(useHttpClient())\r\nexport function useUserProfileApi(): UserProfileApi {\r\n return userProfileApi\r\n}\r\n","import type {\r\n AxiosInstance,\r\n AxiosRequestConfig,\r\n AxiosResponse,\r\n HeadersDefaults,\r\n ResponseType\r\n} from 'axios'\r\nimport axios from 'axios'\r\n\r\nexport type QueryParamsType = Record\r\n\r\nexport interface FullRequestParams\r\n extends Omit<\r\n AxiosRequestConfig,\r\n 'data' | 'params' | 'url' | 'responseType'\r\n > {\r\n /** set parameter to `true` for call `securityWorker` for this request */\r\n secure?: boolean\r\n /** request path */\r\n path: string\r\n /** content type of request body */\r\n type?: ContentType\r\n /** query params */\r\n query?: QueryParamsType\r\n /** format of response (i.e. response.json() -> format: \"json\") */\r\n format?: ResponseType\r\n /** request body */\r\n body?: unknown\r\n}\r\n\r\nexport type RequestParams = Omit<\r\n FullRequestParams,\r\n 'body' | 'method' | 'query' | 'path'\r\n>\r\n\r\nexport interface ApiConfig\r\n extends Omit {\r\n securityWorker?: (\r\n securityData: SecurityDataType | null\r\n ) => Promise | AxiosRequestConfig | void\r\n secure?: boolean\r\n format?: ResponseType\r\n}\r\n\r\nexport enum ContentType {\r\n Json = 'application/json',\r\n FormData = 'multipart/form-data',\r\n UrlEncoded = 'application/x-www-form-urlencoded',\r\n Text = 'text/plain'\r\n}\r\n\r\nexport class HttpClient {\r\n public instance: AxiosInstance\r\n private securityData: SecurityDataType | null = null\r\n private securityWorker?: ApiConfig['securityWorker']\r\n private secure?: boolean\r\n private format?: ResponseType\r\n\r\n constructor({\r\n securityWorker,\r\n secure,\r\n format,\r\n ...axiosConfig\r\n }: ApiConfig = {}) {\r\n this.instance = axios.create({\r\n ...axiosConfig,\r\n baseURL: axiosConfig.baseURL || ''\r\n })\r\n this.secure = secure\r\n this.format = format\r\n this.securityWorker = securityWorker\r\n }\r\n\r\n public setSecurityData = (data: SecurityDataType | null) => {\r\n this.securityData = data\r\n }\r\n\r\n protected mergeRequestParams(\r\n params1: AxiosRequestConfig,\r\n params2?: AxiosRequestConfig\r\n ): AxiosRequestConfig {\r\n const method = params1.method || (params2 && params2.method)\r\n\r\n return {\r\n ...this.instance.defaults,\r\n ...params1,\r\n ...(params2 || {}),\r\n headers: {\r\n ...((method &&\r\n this.instance.defaults.headers[\r\n method.toLowerCase() as keyof HeadersDefaults\r\n ]) ||\r\n {}),\r\n ...(params1.headers || {}),\r\n ...((params2 && params2.headers) || {})\r\n }\r\n }\r\n }\r\n\r\n protected stringifyFormItem(formItem: unknown) {\r\n if (typeof formItem === 'object' && formItem !== null) {\r\n return JSON.stringify(formItem)\r\n } else {\r\n return `${formItem}`\r\n }\r\n }\r\n\r\n protected createFormData(input: Record): FormData {\r\n if (input instanceof FormData) {\r\n return input\r\n }\r\n return Object.keys(input || {}).reduce((formData, key) => {\r\n const property = input[key]\r\n const propertyContent: any[] =\r\n property instanceof Array ? property : [property]\r\n\r\n for (const formItem of propertyContent) {\r\n const isFileType =\r\n formItem instanceof Blob || formItem instanceof File\r\n formData.append(\r\n key,\r\n isFileType ? formItem : this.stringifyFormItem(formItem)\r\n )\r\n }\r\n\r\n return formData\r\n }, new FormData())\r\n }\r\n\r\n public request = async ({\r\n secure,\r\n path,\r\n type,\r\n query,\r\n format,\r\n body,\r\n ...params\r\n }: FullRequestParams): Promise> => {\r\n const secureParams =\r\n ((typeof secure === 'boolean' ? secure : this.secure) &&\r\n this.securityWorker &&\r\n (await this.securityWorker(this.securityData))) ||\r\n {}\r\n const requestParams = this.mergeRequestParams(params, secureParams)\r\n const responseFormat = format || this.format || undefined\r\n\r\n if (\r\n type === ContentType.FormData &&\r\n body &&\r\n body !== null &&\r\n typeof body === 'object'\r\n ) {\r\n body = this.createFormData(body as Record)\r\n }\r\n\r\n if (\r\n type === ContentType.Text &&\r\n body &&\r\n body !== null &&\r\n typeof body !== 'string'\r\n ) {\r\n body = JSON.stringify(body)\r\n }\r\n\r\n return this.instance.request({\r\n ...requestParams,\r\n headers: {\r\n ...(requestParams.headers || {}),\r\n ...(type ? { 'Content-Type': type } : {})\r\n },\r\n params: query,\r\n responseType: responseFormat,\r\n data: body,\r\n url: path\r\n })\r\n }\r\n}\r\n","import AuthService, { useAuthService } from '@/auth/AuthService'\r\nimport { HttpClient as BaseHttpClient } from './BaseHttpClient'\r\n\r\nexport default class HttpClient extends BaseHttpClient {\r\n authService: AuthService\r\n\r\n constructor() {\r\n super()\r\n this.instance.defaults.baseURL = process.env.VUE_APP_API_BASE_URL\r\n this.authService = useAuthService()\r\n\r\n this.instance.interceptors.response.use(\r\n (response) => {\r\n return response\r\n },\r\n async (error) => {\r\n if (error.response.status === 401) {\r\n return await this.authService.loginAsync()\r\n }\r\n\r\n return error.response\r\n }\r\n )\r\n\r\n this.instance.interceptors.request.use(\r\n async (config) => {\r\n config.headers['Authorization'] =\r\n 'Bearer ' + (await this.authService.getAccessTokenAsync())\r\n return config\r\n },\r\n (error) => {\r\n Promise.reject(error)\r\n }\r\n )\r\n }\r\n}\r\n\r\nconst httpClient = new HttpClient()\r\nexport function useHttpClient(): HttpClient {\r\n return httpClient\r\n}\r\n","export interface AddTransactionRequest {\r\n splits?: BaseTransactionCategorySplitDto[] | null\r\n budgetId: string\r\n transactionId: string\r\n bankAccountId?: string | null\r\n transactionDraftId?: string | null\r\n type: TransactionType\r\n /** @format date */\r\n date: Date\r\n /** @format double */\r\n value: number\r\n currency: string\r\n note: string\r\n key: string\r\n}\r\n\r\nexport interface AddTransferRequest {\r\n budgetId: string\r\n transactionId: string\r\n bankAccountId?: string | null\r\n targetBankAccountId?: string | null\r\n /** @format date */\r\n date: Date\r\n /** @format double */\r\n value: number\r\n currency: string\r\n note: string\r\n}\r\n\r\nexport interface AssignmentRecordDto {\r\n id: string\r\n budgetId: string\r\n periodKey: string\r\n fromCategoryId?: string | null\r\n toCategoryId?: string | null\r\n /** @format double */\r\n value: number\r\n /** @format date */\r\n date: Date\r\n}\r\n\r\nexport interface AuthRequest {\r\n secret: string\r\n email: string\r\n reasons: string\r\n}\r\n\r\nexport interface AutoAssignItemDto {\r\n categoryId: string\r\n /** @format double */\r\n value: number\r\n}\r\n\r\nexport interface AutoAssignRequest {\r\n periodKey: string\r\n budgetId: string\r\n items?: AutoAssignItemDto[] | null\r\n}\r\n\r\nexport interface BankAccountDto {\r\n id: string\r\n name: string\r\n status: BankAccountStatus\r\n /** @format int32 */\r\n order: number\r\n}\r\n\r\nexport enum BankAccountStatus {\r\n Active = 'Active',\r\n Closed = 'Closed'\r\n}\r\n\r\nexport interface BaseTransactionCategorySplitDto {\r\n id: string\r\n categoryId: string\r\n categoryName: string\r\n categoryType: string\r\n /** @format double */\r\n value: number\r\n currency: string\r\n}\r\n\r\nexport interface BudgetCollaborationDto {\r\n id: string\r\n collaboratorEmail: string\r\n}\r\n\r\nexport interface BudgetDto {\r\n id: string\r\n name: string\r\n role: Role\r\n isReadOnly: boolean\r\n isShared: boolean\r\n currency: Currency\r\n isEnvelope: boolean\r\n}\r\n\r\nexport interface BudgetIdResult {\r\n isFailure: boolean\r\n isSuccess: boolean\r\n error: string\r\n value: string\r\n}\r\n\r\nexport interface BudgetUserDto {\r\n userId: string\r\n userName: string\r\n userEmail: string\r\n isCurrentUser: boolean\r\n}\r\n\r\nexport interface CategoryDto {\r\n id: string\r\n categoryGroupId: string\r\n name: string\r\n /** @format int32 */\r\n order: number\r\n type: CategoryType\r\n isFund: boolean\r\n isHidden: boolean\r\n isEnvelope: boolean\r\n note: string\r\n}\r\n\r\nexport interface CategoryGroupDto {\r\n id: string\r\n name: string\r\n budgetId: string\r\n expenseType: ExpenseType\r\n type: CategoryType\r\n /** @format int32 */\r\n order: number\r\n}\r\n\r\nexport enum CategoryType {\r\n Income = 'Income',\r\n Expense = 'Expense',\r\n Saving = 'Saving'\r\n}\r\n\r\nexport interface ChangeBankAccountNameRequest {\r\n id: string\r\n name: string\r\n}\r\n\r\nexport interface ChangeBankAccountOrderRequest {\r\n /** @format int32 */\r\n order: number\r\n bankAccountId: string\r\n}\r\n\r\nexport interface ChangeCategoryOrderRequest {\r\n /** @format int32 */\r\n order: number\r\n newCategoryGroupId: string\r\n}\r\n\r\nexport interface CloseBankAccountRequest {\r\n bankAccountId: string\r\n targetBankAccountId?: string | null\r\n /** @format double */\r\n remainingBalance?: number | null\r\n}\r\n\r\nexport interface CopyPlansRequest {\r\n budgetId: string\r\n sourcePeriodKey: string\r\n targetPeriodKey: string\r\n}\r\n\r\nexport interface CreateBankAccountRequest {\r\n id: string\r\n budgetId: string\r\n name: string\r\n /** @format date */\r\n date: Date\r\n /** @format double */\r\n balance: number\r\n}\r\n\r\nexport interface CreateBudgetCollaborationRequest {\r\n budgetId: string\r\n collaboratorEmail: string\r\n}\r\n\r\nexport interface CreateBudgetRequest {\r\n name: string\r\n currency: Currency\r\n}\r\n\r\nexport interface CreateCategoryGroupRequest {\r\n id: string\r\n budgetId: string\r\n type: CategoryType\r\n name: string\r\n}\r\n\r\nexport interface CreateCategoryRequest {\r\n id: string\r\n categoryGroupId: string\r\n name: string\r\n isFund: boolean\r\n}\r\n\r\nexport interface CreateLoanRequest {\r\n id: string\r\n budgetId: string\r\n name: string\r\n /** @format date */\r\n targetDate: Date\r\n paymentType: LoanPaymentType\r\n /** @format double */\r\n rate: number\r\n /** @format double */\r\n principal: number\r\n /** @format int32 */\r\n paymentDay: number\r\n}\r\n\r\nexport interface CreateOrUpdatePlanRequest {\r\n categoryId: string\r\n budgetId: string\r\n periodKey: string\r\n /** @format double */\r\n value: number\r\n currency: string\r\n}\r\n\r\nexport interface CreateTransactionTemplateRequest {\r\n transactionTemplateId: string\r\n budgetId: string\r\n bankAccountId?: string | null\r\n splits?: BaseTransactionCategorySplitDto[] | null\r\n expensePlans?: BaseTransactionCategorySplitDto[] | null\r\n /** @format date */\r\n startDate: Date\r\n /** @format double */\r\n value: number\r\n currency: string\r\n note: string\r\n interval: TimeInterval\r\n type: TransactionType\r\n}\r\n\r\nexport enum Currency {\r\n PLN = 'PLN',\r\n EUR = 'EUR',\r\n USD = 'USD',\r\n GBP = 'GBP',\r\n CAD = 'CAD',\r\n AUD = 'AUD',\r\n CZK = 'CZK',\r\n CHF = 'CHF',\r\n DKK = 'DKK',\r\n SEK = 'SEK',\r\n AED = 'AED',\r\n AFN = 'AFN',\r\n ALL = 'ALL',\r\n AMD = 'AMD',\r\n ANG = 'ANG',\r\n AOA = 'AOA',\r\n ARS = 'ARS',\r\n AWG = 'AWG',\r\n AZN = 'AZN',\r\n BAM = 'BAM',\r\n BBD = 'BBD',\r\n BDT = 'BDT',\r\n BGN = 'BGN',\r\n BHD = 'BHD',\r\n BIF = 'BIF',\r\n BMD = 'BMD',\r\n BND = 'BND',\r\n BOB = 'BOB',\r\n BRL = 'BRL',\r\n BSD = 'BSD',\r\n BTN = 'BTN',\r\n BWP = 'BWP',\r\n BYN = 'BYN',\r\n BZD = 'BZD',\r\n CDF = 'CDF',\r\n CLF = 'CLF',\r\n CLP = 'CLP',\r\n COP = 'COP',\r\n CRC = 'CRC',\r\n CUC = 'CUC',\r\n CUP = 'CUP',\r\n CVE = 'CVE',\r\n DJF = 'DJF',\r\n DOP = 'DOP',\r\n DZD = 'DZD',\r\n EGP = 'EGP',\r\n ERN = 'ERN',\r\n ETB = 'ETB',\r\n FJD = 'FJD',\r\n FKP = 'FKP',\r\n GEL = 'GEL',\r\n GHS = 'GHS',\r\n GIP = 'GIP',\r\n GMD = 'GMD',\r\n GNF = 'GNF',\r\n GTQ = 'GTQ',\r\n GYD = 'GYD',\r\n HKD = 'HKD',\r\n HNL = 'HNL',\r\n HRK = 'HRK',\r\n HTG = 'HTG',\r\n HUF = 'HUF',\r\n IDR = 'IDR',\r\n ILS = 'ILS',\r\n INR = 'INR',\r\n IQD = 'IQD',\r\n IRR = 'IRR',\r\n ISK = 'ISK',\r\n JMD = 'JMD',\r\n JOD = 'JOD',\r\n JPY = 'JPY',\r\n KES = 'KES',\r\n KGS = 'KGS',\r\n KHR = 'KHR',\r\n KMF = 'KMF',\r\n KPW = 'KPW',\r\n KRW = 'KRW',\r\n KWD = 'KWD',\r\n KYD = 'KYD',\r\n KZT = 'KZT',\r\n LAK = 'LAK',\r\n LBP = 'LBP',\r\n LKR = 'LKR',\r\n LRD = 'LRD',\r\n LSL = 'LSL',\r\n LYD = 'LYD',\r\n MAD = 'MAD',\r\n MDL = 'MDL',\r\n MGA = 'MGA',\r\n MKD = 'MKD',\r\n MMK = 'MMK',\r\n MNT = 'MNT',\r\n MOP = 'MOP',\r\n MRU = 'MRU',\r\n MUR = 'MUR',\r\n MVR = 'MVR',\r\n MWK = 'MWK',\r\n MXN = 'MXN',\r\n MYR = 'MYR',\r\n MZN = 'MZN',\r\n NAD = 'NAD',\r\n NGN = 'NGN',\r\n NIO = 'NIO',\r\n NOK = 'NOK',\r\n NPR = 'NPR',\r\n NZD = 'NZD',\r\n OMR = 'OMR',\r\n PAB = 'PAB',\r\n PEN = 'PEN',\r\n PGK = 'PGK',\r\n PHP = 'PHP',\r\n PKR = 'PKR',\r\n PYG = 'PYG',\r\n QAR = 'QAR',\r\n RON = 'RON',\r\n RSD = 'RSD',\r\n CNY = 'CNY',\r\n RUB = 'RUB',\r\n RWF = 'RWF',\r\n SAR = 'SAR',\r\n SBD = 'SBD',\r\n SCR = 'SCR',\r\n SDG = 'SDG',\r\n SGD = 'SGD',\r\n SHP = 'SHP',\r\n SLL = 'SLL',\r\n SLE = 'SLE',\r\n SOS = 'SOS',\r\n SRD = 'SRD',\r\n SSP = 'SSP',\r\n STN = 'STN',\r\n SVC = 'SVC',\r\n SYP = 'SYP',\r\n SZL = 'SZL',\r\n THB = 'THB',\r\n TJS = 'TJS',\r\n TMT = 'TMT',\r\n TND = 'TND',\r\n TOP = 'TOP',\r\n TRY = 'TRY',\r\n TTD = 'TTD',\r\n TWD = 'TWD',\r\n TZS = 'TZS',\r\n UAH = 'UAH',\r\n UGX = 'UGX',\r\n UYU = 'UYU',\r\n UYW = 'UYW',\r\n UZS = 'UZS',\r\n VED = 'VED',\r\n VES = 'VES',\r\n VND = 'VND',\r\n VUV = 'VUV',\r\n WST = 'WST',\r\n XCD = 'XCD',\r\n YER = 'YER',\r\n ZAR = 'ZAR',\r\n ZMW = 'ZMW',\r\n ZWL = 'ZWL'\r\n}\r\n\r\nexport enum DayOfWeek {\r\n Sunday = 'Sunday',\r\n Monday = 'Monday',\r\n Tuesday = 'Tuesday',\r\n Wednesday = 'Wednesday',\r\n Thursday = 'Thursday',\r\n Friday = 'Friday',\r\n Saturday = 'Saturday'\r\n}\r\n\r\nexport interface DeleteCategoryGroupRequest {\r\n id: string\r\n targetCategoryId: string\r\n}\r\n\r\nexport interface DeleteCategoryRequest {\r\n id: string\r\n targetCategoryId: string\r\n}\r\n\r\nexport enum DeviceType {\r\n Mobile = 'Mobile',\r\n Desktop = 'Desktop'\r\n}\r\n\r\nexport enum ExpenseType {\r\n Housing = 'Housing',\r\n Food = 'Food',\r\n Transport = 'Transport',\r\n Self = 'Self',\r\n Fun = 'Fun',\r\n Savings = 'Savings',\r\n Undefined = 'Undefined'\r\n}\r\n\r\nexport interface ExportBudgetRequest {\r\n periodKeyFrom: string\r\n periodKeyTo: string\r\n}\r\n\r\nexport interface FilterDto {\r\n id?: string | null\r\n name: string\r\n categories?: string[] | null\r\n bankAccounts?: string[] | null\r\n}\r\n\r\nexport interface ImportResultDto {\r\n /** @format date */\r\n dateTime: Date\r\n /** @format double */\r\n amount: number\r\n description: string\r\n receiver: string\r\n categoryId: string\r\n}\r\n\r\nexport enum Language {\r\n PL = 'PL',\r\n EN = 'EN',\r\n DE = 'DE'\r\n}\r\n\r\nexport interface LinkCategoryRequest {\r\n loanId: string\r\n categoryId: string\r\n periodKey: string\r\n}\r\n\r\nexport interface LoanActivityDto {\r\n id: string\r\n loanId: string\r\n type: LoanActivityType\r\n value: string\r\n /** @format date */\r\n date: Date\r\n isInitial: boolean\r\n isGenerated: boolean\r\n}\r\n\r\nexport enum LoanActivityType {\r\n Payment = 'Payment',\r\n InterestPaid = 'InterestPaid',\r\n InterestRateChange = 'InterestRateChange',\r\n Reconcile = 'Reconcile',\r\n TargetDateChange = 'TargetDateChange',\r\n PaymentTypeChange = 'PaymentTypeChange',\r\n PrincipalChange = 'PrincipalChange',\r\n PaymentDayChange = 'PaymentDayChange',\r\n SkipPayments = 'SkipPayments',\r\n SkippedPayment = 'SkippedPayment'\r\n}\r\n\r\nexport interface LoanDto {\r\n id: string\r\n budgetId: string\r\n categoryId?: string | null\r\n name: string\r\n}\r\n\r\nexport enum LoanPaymentType {\r\n Decreasing = 'Decreasing',\r\n Constant = 'Constant'\r\n}\r\n\r\nexport interface MovePlanRequest {\r\n categoryId: string\r\n targetCategoryId: string\r\n budgetId: string\r\n periodKey: string\r\n /** @format double */\r\n value: number\r\n}\r\n\r\nexport interface OnboardingDto {\r\n firstStepCompleted: boolean\r\n secondStepCompleted: boolean\r\n thirdStepCompleted: boolean\r\n onboardingCompleted: boolean\r\n}\r\n\r\nexport interface OnboardingScheduledEventDto {\r\n id: string\r\n eventName: string\r\n jsonData: string\r\n}\r\n\r\nexport enum OnboardingStep {\r\n FirstStep = 'FirstStep',\r\n SecondStep = 'SecondStep',\r\n ThirdStep = 'ThirdStep'\r\n}\r\n\r\nexport enum OperationType {\r\n Transaction = 'Transaction',\r\n Transfer = 'Transfer',\r\n Reconcile = 'Reconcile'\r\n}\r\n\r\nexport interface PaymentConfirmation {\r\n /** @format int32 */\r\n merchantId: number\r\n /** @format int32 */\r\n posId: number\r\n sessionId: string\r\n /** @format int32 */\r\n amount: number\r\n /** @format int32 */\r\n originAmount: number\r\n currency: string\r\n /** @format int64 */\r\n orderId: number\r\n /** @format int32 */\r\n methodId: number\r\n statement: string\r\n sign: string\r\n}\r\n\r\nexport interface PlanDto {\r\n categoryId: string\r\n /** @format double */\r\n value: number\r\n periodKey: string\r\n}\r\n\r\nexport interface PromoCodeDto {\r\n promoCodeId: string\r\n name: string\r\n /** @format double */\r\n value: number\r\n isAvailable: boolean\r\n}\r\n\r\nexport interface ReconcileBankAccountReqeust {\r\n transactionId: string\r\n id: string\r\n /** @format double */\r\n value: number\r\n /** @format date */\r\n date: Date\r\n}\r\n\r\nexport interface RecordLoanActivityRequest {\r\n id: string\r\n loanId: string\r\n bankAccountId?: string | null\r\n value?: any\r\n type: LoanActivityType\r\n /** @format date */\r\n date: Date\r\n}\r\n\r\nexport interface RecordUserVisitRequest {\r\n clientId: string\r\n sessionId: string\r\n sessionNumber: string\r\n}\r\n\r\nexport interface ReferralCodeDto {\r\n code: string\r\n /** @format int32 */\r\n paidUsageCount: number\r\n /** @format int32 */\r\n usageCount: number\r\n}\r\n\r\nexport interface RejectTransactionTemplateRequest {\r\n transactionTemplateId: string\r\n /** @format date */\r\n templateTransactionDate: Date\r\n}\r\n\r\nexport enum RepeatPeriod {\r\n Year = 'Year',\r\n Month = 'Month'\r\n}\r\n\r\nexport enum Role {\r\n Owner = 'Owner',\r\n Guest = 'Guest'\r\n}\r\n\r\nexport interface SaveAnalyticsDataRequest {\r\n acquisitionData: string\r\n device: DeviceType\r\n}\r\n\r\nexport interface SaveCategoryNoteRequest {\r\n id: string\r\n note: string\r\n}\r\n\r\nexport interface SaveNPSSurveyResponseRequest {\r\n data: string\r\n /** @format int32 */\r\n score: number\r\n isMobile: boolean\r\n surveyAction: SurveyAction\r\n}\r\n\r\nexport interface ScheduleOnboardingEventRequest {\r\n eventName: string\r\n jsonData: string\r\n}\r\n\r\nexport interface ScheduledLoanPaymentDto {\r\n loanId: string\r\n /** @format date */\r\n dateTime: Date\r\n /** @format double */\r\n principal: number\r\n /** @format double */\r\n interest: number\r\n}\r\n\r\nexport interface SetTargetRequest {\r\n categoryId: string\r\n startPeriodKey: string\r\n endPeriodKey: string\r\n /** @format double */\r\n value?: number | null\r\n /** @format int32 */\r\n dueDay?: number | null\r\n /** @format date */\r\n dueDate?: Date\r\n repeat: boolean\r\n repeatPeriod?: RepeatPeriod | null\r\n /** @format int32 */\r\n repeatFrequency?: number | null\r\n type: TargetType\r\n}\r\n\r\nexport interface SpecialOfferDto {\r\n id: string\r\n /** @format date */\r\n endDate: Date\r\n isOfferActive: boolean\r\n seen: boolean\r\n /** @format double */\r\n value: number\r\n}\r\n\r\nexport interface StartPaymentRequest {\r\n /** @format uuid */\r\n specialOfferId: string\r\n /** @format uuid */\r\n promoCodeId: string\r\n subscriptionPlanType: SubscriptionPlanType\r\n /** @format int32 */\r\n quantity: number\r\n}\r\n\r\nexport interface SubscriptionDto {\r\n /** @format date */\r\n expiresAt: Date\r\n type: SubscriptionType\r\n isExpired: boolean\r\n}\r\n\r\nexport enum SubscriptionPlanType {\r\n Monthly = 'Monthly',\r\n Annual = 'Annual'\r\n}\r\n\r\nexport enum SubscriptionType {\r\n Trial = 'Trial',\r\n Premium = 'Premium'\r\n}\r\n\r\nexport enum SurveyAction {\r\n Completed = 'Completed',\r\n Skipped = 'Skipped'\r\n}\r\n\r\nexport interface SurveyDto {\r\n /** @format date */\r\n dateTime?: Date\r\n surveyAction?: SurveyAction | null\r\n}\r\n\r\nexport interface TargetDto {\r\n id: string\r\n categoryId: string\r\n /** @format double */\r\n value?: number | null\r\n startPeriodKey: string\r\n endPeriodKey: string\r\n /** @format int32 */\r\n dueDay?: number | null\r\n /** @format date */\r\n dueDate?: Date\r\n repeat: boolean\r\n repeatPeriod?: RepeatPeriod | null\r\n /** @format int32 */\r\n repeatFrequency?: number | null\r\n type: TargetType\r\n}\r\n\r\nexport enum TargetType {\r\n NeededForSpendingMonthly = 'NeededForSpendingMonthly',\r\n NeededForSpendingByDate = 'NeededForSpendingByDate',\r\n SavingsBuilder = 'SavingsBuilder',\r\n SavingsBuilderMonthly = 'SavingsBuilderMonthly',\r\n DebtPayment = 'DebtPayment'\r\n}\r\n\r\nexport enum TimeInterval {\r\n Once = 'Once',\r\n Daily = 'Daily',\r\n Weekly = 'Weekly',\r\n Monthly = 'Monthly',\r\n Quarterly = 'Quarterly',\r\n Yearly = 'Yearly'\r\n}\r\n\r\nexport interface TransactionDraftDto {\r\n id: string\r\n /** @format double */\r\n value: number\r\n currency: string\r\n description: string\r\n bankAccountId?: string | null\r\n categoryId?: string | null\r\n budgetId: string\r\n /** @format date */\r\n date: Date\r\n paidBy: string\r\n paidById: string\r\n transactionType: TransactionType\r\n}\r\n\r\nexport interface TransactionDto {\r\n id: string\r\n /** @format double */\r\n value: number\r\n currency: string\r\n bankAccountId?: string | null\r\n targetBankAccountId?: string | null\r\n budgetId: string\r\n note: string\r\n periodKey: string\r\n /** @format date */\r\n date: Date\r\n paidBy: string\r\n paidById: string\r\n status?: TransactionStatus | null\r\n operationType: OperationType\r\n transactionType: TransactionType\r\n isLinkedToLoanActivity: boolean\r\n}\r\n\r\nexport interface TransactionSplitDto {\r\n id: string\r\n categoryId: string\r\n categoryName: string\r\n categoryType: string\r\n /** @format double */\r\n value: number\r\n currency: string\r\n transactionId: string\r\n bankAccountId?: string | null\r\n budgetId: string\r\n note: string\r\n paidBy: string\r\n paidById: string\r\n periodKey: string\r\n /** @format date */\r\n date: Date\r\n type: TransactionType\r\n transactionTemplateId: string\r\n status?: TransactionStatus | null\r\n}\r\n\r\nexport enum TransactionStatus {\r\n Draft = 'Draft',\r\n Regular = 'Regular'\r\n}\r\n\r\nexport interface TransactionTemplateDto {\r\n id: string\r\n /** @format double */\r\n value: number\r\n currency: string\r\n budgetId: string\r\n bankAccountId?: string | null\r\n note: string\r\n paidBy: string\r\n paidById: string\r\n type: TransactionType\r\n interval: TimeInterval\r\n /** @format date */\r\n startDate: Date\r\n usages?: TransactionTemplateUsageDto[] | null\r\n}\r\n\r\nexport interface TransactionTemplateSplitDto {\r\n id: string\r\n categoryId: string\r\n categoryName: string\r\n categoryType: string\r\n /** @format double */\r\n value: number\r\n currency: string\r\n transactionTemplateId: string\r\n}\r\n\r\nexport interface TransactionTemplateUsageDto {\r\n id: string\r\n transactionTemplateId: string\r\n /** @format date */\r\n templateTransactionDate: Date\r\n status: TransactionTemplateUsageStatus\r\n}\r\n\r\nexport enum TransactionTemplateUsageStatus {\r\n Accepted = 'Accepted',\r\n Rejected = 'Rejected'\r\n}\r\n\r\nexport enum TransactionType {\r\n Inflow = 'Inflow',\r\n Outflow = 'Outflow',\r\n Internal = 'Internal'\r\n}\r\n\r\nexport interface UpdateBudgetRequest {\r\n id: string\r\n currency: Currency\r\n name: string\r\n}\r\n\r\nexport interface UpdateCategoryGroupRequest {\r\n id: string\r\n name: string\r\n /** @format int32 */\r\n order: number\r\n}\r\n\r\nexport interface UpdateCategoryRequest {\r\n id: string\r\n name: string\r\n}\r\n\r\nexport interface UpdateLoanActivityRequest {\r\n loanId: string\r\n id: string\r\n value?: any\r\n /** @format date */\r\n date: Date\r\n bankAccountId?: string | null\r\n}\r\n\r\nexport interface UpdateLoanRequest {\r\n loanId: string\r\n name: string\r\n}\r\n\r\nexport interface UpdateProfileRequest {\r\n /** @format uuid */\r\n userId: string\r\n name: string\r\n secret: string\r\n}\r\n\r\nexport interface UpdateReconcileBankAccountReqeust {\r\n transactionId: string\r\n bankAccountId: string\r\n /** @format double */\r\n value: number\r\n /** @format date */\r\n date: Date\r\n}\r\n\r\nexport interface UpdateReminderSettingsRequest {\r\n reminderDay?: DayOfWeek | null\r\n /** @format int32 */\r\n reminderHour?: number | null\r\n /** @format int32 */\r\n reminderMinute?: number | null\r\n isBudgetingReminderActive: boolean\r\n}\r\n\r\nexport interface UpdateTransactionRequest {\r\n transactionId: string\r\n bankAccountId: string\r\n splits?: BaseTransactionCategorySplitDto[] | null\r\n budgetId: string\r\n /** @format date */\r\n date: Date\r\n /** @format double */\r\n value: number\r\n currency: string\r\n note: string\r\n type: TransactionType\r\n}\r\n\r\nexport interface UpdateTransactionTemplateRequest {\r\n transactionTemplateId: string\r\n bankAccountId?: string | null\r\n splits?: BaseTransactionCategorySplitDto[] | null\r\n expensePlans?: BaseTransactionCategorySplitDto[] | null\r\n /** @format date */\r\n startDate: Date\r\n /** @format double */\r\n value: number\r\n currency: string\r\n note: string\r\n interval: TimeInterval\r\n type: TransactionType\r\n}\r\n\r\nexport interface UpdateTransferRequest {\r\n transactionId: string\r\n budgetId: string\r\n /** @format date */\r\n date: Date\r\n /** @format double */\r\n value: number\r\n currency: string\r\n note: string\r\n}\r\n\r\nexport interface UpsertFilterRequest {\r\n id: string\r\n budgetId: string\r\n name: string\r\n categories?: string[] | null\r\n bankAccounts?: string[] | null\r\n}\r\n\r\nexport interface UseTransactionTemplateRequest {\r\n transactionId: string\r\n transactionTemplateId: string\r\n bankAccountId: string\r\n /** @format date */\r\n date: Date\r\n /** @format date */\r\n templateTransactionDate: Date\r\n /** @format double */\r\n value: number\r\n currency: string\r\n note: string\r\n splits?: BaseTransactionCategorySplitDto[] | null\r\n expensePlans?: BaseTransactionCategorySplitDto[] | null\r\n type: TransactionType\r\n}\r\n\r\nexport interface UserDto {\r\n id: string\r\n email: string\r\n name: string\r\n /** @format date */\r\n createdAt?: Date\r\n finishedOnboarding: boolean\r\n isEmailConfirmed: boolean\r\n /** @format int32 */\r\n seenCount: number\r\n isDisabled: boolean\r\n referral: string\r\n}\r\n\r\nexport interface UserSettingsDto {\r\n isBudgetingReminderActive: boolean\r\n defaultBudgetId: string\r\n defaultBankAccountId: string\r\n reminderDay?: DayOfWeek | null\r\n /** @format int32 */\r\n reminderHour: number\r\n /** @format int32 */\r\n reminderMinute: number\r\n lastSeenPeriodKey?: string | null\r\n language: Language\r\n}\r\n","import { UserManager, UserManagerSettings } from 'oidc-client-ts'\r\nimport useUserManagerSettings from './useUseManagerSettings'\r\nimport { Log } from 'oidc-client-ts'\r\n\r\nexport default class AuthService {\r\n settings: UserManagerSettings\r\n userManager: UserManager\r\n\r\n constructor() {\r\n this.settings = useUserManagerSettings()\r\n this.userManager = new UserManager(this.settings)\r\n // Set debug to true to see console logs\r\n const debug = false\r\n\r\n if (debug) {\r\n Log.setLevel(Log.DEBUG)\r\n Log.setLogger(console)\r\n }\r\n }\r\n\r\n async isLoggedInAsync() {\r\n return await this.userManager.getUser().then((user) => {\r\n return user != null && !user.expired\r\n })\r\n }\r\n\r\n async silentLogin() {\r\n await this.userManager.signinSilent()\r\n }\r\n\r\n async getUserAsync() {\r\n return await this.userManager.getUser()\r\n }\r\n\r\n async getUserIdAsync() {\r\n return await this.userManager.getUser().then((data) => {\r\n return data?.profile?.sub\r\n })\r\n }\r\n\r\n async loginAsync(redirectUrl: string | null = null) {\r\n return this.userManager.signinRedirect({\r\n state: redirectUrl ?? window.location.href\r\n })\r\n }\r\n\r\n async logoutAsync(redirectUrl: string | null = null) {\r\n await this.userManager.signoutRedirect({\r\n state: redirectUrl ?? window.location.href\r\n })\r\n }\r\n\r\n async getAccessTokenAsync() {\r\n return await this.userManager.getUser().then((data) => {\r\n return data?.id_token\r\n })\r\n }\r\n\r\n async clearStaleStateAsync() {\r\n await this.userManager.clearStaleState()\r\n }\r\n}\r\n\r\nconst authService = new AuthService()\r\nexport const useAuthService = () => authService\r\n","import { UserManagerSettings, WebStorageStateStore } from 'oidc-client-ts'\r\nimport { CookieStorage } from 'cookie-storage'\r\nimport dayjs from 'dayjs'\r\n\r\nconst cookieStorage = new CookieStorage({\r\n expires: dayjs().add(14, 'day').toDate(),\r\n domain: process.env.VUE_APP_APP_DOMAIN,\r\n path: '/'\r\n})\r\n\r\nexport default function useUserManagerSettings(): UserManagerSettings {\r\n return {\r\n userStore: new WebStorageStateStore({ store: cookieStorage }),\r\n stateStore: new WebStorageStateStore({ store: cookieStorage }),\r\n authority: process.env.VUE_APP_IS4_API_BASE_URL!,\r\n client_id: 'easybudget.client',\r\n redirect_uri: `${process.env.VUE_APP_APP_BASE_URL}/callback`,\r\n automaticSilentRenew: true,\r\n silent_redirect_uri: `${process.env.VUE_APP_APP_BASE_URL}/silentRenew`,\r\n response_type: 'code',\r\n scope: 'openid profile easybudget.api',\r\n post_logout_redirect_uri: `${process.env.VUE_APP_APP_BASE_URL}`,\r\n filterProtocolClaims: true\r\n }\r\n}\r\n","import { BudgetDto } from '@/api/contracts/models'\r\nimport { Ref, ref, watch } from 'vue'\r\nimport { useBudgetsQuery } from './useBudgetsQuery'\r\n\r\nexport function useBudgetQuery(\r\n id: Ref,\r\n defaultValue?: BudgetDto\r\n) {\r\n const { data } = useBudgetsQuery()\r\n const result = ref(undefined)\r\n\r\n const setBudget = () => {\r\n if (data.value == undefined) {\r\n return\r\n }\r\n\r\n const budget = data.value.find((m) => m.id == id.value)\r\n\r\n if (!budget && defaultValue) {\r\n result.value = defaultValue\r\n } else if (budget) {\r\n result.value = { ...budget! }\r\n } else {\r\n result.value = null\r\n }\r\n }\r\n\r\n watch(\r\n [data],\r\n () => {\r\n setBudget()\r\n },\r\n { immediate: true }\r\n )\r\n\r\n watch([id], () => {\r\n setBudget()\r\n })\r\n\r\n return result\r\n}\r\n","import { useBudgetApi } from '@/api/Budget'\r\nimport { QueryClient, useQuery } from 'vue-query'\r\nimport { BudgetDto } from '@/api/contracts/models'\r\nimport { ref } from 'vue'\r\nimport QueryKeys from '@/vue-query/QueryKeys'\r\n\r\nexport function useBudgetsQuery({ enabled } = { enabled: ref(true) }) {\r\n const client = useBudgetApi()\r\n return useQuery([QueryKeys.Budget], () => client.getBudgets(), {\r\n enabled\r\n })\r\n}\r\n\r\nexport function useBudgetsQueryPrefetch(\r\n queryClient: QueryClient\r\n): Promise {\r\n const client = useBudgetApi()\r\n return queryClient.prefetchQuery([QueryKeys.Budget], () =>\r\n client.getBudgets()\r\n )\r\n}\r\n","import { useSubscriptionApi } from '@/api/Subscription'\r\nimport { QueryClient, useQuery } from 'vue-query'\r\nimport QueryKeys from '@/vue-query/QueryKeys'\r\nimport { SubscriptionDto } from '@/api/contracts/models'\r\n\r\nexport function useSubscriptionQuery() {\r\n const client = useSubscriptionApi()\r\n return useQuery([QueryKeys.Subscription], () => client.getUserSubscription())\r\n}\r\n\r\nexport function useSubscriptionQueryPrefetch(\r\n queryClient: QueryClient\r\n): Promise {\r\n const client = useSubscriptionApi()\r\n return queryClient.prefetchQuery(\r\n [QueryKeys.Subscription],\r\n () => client.getUserSubscription()\r\n )\r\n}\r\n","import { useUserProfileApi } from '@/api/UserProfile'\r\nimport { QueryClient, useQuery } from 'vue-query'\r\nimport QueryKeys from '@/vue-query/QueryKeys'\r\nimport { UserDto } from '@/api/contracts/models'\r\n\r\nexport function useUserProfileQuery() {\r\n const client = useUserProfileApi()\r\n\r\n return useQuery([QueryKeys.UserProfile], () => client.get())\r\n}\r\n\r\nexport function useUserProfileQueryPrefetch(\r\n queryClient: QueryClient\r\n): Promise {\r\n const client = useUserProfileApi()\r\n return queryClient.prefetchQuery([QueryKeys.UserProfile], () =>\r\n client.get()\r\n )\r\n}\r\n","import { defineStore } from 'pinia'\r\nimport { useParams } from '../useParams'\r\nimport { useBudgetQuery } from '../queries/useBudgetQuery'\r\nimport { Currency } from '@/api/contracts/models'\r\n\r\nexport const useBudgetStore = defineStore('budget', () => {\r\n const { budgetId } = useParams()\r\n\r\n const budget = useBudgetQuery(budgetId)\r\n\r\n const currencyLocale = () => {\r\n if (!budget.value?.currency) {\r\n return 'pl-PL'\r\n }\r\n\r\n switch (budget.value?.currency) {\r\n case Currency.PLN:\r\n return 'pl-PL'\r\n default:\r\n return 'en-EN'\r\n }\r\n }\r\n\r\n return {\r\n budget,\r\n currencyLocale\r\n }\r\n})\r\n","import { computed } from 'vue'\r\nimport { useWindowSize } from 'vue-window-size'\r\n\r\nexport function useDeviceInfo() {\r\n const { width } = useWindowSize()\r\n const isMobile = computed(() => width.value <= 992)\r\n const mobileOS = computed(() => getMobileOperatingSystem())\r\n\r\n return {\r\n isMobile,\r\n mobileOS\r\n }\r\n}\r\n\r\nfunction getMobileOperatingSystem() {\r\n const userAgent = navigator.userAgent\r\n\r\n if (/windows phone/i.test(userAgent)) {\r\n return 'Windows Phone'\r\n }\r\n\r\n if (/android/i.test(userAgent)) {\r\n return 'Android'\r\n }\r\n\r\n if (/iPad|iPhone|iPod/.test(userAgent)) {\r\n return 'iOS'\r\n }\r\n\r\n return 'unknown'\r\n}\r\n","import { Events } from '@/types/types'\r\nimport mitt from 'mitt'\r\n\r\nconst eventBus = mitt()\r\nexport function useEventBus() {\r\n return eventBus\r\n}\r\n","import { useEventBus } from './useEventBus'\r\n\r\nexport function useFreshDesk() {\r\n const freshDesk = (window as any).FreshworksWidget\r\n const hideLauncher = () => {\r\n freshDesk('hide', 'launcher')\r\n }\r\n\r\n const openWidget = (articleId?: string) => {\r\n if (articleId) {\r\n freshDesk('open', 'article', { id: articleId })\r\n } else {\r\n freshDesk('open')\r\n }\r\n\r\n useEventBus().emit('helpOpened')\r\n }\r\n\r\n const openContactForm = () => {\r\n freshDesk('open', 'ticketForm')\r\n }\r\n\r\n return {\r\n hideLauncher,\r\n openWidget,\r\n openContactForm\r\n }\r\n}\r\n","import { ExpenseType } from '@/api/contracts/models'\r\nimport dayjs from 'dayjs'\r\nimport { computed } from 'vue'\r\nimport { useRouter } from 'vue-router'\r\n\r\nexport function useParams() {\r\n const router = useRouter()\r\n const budgetId = computed(\r\n () => router.currentRoute.value.params.budgetId as string\r\n )\r\n const periodKey = computed(\r\n () =>\r\n (router.currentRoute.value.params.periodKey as string) ??\r\n dayjs().toDate().toPeriodKey()\r\n )\r\n const categoryGroupId = computed(\r\n () => router.currentRoute.value.params.categoryGroupId as string\r\n )\r\n const categoryId = computed(\r\n () => router.currentRoute.value.params.categoryId as string\r\n )\r\n const transactionId = computed(\r\n () => router.currentRoute.value.params.transactionId as string\r\n )\r\n const expenseType = computed(\r\n () => router.currentRoute.value.params.expenseType as ExpenseType\r\n )\r\n\r\n const onboardingProgress = computed(\r\n () => router.currentRoute.value.params.onboardingProgress as string\r\n )\r\n\r\n const transactionTemplateId = computed(\r\n () => router.currentRoute.value.params.transactionTemplateId as string\r\n )\r\n\r\n const transactionDraftIdQuery = computed(\r\n () => router.currentRoute.value.query.transactionDraftId as string\r\n )\r\n\r\n const transactionDraftId = computed(\r\n () => router.currentRoute.value.params.transactionDraftId as string\r\n )\r\n\r\n const templateDate = computed(\r\n () => router.currentRoute.value.params.templateDate as string\r\n )\r\n\r\n const bankAccountId = computed(\r\n () => router.currentRoute.value.params.bankAccountId as string\r\n )\r\n\r\n const loanId = computed(\r\n () => router.currentRoute.value.params.loanId as string\r\n )\r\n\r\n return {\r\n budgetId,\r\n periodKey,\r\n categoryId,\r\n categoryGroupId,\r\n transactionId,\r\n expenseType,\r\n onboardingProgress,\r\n transactionTemplateId,\r\n templateDate,\r\n bankAccountId,\r\n transactionDraftIdQuery,\r\n transactionDraftId,\r\n loanId\r\n }\r\n}\r\n","import { ref } from 'vue'\r\n\r\nconst currentTheme = ref<'dark' | 'light' | undefined>(undefined)\r\n\r\nexport default function useThemes() {\r\n return {\r\n init,\r\n setTheme,\r\n currentTheme\r\n }\r\n}\r\n\r\nconst themeKey = 'easy-budget-theme'\r\nconst defaultTheme = 'light'\r\n\r\nconst changeTheme = (newTheme) => {\r\n const themeElement = document.getElementById('theme-link')\r\n if (themeElement) {\r\n const href = themeElement.getAttribute('href')\r\n const element = document.querySelector('html') // v4\r\n if (newTheme === 'dark') {\r\n element?.classList.add('app-dark') // v4\r\n } else {\r\n element?.classList.remove('app-dark') // v4\r\n }\r\n\r\n if (href?.includes('light')) {\r\n themeElement!.setAttribute(\r\n 'href',\r\n themeElement.getAttribute('href')!.replace('light', newTheme)\r\n )\r\n } else {\r\n themeElement!.setAttribute(\r\n 'href',\r\n themeElement.getAttribute('href')!.replace('dark', newTheme)\r\n )\r\n }\r\n }\r\n}\r\n\r\nfunction setTheme(theme: 'dark' | 'light') {\r\n localStorage.setItem(themeKey, theme)\r\n currentTheme.value = theme\r\n changeTheme(theme)\r\n}\r\n\r\nfunction init() {\r\n let theme = localStorage.getItem(themeKey) as 'dark' | 'light' | null\r\n\r\n if (theme == null) {\r\n theme = defaultTheme\r\n }\r\n\r\n setTheme(theme)\r\n}\r\n","import Analytics from 'analytics'\r\nimport googleTagManager from '@analytics/google-tag-manager'\r\nimport googleAnalytics from '@analytics/google-analytics'\r\nimport { EventName } from '@/types/types'\r\n\r\nconst measurementId =\r\n process.env.VUE_APP_EB_ENV === 'Production' ? 'G-R6WZV6LBC7' : 'G-FEB7PRRFCP'\r\n\r\nconst getActivePlugins = () => {\r\n if (process.env.VUE_APP_EB_ENV === 'Production') {\r\n return [\r\n googleTagManager({\r\n containerId: 'GTM-T99D4V7'\r\n }),\r\n googleAnalytics({\r\n trackingId: 'UA-177513962-2',\r\n measurementIds: measurementId\r\n })\r\n ]\r\n }\r\n\r\n return [\r\n googleAnalytics({\r\n measurementIds: measurementId\r\n })\r\n ]\r\n}\r\n\r\nconst shouldRunInDebugMode = () => {\r\n if (process.env.VUE_APP_EB_ENV === 'Production') {\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n\r\nconst analytics = Analytics({\r\n app: 'EasyBudget',\r\n plugins: getActivePlugins(),\r\n debug: shouldRunInDebugMode()\r\n})\r\n\r\nexport const publishEvent = (eventName: EventName, payload = {}) => {\r\n analytics.track(eventName, payload)\r\n}\r\n\r\nexport function useGoogleAnalyticsData() {\r\n const id = measurementId.slice(2)\r\n const pattern = new RegExp('_ga_' + id + '=GS\\\\d\\\\.\\\\d\\\\.(.+?)(?:;|$)')\r\n const match = document.cookie.match(pattern)\r\n const parts = match?.[1].split('.')\r\n\r\n if (!parts) {\r\n return undefined\r\n }\r\n\r\n return {\r\n ga_client_id: getGAClientId(),\r\n ga_session_id: parts.shift(),\r\n ga_session_number: parts.shift()\r\n }\r\n}\r\n\r\nfunction getGAClientId() {\r\n const pattern = new RegExp('_ga=GA\\\\d\\\\.\\\\d\\\\.(.+?)(?:;|$)')\r\n const match = document.cookie.match(pattern)\r\n return match?.[1]\r\n}\r\n","import { createI18n } from 'vue-i18n'\r\nimport { useI18n } from 'vue-i18n'\r\nimport pl from './locales/pl.json'\r\nimport en from './locales/en.json'\r\nimport { Language } from '@/api/contracts/models'\r\n\r\ntype MessageSchema = typeof pl\r\ntype SupportedLanguages = `${Language}`\r\n\r\nconst i18n = createI18n<[MessageSchema], SupportedLanguages>({\r\n legacy: false,\r\n locale: 'PL',\r\n fallbackLocale: 'EN',\r\n messages: {\r\n PL: pl,\r\n EN: en,\r\n DE: en\r\n }\r\n})\r\n\r\nexport function useInternationalization() {\r\n return i18n\r\n}\r\n\r\nexport function useTranslations() {\r\n const { t } = useI18n<[MessageSchema]>()\r\n return { t }\r\n}\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vShow as _vShow, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-176fc296\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"c-easy-toast\" }\nconst _hoisted_2 = { class: \"c-easy-toast__in\" }\nconst _hoisted_3 = { class: \"c-easy-toast__text\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ProgressBar = _resolveComponent(\"ProgressBar\")!\n\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ProgressBar, {\n class: \"c-easy-toast__progress-bar\",\n value: _ctx.progressBarValue,\n \"show-value\": false\n }, null, 8, [\"value\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.text), 1)\n ]),\n _createElementVNode(\"button\", {\n type: \"button\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.hide && _ctx.hide(...args)))\n }, \"OK\")\n ], 512)), [\n [_vShow, _ctx.isVisible]\n ])\n}","\r\nimport { defineComponent, ref } from 'vue'\r\nimport { useEventBus, useIsMobile } from '../EasyToastPlugin'\r\nimport AWN from 'awesome-notifications'\r\nimport ProgressBar from 'primevue/progressbar'\r\n\r\ntype Toast = {\r\n success(message: string)\r\n warning(message: string)\r\n}\r\n\r\nexport default defineComponent({\r\n components: {\r\n ProgressBar\r\n },\r\n setup() {\r\n const duration = 5000\r\n const desktopToast = new AWN({\r\n position: 'bottom-right',\r\n labels: { success: 'SUKCES' }\r\n }) as Toast\r\n\r\n let timeout\r\n let timer\r\n const eventBus = useEventBus()\r\n const text = ref('')\r\n const isVisible = ref(false)\r\n const isMobile = useIsMobile()\r\n const progressBarValue = ref(0)\r\n\r\n const startProgressBar = () => {\r\n const interval = 50\r\n const step = 100 / (duration / interval)\r\n timer = setInterval(() => (progressBarValue.value += step), interval)\r\n }\r\n\r\n const show = (msg) => {\r\n window.clearTimeout(timeout)\r\n\r\n progressBarValue.value = 0\r\n text.value = msg\r\n isVisible.value = true\r\n\r\n startProgressBar()\r\n timeout = setTimeout(() => hide(), duration)\r\n }\r\n\r\n const hide = () => {\r\n text.value = ''\r\n isVisible.value = false\r\n window.clearTimeout(timeout)\r\n window.clearInterval(timer)\r\n }\r\n\r\n eventBus.on('notifySuccess', (msg) => {\r\n if (isMobile.value) {\r\n show(msg)\r\n } else {\r\n desktopToast.success(msg)\r\n }\r\n })\r\n\r\n eventBus.on('notifyWarning', (msg) => {\r\n if (isMobile.value) {\r\n show(msg)\r\n } else {\r\n desktopToast.warning(msg)\r\n }\r\n })\r\n\r\n return {\r\n text,\r\n isVisible,\r\n hide,\r\n progressBarValue\r\n }\r\n }\r\n})\r\n","import { render } from \"./EasyToast.vue?vue&type=template&id=176fc296&scoped=true&ts=true\"\nimport script from \"./EasyToast.vue?vue&type=script&lang=ts\"\nexport * from \"./EasyToast.vue?vue&type=script&lang=ts\"\n\nimport \"./EasyToast.vue?vue&type=style&index=0&id=176fc296&lang=scss\"\nimport \"./EasyToast.vue?vue&type=style&index=1&id=176fc296&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\easy-budget\\\\app\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-176fc296\"]])\n\nexport default __exports__","import { Emitter } from 'mitt'\r\nimport { App, ComputedRef, createApp, Plugin } from 'vue'\r\nimport EasyToast from './components/EasyToast.vue'\r\nimport { EasyToastEvents, EasyToastOptions } from './types'\r\n\r\nlet eventBus\r\nlet isMobile\r\n\r\nexport const EasyToastPlugin: Plugin = {\r\n install(app: App, options: EasyToastOptions) {\r\n if (!options.eventBus) {\r\n console.error(\r\n 'Emitter (mitt) not provided with EasyToastPlugin app.use().'\r\n )\r\n }\r\n\r\n isMobile = options.isMobile\r\n eventBus = options.eventBus\r\n const div = document.createElement('div')\r\n document.body.appendChild(div)\r\n const easyToastInstance = createApp(EasyToast)\r\n easyToastInstance.mount(div)\r\n }\r\n}\r\n\r\nexport function useEventBus(): Emitter {\r\n return eventBus\r\n}\r\n\r\nexport function useIsMobile(): ComputedRef {\r\n return isMobile\r\n}\r\n","import { RouteRecordRaw } from 'vue-router'\r\n\r\nconst authRoutes: Array = [\r\n {\r\n path: '/silentRenew',\r\n name: 'silentRenew',\r\n component: () => import('../views/auth/SilentRenew.vue')\r\n },\r\n {\r\n path: '/callback',\r\n name: 'callback',\r\n component: () => import('../views/auth/Callback.vue')\r\n },\r\n // {\r\n // path: \"/accept-invitation\",\r\n // name: \"AcceptInvitation\",\r\n // component: () => import(\"../views/AcceptInvitation.vue\")\r\n // },\r\n {\r\n path: '/logout',\r\n name: 'logout',\r\n component: () => import('../views/auth/Logout.vue')\r\n }\r\n]\r\n\r\nexport default authRoutes\r\n","import { useAuthService } from './AuthService'\r\n\r\nconst authService = useAuthService()\r\nconst authGuard = async (to, from, next) => {\r\n if (\r\n (await authService.isLoggedInAsync()) ||\r\n process.env.VUE_APP_API_MODE === 'Mock'\r\n ) {\r\n next()\r\n } else {\r\n await authService.loginAsync(window.location.origin + to.fullPath)\r\n }\r\n}\r\n\r\nexport default authGuard\r\n","import LoadingComponent from '@/components/LoadingComponent.vue'\r\nimport ErrorComponent from '@/components/ErrorComponent.vue'\r\nimport { defineAsyncComponent, defineComponent, h } from 'vue'\r\n\r\nexport const lazyLoadView = (loader, showLoadingComponent = true) => {\r\n return () =>\r\n Promise.resolve(\r\n defineComponent({\r\n render() {\r\n return h(\r\n defineAsyncComponent({\r\n loader: loader,\r\n loadingComponent: showLoadingComponent\r\n ? LoadingComponent\r\n : undefined,\r\n delay: 100,\r\n errorComponent: ErrorComponent,\r\n timeout: 30000\r\n })\r\n )\r\n }\r\n })\r\n )\r\n}\r\n","import { SubscriptionDto } from '@/api/contracts/models'\r\nimport { useSubscriptionQueryPrefetch } from '@/composables/queries/useSubscriptionQuery'\r\nimport QueryKeys from '@/vue-query/QueryKeys'\r\nimport { QueryClient } from 'vue-query'\r\nconst myClient = new QueryClient()\r\n\r\nconst subscriptionGuard = async (to, from, next) => {\r\n const queryClient = myClient\r\n let data = queryClient.getQueriesData(\r\n QueryKeys.Subscription\r\n )\r\n\r\n if (data.length === 0) {\r\n await useSubscriptionQueryPrefetch(queryClient)\r\n data = queryClient.getQueriesData(QueryKeys.Subscription)\r\n }\r\n\r\n if (!data[0][1]?.isExpired) {\r\n next()\r\n } else {\r\n next({ name: 'subscriptionExpired' })\r\n }\r\n}\r\n\r\nexport default subscriptionGuard\r\n","import { UserDto } from '@/api/contracts/models'\r\nimport { useUserProfileQueryPrefetch } from '@/composables/queries/useUserProfileQuery'\r\nimport QueryKeys from '@/vue-query/QueryKeys'\r\nimport { QueryClient } from 'vue-query'\r\nconst myClient = new QueryClient()\r\n\r\nconst accountDisabledGuard = async (to, from, next) => {\r\n const queryClient = myClient\r\n let data = queryClient.getQueriesData(QueryKeys.UserProfile)\r\n\r\n if (data.length === 0) {\r\n await useUserProfileQueryPrefetch(queryClient)\r\n data = queryClient.getQueriesData(QueryKeys.UserProfile)\r\n }\r\n\r\n if (!data[0][1]?.isDisabled) {\r\n next()\r\n } else {\r\n next({ name: 'logout' })\r\n }\r\n}\r\n\r\nexport default accountDisabledGuard\r\n","import authRoutes from './auth'\r\nimport authGuard from '@/auth/AuthGuard'\r\nimport { RouteRecordRaw } from 'vue-router'\r\nimport { lazyLoadView } from './helpers'\r\nimport subscriptionGuard from './subscriptionGuard'\r\nimport accountDisabledGuard from './accountDisabledGuard'\r\nexport const desktopRoutes: Array = [\r\n ...authRoutes,\r\n {\r\n path: '/health',\r\n name: 'health',\r\n component: lazyLoadView(\r\n () => import(/* webpackPrefetch: true */ '../views/_Health.vue')\r\n )\r\n },\r\n {\r\n path: '/',\r\n name: 'app',\r\n beforeEnter: [authGuard, accountDisabledGuard],\r\n component: () =>\r\n import(/* webpackPrefetch: true */ '../views/MainView.vue'),\r\n children: [\r\n {\r\n path: 'subscription-expired',\r\n name: 'subscriptionExpired',\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SubscriptionExpired.vue'\r\n )\r\n )\r\n },\r\n {\r\n path: 'subscription-extended',\r\n name: 'subscriptionExtended',\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SubscriptionExtended.vue'\r\n )\r\n )\r\n },\r\n {\r\n path: 'test-data/:secret/:transactionsPerMonth',\r\n name: 'testData',\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/test-data/TestDataGenerate.vue'\r\n )\r\n )\r\n },\r\n {\r\n path: 'demo-data/:secret',\r\n name: 'demoData',\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/test-data/DemoDataGenerate.vue'\r\n )\r\n )\r\n },\r\n {\r\n path: 'budget',\r\n beforeEnter: subscriptionGuard,\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../layouts/LayoutDefault.vue'\r\n )\r\n ),\r\n children: [\r\n {\r\n path: ':budgetId/import-budget',\r\n name: 'budgetImport',\r\n meta: { showSidePanel: false },\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/ImportBudgetView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/statistics',\r\n name: 'statistics',\r\n meta: { showSidePanel: false },\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/StatisticsViewDesktop.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/import',\r\n name: 'importTransactions',\r\n meta: { showSidePanel: false },\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/ImportTransactionsView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/settings',\r\n name: 'budgetSettings',\r\n meta: { showSidePanel: false },\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/BudgetSettingsViewDesktop.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey',\r\n alias: [':budgetId'],\r\n name: 'budget',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/BudgetViewContainerDesktop.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/loans/:loanId?',\r\n name: 'loans',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../features/loans/views/LoanView.vue'\r\n )\r\n )\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'budgets',\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../layouts/LayoutEmpty.vue'\r\n )\r\n ),\r\n children: [\r\n {\r\n path: '',\r\n name: 'budgetsList',\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SettingsBudgetListViewDesktop.vue'\r\n )\r\n )\r\n }\r\n ]\r\n },\r\n {\r\n path: 'settings',\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../layouts/LayoutEmpty.vue'\r\n )\r\n ),\r\n children: [\r\n {\r\n path: 'subscription',\r\n name: 'settingsSubscription',\r\n meta: { header: 'Subskrypcja', showSidePanel: false },\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SettingsSubscriptionViewDesktop.vue'\r\n )\r\n )\r\n },\r\n {\r\n path: 'reminders',\r\n name: 'settingsReminder',\r\n meta: { header: 'Przypomnienia', showSidePanel: false },\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SettingsReminderViewDesktop.vue'\r\n )\r\n )\r\n },\r\n {\r\n path: 'referral',\r\n name: 'settingsReferral',\r\n meta: { header: 'Polecaj', showSidePanel: false },\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SettingsReferralViewDesktop.vue'\r\n )\r\n )\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n]\r\n","import { RouteRecordRaw } from 'vue-router'\r\nimport authRoutes from './auth'\r\nimport authGuard from '@/auth/AuthGuard'\r\nimport { lazyLoadView } from './helpers'\r\nimport accountDisabledGuard from './accountDisabledGuard'\r\nimport subscriptionGuard from './subscriptionGuard'\r\n\r\nexport const mobileRoutes: Array = [\r\n ...authRoutes,\r\n {\r\n path: '/health',\r\n name: 'health',\r\n component: lazyLoadView(\r\n () => import(/* webpackPrefetch: true */ '../views/_Health.vue')\r\n )\r\n },\r\n {\r\n path: '/',\r\n name: 'app',\r\n beforeEnter: [authGuard, accountDisabledGuard],\r\n component: () =>\r\n import(/* webpackPrefetch: true */ '../views/MainView.vue'),\r\n\r\n children: [\r\n {\r\n path: 'subscription-expired',\r\n name: 'subscriptionExpired',\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SubscriptionExpired.vue'\r\n )\r\n )\r\n },\r\n {\r\n path: 'subscription-extended',\r\n name: 'subscriptionExtended',\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SubscriptionExtended.vue'\r\n )\r\n )\r\n },\r\n {\r\n path: 'special-offer',\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../layouts/LayoutMobileDialog.vue'\r\n )\r\n ),\r\n children: [\r\n {\r\n path: '',\r\n name: 'specialOffer',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/SpecialOfferView.vue'\r\n )\r\n )\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'settings',\r\n component: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../layouts/LayoutMobileDialog.vue'\r\n )\r\n ),\r\n children: [\r\n {\r\n path: '',\r\n name: 'settings',\r\n meta: { header: 'Ustawienia' },\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SettingsViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: 'subscription',\r\n name: 'settingsSubscription',\r\n meta: { header: 'Subskrypcja' },\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SettingsSubscriptionViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: 'reminder',\r\n name: 'settingsReminder',\r\n meta: { header: 'Powiadomienia' },\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SettingsReminderViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: 'referral',\r\n name: 'settingsReferral',\r\n meta: { header: 'Polecaj' },\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SettingsReferralViewMobile.vue'\r\n )\r\n )\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'budget',\r\n beforeEnter: subscriptionGuard,\r\n component: lazyLoadView(\r\n () => import('../layouts/LayoutMobile.vue')\r\n ),\r\n children: [\r\n {\r\n path: ':budgetId/settings',\r\n name: 'budgetSettings',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/BudgetSettingsViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/statistics',\r\n name: 'statistics',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/StatisticsViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey',\r\n alias: [':budgetId'],\r\n name: 'budget',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/BudgetViewContainerMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/bankAccounts',\r\n name: 'bankAccounts',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/BankAccountsView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/bankAccounts/:bankAccountId',\r\n name: 'bankAccount',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/BankAccountView.vue'\r\n )\r\n )\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: 'budget',\r\n beforeEnter: subscriptionGuard,\r\n component: lazyLoadView(\r\n () => import('../layouts/LayoutMobileDialog.vue')\r\n ),\r\n children: [\r\n {\r\n path: ':budgetId/period/:periodKey/assign',\r\n name: 'budgetAssign',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/BudgetAssignViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/auto-assign',\r\n name: 'autoAssign',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/AutoAssignView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/assignment-history',\r\n name: 'assignmentHistory',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/AssignmentHistoryView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/categories/:categoryId',\r\n name: 'budgetCategory',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/CategorySideviewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/categories/:categoryId/move-money',\r\n name: 'moveMoney',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/MoveMoneyView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/categories/:categoryId/move',\r\n name: 'moveCategory',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/MoveCategoryView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/categories/:categoryId/target',\r\n name: 'targetView',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/TargetView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/categories/:categoryId/move-transactions',\r\n name: 'moveTransactions',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/MoveTransactionsView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/categories/:categoryId/cover',\r\n name: 'coverOverspending',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/CoverOverspendingView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/categories/:categoryId?/transactions/:transactionId?',\r\n name: 'budgetCategoryTransaction',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/TransactionViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/categories/:categoryId?/templates/:transactionTemplateId?',\r\n name: 'transactionTemplate',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/TransactionTemplateView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/categories/:categoryId?/templates/:transactionTemplateId/date/:templateDate/confirm',\r\n name: 'transactionDraft',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/TransactionDraftView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/period/:periodKey/transaction-draft/:transactionDraftId',\r\n name: 'transactionDraftIntegration',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/IntegrationTransactionDraftView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/group/:categoryGroupId/category/:categoryId',\r\n name: 'budgetCategoryMobile',\r\n meta: { header: 'Edytuj kategorię' },\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/CategoryViewMobile.vue'\r\n )\r\n )\r\n },\r\n props: {\r\n default: true,\r\n mobile: (route) => ({\r\n onDeleteBackValue: route.params.onDeleteBackValue\r\n })\r\n }\r\n },\r\n {\r\n path: ':budgetId/group/:categoryGroupId/category/:categoryId',\r\n name: 'budgetCategoryDeleteMobile',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/CategoryDeleteViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/group/:categoryGroupId',\r\n name: 'budgetCategoryAddMobile',\r\n meta: { header: 'Dodaj kategorię' },\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/CategoryViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/category-group/:categoryGroupId?',\r\n name: 'budgetCategoryGroupMobile',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/CategoryGroupViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/category-group/:categoryGroupId/delete',\r\n name: 'budgetCategoryGroupDeleteMobile',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/CategoryGroupDeleteViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/:periodKey/transactions',\r\n name: 'budgetTransaction',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/TransactionViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId?/edit',\r\n name: 'budgetModal',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/BudgetModalViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/invite',\r\n name: 'budgetInvite',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/BudgetInviteViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId?/list',\r\n name: 'budgetsList',\r\n meta: { header: 'Twoje budżety' },\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/SettingsBudgetListViewMobile.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/bankAccount/:bankAccountId?/modal',\r\n name: 'bankAccountEdit',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/BankAccountModalView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/bankAccount/:bankAccountId?/close-modal',\r\n name: 'bankAccountClose',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/BankAccountCloseModalView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/bankAccount/:bankAccountId/reconcile',\r\n name: 'bankAccountReconcile',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/BankAccountReconcileView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/bankAccount/:bankAccountId/reconcile-edit',\r\n name: 'bankAccountReconcileEdit',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/BankAccountReconcileEditView.vue'\r\n )\r\n )\r\n }\r\n },\r\n {\r\n path: ':budgetId/bankAccount/:bankAccountId/transfer',\r\n name: 'bankAccountTransfer',\r\n components: {\r\n main: lazyLoadView(\r\n () =>\r\n import(\r\n /* webpackPrefetch: true */ '../views/mobile/BankAccountTransferView.vue'\r\n )\r\n )\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n]\r\n","import { useDeviceInfo } from '@/composables/useDeviceInfo'\r\nimport { createRouter, createWebHistory } from 'vue-router'\r\nimport { desktopRoutes } from './desktopRoutes'\r\nimport { mobileRoutes } from './mobileRoutes'\r\n\r\nconst { isMobile } = useDeviceInfo()\r\n\r\nexport const router = createRouter({\r\n history: createWebHistory(process.env.BASE_URL),\r\n routes: isMobile.value ? mobileRoutes : desktopRoutes\r\n})\r\n","import { ValidationRuleWithoutParams } from '@vuelidate/core'\r\n\r\nexport const splitsEqual = {\r\n $validator: splitsEqual$1,\r\n $message: () => {\r\n return `The sum of splits must be equal to value of transaction`\r\n },\r\n $params: {\r\n type: 'splitsEqual'\r\n }\r\n} as ValidationRuleWithoutParams\r\n\r\nfunction splitsEqual$1(value, vm) {\r\n if (vm.splits.length == 1) {\r\n return true\r\n }\r\n\r\n const sumValue = vm.splits.reduce((a, b) => a + b.value, 0)\r\n if (Math.abs(sumValue - Math.abs(vm.value)) > 0.01) {\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n","import * as validators from '@vuelidate/validators'\r\nimport { useInternationalization } from '@/i18n'\r\nconst { createI18nMessage } = validators\r\n\r\nimport * as custom from './customValidators'\r\n\r\nconst withI18nMessage = createI18nMessage({\r\n t: useInternationalization().global.t\r\n})\r\n\r\nexport const required = withI18nMessage(validators.required)\r\n\r\nexport const minValue = (minValue: number) =>\r\n withI18nMessage(\r\n validators.minValue(\r\n Math.round(((minValue as number) + Number.EPSILON) * 100) / 100\r\n ),\r\n {\r\n withArguments: true\r\n }\r\n )\r\n\r\nexport const maxValue = (maxValue: number) =>\r\n withI18nMessage(\r\n validators.maxValue(\r\n Math.round(((maxValue as number) + Number.EPSILON) * 100) / 100\r\n ),\r\n {\r\n withArguments: true\r\n }\r\n )\r\n\r\nexport const minLength = (minLength: number) =>\r\n withI18nMessage(validators.minLength(minLength), {\r\n withArguments: true\r\n })\r\n\r\nexport const splitsEqual = withI18nMessage(custom.splitsEqual)\r\n\r\nexport const email = withI18nMessage(validators.email)\r\n","enum QueryKeys {\r\n Budget = 'budget',\r\n Categories = 'categories',\r\n CategoryGroups = 'categoryGroups',\r\n UserSettings = 'userSettings',\r\n Plans = 'plans',\r\n Subscription = 'subscription',\r\n TransactionSplits = 'transactionSplits',\r\n Transactions = 'transactions',\r\n TransactionDrafts = 'transactionDrafts',\r\n TransactionTemplateSplits = 'transactionTemplateSplits',\r\n TransactionTemplates = 'transactionTemplates',\r\n UserProfile = 'userProfile',\r\n Collaborations = 'collaborations',\r\n Users = 'users',\r\n Offer = 'offer',\r\n Target = 'target',\r\n Onboarding = 'onboarding',\r\n OnboardingEvents = 'onboardingEvents',\r\n BankAccount = 'bankAccount',\r\n NPSSurvey = 'npsSurvey',\r\n ReferralCode = 'referral-code',\r\n AssignmentRecords = 'assignment-records',\r\n Filters = 'filters',\r\n Loans = 'loans',\r\n LoansActivities = 'loans-activities',\r\n LoanSchedule = 'loan-schedule'\r\n}\r\n\r\nexport default QueryKeys\r\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"span\"))\n}","\r\nimport { defineComponent } from 'vue'\r\nexport default defineComponent({})\r\n","import { render } from \"./ErrorComponent.vue?vue&type=template&id=71784ff1&ts=true\"\nimport script from \"./ErrorComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./ErrorComponent.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\easy-budget\\\\app\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"c-loading-component\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ProgressSpinner = _resolveComponent(\"ProgressSpinner\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ProgressSpinner, { style: {\"width\":\"80px\",\"height\":\"80px\"} })\n ]))\n}","\r\nimport { defineComponent } from 'vue'\r\nimport ProgressSpinner from 'primevue/progressspinner'\r\n\r\nexport default defineComponent({\r\n components: {\r\n ProgressSpinner\r\n }\r\n})\r\n","import { render } from \"./LoadingComponent.vue?vue&type=template&id=6ea64a44&ts=true\"\nimport script from \"./LoadingComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./LoadingComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./LoadingComponent.vue?vue&type=style&index=0&id=6ea64a44&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\easy-budget\\\\app\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// 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","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","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};","__webpack_require__.F = {};\n__webpack_require__.E = function(chunkId) {\n\tObject.keys(__webpack_require__.F).map(function(key) {\n\t\t__webpack_require__.F[key](chunkId);\n\t});\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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"73\":\"713e9778\",\"176\":\"8e445673\",\"296\":\"53a4aff8\",\"318\":\"106c4087\",\"489\":\"8ae7c30c\",\"511\":\"a6e58528\",\"621\":\"5dc338ba\",\"754\":\"e076c56f\",\"886\":\"a101af4e\",\"943\":\"09babd3f\",\"1038\":\"e9595286\",\"1070\":\"80bdbe68\",\"1153\":\"3f51ec33\",\"1200\":\"c7ff695a\",\"1235\":\"447a0488\",\"1263\":\"94f91897\",\"1382\":\"63bcd189\",\"1408\":\"eb7506ac\",\"1437\":\"d2463eef\",\"1443\":\"89769047\",\"1675\":\"e187444b\",\"1700\":\"9373cb38\",\"1837\":\"e200b554\",\"1865\":\"6084f8d3\",\"1943\":\"96578bcf\",\"1948\":\"f8e4e073\",\"1977\":\"ae63d058\",\"2051\":\"7b256c66\",\"2147\":\"c0cb78a8\",\"2260\":\"9d06db20\",\"2288\":\"ed45dae3\",\"2305\":\"df3404a7\",\"2341\":\"770d6785\",\"2351\":\"134fa470\",\"2489\":\"fd49a903\",\"2652\":\"ab3e1780\",\"2773\":\"b0fa7927\",\"2778\":\"bc40d1a5\",\"2809\":\"31455b1e\",\"2905\":\"d244db12\",\"2952\":\"6940a66f\",\"3022\":\"1bc3fb55\",\"3027\":\"cd70cc4a\",\"3290\":\"ee0c26de\",\"3317\":\"1510e9ef\",\"3320\":\"c8fad8ec\",\"3374\":\"6ccde57b\",\"3404\":\"9425e9fe\",\"3441\":\"d4b8e20f\",\"3456\":\"7f1d9e73\",\"3628\":\"c18212e1\",\"3649\":\"8c1ff21a\",\"3828\":\"3cba4772\",\"3882\":\"82fe72f2\",\"3893\":\"3b434072\",\"4113\":\"645b78e6\",\"4392\":\"10624d2d\",\"4423\":\"0e8263a6\",\"4725\":\"e0175303\",\"4842\":\"5a2ec4f1\",\"4914\":\"94af5108\",\"5057\":\"c38adb4d\",\"5207\":\"be4ed47d\",\"5258\":\"6f649456\",\"5404\":\"035aa871\",\"5536\":\"72c2a1bf\",\"5647\":\"0025484a\",\"5833\":\"ffc58cdf\",\"5871\":\"e857c7ee\",\"5874\":\"a237c2ed\",\"5931\":\"60f4974b\",\"6034\":\"59d57ea8\",\"6037\":\"542330bd\",\"6038\":\"98449bc2\",\"6107\":\"2035d950\",\"6178\":\"12b98ffb\",\"6292\":\"6e519363\",\"6296\":\"e5176c02\",\"6297\":\"78b9e531\",\"6546\":\"c36bea44\",\"6662\":\"1b72f91a\",\"6673\":\"abd896b5\",\"6793\":\"d420a243\",\"6806\":\"7f1e426b\",\"6977\":\"cd9b7deb\",\"6982\":\"b99dc592\",\"7004\":\"48aee852\",\"7287\":\"0cfd556f\",\"7463\":\"9076783b\",\"7531\":\"7cbba5a7\",\"7780\":\"b21cdd62\",\"7946\":\"1e8eb71b\",\"8299\":\"d73ec481\",\"8463\":\"3b30d42c\",\"8565\":\"56be6beb\",\"8604\":\"ff41c892\",\"8653\":\"33d25ea4\",\"8669\":\"2d34deac\",\"8670\":\"b24ac979\",\"9056\":\"82bd97e7\",\"9335\":\"0875be8a\",\"9337\":\"1d10b005\",\"9367\":\"64748f28\",\"9472\":\"30cec4d3\",\"9575\":\"b2ac42d0\",\"9621\":\"900bd619\",\"9682\":\"c57b62af\",\"9845\":\"b52568bb\",\"9856\":\"6f7d98d4\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"176\":\"63cc4d4e\",\"296\":\"0bf6a1c7\",\"318\":\"ab775172\",\"489\":\"9c9637e1\",\"511\":\"3a444fd6\",\"754\":\"3a444fd6\",\"886\":\"999ef6f8\",\"943\":\"82e3247f\",\"1038\":\"cfe81f76\",\"1235\":\"b2639672\",\"1382\":\"cc882eb7\",\"1408\":\"e0149693\",\"1437\":\"2ea18ed5\",\"1675\":\"45b45fbb\",\"1837\":\"afc9c13f\",\"1865\":\"317d6348\",\"1943\":\"03462c10\",\"1948\":\"05d82d00\",\"2147\":\"da7de547\",\"2260\":\"3c2cad99\",\"2288\":\"091403d1\",\"2305\":\"bcca4b18\",\"2351\":\"b018a3bd\",\"2489\":\"da3d747d\",\"2773\":\"75f14343\",\"2778\":\"7b5f0890\",\"2809\":\"8f1cc75b\",\"2905\":\"9433b20d\",\"2952\":\"a876cddb\",\"3022\":\"16441faa\",\"3027\":\"e6a3058b\",\"3290\":\"69aa9be1\",\"3317\":\"e42e077e\",\"3320\":\"cae0b236\",\"3374\":\"56e4c4fe\",\"3628\":\"596e0545\",\"3649\":\"0468e020\",\"4113\":\"7b5f0890\",\"4423\":\"b695ff1f\",\"4725\":\"4f1dec83\",\"4842\":\"dfa01725\",\"4914\":\"c70fc756\",\"5207\":\"f8b24575\",\"5833\":\"6f77e148\",\"5874\":\"8303c6d0\",\"5931\":\"2e56e091\",\"6038\":\"5446de48\",\"6178\":\"379e56a9\",\"6292\":\"9985645b\",\"6297\":\"c555fc5a\",\"6546\":\"a2d42d82\",\"6673\":\"bb72c7d0\",\"6793\":\"fbf4980b\",\"6977\":\"27edb1c1\",\"6982\":\"e67f83dd\",\"7463\":\"0380ee67\",\"7780\":\"ced05741\",\"8299\":\"21b53f0f\",\"8463\":\"c56f429b\",\"8565\":\"54b288d4\",\"8604\":\"3f46f60b\",\"8653\":\"d8d4e441\",\"9056\":\"2b445374\",\"9367\":\"c96c0424\",\"9472\":\"822ce779\",\"9621\":\"8fd74d6f\",\"9682\":\"d5147895\",\"9845\":\"2d91a694\",\"9856\":\"b0872f8e\"}[chunkId] + \".css\";\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__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"easy-budget:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// 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 = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t4826: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"176\":1,\"296\":1,\"318\":1,\"489\":1,\"511\":1,\"754\":1,\"886\":1,\"943\":1,\"1038\":1,\"1235\":1,\"1382\":1,\"1408\":1,\"1437\":1,\"1675\":1,\"1837\":1,\"1865\":1,\"1943\":1,\"1948\":1,\"2147\":1,\"2260\":1,\"2288\":1,\"2305\":1,\"2351\":1,\"2489\":1,\"2773\":1,\"2778\":1,\"2809\":1,\"2905\":1,\"2952\":1,\"3022\":1,\"3027\":1,\"3290\":1,\"3317\":1,\"3320\":1,\"3374\":1,\"3628\":1,\"3649\":1,\"4113\":1,\"4423\":1,\"4725\":1,\"4842\":1,\"4914\":1,\"5207\":1,\"5833\":1,\"5874\":1,\"5931\":1,\"6038\":1,\"6178\":1,\"6292\":1,\"6297\":1,\"6546\":1,\"6673\":1,\"6793\":1,\"6977\":1,\"6982\":1,\"7463\":1,\"7780\":1,\"8299\":1,\"8463\":1,\"8565\":1,\"8604\":1,\"8653\":1,\"9056\":1,\"9367\":1,\"9472\":1,\"9621\":1,\"9682\":1,\"9845\":1,\"9856\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// 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\t4826: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(2288|2809|3649|6292|886)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n__webpack_require__.F.j = function(chunkId) {\n\tif((!__webpack_require__.o(installedChunks, chunkId) || installedChunks[chunkId] === undefined) && !/^(2288|2809|3649|6292|886)$/.test(chunkId)) {\n\t\tinstalledChunks[chunkId] = null;\n\t\tvar link = document.createElement('link');\n\n\t\tif (__webpack_require__.nc) {\n\t\t\tlink.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tlink.rel = \"prefetch\";\n\t\tlink.as = \"script\";\n\t\tlink.href = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\tdocument.head.appendChild(link);\n\t}\n};\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[\"webpackChunkeasy_budget\"] = self[\"webpackChunkeasy_budget\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.O(0, [4826], function() {\n\t[3828,7531,5057,1070,2051,621,318,5536,5404,3893,5647,1700,9845,2952,1443,7004,6037,1200,1437,6806,2341,176,1408,6662,6038,1977,4392,6107,2260,1837,5931,5871,3649,6546,1675,5258,9575,3374,2288,3027,4842,3882,7287,9367,7946,1153,3441,8669,886,6297,9056,2489,1948,296,2773,8670,6034,73,1382,9337,3317,3628,3022,7780,6292,489,3320,9335,3456,2147,9856,943,1943,9621,1038,4914,6673,3290,511,9472,8299,6793,754,6977,2905,9682,6178,5207,2351,8653,4423,8463,8604,2305,8565,4725,4113,2778,5833].map(__webpack_require__.E);\n}, 5);","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [4998], function() { return __webpack_require__(13575); })\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4998], function() { return __webpack_require__(24061); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["localStorage","isDataSet","today","Date","periodKey","dayjs","format","transactions","JSON","stringify","id","budgetId","date","categoryId","value","type","note","paidBy","categoryGroups","name","order","expenseType","categories","categoryGroupId","plans","subscription","expiresAt","isExpired","budget","userProfile","email","finishedOnboarding","notificationsSettings","budgetingNotificationEnabled","worker","setupWorker","rest","req","res","ctx","delay","status","json","parse","params","transaction","find","m","transactionIndex","indexOf","splice","body","newTransaction","transactionDate","getFullYear","toString","getMonth","slice","profile","push","paidById","newCategory","category","categoryIndex","updatedCategory","categoryOrder","parseInt","el","elementIndex","categoryGroup","updatedCategoryGroup","categoryGroupIndex","newCategoryGroup","newPlan","plan","planIndex","joinReasons","_hoisted_1","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_createVNode","defineComponent","setup","hideLauncher","useFreshDesk","init","useThemes","authService","useAuthService","onMounted","async","clearStaleStateAsync","__exports__","serviceWorkerName","register","ready","console","log","registered","cached","updatefound","updated","window","location","reload","offline","error","Number","prototype","toCurrency","store","useBudgetStore","Intl","NumberFormat","currencyLocale","style","currency","Math","round","this","EPSILON","toCurrencyWithSign","signDisplay","toPercent","toFixed","toFixedRoundingError","String","periodToDayJs","toPeriodToDateFormat","formatDate","capitalizeFirstLetter","charAt","toUpperCase","toPeriodKey","toTimeZoneDate","subtract","getTimezoneOffset","toDate","Array","moveToIndex","oldIndex","newIndex","length","k","undefined","removeTime","hour","minute","second","millisecond","RippleDirective","mounted","addEventListener","classList","add","remove","unmounted","Ripple","setUpGA4Events","eventBus","useEventBus","on","publishEvent","bankId","require","Chart","annotationPlugin","pinia","createPinia","app","createApp","App","use","VueNumber","ConfirmationService","directive","Tooltip","useInternationalization","VueShepherdPlugin","EasyToastPlugin","isMobile","useDeviceInfo","VueQueryPlugin","preset","definePreset","Aura","primitive","orange","semantic","primary","colorScheme","light","surface","dark","PrimeVue","theme","options","darkModeSelector","cssLayer","locale","aria","navigation","startsWith","contains","notContains","endsWith","equals","notEquals","noFilter","lt","lte","gt","gte","dateIs","dateIsNot","dateBefore","dateAfter","clear","apply","matchAll","matchAny","addRule","removeRule","accept","reject","choose","upload","cancel","firstDayOfWeek","dayNames","dayNamesShort","dayNamesMin","monthNames","monthNamesShort","vClickOutside","Vue3Tour","pjson","Sentry","environment","release","version","dsn","replaysSessionSampleRate","replaysOnErrorSampleRate","integrations","Integrations","routingInstrumentation","router","tracingOrigins","process","tracesSampleRate","vueDebounce","lock","listenTo","defaultTime","duration","months","mount","BudgetApi","constructor","http","_defineProperty","request","path","method","secure","then","data","ContentType","appId","loanId","budgetApi","useHttpClient","useBudgetApi","SubscriptionApi","subscriptionApi","useSubscriptionApi","UserProfileApi","userProfileApi","useUserProfileApi","HttpClient","securityWorker","axiosConfig","securityData","query","secureParams","requestParams","mergeRequestParams","responseFormat","FormData","createFormData","Text","instance","headers","responseType","url","axios","baseURL","params1","params2","defaults","toLowerCase","stringifyFormItem","formItem","input","Object","keys","reduce","formData","key","property","propertyContent","isFileType","Blob","File","append","BaseHttpClient","super","interceptors","response","loginAsync","config","getAccessTokenAsync","Promise","httpClient","BankAccountStatus","CategoryType","Currency","DayOfWeek","DeviceType","ExpenseType","Language","LoanActivityType","LoanPaymentType","OnboardingStep","OperationType","RepeatPeriod","Role","SubscriptionPlanType","SubscriptionType","SurveyAction","TargetType","TimeInterval","TransactionStatus","TransactionTemplateUsageStatus","TransactionType","AuthService","settings","useUserManagerSettings","userManager","UserManager","debug","Log","getUser","user","expired","signinSilent","sub","redirectUrl","signinRedirect","state","href","signoutRedirect","id_token","clearStaleState","cookieStorage","CookieStorage","expires","domain","userStore","WebStorageStateStore","stateStore","authority","client_id","redirect_uri","automaticSilentRenew","silent_redirect_uri","response_type","scope","post_logout_redirect_uri","filterProtocolClaims","useBudgetQuery","defaultValue","useBudgetsQuery","result","ref","setBudget","watch","immediate","enabled","client","useQuery","QueryKeys","getBudgets","useSubscriptionQuery","getUserSubscription","useSubscriptionQueryPrefetch","queryClient","prefetchQuery","useUserProfileQuery","get","useUserProfileQueryPrefetch","defineStore","useParams","width","useWindowSize","computed","mobileOS","getMobileOperatingSystem","userAgent","navigator","test","mitt","freshDesk","FreshworksWidget","openWidget","articleId","emit","openContactForm","useRouter","currentRoute","transactionId","onboardingProgress","transactionTemplateId","transactionDraftIdQuery","transactionDraftId","templateDate","bankAccountId","currentTheme","setTheme","themeKey","defaultTheme","changeTheme","newTheme","themeElement","document","getElementById","getAttribute","element","querySelector","includes","setAttribute","replace","setItem","getItem","measurementId","getActivePlugins","googleTagManager","containerId","googleAnalytics","trackingId","measurementIds","shouldRunInDebugMode","analytics","Analytics","plugins","eventName","payload","track","useGoogleAnalyticsData","pattern","RegExp","match","cookie","parts","split","ga_client_id","getGAClientId","ga_session_id","shift","ga_session_number","i18n","createI18n","legacy","fallbackLocale","messages","PL","pl","EN","en","DE","useTranslations","t","useI18n","class","_hoisted_2","_hoisted_3","_component_ProgressBar","_withDirectives","progressBarValue","_createElementVNode","_toDisplayString","text","onClick","args","hide","_vShow","isVisible","components","ProgressBar","desktopToast","AWN","position","labels","success","timeout","timer","useIsMobile","startProgressBar","interval","step","setInterval","show","msg","clearTimeout","setTimeout","clearInterval","warning","install","div","createElement","appendChild","easyToastInstance","EasyToast","authRoutes","component","authGuard","to","from","next","isLoggedInAsync","VUE_APP_API_MODE","origin","fullPath","lazyLoadView","loader","showLoadingComponent","resolve","h","defineAsyncComponent","loadingComponent","LoadingComponent","errorComponent","ErrorComponent","myClient","QueryClient","subscriptionGuard","getQueriesData","accountDisabledGuard","isDisabled","desktopRoutes","beforeEnter","children","meta","showSidePanel","main","alias","header","mobileRoutes","props","default","mobile","route","onDeleteBackValue","createRouter","history","createWebHistory","routes","splitsEqual","$validator","splitsEqual$1","$message","$params","vm","splits","sumValue","a","b","abs","createI18nMessage","validators","withI18nMessage","global","required","minValue","withArguments","maxValue","custom","_component_ProgressSpinner","ProgressSpinner","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","amdD","Error","amdO","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","F","E","chunkId","map","n","getter","__esModule","d","definition","o","defineProperty","enumerable","f","e","all","promises","u","miniCssF","g","globalThis","Function","hmd","create","set","obj","prop","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","s","charset","nc","src","onScriptComplete","prev","event","onerror","onload","doneFns","parentNode","removeChild","forEach","bind","target","head","Symbol","toStringTag","nmd","paths","p","createStylesheet","fullhref","linkTag","rel","onLinkComplete","errorType","realHref","err","code","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","message","link","as","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}