taxtank-core 0.8.3 → 0.8.7

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 (166) hide show
  1. package/bundles/taxtank-core.umd.js +145 -140
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/collection.js +2 -2
  4. package/esm2015/lib/collections/depreciation.collection.js +3 -3
  5. package/esm2015/lib/collections/tax-summary/report-item.collection.js +141 -0
  6. package/esm2015/lib/db/Models/transaction-base.js +2 -1
  7. package/esm2015/lib/models/property/property.js +7 -4
  8. package/esm2015/lib/models/tax-summary/report-item-details.js +9 -0
  9. package/esm2015/lib/models/tax-summary/report-item.js +15 -0
  10. package/esm2015/lib/models/tax-summary/tax-summary-section.js +5 -5
  11. package/esm2015/lib/services/http/address/address.service.js +39 -0
  12. package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +118 -0
  13. package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +52 -0
  14. package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +89 -0
  15. package/esm2015/lib/services/http/bank/bank.service.js +24 -0
  16. package/esm2015/lib/services/http/bank/basiq/basiq.service.js +94 -0
  17. package/esm2015/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.js +38 -0
  18. package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +89 -0
  19. package/esm2015/lib/services/http/chat/chat.service.js +77 -0
  20. package/esm2015/lib/services/http/chat/message/message.service.js +65 -0
  21. package/esm2015/lib/services/http/chat/message-document/message-document.service.js +118 -0
  22. package/esm2015/lib/services/{depreciation/capital-project.service.js → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.js} +7 -7
  23. package/esm2015/lib/services/http/depreciation/depreciation.service.js +146 -0
  24. package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +84 -0
  25. package/esm2015/lib/services/{client → http/firm/client-invite}/client-invite.service.js +7 -7
  26. package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +98 -0
  27. package/esm2015/lib/services/http/firm/employee/employee.service.js +39 -0
  28. package/esm2015/lib/services/http/firm/employee-invite/employee-invite.service.js +53 -0
  29. package/esm2015/lib/services/http/firm/firm.service.js +79 -0
  30. package/esm2015/lib/services/http/firm/portfolio-report/client-portfolio-report.service.js +37 -0
  31. package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +90 -0
  32. package/esm2015/lib/services/http/income-source/income-source.service.js +109 -0
  33. package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +90 -0
  34. package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +87 -0
  35. package/esm2015/lib/services/http/loan/borrowing-expense/borrowing-expense.service.js +73 -0
  36. package/esm2015/lib/services/http/loan/loan.service.js +145 -0
  37. package/esm2015/lib/services/http/property/property-category/property-category.service.js +23 -0
  38. package/esm2015/lib/services/http/property/property-category-movement/property-category-movement.service.js +47 -0
  39. package/esm2015/lib/services/http/property/property-document/property-document.service.js +70 -0
  40. package/esm2015/lib/services/http/property/property-sale/property-sale.service.js +20 -0
  41. package/esm2015/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.js +21 -0
  42. package/esm2015/lib/services/http/property/property-share/property-share.service.js +115 -0
  43. package/esm2015/lib/services/http/property/property.service.js +126 -0
  44. package/esm2015/lib/services/http/rest/rest.service.js +190 -0
  45. package/esm2015/lib/services/http/service-notification/service-notification.service.js +65 -0
  46. package/esm2015/lib/services/http/subscription/subscription.service.js +157 -0
  47. package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +41 -0
  48. package/esm2015/lib/services/http/tax-review/tax-review.service.js +103 -0
  49. package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +71 -0
  50. package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +85 -0
  51. package/esm2015/lib/services/http/transaction/transaction.service.js +319 -0
  52. package/esm2015/lib/services/http/user/occupation/occupation.service.js +45 -0
  53. package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +59 -0
  54. package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +29 -0
  55. package/esm2015/lib/services/http/user/user.service.js +124 -0
  56. package/esm2015/lib/services/http/vehicle/vehicle.service.js +237 -0
  57. package/esm2015/lib/services/property/equity-position-chart/equity-position-chart.service.js +45 -0
  58. package/esm2015/public-api.js +51 -51
  59. package/fesm2015/taxtank-core.js +67 -62
  60. package/fesm2015/taxtank-core.js.map +1 -1
  61. package/lib/collections/collection.d.ts +1 -1
  62. package/lib/collections/{tax-return-category-item.collection.d.ts → tax-summary/report-item.collection.d.ts} +5 -5
  63. package/lib/models/property/property.d.ts +1 -0
  64. package/lib/models/tax-summary/{tax-return-category-item-details.d.ts → report-item-details.d.ts} +2 -2
  65. package/lib/models/tax-summary/{tax-return-category-item.d.ts → report-item.d.ts} +4 -4
  66. package/lib/models/tax-summary/tax-summary-section.d.ts +2 -2
  67. package/lib/services/{address → http/address}/address.service.d.ts +1 -1
  68. package/lib/services/{bank → http/bank/bank-account}/bank-account.service.d.ts +5 -5
  69. package/lib/services/{bank → http/bank/bank-connection}/bank-connection.service.d.ts +5 -5
  70. package/lib/services/{bank → http/bank/bank-transaction}/bank-transaction.service.d.ts +5 -5
  71. package/lib/services/{bank → http/bank}/bank.service.d.ts +4 -4
  72. package/lib/services/{bank → http/bank/basiq}/basiq.service.d.ts +7 -7
  73. package/lib/services/{chart-accounts → http/chart-accounts/chart-accounts-depreciations}/chart-accounts-depreciations.service.d.ts +4 -4
  74. package/lib/services/{chart-accounts → http/chart-accounts}/chart-accounts.service.d.ts +3 -3
  75. package/lib/services/{chat → http/chat}/chat.service.d.ts +7 -7
  76. package/lib/services/{chat → http/chat/message}/message.service.d.ts +7 -7
  77. package/lib/services/{chat → http/chat/message-document}/message-document.service.d.ts +3 -3
  78. package/lib/services/{depreciation/capital-project.service.d.ts → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.d.ts} +4 -4
  79. package/lib/services/{depreciation → http/depreciation}/depreciation.service.d.ts +5 -5
  80. package/lib/services/{document → http/document/document-folder}/document-folder.service.d.ts +6 -6
  81. package/lib/services/{client → http/firm/client-invite}/client-invite.service.d.ts +4 -4
  82. package/lib/services/{client → http/firm/client-movement}/client-movement.service.d.ts +7 -7
  83. package/lib/services/{employee → http/firm/employee}/employee.service.d.ts +4 -4
  84. package/lib/services/{employee → http/firm/employee-invite}/employee-invite.service.d.ts +4 -4
  85. package/lib/services/{firm → http/firm}/firm.service.d.ts +2 -2
  86. package/lib/services/{client → http/firm/portfolio-report}/client-portfolio-report.service.d.ts +1 -1
  87. package/lib/services/{income-source → http/income-source/income-source-forecast}/income-source-forecast.service.d.ts +5 -5
  88. package/lib/services/{income-source → http/income-source}/income-source.service.d.ts +8 -8
  89. package/lib/services/{income-source → http/income-source/salary-forecast}/salary-forecast.service.d.ts +6 -6
  90. package/lib/services/{income-source → http/income-source/sole-forecast}/sole-forecast.service.d.ts +5 -5
  91. package/lib/services/{borrowing-expense → http/loan/borrowing-expense}/borrowing-expense.service.d.ts +2 -2
  92. package/lib/services/{loan → http/loan}/loan.service.d.ts +6 -6
  93. package/lib/services/{property → http/property}/property-category/property-category.service.d.ts +4 -4
  94. package/lib/services/{property → http/property/property-category-movement}/property-category-movement.service.d.ts +4 -4
  95. package/lib/services/{property → http/property}/property-document/property-document.service.d.ts +5 -5
  96. package/lib/services/http/property/property-sale/property-sale.service.d.ts +10 -0
  97. package/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.d.ts +11 -0
  98. package/lib/services/{property → http/property}/property-share/property-share.service.d.ts +5 -5
  99. package/lib/services/{property → http/property}/property.service.d.ts +5 -5
  100. package/lib/services/{base-rest.service.d.ts → http/rest/rest.service.d.ts} +4 -4
  101. package/lib/services/http/service-notification/service-notification.service.d.ts +31 -0
  102. package/lib/services/{subscription → http/subscription}/subscription.service.d.ts +6 -6
  103. package/lib/services/{tax-review → http/tax-review/tax-review-history}/tax-review-history.service.d.ts +5 -5
  104. package/lib/services/{tax-review → http/tax-review}/tax-review.service.d.ts +6 -6
  105. package/lib/services/{tax-summary → http/tax-summary}/tax-summary.service.d.ts +2 -2
  106. package/lib/services/{transaction → http/transaction/transaction-allocation}/transaction-allocation.service.d.ts +6 -6
  107. package/lib/services/{transaction → http/transaction}/transaction.service.d.ts +7 -7
  108. package/lib/services/{user → http/user/occupation}/occupation.service.d.ts +1 -1
  109. package/lib/services/{user-event → http/user/user-event-setting}/user-event-setting.service.d.ts +5 -5
  110. package/lib/services/{user-event → http/user/user-event-type}/user-event-type.service.d.ts +5 -5
  111. package/lib/services/{user → http/user}/user.service.d.ts +3 -3
  112. package/lib/services/{work/work-tank.service.d.ts → http/vehicle/vehicle.service.d.ts} +9 -8
  113. package/lib/services/property/{equity-position-chart.service.d.ts → equity-position-chart/equity-position-chart.service.d.ts} +1 -1
  114. package/package.json +1 -1
  115. package/public-api.d.ts +50 -50
  116. package/esm2015/lib/collections/tax-return-category-item.collection.js +0 -141
  117. package/esm2015/lib/models/tax-summary/tax-return-category-item-details.js +0 -9
  118. package/esm2015/lib/models/tax-summary/tax-return-category-item.js +0 -15
  119. package/esm2015/lib/services/address/address.service.js +0 -39
  120. package/esm2015/lib/services/bank/bank-account.service.js +0 -118
  121. package/esm2015/lib/services/bank/bank-connection.service.js +0 -52
  122. package/esm2015/lib/services/bank/bank-transaction.service.js +0 -89
  123. package/esm2015/lib/services/bank/bank.service.js +0 -24
  124. package/esm2015/lib/services/bank/basiq.service.js +0 -94
  125. package/esm2015/lib/services/base-rest.service.js +0 -190
  126. package/esm2015/lib/services/borrowing-expense/borrowing-expense.service.js +0 -73
  127. package/esm2015/lib/services/chart-accounts/chart-accounts-depreciations.service.js +0 -38
  128. package/esm2015/lib/services/chart-accounts/chart-accounts.service.js +0 -89
  129. package/esm2015/lib/services/chat/chat.service.js +0 -77
  130. package/esm2015/lib/services/chat/message-document.service.js +0 -118
  131. package/esm2015/lib/services/chat/message.service.js +0 -65
  132. package/esm2015/lib/services/client/client-movement.service.js +0 -98
  133. package/esm2015/lib/services/client/client-portfolio-report.service.js +0 -37
  134. package/esm2015/lib/services/depreciation/depreciation.service.js +0 -146
  135. package/esm2015/lib/services/document/document-folder.service.js +0 -84
  136. package/esm2015/lib/services/employee/employee-invite.service.js +0 -53
  137. package/esm2015/lib/services/employee/employee.service.js +0 -39
  138. package/esm2015/lib/services/firm/firm.service.js +0 -79
  139. package/esm2015/lib/services/income-source/income-source-forecast.service.js +0 -90
  140. package/esm2015/lib/services/income-source/income-source.service.js +0 -109
  141. package/esm2015/lib/services/income-source/salary-forecast.service.js +0 -90
  142. package/esm2015/lib/services/income-source/sole-forecast.service.js +0 -87
  143. package/esm2015/lib/services/loan/loan.service.js +0 -145
  144. package/esm2015/lib/services/notification/notification.service.js +0 -65
  145. package/esm2015/lib/services/property/equity-position-chart.service.js +0 -45
  146. package/esm2015/lib/services/property/property-category/property-category.service.js +0 -23
  147. package/esm2015/lib/services/property/property-category-movement.service.js +0 -47
  148. package/esm2015/lib/services/property/property-document/property-document.service.js +0 -70
  149. package/esm2015/lib/services/property/property-sale/property-sale.service.js +0 -20
  150. package/esm2015/lib/services/property/property-sale/tax-exemption/tax-exemption.service.js +0 -21
  151. package/esm2015/lib/services/property/property-share/property-share.service.js +0 -115
  152. package/esm2015/lib/services/property/property.service.js +0 -126
  153. package/esm2015/lib/services/subscription/subscription.service.js +0 -157
  154. package/esm2015/lib/services/tax-review/tax-review-history.service.js +0 -41
  155. package/esm2015/lib/services/tax-review/tax-review.service.js +0 -103
  156. package/esm2015/lib/services/tax-summary/tax-summary.service.js +0 -71
  157. package/esm2015/lib/services/transaction/transaction-allocation.service.js +0 -85
  158. package/esm2015/lib/services/transaction/transaction.service.js +0 -319
  159. package/esm2015/lib/services/user/occupation.service.js +0 -45
  160. package/esm2015/lib/services/user/user.service.js +0 -124
  161. package/esm2015/lib/services/user-event/user-event-setting.service.js +0 -59
  162. package/esm2015/lib/services/user-event/user-event-type.service.js +0 -29
  163. package/esm2015/lib/services/work/work-tank.service.js +0 -236
  164. package/lib/services/notification/notification.service.d.ts +0 -31
  165. package/lib/services/property/property-sale/property-sale.service.d.ts +0 -10
  166. package/lib/services/property/property-sale/tax-exemption/tax-exemption.service.d.ts +0 -11
@@ -0,0 +1,41 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { RestService } from '../../rest/rest.service';
3
+ import { TaxReview } from '../../../../models/tax-review/tax-review';
4
+ import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
5
+ import _ from 'lodash';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common/http";
8
+ import * as i2 from "../../../event/event-dispatcher.service";
9
+ /**
10
+ * Service to work with tax review history
11
+ */
12
+ export class TaxReviewHistoryService extends RestService {
13
+ constructor(http, eventDispatcherService, environment) {
14
+ super(http, eventDispatcherService, environment);
15
+ this.http = http;
16
+ this.eventDispatcherService = eventDispatcherService;
17
+ this.environment = environment;
18
+ this.url = 'tax-reviews/history';
19
+ this.modelClass = TaxReview;
20
+ // subscribe on tax review updating
21
+ eventDispatcherService.on(AppEventTypeEnum.TAX_REVIEW_UPDATED).subscribe((taxReview) => {
22
+ const tempCache = _.cloneDeep(this.cache);
23
+ // insert element at the beginning of the array
24
+ tempCache.unshift(taxReview);
25
+ this.cache = tempCache;
26
+ this.updateCache();
27
+ });
28
+ }
29
+ }
30
+ TaxReviewHistoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TaxReviewHistoryService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
31
+ TaxReviewHistoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TaxReviewHistoryService, providedIn: 'root' });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TaxReviewHistoryService, decorators: [{
33
+ type: Injectable,
34
+ args: [{
35
+ providedIn: 'root'
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
38
+ type: Inject,
39
+ args: ['environment']
40
+ }] }]; } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJldmlldy1oaXN0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC90YXgtcmV2aWV3L3RheC1yZXZpZXctaGlzdG9yeS90YXgtcmV2aWV3LWhpc3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7OztBQUV2Qjs7R0FFRztBQUlILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxXQUFxQztJQUloRixZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUN2QixXQUFnQjtRQUVqRCxLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBSnZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQU5uRCxRQUFHLEdBQVcscUJBQXFCLENBQUM7UUFDcEMsZUFBVSxHQUFxQixTQUFTLENBQUM7UUFRdkMsbUNBQW1DO1FBQ25DLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQW9CLEVBQVEsRUFBRTtZQUN0RyxNQUFNLFNBQVMsR0FBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkQsK0NBQStDO1lBQy9DLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7cUhBbEJVLHVCQUF1QixrRkFPeEIsYUFBYTt5SEFQWix1QkFBdUIsY0FGdEIsTUFBTTs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRheFJldmlldyBhcyBUYXhSZXZpZXdCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL3RheC1yZXZpZXcnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGF4UmV2aWV3IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3RheC1yZXZpZXcvdGF4LXJldmlldyc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZXZlbnQvZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gd29yayB3aXRoIHRheCByZXZpZXcgaGlzdG9yeVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUYXhSZXZpZXdIaXN0b3J5U2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFRheFJldmlld0Jhc2UsIFRheFJldmlldz4ge1xuICB1cmw6IHN0cmluZyA9ICd0YXgtcmV2aWV3cy9oaXN0b3J5JztcbiAgbW9kZWxDbGFzczogdHlwZW9mIFRheFJldmlldyA9IFRheFJldmlldztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50KTtcbiAgICAvLyBzdWJzY3JpYmUgb24gdGF4IHJldmlldyB1cGRhdGluZ1xuICAgIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5UQVhfUkVWSUVXX1VQREFURUQpLnN1YnNjcmliZSgodGF4UmV2aWV3OiBUYXhSZXZpZXcpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHRlbXBDYWNoZTogVGF4UmV2aWV3W10gPSBfLmNsb25lRGVlcCh0aGlzLmNhY2hlKTtcbiAgICAgIC8vIGluc2VydCBlbGVtZW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5XG4gICAgICB0ZW1wQ2FjaGUudW5zaGlmdCh0YXhSZXZpZXcpO1xuICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,103 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import _ from 'lodash';
4
+ import { replace } from '../../../functions/array';
5
+ import { RestService } from '../rest/rest.service';
6
+ import { plainToClass } from 'class-transformer';
7
+ import { TaxReview } from '../../../models/tax-review/tax-review';
8
+ import { AppEventTypeEnum } from '../../../models/event/app-event-type.enum';
9
+ import { AppEvent } from '../../../models/event/app-event';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common/http";
12
+ import * as i2 from "../../event/event-dispatcher.service";
13
+ /**
14
+ * Service to work with tax review
15
+ */
16
+ export class TaxReviewService extends RestService {
17
+ constructor(http, eventDispatcherService, environment) {
18
+ super(http, eventDispatcherService, environment);
19
+ this.http = http;
20
+ this.eventDispatcherService = eventDispatcherService;
21
+ this.environment = environment;
22
+ this.url = 'tax-reviews';
23
+ this.modelClass = TaxReview;
24
+ this.listenEvents();
25
+ }
26
+ /**
27
+ * Listen events from SSE and Event Dispatcher services
28
+ */
29
+ listenEvents() {
30
+ this.listenFirmChanges();
31
+ this.listenClientTransfer();
32
+ }
33
+ /**
34
+ * Add new Tax Review (request from client to firm)
35
+ * @param finYear
36
+ */
37
+ request(finYear) {
38
+ return this.http.post(`${this.environment.apiV2}/${this.url}?financialYear=${finYear}`, {})
39
+ .pipe(map((newTaxReview) => {
40
+ const taxReview = plainToClass(TaxReview, newTaxReview);
41
+ const tempCache = _.cloneDeep(this.cache);
42
+ tempCache.push(taxReview);
43
+ this.cache = tempCache;
44
+ this.updateCache();
45
+ return taxReview;
46
+ }));
47
+ }
48
+ /**
49
+ * Update tax review
50
+ * @param taxReview to be updated
51
+ */
52
+ update(taxReview) {
53
+ return this.http.put(`${this.environment.apiV2}/${this.url}/${taxReview.id}`, taxReview)
54
+ .pipe(map((updatedTaxReview) => {
55
+ const updatedInstance = plainToClass(TaxReview, updatedTaxReview);
56
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TAX_REVIEW_UPDATED, updatedInstance));
57
+ const tempCache = _.cloneDeep(this.cache);
58
+ replace(tempCache, updatedInstance);
59
+ this.cache = tempCache;
60
+ this.updateCache();
61
+ return updatedInstance;
62
+ }));
63
+ }
64
+ /**
65
+ * Clear cache when user reject firm
66
+ */
67
+ listenFirmChanges() {
68
+ this.eventDispatcherService.on([AppEventTypeEnum.CLIENT_MOVEMENT_CLOSED, AppEventTypeEnum.CLIENT_INVITE_ACCEPTED])
69
+ .subscribe(() => {
70
+ this.cache = [];
71
+ this.updateCache();
72
+ });
73
+ }
74
+ /**
75
+ * Update firm for all transferred clients
76
+ * @private
77
+ */
78
+ listenClientTransfer() {
79
+ this.eventDispatcherService.on(AppEventTypeEnum.CLIENT_TRANSFER_TO_OTHER_EMPLOYEE)
80
+ .subscribe((transferredClients) => {
81
+ const tempCache = _.cloneDeep(this.cache);
82
+ transferredClients.forEach((transferredClient) => {
83
+ const taxReviewIndex = tempCache.findIndex((taxReview) => taxReview.id === transferredClient.id);
84
+ // @TODO vik
85
+ // tempCache[taxReviewIndex].employee = transferredClient.accountant;
86
+ });
87
+ this.cache = tempCache;
88
+ this.updateCache();
89
+ });
90
+ }
91
+ }
92
+ TaxReviewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TaxReviewService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
93
+ TaxReviewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TaxReviewService, providedIn: 'root' });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TaxReviewService, decorators: [{
95
+ type: Injectable,
96
+ args: [{
97
+ providedIn: 'root'
98
+ }]
99
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
100
+ type: Inject,
101
+ args: ['environment']
102
+ }] }]; } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJldmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdGF4LXJldmlldy90YXgtcmV2aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBRzNEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQXFDO0lBSXpFLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCO1FBRWpELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFKdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTm5ELFFBQUcsR0FBVyxhQUFhLENBQUM7UUFDNUIsZUFBVSxHQUFxQixTQUFTLENBQUM7UUFRdkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFF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cUVBQXFFO1lBQ3ZFLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7OEdBMUZVLGdCQUFnQixrRkFPakIsYUFBYTtrSEFQWixnQkFBZ0IsY0FGZixNQUFNOzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVFJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGF4UmV2aWV3IGFzIFRheFJldmlld0Jhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMvdGF4LXJldmlldyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgcmVwbGFjZSB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFRheFJldmlldyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXgtcmV2aWV3L3RheC1yZXZpZXcnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdXNlci91c2VyJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIHdvcmsgd2l0aCB0YXggcmV2aWV3XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRheFJldmlld1NlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxUYXhSZXZpZXdCYXNlLCBUYXhSZXZpZXc+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICB1cmw6IHN0cmluZyA9ICd0YXgtcmV2aWV3cyc7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBUYXhSZXZpZXcgPSBUYXhSZXZpZXc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZXZlbnRzIGZyb20gU1NFIGFuZCBFdmVudCBEaXNwYXRjaGVyIHNlcnZpY2VzXG4gICAqL1xuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5GaXJtQ2hhbmdlcygpO1xuICAgIHRoaXMubGlzdGVuQ2xpZW50VHJhbnNmZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbmV3IFRheCBSZXZpZXcgKHJlcXVlc3QgZnJvbSBjbGllbnQgdG8gZmlybSlcbiAgICogQHBhcmFtIGZpblllYXJcbiAgICovXG4gIHJlcXVlc3QoZmluWWVhcjogbnVtYmVyKTogT2JzZXJ2YWJsZTxUYXhSZXZpZXc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0/ZmluYW5jaWFsWWVhcj0ke2ZpblllYXJ9YCwge30pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdUYXhSZXZpZXc6IFRheFJldmlld0Jhc2UpOiBUYXhSZXZpZXcgPT4ge1xuICAgICAgICAgIGNvbnN0IHRheFJldmlldzogVGF4UmV2aWV3ID0gcGxhaW5Ub0NsYXNzKFRheFJldmlldywgbmV3VGF4UmV2aWV3KTtcbiAgICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IFRheFJldmlld1tdID0gXy5jbG9uZURlZXAodGhpcy5jYWNoZSk7XG4gICAgICAgICAgdGVtcENhY2hlLnB1c2godGF4UmV2aWV3KTtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGVtcENhY2hlO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gdGF4UmV2aWV3O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGF4IHJldmlld1xuICAgKiBAcGFyYW0gdGF4UmV2aWV3IHRvIGJlIHVwZGF0ZWRcbiAgICovXG4gIHVwZGF0ZSh0YXhSZXZpZXc6IFRheFJldmlldyk6IE9ic2VydmFibGU8VGF4UmV2aWV3PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHt0YXhSZXZpZXcuaWR9YCwgdGF4UmV2aWV3KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZFRheFJldmlldzogVGF4UmV2aWV3QmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZTogVGF4UmV2aWV3ID0gcGxhaW5Ub0NsYXNzKFRheFJldmlldywgdXBkYXRlZFRheFJldmlldyk7XG5cbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVEFYX1JFVklFV19VUERBVEVELCB1cGRhdGVkSW5zdGFuY2UpKTtcblxuICAgICAgICAgIGNvbnN0IHRlbXBDYWNoZTogVGF4UmV2aWV3W10gPSBfLmNsb25lRGVlcCh0aGlzLmNhY2hlKTtcbiAgICAgICAgICByZXBsYWNlKHRlbXBDYWNoZSwgdXBkYXRlZEluc3RhbmNlKTtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGVtcENhY2hlO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcblxuICAgICAgICAgIHJldHVybiB1cGRhdGVkSW5zdGFuY2U7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGNhY2hlIHdoZW4gdXNlciByZWplY3QgZmlybVxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5GaXJtQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oW0FwcEV2ZW50VHlwZUVudW0uQ0xJRU5UX01PVkVNRU5UX0NMT1NFRCwgQXBwRXZlbnRUeXBlRW51bS5DTElFTlRfSU5WSVRFX0FDQ0VQVEVEXSlcbiAgICAgIC5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmNhY2hlID0gW107XG4gICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBmaXJtIGZvciBhbGwgdHJhbnNmZXJyZWQgY2xpZW50c1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5DbGllbnRUcmFuc2ZlcigpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5DTElFTlRfVFJBTlNGRVJfVE9fT1RIRVJfRU1QTE9ZRUUpXG4gICAgICAuc3Vic2NyaWJlKCh0cmFuc2ZlcnJlZENsaWVudHM6IFVzZXJbXSk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IFRheFJldmlld1tdID0gXy5jbG9uZURlZXAodGhpcy5jYWNoZSk7XG5cbiAgICAgICAgdHJhbnNmZXJyZWRDbGllbnRzLmZvckVhY2goKHRyYW5zZmVycmVkQ2xpZW50OiBVc2VyKTogdm9pZCA9PiB7XG4gICAgICAgICAgY29uc3QgdGF4UmV2aWV3SW5kZXg6IG51bWJlciA9IHRlbXBDYWNoZS5maW5kSW5kZXgoKHRheFJldmlldzogVGF4UmV2aWV3KTogYm9vbGVhbiA9PiB0YXhSZXZpZXcuaWQgPT09IHRyYW5zZmVycmVkQ2xpZW50LmlkKTtcbiAgICAgICAgICAvLyBAVE9ETyB2aWtcbiAgICAgICAgICAvLyB0ZW1wQ2FjaGVbdGF4UmV2aWV3SW5kZXhdLmVtcGxveWVlID0gdHJhbnNmZXJyZWRDbGllbnQuYWNjb3VudGFudDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import { plainToClass } from 'class-transformer';
4
+ import { TaxSummary } from '../../../models/tax-summary/tax-summary';
5
+ import { TaxSummaryTypeEnum } from '../../../models/tax-summary/tax-summary-type.enum';
6
+ import { AppEventTypeEnum } from '../../../models/event/app-event-type.enum';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ import * as i2 from "../../event/event-dispatcher.service";
10
+ /**
11
+ * Service to work with tax summary logic
12
+ */
13
+ export class TaxSummaryService {
14
+ constructor(http, eventDispatcherService, environment) {
15
+ this.http = http;
16
+ this.eventDispatcherService = eventDispatcherService;
17
+ this.environment = environment;
18
+ this.taxSummaryActualsSubject = new ReplaySubject(1);
19
+ this.taxSummaryForecastsSubject = new ReplaySubject(1);
20
+ this.listenEvents();
21
+ }
22
+ listenEvents() {
23
+ this.listenToIncomeSourceForecastsEvents();
24
+ }
25
+ /**
26
+ * Get actual tax summary items
27
+ */
28
+ getActuals() {
29
+ this.http.get(`${this.environment.apiV2}/tax-summary/${TaxSummaryTypeEnum.ACTUALS}`, {})
30
+ .subscribe((response) => {
31
+ const taxSummary = plainToClass(TaxSummary, response);
32
+ this.taxSummaryActualsSubject.next(taxSummary);
33
+ return taxSummary;
34
+ });
35
+ return this.taxSummaryActualsSubject.asObservable();
36
+ }
37
+ /**
38
+ * Get forecast tax summary items
39
+ */
40
+ getForecast() {
41
+ this.http.get(`${this.environment.apiV2}/tax-summary/${TaxSummaryTypeEnum.FORECASTS}`, {})
42
+ .subscribe((response) => {
43
+ const taxSummary = plainToClass(TaxSummary, response);
44
+ this.taxSummaryForecastsSubject.next(taxSummary);
45
+ return taxSummary;
46
+ });
47
+ return this.taxSummaryForecastsSubject.asObservable();
48
+ }
49
+ /**
50
+ * Listen to EventDispatcherService events related to Income source forecasts
51
+ */
52
+ listenToIncomeSourceForecastsEvents() {
53
+ this.eventDispatcherService
54
+ .on([AppEventTypeEnum.INCOME_SOURCES_FORECASTS_CREATED, AppEventTypeEnum.INCOME_SOURCES_FORECASTS_UPDATED])
55
+ .subscribe(() => {
56
+ this.getForecast().subscribe();
57
+ });
58
+ }
59
+ }
60
+ TaxSummaryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TaxSummaryService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
61
+ TaxSummaryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TaxSummaryService, providedIn: 'root' });
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TaxSummaryService, decorators: [{
63
+ type: Injectable,
64
+ args: [{
65
+ providedIn: 'root'
66
+ }]
67
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
68
+ type: Inject,
69
+ args: ['environment']
70
+ }] }]; } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXN1bW1hcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7O0FBRTdFOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QixZQUNVLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUNyQixXQUFnQjtRQUZ6QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFObkQsNkJBQXdCLEdBQThCLElBQUksYUFBYSxDQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLCtCQUEwQixHQUE4QixJQUFJLGFBQWEsQ0FBYSxDQUFDLENBQUMsQ0FBQztRQU92RixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsbUNBQW1DLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssZ0JBQWdCLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUNyRixTQUFTLENBQUMsQ0FBQyxRQUFnQixFQUFjLEVBQUU7WUFDeEMsTUFBTSxVQUFVLEdBQWUsWUFBWSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9DLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUMsQ0FDRixDQUFDO1FBQ0osT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLGdCQUFnQixrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDdkYsU0FBUyxDQUFDLENBQUMsUUFBZ0IsRUFBYyxFQUFFO1lBQ3hDLE1BQU0sVUFBVSxHQUFlLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqRCxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQ0YsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRDs7T0FFRztJQUNLLG1DQUFtQztRQUN6QyxJQUFJLENBQUMsc0JBQXNCO2FBQ3hCLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGdDQUFnQyxFQUFFLGdCQUFnQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7YUFDMUcsU0FBUyxDQUFDLEdBQVMsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzsrR0FyRFUsaUJBQWlCLGtGQU9sQixhQUFhO21IQVBaLGlCQUFpQixjQUZoQixNQUFNOzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVFJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFRheFN1bW1hcnkgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGF4LXN1bW1hcnkvdGF4LXN1bW1hcnknO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUYXhTdW1tYXJ5VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGF4LXN1bW1hcnkvdGF4LXN1bW1hcnktdHlwZS5lbnVtJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5cbi8qKlxuICogU2VydmljZSB0byB3b3JrIHdpdGggdGF4IHN1bW1hcnkgbG9naWNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGF4U3VtbWFyeVNlcnZpY2Uge1xuICB0YXhTdW1tYXJ5QWN0dWFsc1N1YmplY3Q6IFJlcGxheVN1YmplY3Q8VGF4U3VtbWFyeT4gPSBuZXcgUmVwbGF5U3ViamVjdDxUYXhTdW1tYXJ5PigxKTtcbiAgdGF4U3VtbWFyeUZvcmVjYXN0c1N1YmplY3Q6IFJlcGxheVN1YmplY3Q8VGF4U3VtbWFyeT4gPSBuZXcgUmVwbGF5U3ViamVjdDxUYXhTdW1tYXJ5PigxKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvSW5jb21lU291cmNlRm9yZWNhc3RzRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFjdHVhbCB0YXggc3VtbWFyeSBpdGVtc1xuICAgKi9cbiAgZ2V0QWN0dWFscygpOiBPYnNlcnZhYmxlPFRheFN1bW1hcnk+IHtcbiAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3RheC1zdW1tYXJ5LyR7VGF4U3VtbWFyeVR5cGVFbnVtLkFDVFVBTFN9YCwge30pXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogb2JqZWN0KTogVGF4U3VtbWFyeSA9PiB7XG4gICAgICAgICAgY29uc3QgdGF4U3VtbWFyeTogVGF4U3VtbWFyeSA9IHBsYWluVG9DbGFzcyhUYXhTdW1tYXJ5LCByZXNwb25zZSk7XG4gICAgICAgICAgdGhpcy50YXhTdW1tYXJ5QWN0dWFsc1N1YmplY3QubmV4dCh0YXhTdW1tYXJ5KTtcbiAgICAgICAgICByZXR1cm4gdGF4U3VtbWFyeTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcy50YXhTdW1tYXJ5QWN0dWFsc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGZvcmVjYXN0IHRheCBzdW1tYXJ5IGl0ZW1zXG4gICAqL1xuICBnZXRGb3JlY2FzdCgpOiBPYnNlcnZhYmxlPFRheFN1bW1hcnk+IHtcbiAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3RheC1zdW1tYXJ5LyR7VGF4U3VtbWFyeVR5cGVFbnVtLkZPUkVDQVNUU31gLCB7fSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBvYmplY3QpOiBUYXhTdW1tYXJ5ID0+IHtcbiAgICAgICAgICBjb25zdCB0YXhTdW1tYXJ5OiBUYXhTdW1tYXJ5ID0gcGxhaW5Ub0NsYXNzKFRheFN1bW1hcnksIHJlc3BvbnNlKTtcbiAgICAgICAgICB0aGlzLnRheFN1bW1hcnlGb3JlY2FzdHNTdWJqZWN0Lm5leHQodGF4U3VtbWFyeSk7XG4gICAgICAgICAgcmV0dXJuIHRheFN1bW1hcnk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgcmV0dXJuIHRoaXMudGF4U3VtbWFyeUZvcmVjYXN0c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnRzIHJlbGF0ZWQgdG8gSW5jb21lIHNvdXJjZSBmb3JlY2FzdHNcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9JbmNvbWVTb3VyY2VGb3JlY2FzdHNFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlXG4gICAgICAub24oW0FwcEV2ZW50VHlwZUVudW0uSU5DT01FX1NPVVJDRVNfRk9SRUNBU1RTX0NSRUFURUQsIEFwcEV2ZW50VHlwZUVudW0uSU5DT01FX1NPVVJDRVNfRk9SRUNBU1RTX1VQREFURURdKVxuICAgICAgLnN1YnNjcmliZSgoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuZ2V0Rm9yZWNhc3QoKS5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,85 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { TransactionAllocation } from '../../../../models/transaction/transaction-allocation';
3
+ import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
4
+ import { RestService } from '../../rest/rest.service';
5
+ import { map } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common/http";
8
+ import * as i2 from "../../../event/event-dispatcher.service";
9
+ // @TODO Don't look at the commented code. Will be refactored/removed during TT-1503
10
+ /**
11
+ * Service for transaction allocations business logic
12
+ * @TODO alex refactor
13
+ */
14
+ export class TransactionAllocationService extends RestService {
15
+ constructor(http, eventDispatcherService, environment) {
16
+ super(http, eventDispatcherService, environment);
17
+ this.http = http;
18
+ this.eventDispatcherService = eventDispatcherService;
19
+ this.environment = environment;
20
+ // API URL param for transaction allocations
21
+ this.url = 'transactions-allocations';
22
+ this.modelClass = TransactionAllocation;
23
+ this.listenEvents();
24
+ }
25
+ /**
26
+ * Add single transaction allocation
27
+ */
28
+ add(allocation) {
29
+ return this.addBatch([allocation]).pipe(map((newAllocations) => newAllocations[0]));
30
+ }
31
+ /**
32
+ * get list of transactions allocations related with passed bank transactions list
33
+ */
34
+ getByTransactions(transactions) {
35
+ const ids = transactions.map((transaction) => transaction.id);
36
+ return this.get()
37
+ .pipe(map((transactionAllocations) => {
38
+ return transactionAllocations.filter((allocation) => ids.includes(allocation.transaction.id));
39
+ }));
40
+ }
41
+ listenEvents() {
42
+ this.onTransactionsCreated();
43
+ this.onDepreciationCreated();
44
+ this.onTransactionDeleted();
45
+ }
46
+ /**
47
+ * Reset cache on transactions created
48
+ */
49
+ onTransactionsCreated() {
50
+ this.eventDispatcherService.on(AppEventTypeEnum.TRANSACTIONS_CREATED).subscribe(() => {
51
+ // Update allocations cache to synchronize data and fire subscriptions
52
+ this.resetCache();
53
+ });
54
+ }
55
+ /**
56
+ * Reset cache on depreciation created
57
+ */
58
+ onDepreciationCreated() {
59
+ this.eventDispatcherService.on(AppEventTypeEnum.DEPRECIATIONS_CREATED).subscribe(() => {
60
+ // Update allocations cache to synchronize data and fire subscriptions
61
+ this.resetCache();
62
+ });
63
+ }
64
+ /**
65
+ * Reset cache on transaction deleted
66
+ */
67
+ onTransactionDeleted() {
68
+ this.eventDispatcherService.on(AppEventTypeEnum.TRANSACTION_DELETED).subscribe(() => {
69
+ // Update allocations cache to synchronize data and fire subscriptions
70
+ this.resetCache();
71
+ });
72
+ }
73
+ }
74
+ TransactionAllocationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TransactionAllocationService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
75
+ TransactionAllocationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TransactionAllocationService, providedIn: 'root' });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TransactionAllocationService, decorators: [{
77
+ type: Injectable,
78
+ args: [{
79
+ providedIn: 'root'
80
+ }]
81
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
82
+ type: Inject,
83
+ args: ['environment']
84
+ }] }]; } });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYWxsb2NhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3RELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUVyQyxvRkFBb0Y7QUFFcEY7OztHQUdHO0FBSUgsTUFBTSxPQUFPLDRCQUE2QixTQUFRLFdBQTZEO0lBSzdHLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCO1FBRWpELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFKdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBUG5ELDRDQUE0QztRQUM1QyxRQUFHLEdBQVcsMEJBQTBCLENBQUM7UUFDekMsZUFBVSxHQUFHLHFCQUFxQixDQUFDO1FBUWpDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsVUFBaUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3JDLEdBQUcsQ0FBQyxDQUFDLGNBQXVDLEVBQXlCLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDM0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQixDQUFDLFlBQTJCO1FBQzNDLE1BQU0sR0FBRyxHQUFhLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckYsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ2QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLHNCQUErQyxFQUFFLEVBQUU7WUFDdEQsT0FBTyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFpQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2SCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0sscUJBQXFCO1FBQzNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBUyxFQUFFO1lBQ3pGLHNFQUFzRTtZQUN0RSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFTLEVBQUU7WUFDMUYsc0VBQXNFO1lBQ3RFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQVMsRUFBRTtZQUN4RixzRUFBc0U7WUFDdEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MEhBdEVVLDRCQUE0QixrRkFRN0IsYUFBYTs4SEFSWiw0QkFBNEIsY0FGM0IsTUFBTTs0RkFFUCw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkFsbG9jYXRpb24gYXMgVHJhbnNhY3Rpb25BbGxvY2F0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy90cmFuc2FjdGlvbi1hbGxvY2F0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QvcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBAVE9ETyBEb24ndCBsb29rIGF0IHRoZSBjb21tZW50ZWQgY29kZS4gV2lsbCBiZSByZWZhY3RvcmVkL3JlbW92ZWQgZHVyaW5nIFRULTE1MDNcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciB0cmFuc2FjdGlvbiBhbGxvY2F0aW9ucyBidXNpbmVzcyBsb2dpY1xuICogQFRPRE8gYWxleCByZWZhY3RvclxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8VHJhbnNhY3Rpb25BbGxvY2F0aW9uQmFzZSwgVHJhbnNhY3Rpb25BbGxvY2F0aW9uPiB7XG4gIC8vIEFQSSBVUkwgcGFyYW0gZm9yIHRyYW5zYWN0aW9uIGFsbG9jYXRpb25zXG4gIHVybDogc3RyaW5nID0gJ3RyYW5zYWN0aW9ucy1hbGxvY2F0aW9ucyc7XG4gIG1vZGVsQ2xhc3MgPSBUcmFuc2FjdGlvbkFsbG9jYXRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgc2luZ2xlIHRyYW5zYWN0aW9uIGFsbG9jYXRpb25cbiAgICovXG4gIGFkZChhbGxvY2F0aW9uOiBUcmFuc2FjdGlvbkFsbG9jYXRpb24pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uQWxsb2NhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmFkZEJhdGNoKFthbGxvY2F0aW9uXSkucGlwZShcbiAgICAgIG1hcCgobmV3QWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdKTogVHJhbnNhY3Rpb25BbGxvY2F0aW9uID0+IG5ld0FsbG9jYXRpb25zWzBdKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGFsbG9jYXRpb25zIHJlbGF0ZWQgd2l0aCBwYXNzZWQgYmFuayB0cmFuc2FjdGlvbnMgbGlzdFxuICAgKi9cbiAgZ2V0QnlUcmFuc2FjdGlvbnModHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkFsbG9jYXRpb25bXT4ge1xuICAgIGNvbnN0IGlkczogbnVtYmVyW10gPSB0cmFuc2FjdGlvbnMubWFwKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHRyYW5zYWN0aW9uLmlkKTtcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25BbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uW10pID0+IHtcbiAgICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb25BbGxvY2F0aW9ucy5maWx0ZXIoKGFsbG9jYXRpb246IFRyYW5zYWN0aW9uQWxsb2NhdGlvbikgPT4gaWRzLmluY2x1ZGVzKGFsbG9jYXRpb24udHJhbnNhY3Rpb24uaWQpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLm9uVHJhbnNhY3Rpb25zQ3JlYXRlZCgpO1xuICAgIHRoaXMub25EZXByZWNpYXRpb25DcmVhdGVkKCk7XG4gICAgdGhpcy5vblRyYW5zYWN0aW9uRGVsZXRlZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IGNhY2hlIG9uIHRyYW5zYWN0aW9ucyBjcmVhdGVkXG4gICAqL1xuICBwcml2YXRlIG9uVHJhbnNhY3Rpb25zQ3JlYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTlNfQ1JFQVRFRCkuc3Vic2NyaWJlKCgpOiB2b2lkID0+IHtcbiAgICAgIC8vIFVwZGF0ZSBhbGxvY2F0aW9ucyBjYWNoZSB0byBzeW5jaHJvbml6ZSBkYXRhIGFuZCBmaXJlIHN1YnNjcmlwdGlvbnNcbiAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IGNhY2hlIG9uIGRlcHJlY2lhdGlvbiBjcmVhdGVkXG4gICAqL1xuICBwcml2YXRlIG9uRGVwcmVjaWF0aW9uQ3JlYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5ERVBSRUNJQVRJT05TX0NSRUFURUQpLnN1YnNjcmliZSgoKTogdm9pZCA9PiB7XG4gICAgICAvLyBVcGRhdGUgYWxsb2NhdGlvbnMgY2FjaGUgdG8gc3luY2hyb25pemUgZGF0YSBhbmQgZmlyZSBzdWJzY3JpcHRpb25zXG4gICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBjYWNoZSBvbiB0cmFuc2FjdGlvbiBkZWxldGVkXG4gICAqL1xuICBwcml2YXRlIG9uVHJhbnNhY3Rpb25EZWxldGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX0RFTEVURUQpLnN1YnNjcmliZSgoKTogdm9pZCA9PiB7XG4gICAgICAvLyBVcGRhdGUgYWxsb2NhdGlvbnMgY2FjaGUgdG8gc3luY2hyb25pemUgZGF0YSBhbmQgZmlyZSBzdWJzY3JpcHRpb25zXG4gICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19