taxtank-core 0.8.6 → 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 (150) hide show
  1. package/bundles/taxtank-core.umd.js +94 -92
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/db/Models/transaction-base.js +2 -1
  4. package/esm2015/lib/services/http/address/address.service.js +39 -0
  5. package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +118 -0
  6. package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +52 -0
  7. package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +89 -0
  8. package/esm2015/lib/services/http/bank/bank.service.js +24 -0
  9. package/esm2015/lib/services/http/bank/basiq/basiq.service.js +94 -0
  10. package/esm2015/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.js +38 -0
  11. package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +89 -0
  12. package/esm2015/lib/services/http/chat/chat.service.js +77 -0
  13. package/esm2015/lib/services/http/chat/message/message.service.js +65 -0
  14. package/esm2015/lib/services/http/chat/message-document/message-document.service.js +118 -0
  15. package/esm2015/lib/services/{depreciation/capital-project.service.js → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.js} +7 -7
  16. package/esm2015/lib/services/http/depreciation/depreciation.service.js +146 -0
  17. package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +84 -0
  18. package/esm2015/lib/services/{client → http/firm/client-invite}/client-invite.service.js +7 -7
  19. package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +98 -0
  20. package/esm2015/lib/services/http/firm/employee/employee.service.js +39 -0
  21. package/esm2015/lib/services/http/firm/employee-invite/employee-invite.service.js +53 -0
  22. package/esm2015/lib/services/http/firm/firm.service.js +79 -0
  23. package/esm2015/lib/services/http/firm/portfolio-report/client-portfolio-report.service.js +37 -0
  24. package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +90 -0
  25. package/esm2015/lib/services/http/income-source/income-source.service.js +109 -0
  26. package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +90 -0
  27. package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +87 -0
  28. package/esm2015/lib/services/http/loan/borrowing-expense/borrowing-expense.service.js +73 -0
  29. package/esm2015/lib/services/http/loan/loan.service.js +145 -0
  30. package/esm2015/lib/services/http/property/property-category/property-category.service.js +23 -0
  31. package/esm2015/lib/services/http/property/property-category-movement/property-category-movement.service.js +47 -0
  32. package/esm2015/lib/services/http/property/property-document/property-document.service.js +70 -0
  33. package/esm2015/lib/services/http/property/property-sale/property-sale.service.js +20 -0
  34. package/esm2015/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.js +21 -0
  35. package/esm2015/lib/services/http/property/property-share/property-share.service.js +115 -0
  36. package/esm2015/lib/services/http/property/property.service.js +126 -0
  37. package/esm2015/lib/services/http/rest/rest.service.js +190 -0
  38. package/esm2015/lib/services/http/service-notification/service-notification.service.js +65 -0
  39. package/esm2015/lib/services/http/subscription/subscription.service.js +157 -0
  40. package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +41 -0
  41. package/esm2015/lib/services/http/tax-review/tax-review.service.js +103 -0
  42. package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +71 -0
  43. package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +85 -0
  44. package/esm2015/lib/services/http/transaction/transaction.service.js +319 -0
  45. package/esm2015/lib/services/http/user/occupation/occupation.service.js +45 -0
  46. package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +59 -0
  47. package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +29 -0
  48. package/esm2015/lib/services/http/user/user.service.js +124 -0
  49. package/esm2015/lib/services/http/vehicle/vehicle.service.js +237 -0
  50. package/esm2015/lib/services/property/equity-position-chart/equity-position-chart.service.js +45 -0
  51. package/esm2015/public-api.js +48 -48
  52. package/fesm2015/taxtank-core.js +51 -49
  53. package/fesm2015/taxtank-core.js.map +1 -1
  54. package/lib/services/{address → http/address}/address.service.d.ts +1 -1
  55. package/lib/services/{bank → http/bank/bank-account}/bank-account.service.d.ts +5 -5
  56. package/lib/services/{bank → http/bank/bank-connection}/bank-connection.service.d.ts +5 -5
  57. package/lib/services/{bank → http/bank/bank-transaction}/bank-transaction.service.d.ts +5 -5
  58. package/lib/services/{bank → http/bank}/bank.service.d.ts +4 -4
  59. package/lib/services/{bank → http/bank/basiq}/basiq.service.d.ts +7 -7
  60. package/lib/services/{chart-accounts → http/chart-accounts/chart-accounts-depreciations}/chart-accounts-depreciations.service.d.ts +4 -4
  61. package/lib/services/{chart-accounts → http/chart-accounts}/chart-accounts.service.d.ts +3 -3
  62. package/lib/services/{chat → http/chat}/chat.service.d.ts +7 -7
  63. package/lib/services/{chat → http/chat/message}/message.service.d.ts +7 -7
  64. package/lib/services/{chat → http/chat/message-document}/message-document.service.d.ts +3 -3
  65. package/lib/services/{depreciation/capital-project.service.d.ts → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.d.ts} +4 -4
  66. package/lib/services/{depreciation → http/depreciation}/depreciation.service.d.ts +5 -5
  67. package/lib/services/{document → http/document/document-folder}/document-folder.service.d.ts +6 -6
  68. package/lib/services/{client → http/firm/client-invite}/client-invite.service.d.ts +4 -4
  69. package/lib/services/{client → http/firm/client-movement}/client-movement.service.d.ts +7 -7
  70. package/lib/services/{employee → http/firm/employee}/employee.service.d.ts +4 -4
  71. package/lib/services/{employee → http/firm/employee-invite}/employee-invite.service.d.ts +4 -4
  72. package/lib/services/{firm → http/firm}/firm.service.d.ts +2 -2
  73. package/lib/services/{client → http/firm/portfolio-report}/client-portfolio-report.service.d.ts +1 -1
  74. package/lib/services/{income-source → http/income-source/income-source-forecast}/income-source-forecast.service.d.ts +5 -5
  75. package/lib/services/{income-source → http/income-source}/income-source.service.d.ts +8 -8
  76. package/lib/services/{income-source → http/income-source/salary-forecast}/salary-forecast.service.d.ts +6 -6
  77. package/lib/services/{income-source → http/income-source/sole-forecast}/sole-forecast.service.d.ts +5 -5
  78. package/lib/services/{borrowing-expense → http/loan/borrowing-expense}/borrowing-expense.service.d.ts +2 -2
  79. package/lib/services/{loan → http/loan}/loan.service.d.ts +6 -6
  80. package/lib/services/{property → http/property}/property-category/property-category.service.d.ts +4 -4
  81. package/lib/services/{property → http/property/property-category-movement}/property-category-movement.service.d.ts +4 -4
  82. package/lib/services/{property → http/property}/property-document/property-document.service.d.ts +5 -5
  83. package/lib/services/http/property/property-sale/property-sale.service.d.ts +10 -0
  84. package/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.d.ts +11 -0
  85. package/lib/services/{property → http/property}/property-share/property-share.service.d.ts +5 -5
  86. package/lib/services/{property → http/property}/property.service.d.ts +5 -5
  87. package/lib/services/{base-rest.service.d.ts → http/rest/rest.service.d.ts} +4 -4
  88. package/lib/services/http/service-notification/service-notification.service.d.ts +31 -0
  89. package/lib/services/{subscription → http/subscription}/subscription.service.d.ts +6 -6
  90. package/lib/services/{tax-review → http/tax-review/tax-review-history}/tax-review-history.service.d.ts +5 -5
  91. package/lib/services/{tax-review → http/tax-review}/tax-review.service.d.ts +6 -6
  92. package/lib/services/{tax-summary → http/tax-summary}/tax-summary.service.d.ts +2 -2
  93. package/lib/services/{transaction → http/transaction/transaction-allocation}/transaction-allocation.service.d.ts +6 -6
  94. package/lib/services/{transaction → http/transaction}/transaction.service.d.ts +7 -7
  95. package/lib/services/{user → http/user/occupation}/occupation.service.d.ts +1 -1
  96. package/lib/services/{user-event → http/user/user-event-setting}/user-event-setting.service.d.ts +5 -5
  97. package/lib/services/{user-event → http/user/user-event-type}/user-event-type.service.d.ts +5 -5
  98. package/lib/services/{user → http/user}/user.service.d.ts +3 -3
  99. package/lib/services/{work/work-tank.service.d.ts → http/vehicle/vehicle.service.d.ts} +9 -8
  100. package/lib/services/property/{equity-position-chart.service.d.ts → equity-position-chart/equity-position-chart.service.d.ts} +1 -1
  101. package/package.json +1 -1
  102. package/public-api.d.ts +47 -47
  103. package/esm2015/lib/services/address/address.service.js +0 -39
  104. package/esm2015/lib/services/bank/bank-account.service.js +0 -118
  105. package/esm2015/lib/services/bank/bank-connection.service.js +0 -52
  106. package/esm2015/lib/services/bank/bank-transaction.service.js +0 -89
  107. package/esm2015/lib/services/bank/bank.service.js +0 -24
  108. package/esm2015/lib/services/bank/basiq.service.js +0 -94
  109. package/esm2015/lib/services/base-rest.service.js +0 -190
  110. package/esm2015/lib/services/borrowing-expense/borrowing-expense.service.js +0 -73
  111. package/esm2015/lib/services/chart-accounts/chart-accounts-depreciations.service.js +0 -38
  112. package/esm2015/lib/services/chart-accounts/chart-accounts.service.js +0 -89
  113. package/esm2015/lib/services/chat/chat.service.js +0 -77
  114. package/esm2015/lib/services/chat/message-document.service.js +0 -118
  115. package/esm2015/lib/services/chat/message.service.js +0 -65
  116. package/esm2015/lib/services/client/client-movement.service.js +0 -98
  117. package/esm2015/lib/services/client/client-portfolio-report.service.js +0 -37
  118. package/esm2015/lib/services/depreciation/depreciation.service.js +0 -146
  119. package/esm2015/lib/services/document/document-folder.service.js +0 -84
  120. package/esm2015/lib/services/employee/employee-invite.service.js +0 -53
  121. package/esm2015/lib/services/employee/employee.service.js +0 -39
  122. package/esm2015/lib/services/firm/firm.service.js +0 -79
  123. package/esm2015/lib/services/income-source/income-source-forecast.service.js +0 -90
  124. package/esm2015/lib/services/income-source/income-source.service.js +0 -109
  125. package/esm2015/lib/services/income-source/salary-forecast.service.js +0 -90
  126. package/esm2015/lib/services/income-source/sole-forecast.service.js +0 -87
  127. package/esm2015/lib/services/loan/loan.service.js +0 -145
  128. package/esm2015/lib/services/notification/notification.service.js +0 -65
  129. package/esm2015/lib/services/property/equity-position-chart.service.js +0 -45
  130. package/esm2015/lib/services/property/property-category/property-category.service.js +0 -23
  131. package/esm2015/lib/services/property/property-category-movement.service.js +0 -47
  132. package/esm2015/lib/services/property/property-document/property-document.service.js +0 -70
  133. package/esm2015/lib/services/property/property-sale/property-sale.service.js +0 -20
  134. package/esm2015/lib/services/property/property-sale/tax-exemption/tax-exemption.service.js +0 -21
  135. package/esm2015/lib/services/property/property-share/property-share.service.js +0 -115
  136. package/esm2015/lib/services/property/property.service.js +0 -126
  137. package/esm2015/lib/services/subscription/subscription.service.js +0 -157
  138. package/esm2015/lib/services/tax-review/tax-review-history.service.js +0 -41
  139. package/esm2015/lib/services/tax-review/tax-review.service.js +0 -103
  140. package/esm2015/lib/services/tax-summary/tax-summary.service.js +0 -71
  141. package/esm2015/lib/services/transaction/transaction-allocation.service.js +0 -85
  142. package/esm2015/lib/services/transaction/transaction.service.js +0 -319
  143. package/esm2015/lib/services/user/occupation.service.js +0 -45
  144. package/esm2015/lib/services/user/user.service.js +0 -124
  145. package/esm2015/lib/services/user-event/user-event-setting.service.js +0 -59
  146. package/esm2015/lib/services/user-event/user-event-type.service.js +0 -29
  147. package/esm2015/lib/services/work/work-tank.service.js +0 -236
  148. package/lib/services/notification/notification.service.d.ts +0 -31
  149. package/lib/services/property/property-sale/property-sale.service.d.ts +0 -10
  150. package/lib/services/property/property-sale/tax-exemption/tax-exemption.service.d.ts +0 -11
@@ -1,41 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { BaseRestService } from '../base-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 BaseRestService {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJldmlldy1oaXN0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvdGF4LXJldmlldy90YXgtcmV2aWV3LWhpc3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7OztBQUV2Qjs7R0FFRztBQUlILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxlQUF5QztJQUlwRixZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUN2QixXQUFnQjtRQUVqRCxLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBSnZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQU5uRCxRQUFHLEdBQVcscUJBQXFCLENBQUM7UUFDcEMsZUFBVSxHQUFxQixTQUFTLENBQUM7UUFRdkMsbUNBQW1DO1FBQ25DLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQW9CLEVBQVEsRUFBRTtZQUN0RyxNQUFNLFNBQVMsR0FBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkQsK0NBQStDO1lBQy9DLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7cUhBbEJVLHVCQUF1QixrRkFPeEIsYUFBYTt5SEFQWix1QkFBdUIsY0FGdEIsTUFBTTs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRheFJldmlldyBhcyBUYXhSZXZpZXdCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RheC1yZXZpZXcnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJhc2VSZXN0U2VydmljZSB9IGZyb20gJy4uL2Jhc2UtcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRheFJldmlldyB9IGZyb20gJy4uLy4uL21vZGVscy90YXgtcmV2aWV3L3RheC1yZXZpZXcnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIHdvcmsgd2l0aCB0YXggcmV2aWV3IGhpc3RvcnlcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGF4UmV2aWV3SGlzdG9yeVNlcnZpY2UgZXh0ZW5kcyBCYXNlUmVzdFNlcnZpY2U8VGF4UmV2aWV3QmFzZSwgVGF4UmV2aWV3PiB7XG4gIHVybDogc3RyaW5nID0gJ3RheC1yZXZpZXdzL2hpc3RvcnknO1xuICBtb2RlbENsYXNzOiB0eXBlb2YgVGF4UmV2aWV3ID0gVGF4UmV2aWV3O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gICAgc3VwZXIoaHR0cCwgZXZlbnREaXNwYXRjaGVyU2VydmljZSwgZW52aXJvbm1lbnQpO1xuICAgIC8vIHN1YnNjcmliZSBvbiB0YXggcmV2aWV3IHVwZGF0aW5nXG4gICAgZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlRBWF9SRVZJRVdfVVBEQVRFRCkuc3Vic2NyaWJlKCh0YXhSZXZpZXc6IFRheFJldmlldyk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgdGVtcENhY2hlOiBUYXhSZXZpZXdbXSA9IF8uY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgLy8gaW5zZXJ0IGVsZW1lbnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXlcbiAgICAgIHRlbXBDYWNoZS51bnNoaWZ0KHRheFJldmlldyk7XG4gICAgICB0aGlzLmNhY2hlID0gdGVtcENhY2hlO1xuICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,103 +0,0 @@
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 { BaseRestService } from '../base-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 BaseRestService {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJldmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL3RheC1yZXZpZXcvdGF4LXJldmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUd4RDs7R0FFRztBQUlILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUF5QztJQUk3RSxZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUN2QixXQUFnQjtRQUVqRCxLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBSnZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQU5uRCxRQUFHLEdBQVcsYUFBYSxDQUFDO1FBQzVCLGVBQVUsR0FBcUIsU0FBUyxDQUFDO1FBUXZDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7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QUN2RSxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzhHQTFGVSxnQkFBZ0Isa0ZBT2pCLGFBQWE7a0hBUFosZ0JBQWdCLGNBRmYsTUFBTTs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRheFJldmlldyBhcyBUYXhSZXZpZXdCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RheC1yZXZpZXcnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJhc2VSZXN0U2VydmljZSB9IGZyb20gJy4uL2Jhc2UtcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVGF4UmV2aWV3IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RheC1yZXZpZXcvdGF4LXJldmlldyc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZXZlbnQvZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyL3VzZXInO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gd29yayB3aXRoIHRheCByZXZpZXdcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGF4UmV2aWV3U2VydmljZSBleHRlbmRzIEJhc2VSZXN0U2VydmljZTxUYXhSZXZpZXdCYXNlLCBUYXhSZXZpZXc+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICB1cmw6IHN0cmluZyA9ICd0YXgtcmV2aWV3cyc7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBUYXhSZXZpZXcgPSBUYXhSZXZpZXc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZXZlbnRzIGZyb20gU1NFIGFuZCBFdmVudCBEaXNwYXRjaGVyIHNlcnZpY2VzXG4gICAqL1xuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5GaXJtQ2hhbmdlcygpO1xuICAgIHRoaXMubGlzdGVuQ2xpZW50VHJhbnNmZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbmV3IFRheCBSZXZpZXcgKHJlcXVlc3QgZnJvbSBjbGllbnQgdG8gZmlybSlcbiAgICogQHBhcmFtIGZpblllYXJcbiAgICovXG4gIHJlcXVlc3QoZmluWWVhcjogbnVtYmVyKTogT2JzZXJ2YWJsZTxUYXhSZXZpZXc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0/ZmluYW5jaWFsWWVhcj0ke2ZpblllYXJ9YCwge30pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdUYXhSZXZpZXc6IFRheFJldmlld0Jhc2UpOiBUYXhSZXZpZXcgPT4ge1xuICAgICAgICAgIGNvbnN0IHRheFJldmlldzogVGF4UmV2aWV3ID0gcGxhaW5Ub0NsYXNzKFRheFJldmlldywgbmV3VGF4UmV2aWV3KTtcbiAgICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IFRheFJldmlld1tdID0gXy5jbG9uZURlZXAodGhpcy5jYWNoZSk7XG4gICAgICAgICAgdGVtcENhY2hlLnB1c2godGF4UmV2aWV3KTtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGVtcENhY2hlO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gdGF4UmV2aWV3O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGF4IHJldmlld1xuICAgKiBAcGFyYW0gdGF4UmV2aWV3IHRvIGJlIHVwZGF0ZWRcbiAgICovXG4gIHVwZGF0ZSh0YXhSZXZpZXc6IFRheFJldmlldyk6IE9ic2VydmFibGU8VGF4UmV2aWV3PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHt0YXhSZXZpZXcuaWR9YCwgdGF4UmV2aWV3KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZFRheFJldmlldzogVGF4UmV2aWV3QmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZTogVGF4UmV2aWV3ID0gcGxhaW5Ub0NsYXNzKFRheFJldmlldywgdXBkYXRlZFRheFJldmlldyk7XG5cbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVEFYX1JFVklFV19VUERBVEVELCB1cGRhdGVkSW5zdGFuY2UpKTtcblxuICAgICAgICAgIGNvbnN0IHRlbXBDYWNoZTogVGF4UmV2aWV3W10gPSBfLmNsb25lRGVlcCh0aGlzLmNhY2hlKTtcbiAgICAgICAgICByZXBsYWNlKHRlbXBDYWNoZSwgdXBkYXRlZEluc3RhbmNlKTtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGVtcENhY2hlO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcblxuICAgICAgICAgIHJldHVybiB1cGRhdGVkSW5zdGFuY2U7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGNhY2hlIHdoZW4gdXNlciByZWplY3QgZmlybVxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5GaXJtQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oW0FwcEV2ZW50VHlwZUVudW0uQ0xJRU5UX01PVkVNRU5UX0NMT1NFRCwgQXBwRXZlbnRUeXBlRW51bS5DTElFTlRfSU5WSVRFX0FDQ0VQVEVEXSlcbiAgICAgIC5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmNhY2hlID0gW107XG4gICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBmaXJtIGZvciBhbGwgdHJhbnNmZXJyZWQgY2xpZW50c1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5DbGllbnRUcmFuc2ZlcigpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5DTElFTlRfVFJBTlNGRVJfVE9fT1RIRVJfRU1QTE9ZRUUpXG4gICAgICAuc3Vic2NyaWJlKCh0cmFuc2ZlcnJlZENsaWVudHM6IFVzZXJbXSk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IFRheFJldmlld1tdID0gXy5jbG9uZURlZXAodGhpcy5jYWNoZSk7XG5cbiAgICAgICAgdHJhbnNmZXJyZWRDbGllbnRzLmZvckVhY2goKHRyYW5zZmVycmVkQ2xpZW50OiBVc2VyKTogdm9pZCA9PiB7XG4gICAgICAgICAgY29uc3QgdGF4UmV2aWV3SW5kZXg6IG51bWJlciA9IHRlbXBDYWNoZS5maW5kSW5kZXgoKHRheFJldmlldzogVGF4UmV2aWV3KTogYm9vbGVhbiA9PiB0YXhSZXZpZXcuaWQgPT09IHRyYW5zZmVycmVkQ2xpZW50LmlkKTtcbiAgICAgICAgICAvLyBAVE9ETyB2aWtcbiAgICAgICAgICAvLyB0ZW1wQ2FjaGVbdGF4UmV2aWV3SW5kZXhdLmVtcGxveWVlID0gdHJhbnNmZXJyZWRDbGllbnQuYWNjb3VudGFudDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,71 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXN1bW1hcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy90YXgtc3VtbWFyeS90YXgtc3VtbWFyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQUUxRTs7R0FFRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFJNUIsWUFDVSxJQUFnQixFQUNoQixzQkFBOEMsRUFDckIsV0FBZ0I7UUFGekMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTm5ELDZCQUF3QixHQUE4QixJQUFJLGFBQWEsQ0FBYSxDQUFDLENBQUMsQ0FBQztRQUN2RiwrQkFBMEIsR0FBOEIsSUFBSSxhQUFhLENBQWEsQ0FBQyxDQUFDLENBQUM7UUFPdkYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLG1DQUFtQyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLGdCQUFnQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDckYsU0FBUyxDQUFDLENBQUMsUUFBZ0IsRUFBYyxFQUFFO1lBQ3hDLE1BQU0sVUFBVSxHQUFlLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvQyxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQ0YsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxnQkFBZ0Isa0JBQWtCLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQ3ZGLFNBQVMsQ0FBQyxDQUFDLFFBQWdCLEVBQWMsRUFBRTtZQUN4QyxNQUFNLFVBQVUsR0FBZSxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakQsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQyxDQUNGLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxtQ0FBbUM7UUFDekMsSUFBSSxDQUFDLHNCQUFzQjthQUN4QixFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsRUFBRSxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO2FBQzFHLFNBQVMsQ0FBQyxHQUFTLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7K0dBckRVLGlCQUFpQixrRkFPbEIsYUFBYTttSEFQWixpQkFBaUIsY0FGaEIsTUFBTTs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBUYXhTdW1tYXJ5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5JztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGF4U3VtbWFyeVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gd29yayB3aXRoIHRheCBzdW1tYXJ5IGxvZ2ljXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRheFN1bW1hcnlTZXJ2aWNlIHtcbiAgdGF4U3VtbWFyeUFjdHVhbHNTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PFRheFN1bW1hcnk+ID0gbmV3IFJlcGxheVN1YmplY3Q8VGF4U3VtbWFyeT4oMSk7XG4gIHRheFN1bW1hcnlGb3JlY2FzdHNTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PFRheFN1bW1hcnk+ID0gbmV3IFJlcGxheVN1YmplY3Q8VGF4U3VtbWFyeT4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Ub0luY29tZVNvdXJjZUZvcmVjYXN0c0V2ZW50cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhY3R1YWwgdGF4IHN1bW1hcnkgaXRlbXNcbiAgICovXG4gIGdldEFjdHVhbHMoKTogT2JzZXJ2YWJsZTxUYXhTdW1tYXJ5PiB7XG4gICAgdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS90YXgtc3VtbWFyeS8ke1RheFN1bW1hcnlUeXBlRW51bS5BQ1RVQUxTfWAsIHt9KVxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IG9iamVjdCk6IFRheFN1bW1hcnkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRheFN1bW1hcnk6IFRheFN1bW1hcnkgPSBwbGFpblRvQ2xhc3MoVGF4U3VtbWFyeSwgcmVzcG9uc2UpO1xuICAgICAgICAgIHRoaXMudGF4U3VtbWFyeUFjdHVhbHNTdWJqZWN0Lm5leHQodGF4U3VtbWFyeSk7XG4gICAgICAgICAgcmV0dXJuIHRheFN1bW1hcnk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgcmV0dXJuIHRoaXMudGF4U3VtbWFyeUFjdHVhbHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmb3JlY2FzdCB0YXggc3VtbWFyeSBpdGVtc1xuICAgKi9cbiAgZ2V0Rm9yZWNhc3QoKTogT2JzZXJ2YWJsZTxUYXhTdW1tYXJ5PiB7XG4gICAgdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS90YXgtc3VtbWFyeS8ke1RheFN1bW1hcnlUeXBlRW51bS5GT1JFQ0FTVFN9YCwge30pXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogb2JqZWN0KTogVGF4U3VtbWFyeSA9PiB7XG4gICAgICAgICAgY29uc3QgdGF4U3VtbWFyeTogVGF4U3VtbWFyeSA9IHBsYWluVG9DbGFzcyhUYXhTdW1tYXJ5LCByZXNwb25zZSk7XG4gICAgICAgICAgdGhpcy50YXhTdW1tYXJ5Rm9yZWNhc3RzU3ViamVjdC5uZXh0KHRheFN1bW1hcnkpO1xuICAgICAgICAgIHJldHVybiB0YXhTdW1tYXJ5O1xuICAgICAgICB9XG4gICAgICApO1xuICAgIHJldHVybiB0aGlzLnRheFN1bW1hcnlGb3JlY2FzdHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIGV2ZW50cyByZWxhdGVkIHRvIEluY29tZSBzb3VyY2UgZm9yZWNhc3RzXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblRvSW5jb21lU291cmNlRm9yZWNhc3RzRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZVxuICAgICAgLm9uKFtBcHBFdmVudFR5cGVFbnVtLklOQ09NRV9TT1VSQ0VTX0ZPUkVDQVNUU19DUkVBVEVELCBBcHBFdmVudFR5cGVFbnVtLklOQ09NRV9TT1VSQ0VTX0ZPUkVDQVNUU19VUERBVEVEXSlcbiAgICAgIC5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmdldEZvcmVjYXN0KCkuc3Vic2NyaWJlKCk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,85 +0,0 @@
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 { BaseRestService } from '../base-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 BaseRestService {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYWxsb2NhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUV4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXJDLG9GQUFvRjtBQUVwRjs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsZUFBaUU7SUFLakgsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFFakQsS0FBSyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUp2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFQbkQsNENBQTRDO1FBQzVDLFFBQUcsR0FBVywwQkFBMEIsQ0FBQztRQUN6QyxlQUFVLEdBQUcscUJBQXFCLENBQUM7UUFRakMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxVQUFpQztRQUNuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLENBQUMsY0FBdUMsRUFBeUIsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMzRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsWUFBMkI7UUFDM0MsTUFBTSxHQUFHLEdBQWEsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUU7YUFDZCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsc0JBQStDLEVBQUUsRUFBRTtZQUN0RCxPQUFPLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQWlDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFTLEVBQUU7WUFDekYsc0VBQXNFO1lBQ3RFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQVMsRUFBRTtZQUMxRixzRUFBc0U7WUFDdEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBUyxFQUFFO1lBQ3hGLHNFQUFzRTtZQUN0RSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzswSEF0RVUsNEJBQTRCLGtGQVE3QixhQUFhOzhIQVJaLDRCQUE0QixjQUYzQixNQUFNOzRGQUVQLDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVNJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbiBhcyBUcmFuc2FjdGlvbkFsbG9jYXRpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25BbGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IEJhc2VSZXN0U2VydmljZSB9IGZyb20gJy4uL2Jhc2UtcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBAVE9ETyBEb24ndCBsb29rIGF0IHRoZSBjb21tZW50ZWQgY29kZS4gV2lsbCBiZSByZWZhY3RvcmVkL3JlbW92ZWQgZHVyaW5nIFRULTE1MDNcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciB0cmFuc2FjdGlvbiBhbGxvY2F0aW9ucyBidXNpbmVzcyBsb2dpY1xuICogQFRPRE8gYWxleCByZWZhY3RvclxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlIGV4dGVuZHMgQmFzZVJlc3RTZXJ2aWNlPFRyYW5zYWN0aW9uQWxsb2NhdGlvbkJhc2UsIFRyYW5zYWN0aW9uQWxsb2NhdGlvbj4ge1xuICAvLyBBUEkgVVJMIHBhcmFtIGZvciB0cmFuc2FjdGlvbiBhbGxvY2F0aW9uc1xuICB1cmw6IHN0cmluZyA9ICd0cmFuc2FjdGlvbnMtYWxsb2NhdGlvbnMnO1xuICBtb2RlbENsYXNzID0gVHJhbnNhY3Rpb25BbGxvY2F0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gICAgc3VwZXIoaHR0cCwgZXZlbnREaXNwYXRjaGVyU2VydmljZSwgZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHNpbmdsZSB0cmFuc2FjdGlvbiBhbGxvY2F0aW9uXG4gICAqL1xuICBhZGQoYWxsb2NhdGlvbjogVHJhbnNhY3Rpb25BbGxvY2F0aW9uKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkFsbG9jYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5hZGRCYXRjaChbYWxsb2NhdGlvbl0pLnBpcGUoXG4gICAgICBtYXAoKG5ld0FsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25bXSk6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbiA9PiBuZXdBbGxvY2F0aW9uc1swXSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIHRyYW5zYWN0aW9ucyBhbGxvY2F0aW9ucyByZWxhdGVkIHdpdGggcGFzc2VkIGJhbmsgdHJhbnNhY3Rpb25zIGxpc3RcbiAgICovXG4gIGdldEJ5VHJhbnNhY3Rpb25zKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25BbGxvY2F0aW9uW10+IHtcbiAgICBjb25zdCBpZHM6IG51bWJlcltdID0gdHJhbnNhY3Rpb25zLm1hcCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5pZCk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHRyYW5zYWN0aW9uQWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uQWxsb2NhdGlvbnMuZmlsdGVyKChhbGxvY2F0aW9uOiBUcmFuc2FjdGlvbkFsbG9jYXRpb24pID0+IGlkcy5pbmNsdWRlcyhhbGxvY2F0aW9uLnRyYW5zYWN0aW9uLmlkKSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5vblRyYW5zYWN0aW9uc0NyZWF0ZWQoKTtcbiAgICB0aGlzLm9uRGVwcmVjaWF0aW9uQ3JlYXRlZCgpO1xuICAgIHRoaXMub25UcmFuc2FjdGlvbkRlbGV0ZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBjYWNoZSBvbiB0cmFuc2FjdGlvbnMgY3JlYXRlZFxuICAgKi9cbiAgcHJpdmF0ZSBvblRyYW5zYWN0aW9uc0NyZWF0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05TX0NSRUFURUQpLnN1YnNjcmliZSgoKTogdm9pZCA9PiB7XG4gICAgICAvLyBVcGRhdGUgYWxsb2NhdGlvbnMgY2FjaGUgdG8gc3luY2hyb25pemUgZGF0YSBhbmQgZmlyZSBzdWJzY3JpcHRpb25zXG4gICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBjYWNoZSBvbiBkZXByZWNpYXRpb24gY3JlYXRlZFxuICAgKi9cbiAgcHJpdmF0ZSBvbkRlcHJlY2lhdGlvbkNyZWF0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uREVQUkVDSUFUSU9OU19DUkVBVEVEKS5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgLy8gVXBkYXRlIGFsbG9jYXRpb25zIGNhY2hlIHRvIHN5bmNocm9uaXplIGRhdGEgYW5kIGZpcmUgc3Vic2NyaXB0aW9uc1xuICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgY2FjaGUgb24gdHJhbnNhY3Rpb24gZGVsZXRlZFxuICAgKi9cbiAgcHJpdmF0ZSBvblRyYW5zYWN0aW9uRGVsZXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9ERUxFVEVEKS5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgLy8gVXBkYXRlIGFsbG9jYXRpb25zIGNhY2hlIHRvIHN5bmNocm9uaXplIGRhdGEgYW5kIGZpcmUgc3Vic2NyaXB0aW9uc1xuICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==