taxtank-core 0.31.42 → 0.31.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/esm2020/lib/db/Enums/setup-item-type.enum.mjs +6 -0
  2. package/esm2020/lib/db/Models/setup-item.mjs +4 -0
  3. package/esm2020/lib/db/Models/user/user.mjs +1 -1
  4. package/esm2020/lib/interceptors/basiq-client-id.interceptor.mjs +3 -3
  5. package/esm2020/lib/interceptors/basiq-token.interceptor.mjs +3 -3
  6. package/esm2020/lib/interceptors/corelogic-interceptor.mjs +3 -3
  7. package/esm2020/lib/interceptors/financial-year-interceptor.mjs +3 -3
  8. package/esm2020/lib/interceptors/interceptors.module.mjs +4 -4
  9. package/esm2020/lib/interceptors/jwt-interceptor.mjs +3 -3
  10. package/esm2020/lib/interceptors/preloader.interceptor.mjs +3 -3
  11. package/esm2020/lib/interceptors/user-switcher-interceptor.mjs +3 -3
  12. package/esm2020/lib/models/account-setup/account-setup-item.mjs +36 -9
  13. package/esm2020/lib/models/account-setup/account-setup-items.enum.mjs +14 -10
  14. package/esm2020/lib/models/user/user.mjs +9 -1
  15. package/esm2020/lib/pipes/app-currency.pipe.mjs +3 -3
  16. package/esm2020/lib/services/account-setup/account-setup.service.mjs +88 -61
  17. package/esm2020/lib/services/affiliate/rewardful/rewardful.service.mjs +3 -3
  18. package/esm2020/lib/services/asset/assets.service.mjs +3 -3
  19. package/esm2020/lib/services/auth/auth.service.mjs +3 -3
  20. package/esm2020/lib/services/auth/jwt.service.mjs +3 -3
  21. package/esm2020/lib/services/bank/bank-account-calculation.service.mjs +3 -3
  22. package/esm2020/lib/services/bank/bank-transaction-calculation.service.mjs +3 -3
  23. package/esm2020/lib/services/data.service.mjs +3 -3
  24. package/esm2020/lib/services/event/event-dispatcher.service.mjs +3 -3
  25. package/esm2020/lib/services/event/sse.service.mjs +3 -3
  26. package/esm2020/lib/services/export/export-formatter.service.mjs +3 -3
  27. package/esm2020/lib/services/header-title/header-title.service.mjs +3 -3
  28. package/esm2020/lib/services/http/address/address.service.mjs +3 -3
  29. package/esm2020/lib/services/http/bank/bank-account/bank-account.service.mjs +3 -3
  30. package/esm2020/lib/services/http/bank/bank-connection/bank-connection.service.mjs +3 -3
  31. package/esm2020/lib/services/http/bank/bank-transaction/bank-transaction.service.mjs +3 -3
  32. package/esm2020/lib/services/http/bank/bank.service.mjs +3 -3
  33. package/esm2020/lib/services/http/bank/basiq/basiq-token.service.mjs +3 -3
  34. package/esm2020/lib/services/http/bank/basiq/basiq.service.mjs +3 -3
  35. package/esm2020/lib/services/http/budget/budget.service.mjs +3 -3
  36. package/esm2020/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.mjs +3 -3
  37. package/esm2020/lib/services/http/chart-accounts/chart-accounts.service.mjs +3 -3
  38. package/esm2020/lib/services/http/chat/chat.service.mjs +3 -3
  39. package/esm2020/lib/services/http/chat/message-document.service.mjs +3 -3
  40. package/esm2020/lib/services/http/chat/message.service.mjs +3 -3
  41. package/esm2020/lib/services/http/client/capital-gain/annual-client-details.service.mjs +3 -3
  42. package/esm2020/lib/services/http/client/occupation/occupation.service.mjs +3 -3
  43. package/esm2020/lib/services/http/depreciation/depreciation-capital-project/depreciation-capital-project.service.mjs +3 -3
  44. package/esm2020/lib/services/http/depreciation/depreciation.service.mjs +3 -3
  45. package/esm2020/lib/services/http/document/document-folder/document-folder.service.mjs +3 -3
  46. package/esm2020/lib/services/http/document/document.service.mjs +3 -3
  47. package/esm2020/lib/services/http/facebook/facebook.service.mjs +3 -3
  48. package/esm2020/lib/services/http/file/file.service.mjs +3 -3
  49. package/esm2020/lib/services/http/firm/client-income/client-income-types.service.mjs +3 -3
  50. package/esm2020/lib/services/http/firm/client-invite/client-invite.service.mjs +3 -3
  51. package/esm2020/lib/services/http/firm/client-movement/client-movement.service.mjs +3 -3
  52. package/esm2020/lib/services/http/firm/employee/employee.service.mjs +3 -3
  53. package/esm2020/lib/services/http/firm/employee-invite/employee-invite.service.mjs +3 -3
  54. package/esm2020/lib/services/http/firm/firm.service.mjs +3 -3
  55. package/esm2020/lib/services/http/firm/portfolio-report/client-portfolio-report.service.mjs +3 -3
  56. package/esm2020/lib/services/http/google/google.service.mjs +3 -3
  57. package/esm2020/lib/services/http/holding/holding-sale.service.mjs +3 -3
  58. package/esm2020/lib/services/http/holding/holding-type.service.mjs +3 -3
  59. package/esm2020/lib/services/http/holding/holding.service.mjs +3 -3
  60. package/esm2020/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.mjs +3 -3
  61. package/esm2020/lib/services/http/income-source/income-source.service.mjs +3 -3
  62. package/esm2020/lib/services/http/income-source/salary-forecast/salary-forecast.service.mjs +3 -3
  63. package/esm2020/lib/services/http/income-source/sole-forecast/sole-forecast.service.mjs +3 -3
  64. package/esm2020/lib/services/http/loan/borrowing-expense/borrowing-expense.service.mjs +3 -3
  65. package/esm2020/lib/services/http/loan/loan.service.mjs +3 -3
  66. package/esm2020/lib/services/http/property/borrowing-report/borrowing-report.service.mjs +3 -3
  67. package/esm2020/lib/services/http/property/property-category/property-category.service.mjs +3 -3
  68. package/esm2020/lib/services/http/property/property-category-movement/property-category-movement.service.mjs +3 -3
  69. package/esm2020/lib/services/http/property/property-document/property-document.service.mjs +3 -3
  70. package/esm2020/lib/services/http/property/property-sale/property-sale.service.mjs +3 -3
  71. package/esm2020/lib/services/http/property/property-share/property-share.service.mjs +3 -3
  72. package/esm2020/lib/services/http/property/property-valuation/property-valuation.service.mjs +3 -3
  73. package/esm2020/lib/services/http/property/property.service.mjs +3 -3
  74. package/esm2020/lib/services/http/rest/rest-old.service.mjs +3 -3
  75. package/esm2020/lib/services/http/rest/rest.service.mjs +3 -3
  76. package/esm2020/lib/services/http/service-notification/service-notification.service.mjs +3 -3
  77. package/esm2020/lib/services/http/setup-item/setup-item.service.mjs +24 -0
  78. package/esm2020/lib/services/http/sole/bas-report/bas-report.service.mjs +3 -3
  79. package/esm2020/lib/services/http/sole/sole-business/sole-business.service.mjs +3 -3
  80. package/esm2020/lib/services/http/sole/sole-business-activity/sole-business-activity.service.mjs +3 -3
  81. package/esm2020/lib/services/http/sole/sole-business-loss/sole-business-loss-rules/sole-business-loss-offset-rule.service.mjs +3 -3
  82. package/esm2020/lib/services/http/sole/sole-business-loss/sole-business-loss.service.mjs +3 -3
  83. package/esm2020/lib/services/http/sole/sole-contact/sole-contact.service.mjs +3 -3
  84. package/esm2020/lib/services/http/sole/sole-depreciation-method/sole-depreciation-method.service.mjs +3 -3
  85. package/esm2020/lib/services/http/sole/sole-details/sole-details.service.mjs +3 -3
  86. package/esm2020/lib/services/http/sole/sole-invoice/sole-invoice.service.mjs +3 -3
  87. package/esm2020/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.mjs +3 -3
  88. package/esm2020/lib/services/http/subscription/service-payment/service-payment.service.mjs +3 -3
  89. package/esm2020/lib/services/http/subscription/service-payment-method/service-payment-method.service.mjs +3 -3
  90. package/esm2020/lib/services/http/subscription/service-price/service-price.service.mjs +3 -3
  91. package/esm2020/lib/services/http/subscription/service-product/service-product.service.mjs +3 -3
  92. package/esm2020/lib/services/http/subscription/service-subscription/subscription.service.mjs +3 -3
  93. package/esm2020/lib/services/http/tax-review/tax-review-history/tax-review-history.service.mjs +3 -3
  94. package/esm2020/lib/services/http/tax-review/tax-review.service.mjs +3 -3
  95. package/esm2020/lib/services/http/tax-summary/tax-summary.service.mjs +3 -3
  96. package/esm2020/lib/services/http/transaction/transaction-allocation/allocation-rule/allocation-rule.service.mjs +3 -3
  97. package/esm2020/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.mjs +3 -3
  98. package/esm2020/lib/services/http/transaction/transaction.service.mjs +3 -3
  99. package/esm2020/lib/services/http/tutorial-video/tutorial-video.service.mjs +3 -3
  100. package/esm2020/lib/services/http/user/financial-year/financial-year.service.mjs +3 -3
  101. package/esm2020/lib/services/http/user/user-event-setting/user-event-setting.service.mjs +3 -3
  102. package/esm2020/lib/services/http/user/user-event-type/user-event-type.service.mjs +3 -3
  103. package/esm2020/lib/services/http/user/user.service.mjs +10 -4
  104. package/esm2020/lib/services/http/user/users-invite/users-invite.service.mjs +3 -3
  105. package/esm2020/lib/services/http/vehicle/vehicle-claim-details.service.mjs +3 -3
  106. package/esm2020/lib/services/http/vehicle/vehicle-claim.service.mjs +3 -3
  107. package/esm2020/lib/services/http/vehicle/vehicle-logbook/vehicle-logbook.service.mjs +3 -3
  108. package/esm2020/lib/services/http/vehicle/vehicle.service.mjs +3 -3
  109. package/esm2020/lib/services/intercom/intercom.service.mjs +3 -3
  110. package/esm2020/lib/services/json/chart-accounts/chart-accounts-value.service.mjs +3 -3
  111. package/esm2020/lib/services/json/holding/holding-type-exchange.service.mjs +3 -3
  112. package/esm2020/lib/services/json/income-source/income-source-type.service.mjs +3 -3
  113. package/esm2020/lib/services/json/tax-exemption/tax-exemption.service.mjs +3 -3
  114. package/esm2020/lib/services/json/tax-return/tax-return-item.service.mjs +3 -3
  115. package/esm2020/lib/services/mixpanel/mixpanel.service.mjs +3 -3
  116. package/esm2020/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.mjs +3 -3
  117. package/esm2020/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.mjs +3 -3
  118. package/esm2020/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.mjs +3 -3
  119. package/esm2020/lib/services/pdf/pdf-from-table/pdf-from-table.service.mjs +3 -3
  120. package/esm2020/lib/services/preloader/preloader.service.mjs +3 -3
  121. package/esm2020/lib/services/property/corelogic/corelogic.service.mjs +3 -3
  122. package/esm2020/lib/services/property/equity-position-chart/equity-position-chart.service.mjs +3 -3
  123. package/esm2020/lib/services/property/property-calculation/property-calculation.service.mjs +3 -3
  124. package/esm2020/lib/services/report/property/property-transaction-report.service.mjs +3 -3
  125. package/esm2020/lib/services/toast/toast.service.mjs +3 -3
  126. package/esm2020/lib/services/transaction/transaction-calculation.service.mjs +3 -3
  127. package/esm2020/lib/services/user/user-switcher.service.mjs +3 -3
  128. package/esm2020/lib/services/vehicle/logbook-best-period.service.mjs +3 -3
  129. package/esm2020/lib/services/xlsx/xlsx.service.mjs +3 -3
  130. package/esm2020/lib/tt-core.module.mjs +4 -4
  131. package/esm2020/lib/validators/unique-email.validator.mjs +3 -3
  132. package/esm2020/public-api.mjs +2 -1
  133. package/fesm2015/taxtank-core.mjs +543 -508
  134. package/fesm2015/taxtank-core.mjs.map +1 -1
  135. package/fesm2020/taxtank-core.mjs +543 -508
  136. package/fesm2020/taxtank-core.mjs.map +1 -1
  137. package/lib/db/Enums/setup-item-type.enum.d.ts +4 -0
  138. package/lib/db/Models/setup-item.d.ts +11 -0
  139. package/lib/db/Models/user/user.d.ts +2 -0
  140. package/lib/models/account-setup/account-setup-item.d.ts +13 -13
  141. package/lib/models/account-setup/account-setup-items.enum.d.ts +13 -9
  142. package/lib/models/user/user.d.ts +2 -0
  143. package/lib/services/account-setup/account-setup.service.d.ts +19 -15
  144. package/lib/services/http/setup-item/setup-item.service.d.ts +14 -0
  145. package/lib/services/http/user/user.service.d.ts +2 -0
  146. package/package.json +1 -1
  147. package/public-api.d.ts +1 -0
  148. package/esm2020/lib/models/account-setup/account-setup-items.const.mjs +0 -65
  149. package/lib/models/account-setup/account-setup-items.const.d.ts +0 -7
@@ -1,20 +1,21 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { ACCOUNT_SETUP_ITEMS } from '../../models/account-setup/account-setup-items.const';
3
- import { AccountSetupItemsEnum } from '../../models/account-setup/account-setup-items.enum';
4
2
  import { AccountSetupItemCollection, IncomeSourceCollection, TransactionCollection } from '../../collections';
5
- import { ReplaySubject, combineLatest, of } from 'rxjs';
3
+ import { combineLatest, of } from 'rxjs';
6
4
  import { map, mergeMap } from 'rxjs/operators';
7
- import cloneDeep from 'lodash/cloneDeep';
8
5
  import intersection from 'lodash/intersection';
6
+ import clone from 'lodash/clone';
9
7
  import { UserRolesEnum } from '../../db/Enums/user-roles.enum';
8
+ import { SetupItemTypeEnum } from '../../db/Enums/setup-item-type.enum';
10
9
  import * as i0 from "@angular/core";
11
- import * as i1 from "../http";
10
+ import * as i1 from "../http/setup-item/setup-item.service";
11
+ import * as i2 from "../http";
12
12
  /**
13
13
  * Service handling user's account setup process.
14
14
  * Checks required steps and their completion
15
15
  */
16
16
  export class AccountSetupService {
17
- constructor(propertyService, incomeSourceService, bankAccountsService, transactionAllocationService, vehicleClaimService, transactionService, soleBusinessService, holdingService, userService) {
17
+ constructor(setupItemService, propertyService, incomeSourceService, bankAccountsService, transactionAllocationService, vehicleClaimService, transactionService, soleBusinessService, holdingService, userService, clientMovementService, clientInviteService, employeeService, employeeInviteService, firmService) {
18
+ this.setupItemService = setupItemService;
18
19
  this.propertyService = propertyService;
19
20
  this.incomeSourceService = incomeSourceService;
20
21
  this.bankAccountsService = bankAccountsService;
@@ -24,67 +25,46 @@ export class AccountSetupService {
24
25
  this.soleBusinessService = soleBusinessService;
25
26
  this.holdingService = holdingService;
26
27
  this.userService = userService;
27
- this.cacheSubject = new ReplaySubject(1);
28
+ this.clientMovementService = clientMovementService;
29
+ this.clientInviteService = clientInviteService;
30
+ this.employeeService = employeeService;
31
+ this.employeeInviteService = employeeInviteService;
32
+ this.firmService = firmService;
28
33
  }
29
34
  /**
30
- * Get list of account setup items for current user
35
+ * Get list of account setup items for current user/firm
31
36
  */
32
- get() {
33
- if (!this.cache) {
34
- this.cache = new AccountSetupItemCollection([]);
35
- this.userService.getFirst().pipe(mergeMap((user) => {
36
- this.user = user;
37
- return this.createBatch();
38
- })).subscribe((items) => {
39
- switch (true) {
40
- case !this.cache:
41
- case this.cache.filterBy('isCompleted', true).length !== items.filterBy('isCompleted', true).length:
42
- case this.cache.length !== items.length:
43
- this.cache = cloneDeep(items);
44
- this.cacheSubject.next(this.cache);
45
- }
46
- });
47
- }
48
- return this.cacheSubject.asObservable();
49
- }
50
- /**
51
- * Get a single AccountSetupItem and check it's completion
52
- */
53
- create(itemType, request) {
54
- return request.pipe(map((result) => {
55
- const item = ACCOUNT_SETUP_ITEMS[itemType];
56
- if (result.length) {
57
- item.isCompleted = true;
58
- }
59
- else {
60
- item.isCompleted = false;
61
- }
62
- return item;
37
+ get(type) {
38
+ return combineLatest([
39
+ this.setupItemService.get(),
40
+ this.userService.getFirst()
41
+ ])
42
+ .pipe(mergeMap(([items, user]) => {
43
+ this.items = items;
44
+ this.user = user;
45
+ return type === SetupItemTypeEnum.CLIENT ? this.getClientItems$() : this.getFirmItems$();
63
46
  }));
64
47
  }
65
- /**
66
- * Get batch of requests to get list of required AccountSetupItem's.
67
- * Some items are optional and depends of user's client income types
68
- */
69
- createBatch() {
48
+ getClientItems$() {
70
49
  const batch = [];
71
- // Salary item is completed when user added salary income source
72
50
  if (this.user.hasRoles(UserRolesEnum.WORK_TANK)) {
73
- batch.push(this.create(AccountSetupItemsEnum.SALARY, this.getIncomeSources(true)),
51
+ batch.push(
52
+ // Salary item is completed when user added salary income source
53
+ this.setItemStatus(this.items.findBy('isSalary', true), this.getIncomeSources(true)),
74
54
  // Other income is a part of work tank, completed when user added at least one other income source
75
- this.create(AccountSetupItemsEnum.OTHER_INCOME, this.getIncomeSources()));
55
+ this.setItemStatus(this.items.findBy('isOtherIncome', true), this.getIncomeSources()));
76
56
  }
77
57
  // Rental income item is completed when user added at least one property
78
58
  if (this.user.hasRoles(UserRolesEnum.PROPERTY_TANK)) {
79
- batch.push(this.create(AccountSetupItemsEnum.PROPERTY, this.propertyService.getArray()));
59
+ batch.push(this.setItemStatus(this.items.findBy('isProperty', true), this.propertyService.getArray()));
80
60
  }
81
61
  // Sole business item is completed when user added at least one business
82
62
  if (this.user.hasRoles(UserRolesEnum.SOLE_TANK)) {
83
- batch.push(this.create(AccountSetupItemsEnum.SOLE_BUSINESS, this.soleBusinessService.get()));
63
+ batch.push(this.setItemStatus(this.items.findBy('isSoleBusiness', true), this.soleBusinessService.get()));
84
64
  }
85
65
  // holdings item is completed when user added at least one holding
86
66
  if (this.user.hasRoles(UserRolesEnum.HOLDING_TANK)) {
87
- batch.push(this.create(AccountSetupItemsEnum.HOLDINGS, this.holdingService.getArray()));
67
+ batch.push(this.setItemStatus(this.items.findBy('isHoldings', true), this.holdingService.getArray()));
88
68
  }
89
69
  if (this.user.hasRoles([UserRolesEnum.WORK_TANK, UserRolesEnum.PROPERTY_TANK, UserRolesEnum.SOLE_TANK, UserRolesEnum.HOLDING_TANK])) {
90
70
  // Bank feeds item is completed when user added at least one bank account (basiq or manual)
@@ -92,10 +72,58 @@ export class AccountSetupService {
92
72
  // Logbook item is completed when user has at least one vehicle claim with any method (kms or logbook)
93
73
  batch.push(this.getLogbookItem());
94
74
  // Allocation item is completed when user added at least one transaction allocation
95
- batch.push(this.create(AccountSetupItemsEnum.TRANSACTION, this.transactionAllocationService.get()));
75
+ batch.push(this.setItemStatus(this.items.findBy('isTransactionAllocate', true), this.transactionAllocationService.get()));
96
76
  }
97
77
  return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items)));
98
78
  }
79
+ getFirmItems$() {
80
+ const batch = [];
81
+ batch.push(
82
+ // Firm Details item is completed when user filled some general information
83
+ this.firmService.get().pipe(map((firm) => {
84
+ const item = this.items.findBy('isFirmDetails', true);
85
+ if (firm.address || firm.phone || firm.file || firm.shortName) {
86
+ item.isCompleted = true;
87
+ }
88
+ return item;
89
+ })));
90
+ batch.push(
91
+ // Invite team item is completed when firm has employees except firm owner or firm has invited employees.
92
+ this.setItemStatus(this.items.findBy('isInviteTeam', true), combineLatest([
93
+ this.employeeService.get(),
94
+ this.employeeInviteService.get()
95
+ ]).pipe(map(([employees, invites]) => {
96
+ // we always have at least 1 employee (firm owner), so we should check other employees except firm owner
97
+ if (employees.length) {
98
+ employees = clone(employees).splice(0, 1);
99
+ }
100
+ return [...employees, ...invites];
101
+ }))));
102
+ batch.push(
103
+ // Invite clients item is completed when firm has clients or firm has invited clients.
104
+ this.setItemStatus(this.items.findBy('isInviteClients', true), combineLatest([
105
+ this.clientMovementService.getActive(),
106
+ this.clientInviteService.get(true)
107
+ ]).pipe(map(([movements, invites]) => {
108
+ return [...movements.toArray(), ...invites];
109
+ }))));
110
+ return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items)));
111
+ }
112
+ /**
113
+ * Check and update isCompleted flag for passed item
114
+ */
115
+ setItemStatus(item, request) {
116
+ return request.pipe(map((result) => {
117
+ const isSkipped = !!this.user.blacklistSetupItems.find((skippedItem) => skippedItem.id === item.id);
118
+ if (result.length || isSkipped) {
119
+ item.isCompleted = true;
120
+ }
121
+ else {
122
+ item.isCompleted = false;
123
+ }
124
+ return item;
125
+ }));
126
+ }
99
127
  /**
100
128
  * @TODO Alex: work with collection when services refactored
101
129
  * @TODO Vik: waiting for income sources refactoring
@@ -118,29 +146,28 @@ export class AccountSetupService {
118
146
  // @TODO Alex: remove map when services start work with collections
119
147
  map((transactions) => new TransactionCollection(transactions)), mergeMap((transactions) => {
120
148
  if (transactions.getVehicleTransactions().length) {
121
- return this.create(AccountSetupItemsEnum.WORK_LOGBOOK, this.vehicleClaimService.get());
149
+ return this.setItemStatus(this.items.findBy('isWorkLogbook', true), this.vehicleClaimService.get());
122
150
  }
123
151
  return of(null);
124
152
  }));
125
153
  }
126
154
  /**
127
- * Show bank feeds item when user has only holding tank
155
+ * Hide bank feeds item when user has only holding tank
128
156
  */
129
157
  getBankFeedsItem() {
130
- const userRoles = this.userService.getCacheFirst().roles;
131
158
  const bankFeedsRoles = [UserRolesEnum.PROPERTY_TANK, UserRolesEnum.WORK_TANK, UserRolesEnum.SOLE_TANK];
132
- if (!intersection(bankFeedsRoles, userRoles).length) {
159
+ if (!intersection(bankFeedsRoles, this.user.roles).length) {
133
160
  return of(null);
134
161
  }
135
- return this.create(AccountSetupItemsEnum.BANK_FEEDS, this.bankAccountsService.getArray());
162
+ return this.setItemStatus(this.items.findBy('isBankFeeds', true), this.bankAccountsService.getArray());
136
163
  }
137
164
  }
138
- AccountSetupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AccountSetupService, deps: [{ token: i1.PropertyService }, { token: i1.IncomeSourceService }, { token: i1.BankAccountService }, { token: i1.TransactionAllocationService }, { token: i1.VehicleClaimService }, { token: i1.TransactionService }, { token: i1.SoleBusinessService }, { token: i1.HoldingService }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Injectable });
139
- AccountSetupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AccountSetupService, providedIn: 'root' });
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AccountSetupService, decorators: [{
165
+ AccountSetupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AccountSetupService, deps: [{ token: i1.SetupItemService }, { token: i2.PropertyService }, { token: i2.IncomeSourceService }, { token: i2.BankAccountService }, { token: i2.TransactionAllocationService }, { token: i2.VehicleClaimService }, { token: i2.TransactionService }, { token: i2.SoleBusinessService }, { token: i2.HoldingService }, { token: i2.UserService }, { token: i2.ClientMovementService }, { token: i2.ClientInviteService }, { token: i2.EmployeeService }, { token: i2.EmployeeInviteService }, { token: i2.FirmService }], target: i0.ɵɵFactoryTarget.Injectable });
166
+ AccountSetupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AccountSetupService, providedIn: 'root' });
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AccountSetupService, decorators: [{
141
168
  type: Injectable,
142
169
  args: [{
143
170
  providedIn: 'root'
144
171
  }]
145
- }], ctorParameters: function () { return [{ type: i1.PropertyService }, { type: i1.IncomeSourceService }, { type: i1.BankAccountService }, { type: i1.TransactionAllocationService }, { type: i1.VehicleClaimService }, { type: i1.TransactionService }, { type: i1.SoleBusinessService }, { type: i1.HoldingService }, { type: i1.UserService }]; } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZXR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFhNUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUcsT0FBTyxFQUFjLGFBQWEsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxZQUFZLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFFL0Q7OztHQUdHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUNVLGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxtQkFBdUMsRUFDdkMsNEJBQTBELEVBQzFELG1CQUF3QyxFQUN4QyxrQkFBc0MsRUFDdEMsbUJBQXdDLEVBQ3hDLGNBQThCLEVBQzlCLFdBQXdCO1FBUnhCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQUMxRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFabEMsaUJBQVksR0FBOEMsSUFBSSxhQUFhLENBQTZCLENBQUMsQ0FBQyxDQUFDO0lBYzNHLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUc7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVoRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FDOUIsUUFBUSxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUVqQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWlDLEVBQUUsRUFBRTtnQkFDaEQsUUFBUSxJQUFJLEVBQUU7b0JBQ1osS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ2pCLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7b0JBQ3BHLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU07d0JBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3RDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxNQUFNLENBQUMsUUFBK0IsRUFBRSxPQUE2QjtRQUMzRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEdBQUcsQ0FBQyxDQUFDLE1BQWdCLEVBQW9CLEVBQUU7WUFDekMsTUFBTSxJQUFJLEdBQXFCLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTdELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7YUFDMUI7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssV0FBVztRQUNqQixNQUFNLEtBQUssR0FBbUMsRUFBRSxDQUFDO1FBRWpELGdFQUFnRTtRQUNoRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMvQyxLQUFLLENBQUMsSUFBSSxDQUNSLElBQUksQ0FBQyxNQUFNLENBQ1QscUJBQXFCLENBQUMsTUFBTSxFQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQzVCO1lBQ0Qsa0dBQWtHO1lBQ2xHLElBQUksQ0FBQyxNQUFNLENBQ1QscUJBQXFCLENBQUMsWUFBWSxFQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FDeEIsQ0FDRixDQUFDO1NBQ0g7UUFFRCx3RUFBd0U7UUFDeEUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDbkQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMxRjtRQUVELHdFQUF3RTtRQUN4RSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMvQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDOUY7UUFFRCxrRUFBa0U7UUFDbEUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDbEQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN6RjtRQUVELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRTtZQUNuSSwyRkFBMkY7WUFDM0YsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1lBRXBDLHNHQUFzRztZQUN0RyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBRWxDLG1GQUFtRjtZQUNuRixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckc7UUFFRCxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBeUIsRUFBRSxFQUFFLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxLQUFLO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDeEMsR0FBRyxDQUFDLENBQUMsYUFBNkIsRUFBa0IsRUFBRTtZQUNwRCxNQUFNLFVBQVUsR0FBMkIsSUFBSSxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNyRixJQUFJLFFBQVEsRUFBRTtnQkFDWixPQUFPLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUMvQjtZQUVELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUMvRixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYztRQUNwQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUU7YUFDakMsSUFBSTtRQUNILG1FQUFtRTtRQUNuRSxHQUFHLENBQUMsQ0FBQyxZQUEyQixFQUFFLEVBQUUsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQzdFLFFBQVEsQ0FBQyxDQUFDLFlBQW1DLEVBQUUsRUFBRTtZQUMvQyxJQUFJLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLE1BQU0sRUFBRTtnQkFDaEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQzthQUN4RjtZQUVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDekQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXZHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNuRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQzs7Z0hBbEtVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFDQ09VTlRfU0VUVVBfSVRFTVMgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW1zLmNvbnN0JztcbmltcG9ydCB7IEFjY291bnRTZXR1cEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW0nO1xuaW1wb3J0IHsgQWNjb3VudFNldHVwSXRlbXNFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC1pdGVtcy5lbnVtJztcbmltcG9ydCB7XG4gIEJhbmtBY2NvdW50U2VydmljZSxcbiAgSG9sZGluZ1NlcnZpY2UsXG4gIEluY29tZVNvdXJjZVNlcnZpY2UsXG4gIFByb3BlcnR5U2VydmljZSxcbiAgU29sZUJ1c2luZXNzU2VydmljZSxcbiAgVHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZSxcbiAgVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgVmVoaWNsZUNsYWltU2VydmljZVxufSBmcm9tICcuLi9odHRwJztcbmltcG9ydCB7IEluY29tZVNvdXJjZSwgVHJhbnNhY3Rpb24sIFVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24sIEluY29tZVNvdXJjZUNvbGxlY3Rpb24sIFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCBpbnRlcnNlY3Rpb24gZnJvbSAnbG9kYXNoL2ludGVyc2VjdGlvbic7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcblxuLyoqXG4gKiBTZXJ2aWNlIGhhbmRsaW5nIHVzZXIncyBhY2NvdW50IHNldHVwIHByb2Nlc3MuXG4gKiBDaGVja3MgcmVxdWlyZWQgc3RlcHMgYW5kIHRoZWlyIGNvbXBsZXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudFNldHVwU2VydmljZSB7XG4gIGNhY2hlOiBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbjtcbiAgY2FjaGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPiA9IG5ldyBSZXBsYXlTdWJqZWN0PEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPigxKTtcbiAgdXNlcjogVXNlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHByb3BlcnR5U2VydmljZTogUHJvcGVydHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5jb21lU291cmNlU2VydmljZTogSW5jb21lU291cmNlU2VydmljZSxcbiAgICBwcml2YXRlIGJhbmtBY2NvdW50c1NlcnZpY2U6IEJhbmtBY2NvdW50U2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zYWN0aW9uQWxsb2NhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uQWxsb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2ZWhpY2xlQ2xhaW1TZXJ2aWNlOiBWZWhpY2xlQ2xhaW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzb2xlQnVzaW5lc3NTZXJ2aWNlOiBTb2xlQnVzaW5lc3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaG9sZGluZ1NlcnZpY2U6IEhvbGRpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBhY2NvdW50IHNldHVwIGl0ZW1zIGZvciBjdXJyZW50IHVzZXJcbiAgICovXG4gIGdldCgpOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPiB7XG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICB0aGlzLmNhY2hlID0gbmV3IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uKFtdKTtcblxuICAgICAgdGhpcy51c2VyU2VydmljZS5nZXRGaXJzdCgpLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCh1c2VyOiBVc2VyKSA9PiB7XG4gICAgICAgICAgdGhpcy51c2VyID0gdXNlcjtcblxuICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJhdGNoKCk7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgoaXRlbXM6IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uKSA9PiB7XG4gICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgIGNhc2UgIXRoaXMuY2FjaGU6XG4gICAgICAgICAgY2FzZSB0aGlzLmNhY2hlLmZpbHRlckJ5KCdpc0NvbXBsZXRlZCcsIHRydWUpLmxlbmd0aCAhPT0gaXRlbXMuZmlsdGVyQnkoJ2lzQ29tcGxldGVkJywgdHJ1ZSkubGVuZ3RoOlxuICAgICAgICAgIGNhc2UgdGhpcy5jYWNoZS5sZW5ndGggIT09IGl0ZW1zLmxlbmd0aDpcbiAgICAgICAgICAgIHRoaXMuY2FjaGUgPSBjbG9uZURlZXAoaXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHNpbmdsZSBBY2NvdW50U2V0dXBJdGVtIGFuZCBjaGVjayBpdCdzIGNvbXBsZXRpb25cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlKGl0ZW1UeXBlOiBBY2NvdW50U2V0dXBJdGVtc0VudW0sIHJlcXVlc3Q6IE9ic2VydmFibGU8b2JqZWN0W10+KTogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtPiB7XG4gICAgcmV0dXJuIHJlcXVlc3QucGlwZShcbiAgICAgIG1hcCgocmVzdWx0OiBvYmplY3RbXSk6IEFjY291bnRTZXR1cEl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBpdGVtOiBBY2NvdW50U2V0dXBJdGVtID0gQUNDT1VOVF9TRVRVUF9JVEVNU1tpdGVtVHlwZV07XG5cbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgICAgICBpdGVtLmlzQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtLmlzQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYmF0Y2ggb2YgcmVxdWVzdHMgdG8gZ2V0IGxpc3Qgb2YgcmVxdWlyZWQgQWNjb3VudFNldHVwSXRlbSdzLlxuICAgKiBTb21lIGl0ZW1zIGFyZSBvcHRpb25hbCBhbmQgZGVwZW5kcyBvZiB1c2VyJ3MgY2xpZW50IGluY29tZSB0eXBlc1xuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVCYXRjaCgpOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPiB7XG4gICAgY29uc3QgYmF0Y2g6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbT5bXSA9IFtdO1xuXG4gICAgLy8gU2FsYXJ5IGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBzYWxhcnkgaW5jb21lIHNvdXJjZVxuICAgIGlmICh0aGlzLnVzZXIuaGFzUm9sZXMoVXNlclJvbGVzRW51bS5XT1JLX1RBTkspKSB7XG4gICAgICBiYXRjaC5wdXNoKFxuICAgICAgICB0aGlzLmNyZWF0ZShcbiAgICAgICAgICBBY2NvdW50U2V0dXBJdGVtc0VudW0uU0FMQVJZLFxuICAgICAgICAgIHRoaXMuZ2V0SW5jb21lU291cmNlcyh0cnVlKVxuICAgICAgICApLFxuICAgICAgICAvLyBPdGhlciBpbmNvbWUgaXMgYSBwYXJ0IG9mIHdvcmsgdGFuaywgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgb3RoZXIgaW5jb21lIHNvdXJjZVxuICAgICAgICB0aGlzLmNyZWF0ZShcbiAgICAgICAgICBBY2NvdW50U2V0dXBJdGVtc0VudW0uT1RIRVJfSU5DT01FLFxuICAgICAgICAgIHRoaXMuZ2V0SW5jb21lU291cmNlcygpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUmVudGFsIGluY29tZSBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgYXQgbGVhc3Qgb25lIHByb3BlcnR5XG4gICAgaWYgKHRoaXMudXNlci5oYXNSb2xlcyhVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTkspKSB7XG4gICAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5QUk9QRVJUWSwgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0QXJyYXkoKSkpO1xuICAgIH1cblxuICAgIC8vIFNvbGUgYnVzaW5lc3MgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBidXNpbmVzc1xuICAgIGlmICh0aGlzLnVzZXIuaGFzUm9sZXMoVXNlclJvbGVzRW51bS5TT0xFX1RBTkspKSB7XG4gICAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5TT0xFX0JVU0lORVNTLCB0aGlzLnNvbGVCdXNpbmVzc1NlcnZpY2UuZ2V0KCkpKTtcbiAgICB9XG5cbiAgICAvLyBob2xkaW5ncyBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgYXQgbGVhc3Qgb25lIGhvbGRpbmdcbiAgICBpZiAodGhpcy51c2VyLmhhc1JvbGVzKFVzZXJSb2xlc0VudW0uSE9MRElOR19UQU5LKSkge1xuICAgICAgYmF0Y2gucHVzaCh0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uSE9MRElOR1MsIHRoaXMuaG9sZGluZ1NlcnZpY2UuZ2V0QXJyYXkoKSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVzZXIuaGFzUm9sZXMoW1VzZXJSb2xlc0VudW0uV09SS19UQU5LLCBVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTkssIFVzZXJSb2xlc0VudW0uU09MRV9UQU5LLCBVc2VyUm9sZXNFbnVtLkhPTERJTkdfVEFOS10pKSB7XG4gICAgICAvLyBCYW5rIGZlZWRzIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgYmFuayBhY2NvdW50IChiYXNpcSBvciBtYW51YWwpXG4gICAgICBiYXRjaC5wdXNoKHRoaXMuZ2V0QmFua0ZlZWRzSXRlbSgpKTtcblxuICAgICAgLy8gTG9nYm9vayBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgaGFzIGF0IGxlYXN0IG9uZSB2ZWhpY2xlIGNsYWltIHdpdGggYW55IG1ldGhvZCAoa21zIG9yIGxvZ2Jvb2spXG4gICAgICBiYXRjaC5wdXNoKHRoaXMuZ2V0TG9nYm9va0l0ZW0oKSk7XG5cbiAgICAgIC8vIEFsbG9jYXRpb24gaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSB0cmFuc2FjdGlvbiBhbGxvY2F0aW9uXG4gICAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5UUkFOU0FDVElPTiwgdGhpcy50cmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlLmdldCgpKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoYmF0Y2gpLnBpcGUobWFwKChpdGVtczogQWNjb3VudFNldHVwSXRlbVtdKSA9PiBuZXcgQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24oaXRlbXMpKSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gQWxleDogd29yayB3aXRoIGNvbGxlY3Rpb24gd2hlbiBzZXJ2aWNlcyByZWZhY3RvcmVkXG4gICAqIEBUT0RPIFZpazogd2FpdGluZyBmb3IgaW5jb21lIHNvdXJjZXMgcmVmYWN0b3JpbmdcbiAgICovXG4gIHByaXZhdGUgZ2V0SW5jb21lU291cmNlcyhpc1NhbGFyeSA9IGZhbHNlKTogT2JzZXJ2YWJsZTxJbmNvbWVTb3VyY2VbXT4ge1xuICAgIHJldHVybiB0aGlzLmluY29tZVNvdXJjZVNlcnZpY2UuZ2V0KCkucGlwZShcbiAgICAgIG1hcCgoaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pOiBJbmNvbWVTb3VyY2VbXSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb246IEluY29tZVNvdXJjZUNvbGxlY3Rpb24gPSBuZXcgSW5jb21lU291cmNlQ29sbGVjdGlvbihpbmNvbWVTb3VyY2VzKTtcbiAgICAgICAgaWYgKGlzU2FsYXJ5KSB7XG4gICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb24uZ2V0U2FsYXJ5KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5pdGVtcy5maWx0ZXIoKGluY29tZVNvdXJjZTogSW5jb21lU291cmNlKSA9PiBpbmNvbWVTb3VyY2UuaXNPdGhlckluY29tZSgpKTtcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgbG9nYm9vayBpdGVtIHdoZW4gdXNlciBoYXMgYXQgbGVhc3QgMSB2ZWhpY2xlIHRyYW5zYWN0aW9uXG4gICAqL1xuICBwcml2YXRlIGdldExvZ2Jvb2tJdGVtKCk6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbT4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIEBUT0RPIEFsZXg6IHJlbW92ZSBtYXAgd2hlbiBzZXJ2aWNlcyBzdGFydCB3b3JrIHdpdGggY29sbGVjdGlvbnNcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pID0+IG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zKSksXG4gICAgICAgIG1lcmdlTWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbikgPT4ge1xuICAgICAgICAgIGlmICh0cmFuc2FjdGlvbnMuZ2V0VmVoaWNsZVRyYW5zYWN0aW9ucygpLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5XT1JLX0xPR0JPT0ssIHRoaXMudmVoaWNsZUNsYWltU2VydmljZS5nZXQoKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IGJhbmsgZmVlZHMgaXRlbSB3aGVuIHVzZXIgaGFzIG9ubHkgaG9sZGluZyB0YW5rXG4gICAqL1xuICBwcml2YXRlIGdldEJhbmtGZWVkc0l0ZW0oKTogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtPiB7XG4gICAgY29uc3QgdXNlclJvbGVzID0gdGhpcy51c2VyU2VydmljZS5nZXRDYWNoZUZpcnN0KCkucm9sZXM7XG4gICAgY29uc3QgYmFua0ZlZWRzUm9sZXMgPSBbVXNlclJvbGVzRW51bS5QUk9QRVJUWV9UQU5LLCBVc2VyUm9sZXNFbnVtLldPUktfVEFOSywgVXNlclJvbGVzRW51bS5TT0xFX1RBTktdO1xuXG4gICAgaWYgKCFpbnRlcnNlY3Rpb24oYmFua0ZlZWRzUm9sZXMsIHVzZXJSb2xlcykubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5CQU5LX0ZFRURTLCB0aGlzLmJhbmtBY2NvdW50c1NlcnZpY2UuZ2V0QXJyYXkoKSk7XG4gIH1cbn1cbiJdfQ==
172
+ }], ctorParameters: function () { return [{ type: i1.SetupItemService }, { type: i2.PropertyService }, { type: i2.IncomeSourceService }, { type: i2.BankAccountService }, { type: i2.TransactionAllocationService }, { type: i2.VehicleClaimService }, { type: i2.TransactionService }, { type: i2.SoleBusinessService }, { type: i2.HoldingService }, { type: i2.UserService }, { type: i2.ClientMovementService }, { type: i2.ClientInviteService }, { type: i2.EmployeeService }, { type: i2.EmployeeInviteService }, { type: i2.FirmService }]; } });
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZXR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFtQjNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBNEIsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4SSxPQUFPLEVBQWMsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sWUFBWSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFLeEU7OztHQUdHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUNVLGdCQUFrQyxFQUNsQyxlQUFnQyxFQUNoQyxtQkFBd0MsRUFDeEMsbUJBQXVDLEVBQ3ZDLDRCQUEwRCxFQUMxRCxtQkFBd0MsRUFDeEMsa0JBQXNDLEVBQ3RDLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixXQUF3QixFQUN4QixxQkFBNEMsRUFDNUMsbUJBQXdDLEVBQ3hDLGVBQWdDLEVBQ2hDLHFCQUE0QyxFQUM1QyxXQUF3QjtRQWR4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHdCQUFtQixHQUFu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QUNqQjtRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQ3BDLENBQUM7SUFDSixDQUFDOztnSEFwT1UsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjb3VudFNldHVwSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9hY2NvdW50LXNldHVwL2FjY291bnQtc2V0dXAtaXRlbSc7XG5pbXBvcnQge1xuICBCYW5rQWNjb3VudFNlcnZpY2UsXG4gIENsaWVudEludml0ZVNlcnZpY2UsXG4gIENsaWVudE1vdmVtZW50U2VydmljZSxcbiAgRW1wbG95ZWVJbnZpdGVTZXJ2aWNlLFxuICBFbXBsb3llZVNlcnZpY2UsXG4gIEZpcm1TZXJ2aWNlLFxuICBIb2xkaW5nU2VydmljZSxcbiAgSW5jb21lU291cmNlU2VydmljZSxcbiAgUHJvcGVydHlTZXJ2aWNlLFxuICBTb2xlQnVzaW5lc3NTZXJ2aWNlLFxuICBUcmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlLFxuICBUcmFuc2FjdGlvblNlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlLFxuICBWZWhpY2xlQ2xhaW1TZXJ2aWNlXG59IGZyb20gJy4uL2h0dHAnO1xuaW1wb3J0IHsgQ2xpZW50SW52aXRlLCBJbmNvbWVTb3VyY2UsIFRyYW5zYWN0aW9uLCBVc2VyIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uLCBDbGllbnRNb3ZlbWVudENvbGxlY3Rpb24sIEluY29tZVNvdXJjZUNvbGxlY3Rpb24sIFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IGludGVyc2VjdGlvbiBmcm9tICdsb2Rhc2gvaW50ZXJzZWN0aW9uJztcbmltcG9ydCBjbG9uZSBmcm9tICdsb2Rhc2gvY2xvbmUnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5pbXBvcnQgeyBTZXR1cEl0ZW1UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3NldHVwLWl0ZW0tdHlwZS5lbnVtJztcbmltcG9ydCB7IEVtcGxveWVlSW52aXRlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IEZpcm0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlybS9maXJtJztcbmltcG9ydCB7IFNldHVwSXRlbVNlcnZpY2UgfSBmcm9tICcuLi9odHRwL3NldHVwLWl0ZW0vc2V0dXAtaXRlbS5zZXJ2aWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGhhbmRsaW5nIHVzZXIncyBhY2NvdW50IHNldHVwIHByb2Nlc3MuXG4gKiBDaGVja3MgcmVxdWlyZWQgc3RlcHMgYW5kIHRoZWlyIGNvbXBsZXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudFNldHVwU2VydmljZSB7XG4gIGl0ZW1zOiBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbjtcbiAgdXNlcjogVXNlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNldHVwSXRlbVNlcnZpY2U6IFNldHVwSXRlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eVNlcnZpY2U6IFByb3BlcnR5U2VydmljZSxcbiAgICBwcml2YXRlIGluY29tZVNvdXJjZVNlcnZpY2U6IEluY29tZVNvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYW5rQWNjb3VudHNTZXJ2aWNlOiBCYW5rQWNjb3VudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdmVoaWNsZUNsYWltU2VydmljZTogVmVoaWNsZUNsYWltU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc29sZUJ1c2luZXNzU2VydmljZTogU29sZUJ1c2luZXNzU2VydmljZSxcbiAgICBwcml2YXRlIGhvbGRpbmdTZXJ2aWNlOiBIb2xkaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGNsaWVudE1vdmVtZW50U2VydmljZTogQ2xpZW50TW92ZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2xpZW50SW52aXRlU2VydmljZTogQ2xpZW50SW52aXRlU2VydmljZSxcbiAgICBwcml2YXRlIGVtcGxveWVlU2VydmljZTogRW1wbG95ZWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW1wbG95ZWVJbnZpdGVTZXJ2aWNlOiBFbXBsb3llZUludml0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmaXJtU2VydmljZTogRmlybVNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgYWNjb3VudCBzZXR1cCBpdGVtcyBmb3IgY3VycmVudCB1c2VyL2Zpcm1cbiAgICovXG4gIGdldCh0eXBlOiBTZXR1cEl0ZW1UeXBlRW51bSk6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnNldHVwSXRlbVNlcnZpY2UuZ2V0KCksXG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldEZpcnN0KClcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChbaXRlbXMsIHVzZXJdOiBbQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24sIFVzZXJdKSA9PiB7XG4gICAgICAgICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xuICAgICAgICAgIHRoaXMudXNlciA9IHVzZXI7XG5cbiAgICAgICAgICByZXR1cm4gdHlwZSA9PT0gU2V0dXBJdGVtVHlwZUVudW0uQ0xJRU5UID8gdGhpcy5nZXRDbGllbnRJdGVtcyQoKSA6IHRoaXMuZ2V0RmlybUl0ZW1zJCgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldENsaWVudEl0ZW1zJCgpOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPiB7XG4gICAgY29uc3QgYmF0Y2g6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbT5bXSA9IFtdO1xuXG4gICAgaWYgKHRoaXMudXNlci5oYXNSb2xlcyhVc2VyUm9sZXNFbnVtLldPUktfVEFOSykpIHtcbiAgICAgIGJhdGNoLnB1c2goXG4gICAgICAgIC8vIFNhbGFyeSBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgc2FsYXJ5IGluY29tZSBzb3VyY2VcbiAgICAgICAgdGhpcy5zZXRJdGVtU3RhdHVzKFxuICAgICAgICAgIHRoaXMuaXRlbXMuZmluZEJ5KCdpc1NhbGFyeScsIHRydWUpLFxuICAgICAgICAgIHRoaXMuZ2V0SW5jb21lU291cmNlcyh0cnVlKVxuICAgICAgICApLFxuICAgICAgICAvLyBPdGhlciBpbmNvbWUgaXMgYSBwYXJ0IG9mIHdvcmsgdGFuaywgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgb3RoZXIgaW5jb21lIHNvdXJjZVxuICAgICAgICB0aGlzLnNldEl0ZW1TdGF0dXMoXG4gICAgICAgICAgdGhpcy5pdGVtcy5maW5kQnkoJ2lzT3RoZXJJbmNvbWUnLCB0cnVlKSxcbiAgICAgICAgICB0aGlzLmdldEluY29tZVNvdXJjZXMoKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFJlbnRhbCBpbmNvbWUgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBwcm9wZXJ0eVxuICAgIGlmICh0aGlzLnVzZXIuaGFzUm9sZXMoVXNlclJvbGVzRW51bS5QUk9QRVJUWV9UQU5LKSkge1xuICAgICAgYmF0Y2gucHVzaChcbiAgICAgICAgdGhpcy5zZXRJdGVtU3RhdHVzKFxuICAgICAgICAgIHRoaXMuaXRlbXMuZmluZEJ5KCdpc1Byb3BlcnR5JywgdHJ1ZSksXG4gICAgICAgICAgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0QXJyYXkoKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFNvbGUgYnVzaW5lc3MgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBidXNpbmVzc1xuICAgIGlmICh0aGlzLnVzZXIuaGFzUm9sZXMoVXNlclJvbGVzRW51bS5TT0xFX1RBTkspKSB7XG4gICAgICBiYXRjaC5wdXNoKFxuICAgICAgICB0aGlzLnNldEl0ZW1TdGF0dXMoXG4gICAgICAgICAgdGhpcy5pdGVtcy5maW5kQnkoJ2lzU29sZUJ1c2luZXNzJywgdHJ1ZSksXG4gICAgICAgICAgdGhpcy5zb2xlQnVzaW5lc3NTZXJ2aWNlLmdldCgpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gaG9sZGluZ3MgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBob2xkaW5nXG4gICAgaWYgKHRoaXMudXNlci5oYXNSb2xlcyhVc2VyUm9sZXNFbnVtLkhPTERJTkdfVEFOSykpIHtcbiAgICAgIGJhdGNoLnB1c2goXG4gICAgICAgIHRoaXMuc2V0SXRlbVN0YXR1cyhcbiAgICAgICAgICB0aGlzLml0ZW1zLmZpbmRCeSgnaXNIb2xkaW5ncycsIHRydWUpLFxuICAgICAgICAgIHRoaXMuaG9sZGluZ1NlcnZpY2UuZ2V0QXJyYXkoKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVzZXIuaGFzUm9sZXMoW1VzZXJSb2xlc0VudW0uV09SS19UQU5LLCBVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTkssIFVzZXJSb2xlc0VudW0uU09MRV9UQU5LLCBVc2VyUm9sZXNFbnVtLkhPTERJTkdfVEFOS10pKSB7XG4gICAgICAvLyBCYW5rIGZlZWRzIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgYmFuayBhY2NvdW50IChiYXNpcSBvciBtYW51YWwpXG4gICAgICBiYXRjaC5wdXNoKHRoaXMuZ2V0QmFua0ZlZWRzSXRlbSgpKTtcblxuICAgICAgLy8gTG9nYm9vayBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgaGFzIGF0IGxlYXN0IG9uZSB2ZWhpY2xlIGNsYWltIHdpdGggYW55IG1ldGhvZCAoa21zIG9yIGxvZ2Jvb2spXG4gICAgICBiYXRjaC5wdXNoKHRoaXMuZ2V0TG9nYm9va0l0ZW0oKSk7XG5cbiAgICAgIC8vIEFsbG9jYXRpb24gaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSB0cmFuc2FjdGlvbiBhbGxvY2F0aW9uXG4gICAgICBiYXRjaC5wdXNoKFxuICAgICAgICB0aGlzLnNldEl0ZW1TdGF0dXMoXG4gICAgICAgICAgdGhpcy5pdGVtcy5maW5kQnkoJ2lzVHJhbnNhY3Rpb25BbGxvY2F0ZScsIHRydWUpLFxuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZS5nZXQoKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KGJhdGNoKS5waXBlKG1hcCgoaXRlbXM6IEFjY291bnRTZXR1cEl0ZW1bXSkgPT4gbmV3IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uKGl0ZW1zKSkpO1xuICB9XG5cbiAgZ2V0RmlybUl0ZW1zJCgpOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPiB7XG4gICAgY29uc3QgYmF0Y2g6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbT5bXSA9IFtdO1xuXG4gICAgYmF0Y2gucHVzaChcbiAgICAgIC8vIEZpcm0gRGV0YWlscyBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgZmlsbGVkIHNvbWUgZ2VuZXJhbCBpbmZvcm1hdGlvblxuICAgICAgdGhpcy5maXJtU2VydmljZS5nZXQoKS5waXBlKG1hcCgoZmlybTogRmlybSkgPT4ge1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtcy5maW5kQnkoJ2lzRmlybURldGFpbHMnLCB0cnVlKTtcbiAgICAgICAgaWYgKGZpcm0uYWRkcmVzcyB8fCBmaXJtLnBob25lIHx8IGZpcm0uZmlsZSB8fCBmaXJtLnNob3J0TmFtZSkge1xuICAgICAgICAgIGl0ZW0uaXNDb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KSlcbiAgICApO1xuXG4gICAgYmF0Y2gucHVzaChcbiAgICAgIC8vIEludml0ZSB0ZWFtIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gZmlybSBoYXMgZW1wbG95ZWVzIGV4Y2VwdCBmaXJtIG93bmVyIG9yIGZpcm0gaGFzIGludml0ZWQgZW1wbG95ZWVzLlxuICAgICAgdGhpcy5zZXRJdGVtU3RhdHVzKFxuICAgICAgICB0aGlzLml0ZW1zLmZpbmRCeSgnaXNJbnZpdGVUZWFtJywgdHJ1ZSksXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHRoaXMuZW1wbG95ZWVTZXJ2aWNlLmdldCgpLFxuICAgICAgICAgIHRoaXMuZW1wbG95ZWVJbnZpdGVTZXJ2aWNlLmdldCgpXG4gICAgICAgIF0pLnBpcGUobWFwKChbZW1wbG95ZWVzLCBpbnZpdGVzXTogW1VzZXJbXSwgRW1wbG95ZWVJbnZpdGVbXV0pID0+IHtcbiAgICAgICAgICAvLyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCAxIGVtcGxveWVlIChmaXJtIG93bmVyKSwgc28gd2Ugc2hvdWxkIGNoZWNrIG90aGVyIGVtcGxveWVlcyBleGNlcHQgZmlybSBvd25lclxuICAgICAgICAgIGlmIChlbXBsb3llZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBlbXBsb3llZXMgPSBjbG9uZShlbXBsb3llZXMpLnNwbGljZSgwLCAxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gWy4uLmVtcGxveWVlcywgLi4uaW52aXRlc107XG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIClcblxuICAgIGJhdGNoLnB1c2goXG4gICAgICAvLyBJbnZpdGUgY2xpZW50cyBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIGZpcm0gaGFzIGNsaWVudHMgb3IgZmlybSBoYXMgaW52aXRlZCBjbGllbnRzLlxuICAgICAgdGhpcy5zZXRJdGVtU3RhdHVzKFxuICAgICAgICB0aGlzLml0ZW1zLmZpbmRCeSgnaXNJbnZpdGVDbGllbnRzJywgdHJ1ZSksXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHRoaXMuY2xpZW50TW92ZW1lbnRTZXJ2aWNlLmdldEFjdGl2ZSgpLFxuICAgICAgICAgIHRoaXMuY2xpZW50SW52aXRlU2VydmljZS5nZXQodHJ1ZSlcbiAgICAgICAgXSkucGlwZShtYXAoKFttb3ZlbWVudHMsIGludml0ZXNdOiBbQ2xpZW50TW92ZW1lbnRDb2xsZWN0aW9uLCBDbGllbnRJbnZpdGVbXV0pID0+IHtcbiAgICAgICAgICByZXR1cm4gWy4uLm1vdmVtZW50cy50b0FycmF5KCksIC4uLmludml0ZXNdO1xuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApXG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChiYXRjaCkucGlwZShtYXAoKGl0ZW1zOiBBY2NvdW50U2V0dXBJdGVtW10pID0+IG5ldyBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbihpdGVtcykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBhbmQgdXBkYXRlIGlzQ29tcGxldGVkIGZsYWcgZm9yIHBhc3NlZCBpdGVtXG4gICAqL1xuICBwcml2YXRlIHNldEl0ZW1TdGF0dXMoaXRlbTogQWNjb3VudFNldHVwSXRlbSwgcmVxdWVzdDogT2JzZXJ2YWJsZTxvYmplY3RbXT4pOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW0+IHtcbiAgICByZXR1cm4gcmVxdWVzdC5waXBlKFxuICAgICAgbWFwKChyZXN1bHQ6IG9iamVjdFtdKTogQWNjb3VudFNldHVwSXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IGlzU2tpcHBlZDogYm9vbGVhbiA9ICEhdGhpcy51c2VyLmJsYWNrbGlzdFNldHVwSXRlbXMuZmluZCgoc2tpcHBlZEl0ZW06IEFjY291bnRTZXR1cEl0ZW0pID0+IHNraXBwZWRJdGVtLmlkID09PSBpdGVtLmlkKTtcblxuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCB8fCBpc1NraXBwZWQpIHtcbiAgICAgICAgICBpdGVtLmlzQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtLmlzQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBBbGV4OiB3b3JrIHdpdGggY29sbGVjdGlvbiB3aGVuIHNlcnZpY2VzIHJlZmFjdG9yZWRcbiAgICogQFRPRE8gVmlrOiB3YWl0aW5nIGZvciBpbmNvbWUgc291cmNlcyByZWZhY3RvcmluZ1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRJbmNvbWVTb3VyY2VzKGlzU2FsYXJ5ID0gZmFsc2UpOiBPYnNlcnZhYmxlPEluY29tZVNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaW5jb21lU291cmNlU2VydmljZS5nZXQoKS5waXBlKFxuICAgICAgbWFwKChpbmNvbWVTb3VyY2VzOiBJbmNvbWVTb3VyY2VbXSk6IEluY29tZVNvdXJjZVtdID0+IHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbjogSW5jb21lU291cmNlQ29sbGVjdGlvbiA9IG5ldyBJbmNvbWVTb3VyY2VDb2xsZWN0aW9uKGluY29tZVNvdXJjZXMpO1xuICAgICAgICBpZiAoaXNTYWxhcnkpIHtcbiAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5nZXRTYWxhcnkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uLml0ZW1zLmZpbHRlcigoaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2UpID0+IGluY29tZVNvdXJjZS5pc090aGVySW5jb21lKCkpO1xuICAgICAgfSlcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogU2hvdyBsb2dib29rIGl0ZW0gd2hlbiB1c2VyIGhhcyBhdCBsZWFzdCAxIHZlaGljbGUgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgZ2V0TG9nYm9va0l0ZW0oKTogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldCgpXG4gICAgICAucGlwZShcbiAgICAgICAgLy8gQFRPRE8gQWxleDogcmVtb3ZlIG1hcCB3aGVuIHNlcnZpY2VzIHN0YXJ0IHdvcmsgd2l0aCBjb2xsZWN0aW9uc1xuICAgICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSkgPT4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbih0cmFuc2FjdGlvbnMpKSxcbiAgICAgICAgbWVyZ2VNYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKHRyYW5zYWN0aW9ucy5nZXRWZWhpY2xlVHJhbnNhY3Rpb25zKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXRJdGVtU3RhdHVzKFxuICAgICAgICAgICAgICB0aGlzLml0ZW1zLmZpbmRCeSgnaXNXb3JrTG9nYm9vaycsIHRydWUpLFxuICAgICAgICAgICAgICB0aGlzLnZlaGljbGVDbGFpbVNlcnZpY2UuZ2V0KClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlIGJhbmsgZmVlZHMgaXRlbSB3aGVuIHVzZXIgaGFzIG9ubHkgaG9sZGluZyB0YW5rXG4gICAqL1xuICBwcml2YXRlIGdldEJhbmtGZWVkc0l0ZW0oKTogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtPiB7XG4gICAgY29uc3QgYmFua0ZlZWRzUm9sZXMgPSBbVXNlclJvbGVzRW51bS5QUk9QRVJUWV9UQU5LLCBVc2VyUm9sZXNFbnVtLldPUktfVEFOSywgVXNlclJvbGVzRW51bS5TT0xFX1RBTktdO1xuXG4gICAgaWYgKCFpbnRlcnNlY3Rpb24oYmFua0ZlZWRzUm9sZXMsIHRoaXMudXNlci5yb2xlcykubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2V0SXRlbVN0YXR1cyhcbiAgICAgIHRoaXMuaXRlbXMuZmluZEJ5KCdpc0JhbmtGZWVkcycsIHRydWUpLFxuICAgICAgdGhpcy5iYW5rQWNjb3VudHNTZXJ2aWNlLmdldEFycmF5KClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -20,9 +20,9 @@ export class RewardfulService {
20
20
  });
21
21
  }
22
22
  }
23
- RewardfulService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: RewardfulService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
24
- RewardfulService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: RewardfulService, providedIn: 'root' });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: RewardfulService, decorators: [{
23
+ RewardfulService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RewardfulService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
24
+ RewardfulService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RewardfulService, providedIn: 'root' });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RewardfulService, decorators: [{
26
26
  type: Injectable,
27
27
  args: [{
28
28
  providedIn: 'root'
@@ -37,9 +37,9 @@ export class AssetsService {
37
37
  return this.http.delete(`${this.environment.apiV2}/${asset.entityType}/${entityId}/${asset.type}/${asset.id}`);
38
38
  }
39
39
  }
40
- AssetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AssetsService, deps: [{ token: i1.HttpClient }, { token: i2.UserSwitcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
41
- AssetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AssetsService, providedIn: 'root' });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AssetsService, decorators: [{
40
+ AssetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AssetsService, deps: [{ token: i1.HttpClient }, { token: i2.UserSwitcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
41
+ AssetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AssetsService, providedIn: 'root' });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AssetsService, decorators: [{
43
43
  type: Injectable,
44
44
  args: [{
45
45
  providedIn: 'root'
@@ -42,9 +42,9 @@ export class AuthService {
42
42
  location.replace(url);
43
43
  }
44
44
  }
45
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i2.JwtService }, { token: i3.MixpanelService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
46
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AuthService, providedIn: 'root' });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AuthService, decorators: [{
45
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i2.JwtService }, { token: i3.MixpanelService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
46
+ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AuthService, providedIn: 'root' });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AuthService, decorators: [{
48
48
  type: Injectable,
49
49
  args: [{
50
50
  providedIn: 'root'
@@ -31,9 +31,9 @@ export class JwtService extends JwtHelperService {
31
31
  return this.getUser().id === userId;
32
32
  }
33
33
  }
34
- JwtService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: JwtService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
35
- JwtService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: JwtService, providedIn: 'root' });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: JwtService, decorators: [{
34
+ JwtService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
35
+ JwtService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, providedIn: 'root' });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, decorators: [{
37
37
  type: Injectable,
38
38
  args: [{
39
39
  providedIn: 'root'
@@ -25,9 +25,9 @@ export class BankAccountCalculationService {
25
25
  return bankAccounts.currentBalance - this.getTaxTankBalance(bankAccounts.getLoanAccounts(), bankTransactions, allocations);
26
26
  }
27
27
  }
28
- BankAccountCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankAccountCalculationService, deps: [{ token: i1.BankTransactionCalculationService }], target: i0.ɵɵFactoryTarget.Injectable });
29
- BankAccountCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankAccountCalculationService, providedIn: 'root' });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankAccountCalculationService, decorators: [{
28
+ BankAccountCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountCalculationService, deps: [{ token: i1.BankTransactionCalculationService }], target: i0.ɵɵFactoryTarget.Injectable });
29
+ BankAccountCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountCalculationService, providedIn: 'root' });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountCalculationService, decorators: [{
31
31
  type: Injectable,
32
32
  args: [{
33
33
  providedIn: 'root'
@@ -50,9 +50,9 @@ export class BankTransactionCalculationService {
50
50
  return allocations.getByBankTransactionsIds(bankTransactions.debitTransactions.getIds()).amount;
51
51
  }
52
52
  }
53
- BankTransactionCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankTransactionCalculationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
54
- BankTransactionCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankTransactionCalculationService, providedIn: 'root' });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankTransactionCalculationService, decorators: [{
53
+ BankTransactionCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionCalculationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
54
+ BankTransactionCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionCalculationService, providedIn: 'root' });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionCalculationService, decorators: [{
56
56
  type: Injectable,
57
57
  args: [{
58
58
  providedIn: 'root'
@@ -34,9 +34,9 @@ export class DataService {
34
34
  this.cache = this.createCollectionInstance(this.collectionClass, data.map((item) => this.createModelInstance(item)));
35
35
  }
36
36
  }
37
- DataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
38
- DataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: DataService, providedIn: 'root' });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: DataService, decorators: [{
37
+ DataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
38
+ DataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DataService, providedIn: 'root' });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DataService, decorators: [{
40
40
  type: Injectable,
41
41
  args: [{
42
42
  providedIn: 'root'
@@ -30,9 +30,9 @@ export class EventDispatcherService {
30
30
  this.eventSubject2.next(event);
31
31
  }
32
32
  }
33
- EventDispatcherService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: EventDispatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34
- EventDispatcherService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: EventDispatcherService, providedIn: 'root' });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: EventDispatcherService, decorators: [{
33
+ EventDispatcherService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: EventDispatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34
+ EventDispatcherService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: EventDispatcherService, providedIn: 'root' });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: EventDispatcherService, decorators: [{
36
36
  type: Injectable,
37
37
  args: [{
38
38
  providedIn: 'root'
@@ -34,9 +34,9 @@ export class SseService {
34
34
  .pipe(map((messageEvent) => JSON.parse(messageEvent.data)));
35
35
  }
36
36
  }
37
- SseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SseService, deps: [{ token: i0.NgZone }, { token: i1.JwtService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
38
- SseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SseService, providedIn: 'root' });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SseService, decorators: [{
37
+ SseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: SseService, deps: [{ token: i0.NgZone }, { token: i1.JwtService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
38
+ SseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: SseService, providedIn: 'root' });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: SseService, decorators: [{
40
40
  type: Injectable,
41
41
  args: [{
42
42
  providedIn: 'root'
@@ -23,9 +23,9 @@ export class ExportFormatterService {
23
23
  }));
24
24
  }
25
25
  }
26
- ExportFormatterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ExportFormatterService, deps: [{ token: i1.CurrencyPipe }, { token: i1.PercentPipe }, { token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
27
- ExportFormatterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ExportFormatterService, providedIn: 'root' });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ExportFormatterService, decorators: [{
26
+ ExportFormatterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: ExportFormatterService, deps: [{ token: i1.CurrencyPipe }, { token: i1.PercentPipe }, { token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ ExportFormatterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: ExportFormatterService, providedIn: 'root' });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: ExportFormatterService, decorators: [{
29
29
  type: Injectable,
30
30
  args: [{
31
31
  providedIn: 'root'
@@ -17,9 +17,9 @@ export class HeaderTitleService {
17
17
  }), filter((route) => route.outlet === 'primary'), mergeMap((route) => route.data));
18
18
  }
19
19
  }
20
- HeaderTitleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: HeaderTitleService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
21
- HeaderTitleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: HeaderTitleService, providedIn: 'root' });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: HeaderTitleService, decorators: [{
20
+ HeaderTitleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: HeaderTitleService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ HeaderTitleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: HeaderTitleService, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: HeaderTitleService, decorators: [{
23
23
  type: Injectable,
24
24
  args: [{
25
25
  providedIn: 'root'
@@ -23,9 +23,9 @@ export class AddressService {
23
23
  return this.countriesSubject.asObservable();
24
24
  }
25
25
  }
26
- AddressService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AddressService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
27
- AddressService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AddressService, providedIn: 'root' });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AddressService, decorators: [{
26
+ AddressService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AddressService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ AddressService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AddressService, providedIn: 'root' });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AddressService, decorators: [{
29
29
  type: Injectable,
30
30
  args: [{
31
31
  providedIn: 'root'
@@ -65,9 +65,9 @@ export class BankAccountService extends RestService {
65
65
  });
66
66
  }
67
67
  }
68
- BankAccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankAccountService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: i2.SseService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
69
- BankAccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankAccountService, providedIn: 'root' });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankAccountService, decorators: [{
68
+ BankAccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: i2.SseService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
69
+ BankAccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountService, providedIn: 'root' });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountService, decorators: [{
71
71
  type: Injectable,
72
72
  args: [{
73
73
  providedIn: 'root'
@@ -81,9 +81,9 @@ export class BankConnectionService extends RestService {
81
81
  });
82
82
  }
83
83
  }
84
- BankConnectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankConnectionService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: i2.SseService }, { token: 'environment' }, { token: i3.ToastService }], target: i0.ɵɵFactoryTarget.Injectable });
85
- BankConnectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankConnectionService, providedIn: 'root' });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankConnectionService, decorators: [{
84
+ BankConnectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankConnectionService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: i2.SseService }, { token: 'environment' }, { token: i3.ToastService }], target: i0.ɵɵFactoryTarget.Injectable });
85
+ BankConnectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankConnectionService, providedIn: 'root' });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankConnectionService, decorators: [{
87
87
  type: Injectable,
88
88
  args: [{
89
89
  providedIn: 'root'
@@ -61,9 +61,9 @@ export class BankTransactionService extends RestService {
61
61
  });
62
62
  }
63
63
  }
64
- BankTransactionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankTransactionService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
65
- BankTransactionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankTransactionService, providedIn: 'root' });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankTransactionService, decorators: [{
64
+ BankTransactionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
65
+ BankTransactionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionService, providedIn: 'root' });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionService, decorators: [{
67
67
  type: Injectable,
68
68
  args: [{
69
69
  providedIn: 'root'
@@ -16,9 +16,9 @@ export class BankService extends RestService {
16
16
  this.disabledMethods = ['post', 'postBatch', 'put', 'putBatch', 'delete', 'deleteBatch'];
17
17
  }
18
18
  }
19
- BankService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
20
- BankService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankService, providedIn: 'root' });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BankService, decorators: [{
19
+ BankService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
20
+ BankService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankService, providedIn: 'root' });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankService, decorators: [{
22
22
  type: Injectable,
23
23
  args: [{
24
24
  providedIn: 'root'
@@ -28,9 +28,9 @@ export class BasiqTokenService extends RestService {
28
28
  return new BasiqToken(tokenResponse['access_token'], new Date(now + tokenResponse['expires_in'] * 1000));
29
29
  }
30
30
  }
31
- BasiqTokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BasiqTokenService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
32
- BasiqTokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BasiqTokenService, providedIn: 'root' });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BasiqTokenService, decorators: [{
31
+ BasiqTokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqTokenService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
32
+ BasiqTokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqTokenService, providedIn: 'root' });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqTokenService, decorators: [{
34
34
  type: Injectable,
35
35
  args: [{
36
36
  providedIn: 'root'
@@ -128,9 +128,9 @@ BasiqService.retrieveAccountsCheckInterval = 3000;
128
128
  * How long we will wait accounts retrieving, break after timeout if not retireved
129
129
  */
130
130
  BasiqService.retrieveAccountsTimeout = 20000;
131
- BasiqService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BasiqService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }, { token: i3.BankConnectionService }], target: i0.ɵɵFactoryTarget.Injectable });
132
- BasiqService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BasiqService, providedIn: 'root' });
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BasiqService, decorators: [{
131
+ BasiqService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }, { token: i3.BankConnectionService }], target: i0.ɵɵFactoryTarget.Injectable });
132
+ BasiqService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqService, providedIn: 'root' });
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqService, decorators: [{
134
134
  type: Injectable,
135
135
  args: [{
136
136
  providedIn: 'root'
@@ -13,9 +13,9 @@ export class BudgetService extends RestService {
13
13
  this.disabledMethods = ['postBatch', 'putBatch', 'deleteBatch'];
14
14
  }
15
15
  }
16
- BudgetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BudgetService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
17
- BudgetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BudgetService, providedIn: 'root' });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BudgetService, decorators: [{
16
+ BudgetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BudgetService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
17
+ BudgetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BudgetService, providedIn: 'root' });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BudgetService, decorators: [{
19
19
  type: Injectable,
20
20
  args: [{
21
21
  providedIn: 'root'