taxtank-core 0.8.5 → 0.9.1

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 (158) hide show
  1. package/bundles/taxtank-core.umd.js +147 -96
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/collection.js +2 -5
  4. package/esm2015/lib/db/Models/transaction-base.js +2 -1
  5. package/esm2015/lib/models/toast/toast-type.enum.js +8 -0
  6. package/esm2015/lib/models/toast/toast.js +9 -0
  7. package/esm2015/lib/services/http/address/address.service.js +39 -0
  8. package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +118 -0
  9. package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +52 -0
  10. package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +89 -0
  11. package/esm2015/lib/services/http/bank/bank.service.js +24 -0
  12. package/esm2015/lib/services/http/bank/basiq/basiq.service.js +94 -0
  13. package/esm2015/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.js +38 -0
  14. package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +89 -0
  15. package/esm2015/lib/services/http/chat/chat.service.js +77 -0
  16. package/esm2015/lib/services/http/chat/message/message.service.js +65 -0
  17. package/esm2015/lib/services/http/chat/message-document/message-document.service.js +118 -0
  18. package/esm2015/lib/services/{depreciation/capital-project.service.js → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.js} +7 -7
  19. package/esm2015/lib/services/http/depreciation/depreciation.service.js +146 -0
  20. package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +84 -0
  21. package/esm2015/lib/services/{client → http/firm/client-invite}/client-invite.service.js +7 -7
  22. package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +98 -0
  23. package/esm2015/lib/services/http/firm/employee/employee.service.js +39 -0
  24. package/esm2015/lib/services/http/firm/employee-invite/employee-invite.service.js +53 -0
  25. package/esm2015/lib/services/http/firm/firm.service.js +79 -0
  26. package/esm2015/lib/services/http/firm/portfolio-report/client-portfolio-report.service.js +37 -0
  27. package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +90 -0
  28. package/esm2015/lib/services/http/income-source/income-source.service.js +109 -0
  29. package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +90 -0
  30. package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +87 -0
  31. package/esm2015/lib/services/http/loan/borrowing-expense/borrowing-expense.service.js +73 -0
  32. package/esm2015/lib/services/http/loan/loan.service.js +145 -0
  33. package/esm2015/lib/services/http/property/property-category/property-category.service.js +23 -0
  34. package/esm2015/lib/services/http/property/property-category-movement/property-category-movement.service.js +47 -0
  35. package/esm2015/lib/services/http/property/property-document/property-document.service.js +70 -0
  36. package/esm2015/lib/services/http/property/property-sale/property-sale.service.js +20 -0
  37. package/esm2015/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.js +21 -0
  38. package/esm2015/lib/services/http/property/property-share/property-share.service.js +115 -0
  39. package/esm2015/lib/services/http/property/property.service.js +126 -0
  40. package/esm2015/lib/services/http/rest/rest.service.js +190 -0
  41. package/esm2015/lib/services/http/service-notification/service-notification.service.js +65 -0
  42. package/esm2015/lib/services/http/subscription/subscription.service.js +157 -0
  43. package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +41 -0
  44. package/esm2015/lib/services/http/tax-review/tax-review.service.js +103 -0
  45. package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +71 -0
  46. package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +85 -0
  47. package/esm2015/lib/services/http/transaction/transaction.service.js +326 -0
  48. package/esm2015/lib/services/http/user/occupation/occupation.service.js +45 -0
  49. package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +59 -0
  50. package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +29 -0
  51. package/esm2015/lib/services/http/user/user.service.js +124 -0
  52. package/esm2015/lib/services/http/vehicle/vehicle.service.js +237 -0
  53. package/esm2015/lib/services/property/equity-position-chart/equity-position-chart.service.js +45 -0
  54. package/esm2015/lib/services/toast/toast.service.js +26 -0
  55. package/esm2015/public-api.js +51 -48
  56. package/fesm2015/taxtank-core.js +99 -53
  57. package/fesm2015/taxtank-core.js.map +1 -1
  58. package/lib/collections/collection.d.ts +1 -4
  59. package/lib/models/toast/toast-type.enum.d.ts +6 -0
  60. package/lib/models/toast/toast.d.ts +10 -0
  61. package/lib/services/{address → http/address}/address.service.d.ts +1 -1
  62. package/lib/services/{bank → http/bank/bank-account}/bank-account.service.d.ts +5 -5
  63. package/lib/services/{bank → http/bank/bank-connection}/bank-connection.service.d.ts +5 -5
  64. package/lib/services/{bank → http/bank/bank-transaction}/bank-transaction.service.d.ts +5 -5
  65. package/lib/services/{bank → http/bank}/bank.service.d.ts +4 -4
  66. package/lib/services/{bank → http/bank/basiq}/basiq.service.d.ts +7 -7
  67. package/lib/services/{chart-accounts → http/chart-accounts/chart-accounts-depreciations}/chart-accounts-depreciations.service.d.ts +4 -4
  68. package/lib/services/{chart-accounts → http/chart-accounts}/chart-accounts.service.d.ts +3 -3
  69. package/lib/services/{chat → http/chat}/chat.service.d.ts +7 -7
  70. package/lib/services/{chat → http/chat/message}/message.service.d.ts +7 -7
  71. package/lib/services/{chat → http/chat/message-document}/message-document.service.d.ts +3 -3
  72. package/lib/services/{depreciation/capital-project.service.d.ts → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.d.ts} +4 -4
  73. package/lib/services/{depreciation → http/depreciation}/depreciation.service.d.ts +5 -5
  74. package/lib/services/{document → http/document/document-folder}/document-folder.service.d.ts +6 -6
  75. package/lib/services/{client → http/firm/client-invite}/client-invite.service.d.ts +4 -4
  76. package/lib/services/{client → http/firm/client-movement}/client-movement.service.d.ts +7 -7
  77. package/lib/services/{employee → http/firm/employee}/employee.service.d.ts +4 -4
  78. package/lib/services/{employee → http/firm/employee-invite}/employee-invite.service.d.ts +4 -4
  79. package/lib/services/{firm → http/firm}/firm.service.d.ts +2 -2
  80. package/lib/services/{client → http/firm/portfolio-report}/client-portfolio-report.service.d.ts +1 -1
  81. package/lib/services/{income-source → http/income-source/income-source-forecast}/income-source-forecast.service.d.ts +5 -5
  82. package/lib/services/{income-source → http/income-source}/income-source.service.d.ts +8 -8
  83. package/lib/services/{income-source → http/income-source/salary-forecast}/salary-forecast.service.d.ts +6 -6
  84. package/lib/services/{income-source → http/income-source/sole-forecast}/sole-forecast.service.d.ts +5 -5
  85. package/lib/services/{borrowing-expense → http/loan/borrowing-expense}/borrowing-expense.service.d.ts +2 -2
  86. package/lib/services/{loan → http/loan}/loan.service.d.ts +6 -6
  87. package/lib/services/{property → http/property}/property-category/property-category.service.d.ts +4 -4
  88. package/lib/services/{property → http/property/property-category-movement}/property-category-movement.service.d.ts +4 -4
  89. package/lib/services/{property → http/property}/property-document/property-document.service.d.ts +5 -5
  90. package/lib/services/http/property/property-sale/property-sale.service.d.ts +10 -0
  91. package/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.d.ts +11 -0
  92. package/lib/services/{property → http/property}/property-share/property-share.service.d.ts +5 -5
  93. package/lib/services/{property → http/property}/property.service.d.ts +5 -5
  94. package/lib/services/{base-rest.service.d.ts → http/rest/rest.service.d.ts} +4 -4
  95. package/lib/services/http/service-notification/service-notification.service.d.ts +31 -0
  96. package/lib/services/{subscription → http/subscription}/subscription.service.d.ts +6 -6
  97. package/lib/services/{tax-review → http/tax-review/tax-review-history}/tax-review-history.service.d.ts +5 -5
  98. package/lib/services/{tax-review → http/tax-review}/tax-review.service.d.ts +6 -6
  99. package/lib/services/{tax-summary → http/tax-summary}/tax-summary.service.d.ts +2 -2
  100. package/lib/services/{transaction → http/transaction/transaction-allocation}/transaction-allocation.service.d.ts +6 -6
  101. package/lib/services/{transaction → http/transaction}/transaction.service.d.ts +11 -7
  102. package/lib/services/{user → http/user/occupation}/occupation.service.d.ts +1 -1
  103. package/lib/services/{user-event → http/user/user-event-setting}/user-event-setting.service.d.ts +5 -5
  104. package/lib/services/{user-event → http/user/user-event-type}/user-event-type.service.d.ts +5 -5
  105. package/lib/services/{user → http/user}/user.service.d.ts +3 -3
  106. package/lib/services/{work/work-tank.service.d.ts → http/vehicle/vehicle.service.d.ts} +9 -8
  107. package/lib/services/property/{equity-position-chart.service.d.ts → equity-position-chart/equity-position-chart.service.d.ts} +1 -1
  108. package/lib/services/toast/toast.service.d.ts +13 -0
  109. package/package.json +1 -1
  110. package/public-api.d.ts +50 -47
  111. package/esm2015/lib/services/address/address.service.js +0 -39
  112. package/esm2015/lib/services/bank/bank-account.service.js +0 -118
  113. package/esm2015/lib/services/bank/bank-connection.service.js +0 -52
  114. package/esm2015/lib/services/bank/bank-transaction.service.js +0 -89
  115. package/esm2015/lib/services/bank/bank.service.js +0 -24
  116. package/esm2015/lib/services/bank/basiq.service.js +0 -94
  117. package/esm2015/lib/services/base-rest.service.js +0 -190
  118. package/esm2015/lib/services/borrowing-expense/borrowing-expense.service.js +0 -73
  119. package/esm2015/lib/services/chart-accounts/chart-accounts-depreciations.service.js +0 -38
  120. package/esm2015/lib/services/chart-accounts/chart-accounts.service.js +0 -89
  121. package/esm2015/lib/services/chat/chat.service.js +0 -77
  122. package/esm2015/lib/services/chat/message-document.service.js +0 -118
  123. package/esm2015/lib/services/chat/message.service.js +0 -65
  124. package/esm2015/lib/services/client/client-movement.service.js +0 -98
  125. package/esm2015/lib/services/client/client-portfolio-report.service.js +0 -37
  126. package/esm2015/lib/services/depreciation/depreciation.service.js +0 -146
  127. package/esm2015/lib/services/document/document-folder.service.js +0 -84
  128. package/esm2015/lib/services/employee/employee-invite.service.js +0 -53
  129. package/esm2015/lib/services/employee/employee.service.js +0 -39
  130. package/esm2015/lib/services/firm/firm.service.js +0 -79
  131. package/esm2015/lib/services/income-source/income-source-forecast.service.js +0 -90
  132. package/esm2015/lib/services/income-source/income-source.service.js +0 -109
  133. package/esm2015/lib/services/income-source/salary-forecast.service.js +0 -90
  134. package/esm2015/lib/services/income-source/sole-forecast.service.js +0 -87
  135. package/esm2015/lib/services/loan/loan.service.js +0 -145
  136. package/esm2015/lib/services/notification/notification.service.js +0 -65
  137. package/esm2015/lib/services/property/equity-position-chart.service.js +0 -45
  138. package/esm2015/lib/services/property/property-category/property-category.service.js +0 -23
  139. package/esm2015/lib/services/property/property-category-movement.service.js +0 -47
  140. package/esm2015/lib/services/property/property-document/property-document.service.js +0 -70
  141. package/esm2015/lib/services/property/property-sale/property-sale.service.js +0 -20
  142. package/esm2015/lib/services/property/property-sale/tax-exemption/tax-exemption.service.js +0 -21
  143. package/esm2015/lib/services/property/property-share/property-share.service.js +0 -115
  144. package/esm2015/lib/services/property/property.service.js +0 -126
  145. package/esm2015/lib/services/subscription/subscription.service.js +0 -157
  146. package/esm2015/lib/services/tax-review/tax-review-history.service.js +0 -41
  147. package/esm2015/lib/services/tax-review/tax-review.service.js +0 -103
  148. package/esm2015/lib/services/tax-summary/tax-summary.service.js +0 -71
  149. package/esm2015/lib/services/transaction/transaction-allocation.service.js +0 -85
  150. package/esm2015/lib/services/transaction/transaction.service.js +0 -319
  151. package/esm2015/lib/services/user/occupation.service.js +0 -45
  152. package/esm2015/lib/services/user/user.service.js +0 -124
  153. package/esm2015/lib/services/user-event/user-event-setting.service.js +0 -59
  154. package/esm2015/lib/services/user-event/user-event-type.service.js +0 -29
  155. package/esm2015/lib/services/work/work-tank.service.js +0 -236
  156. package/lib/services/notification/notification.service.d.ts +0 -31
  157. package/lib/services/property/property-sale/property-sale.service.d.ts +0 -10
  158. package/lib/services/property/property-sale/tax-exemption/tax-exemption.service.d.ts +0 -11
@@ -1,84 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { Document } from '../../models/document/document';
3
- import { replace } from '../../functions/array';
4
- import { map } from 'rxjs/operators';
5
- import { plainToClass } from 'class-transformer';
6
- import { BaseRestService } from '../base-rest.service';
7
- import { DocumentFolder } from '../../models/document/document-folder';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common/http";
10
- import * as i2 from "../event/event-dispatcher.service";
11
- /**
12
- * Service to handle document-folders and depending documents logic
13
- */
14
- export class DocumentFolderService 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
- this.url = 'folders';
21
- this.modelClass = DocumentFolder;
22
- }
23
- /**
24
- * Add new document to the folder
25
- * @param file to be uploaded to the folder
26
- * @param folder for document
27
- */
28
- addDocument(file, folder) {
29
- // create formData object with provided file
30
- const formDataDocument = new FormData();
31
- formDataDocument.append('file', file);
32
- return this.http.post(`${this.environment.apiV2}/folders/${folder.id}/documents`, formDataDocument).pipe(map((response) => {
33
- const updatedFolder = Object.assign(plainToClass(DocumentFolder, {}), folder);
34
- updatedFolder.documents.push(plainToClass(Document, response));
35
- replace(this.cache, plainToClass(DocumentFolder, updatedFolder));
36
- this.cacheSubject.next(this.cache);
37
- }));
38
- }
39
- /**
40
- * Edit folder document by moving it from one folder to another
41
- * @param editedDocument
42
- * @param selectedFolder to move the document to
43
- * @param oldFolderId: id of old folder from which need to remove the document
44
- */
45
- updateDocument(editedDocument, selectedFolder, oldFolderId) {
46
- return this.http.put(`${this.environment.apiV2}/folders/${selectedFolder.id}/documents/${editedDocument.id}`, editedDocument).pipe(map((response) => {
47
- const oldFolder = this.cache.find((folder) => folder.id === oldFolderId);
48
- // Remove document from old folder
49
- oldFolder.documents = oldFolder.documents.filter((deletedDocument) => deletedDocument.id !== response.id);
50
- // update old folder and replace it in cache
51
- response.folder = plainToClass(DocumentFolder, { id: selectedFolder.id, name: selectedFolder.name });
52
- replace(this.cache, plainToClass(DocumentFolder, oldFolder));
53
- // update new document folder and replace it in cache
54
- selectedFolder.documents.push(plainToClass(Document, response));
55
- replace(this.cache, plainToClass(DocumentFolder, selectedFolder));
56
- this.cacheSubject.next(this.cache);
57
- }));
58
- }
59
- /**
60
- * Delete document from folder
61
- * @param document to remove
62
- * @param folder from which document should be removed
63
- */
64
- deleteDocument(document, folder) {
65
- return this.http.delete(`${this.environment.apiV2}/folders/${folder.id}/documents/${document.id}`).pipe(map(() => {
66
- folder.documents = folder.documents
67
- .filter((deletedDocument) => deletedDocument.id !== document.id);
68
- replace(this.cache, plainToClass(DocumentFolder, folder));
69
- this.cacheSubject.next(this.cache);
70
- }));
71
- }
72
- }
73
- DocumentFolderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DocumentFolderService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
74
- DocumentFolderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DocumentFolderService, providedIn: 'root' });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DocumentFolderService, decorators: [{
76
- type: Injectable,
77
- args: [{
78
- providedIn: 'root'
79
- }]
80
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
81
- type: Inject,
82
- args: ['environment']
83
- }] }]; } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZm9sZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvZG9jdW1lbnQvZG9jdW1lbnQtZm9sZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7QUFHdkU7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBbUQ7SUFJNUYsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFFakQsS0FBSyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUp2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFObkQsUUFBRyxHQUFXLFNBQVMsQ0FBQztRQUN4QixlQUFVLEdBQTBCLGNBQWMsQ0FBQztJQVFuRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFVLEVBQUUsTUFBc0I7UUFDNUMsNENBQTRDO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNsRCxnQkFB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QUFFLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUUxRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O21IQTFFVSxxQkFBcUIsa0ZBT3RCLGFBQWE7dUhBUFoscUJBQXFCLGNBRnBCLE1BQU07NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBUUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudEZvbGRlciBhcyBEb2N1bWVudEZvbGRlckJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvZG9jdW1lbnQtZm9sZGVyJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBEb2N1bWVudCBhcyBEb2N1bWVudEJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvZG9jdW1lbnQnO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG9jdW1lbnQvZG9jdW1lbnQnO1xuaW1wb3J0IHsgcmVwbGFjZSB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBEb2N1bWVudEZvbGRlciB9IGZyb20gJy4uLy4uL21vZGVscy9kb2N1bWVudC9kb2N1bWVudC1mb2xkZXInO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgZG9jdW1lbnQtZm9sZGVycyBhbmQgZGVwZW5kaW5nIGRvY3VtZW50cyBsb2dpY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudEZvbGRlclNlcnZpY2UgZXh0ZW5kcyBCYXNlUmVzdFNlcnZpY2U8RG9jdW1lbnRGb2xkZXJCYXNlLCBEb2N1bWVudEZvbGRlcj4ge1xuICB1cmw6IHN0cmluZyA9ICdmb2xkZXJzJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIERvY3VtZW50Rm9sZGVyID0gRG9jdW1lbnRGb2xkZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG5ldyBkb2N1bWVudCB0byB0aGUgZm9sZGVyXG4gICAqIEBwYXJhbSBmaWxlIHRvIGJlIHVwbG9hZGVkIHRvIHRoZSBmb2xkZXJcbiAgICogQHBhcmFtIGZvbGRlciBmb3IgZG9jdW1lbnRcbiAgICovXG4gIGFkZERvY3VtZW50KGZpbGU6IEZpbGUsIGZvbGRlcjogRG9jdW1lbnRGb2xkZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAvLyBjcmVhdGUgZm9ybURhdGEgb2JqZWN0IHdpdGggcHJvdmlkZWQgZmlsZVxuICAgIGNvbnN0IGZvcm1EYXRhRG9jdW1lbnQ6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGFEb2N1bWVudC5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9mb2xkZXJzLyR7Zm9sZGVyLmlkfS9kb2N1bWVudHNgLCBmb3JtRGF0YURvY3VtZW50KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogRG9jdW1lbnRCYXNlKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRGb2xkZXI6IERvY3VtZW50Rm9sZGVyID0gT2JqZWN0LmFzc2lnbihwbGFpblRvQ2xhc3MoRG9jdW1lbnRGb2xkZXIsIHt9KSwgZm9sZGVyKTtcbiAgICAgICAgdXBkYXRlZEZvbGRlci5kb2N1bWVudHMucHVzaChwbGFpblRvQ2xhc3MoRG9jdW1lbnQsIHJlc3BvbnNlKSk7XG5cbiAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBwbGFpblRvQ2xhc3MoRG9jdW1lbnRGb2xkZXIsIHVwZGF0ZWRGb2xkZXIpKTtcbiAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFZGl0IGZvbGRlciBkb2N1bWVudCBieSBtb3ZpbmcgaXQgZnJvbSBvbmUgZm9sZGVyIHRvIGFub3RoZXJcbiAgICogQHBhcmFtIGVkaXRlZERvY3VtZW50XG4gICAqIEBwYXJhbSBzZWxlY3RlZEZvbGRlciB0byBtb3ZlIHRoZSBkb2N1bWVudCB0b1xuICAgKiBAcGFyYW0gb2xkRm9sZGVySWQ6IGlkIG9mIG9sZCBmb2xkZXIgZnJvbSB3aGljaCBuZWVkIHRvIHJlbW92ZSB0aGUgZG9jdW1lbnRcbiAgICovXG4gIHVwZGF0ZURvY3VtZW50KGVkaXRlZERvY3VtZW50OiBEb2N1bWVudCwgc2VsZWN0ZWRGb2xkZXI6IERvY3VtZW50Rm9sZGVyLCBvbGRGb2xkZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vZm9sZGVycy8ke3NlbGVjdGVkRm9sZGVyLmlkfS9kb2N1bWVudHMvJHtlZGl0ZWREb2N1bWVudC5pZH1gLCBlZGl0ZWREb2N1bWVudCkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IERvY3VtZW50QmFzZSkgPT4ge1xuICAgICAgICBjb25zdCBvbGRGb2xkZXI6IERvY3VtZW50Rm9sZGVyID0gdGhpcy5jYWNoZS5maW5kKChmb2xkZXI6IERvY3VtZW50Rm9sZGVyKSA9PiBmb2xkZXIuaWQgPT09IG9sZEZvbGRlcklkKTtcbiAgICAgICAgLy8gUmVtb3ZlIGRvY3VtZW50IGZyb20gb2xkIGZvbGRlclxuICAgICAgICBvbGRGb2xkZXIuZG9jdW1lbnRzID0gb2xkRm9sZGVyLmRvY3VtZW50cy5maWx0ZXIoKGRlbGV0ZWREb2N1bWVudDogRG9jdW1lbnQpID0+IGRlbGV0ZWREb2N1bWVudC5pZCAhPT0gcmVzcG9uc2UuaWQpO1xuXG4gICAgICAgIC8vIHVwZGF0ZSBvbGQgZm9sZGVyIGFuZCByZXBsYWNlIGl0IGluIGNhY2hlXG4gICAgICAgIHJlc3BvbnNlLmZvbGRlciA9IHBsYWluVG9DbGFzcyhEb2N1bWVudEZvbGRlciwge2lkOiBzZWxlY3RlZEZvbGRlci5pZCwgbmFtZTogc2VsZWN0ZWRGb2xkZXIubmFtZX0pO1xuICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHBsYWluVG9DbGFzcyhEb2N1bWVudEZvbGRlciwgb2xkRm9sZGVyKSk7XG5cbiAgICAgICAgLy8gdXBkYXRlIG5ldyBkb2N1bWVudCBmb2xkZXIgYW5kIHJlcGxhY2UgaXQgaW4gY2FjaGVcbiAgICAgICAgc2VsZWN0ZWRGb2xkZXIuZG9jdW1lbnRzLnB1c2gocGxhaW5Ub0NsYXNzKERvY3VtZW50LCByZXNwb25zZSkpO1xuICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHBsYWluVG9DbGFzcyhEb2N1bWVudEZvbGRlciwgc2VsZWN0ZWRGb2xkZXIpKTtcblxuICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBkb2N1bWVudCBmcm9tIGZvbGRlclxuICAgKiBAcGFyYW0gZG9jdW1lbnQgdG8gcmVtb3ZlXG4gICAqIEBwYXJhbSBmb2xkZXIgZnJvbSB3aGljaCBkb2N1bWVudCBzaG91bGQgYmUgcmVtb3ZlZFxuICAgKi9cbiAgZGVsZXRlRG9jdW1lbnQoZG9jdW1lbnQ6IERvY3VtZW50LCBmb2xkZXI6IERvY3VtZW50Rm9sZGVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vZm9sZGVycy8ke2ZvbGRlci5pZH0vZG9jdW1lbnRzLyR7ZG9jdW1lbnQuaWR9YCkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIGZvbGRlci5kb2N1bWVudHMgPSBmb2xkZXIuZG9jdW1lbnRzXG4gICAgICAgICAgLmZpbHRlcigoZGVsZXRlZERvY3VtZW50OiBEb2N1bWVudCkgPT4gZGVsZXRlZERvY3VtZW50LmlkICE9PSBkb2N1bWVudC5pZCk7XG4gICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgcGxhaW5Ub0NsYXNzKERvY3VtZW50Rm9sZGVyLCBmb2xkZXIpKTtcblxuICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,53 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { map } from 'rxjs/operators';
3
- import { replace } from '../../functions/array';
4
- import _ from 'lodash';
5
- import { plainToClass } from 'class-transformer';
6
- import { EmployeeInvite } from '../../models/employee/employee-invite';
7
- import { BaseRestService } from '../base-rest.service';
8
- import * as i0 from "@angular/core";
9
- export class EmployeeInviteService extends BaseRestService {
10
- constructor() {
11
- super(...arguments);
12
- this.url = 'employees/invites';
13
- this.modelClass = EmployeeInvite;
14
- }
15
- /**
16
- * Import employees for firm from CSV file
17
- * @param file
18
- */
19
- import(file) {
20
- const formData = new FormData();
21
- formData.append('file', file);
22
- return this.http.post(`${this.environment.apiV2}/${this.url}/import`, formData)
23
- .pipe(map((employeeInvite) => {
24
- return employeeInvite;
25
- }));
26
- }
27
- /**
28
- * Resend invitation from firm to client
29
- * @param invite
30
- */
31
- resend(invite) {
32
- return this.http.post(`${this.environment.apiV2}/${this.url}/${invite.id}/resend`, null)
33
- .pipe(map((resentInviteBase) => {
34
- const updatedInvite = plainToClass(EmployeeInvite, resentInviteBase);
35
- // avoid cache changes
36
- // @TODO make cache readonly
37
- const tempCache = _.cloneDeep(this.cache);
38
- replace(tempCache, plainToClass(EmployeeInvite, updatedInvite));
39
- this.cache = tempCache;
40
- this.updateCache();
41
- return updatedInvite;
42
- }));
43
- }
44
- }
45
- EmployeeInviteService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeInviteService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
46
- EmployeeInviteService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeInviteService, providedIn: 'root' });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeInviteService, decorators: [{
48
- type: Injectable,
49
- args: [{
50
- providedIn: 'root'
51
- }]
52
- }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtaW52aXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvZW1wbG95ZWUvZW1wbG95ZWUtaW52aXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGVBQW1EO0lBSDlGOztRQUlFLFFBQUcsR0FBVyxtQkFBbUIsQ0FBQztRQUNsQyxlQUFVLEdBQTBCLGNBQWMsQ0FBQztLQXFDcEQ7SUFuQ0M7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLElBQVU7UUFDZixNQUFNLFFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxTQUFTLEVBQUUsUUFBUSxDQUFDO2FBQzVFLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxjQUFnQyxFQUFFLEVBQUU7WUFDdkMsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsTUFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQzthQUNyRixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsZ0JBQW9DLEVBQWtCLEVBQUU7WUFDM0QsTUFBTSxhQUFhLEdBQW1CLFlBQVksQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUNyRixzQkFBc0I7WUFDdEIsNEJBQTRCO1lBQzVCLE1BQU0sU0FBUyxHQUFxQixDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RCxPQUFPLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7O21IQXRDVSxxQkFBcUI7dUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbXBsb3llZUludml0ZSBhcyBFbXBsb3llZUludml0ZUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvZW1wbG95ZWUtaW52aXRlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEVtcGxveWVlSW52aXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VtcGxveWVlL2VtcGxveWVlLWludml0ZSc7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVtcGxveWVlSW52aXRlU2VydmljZSBleHRlbmRzIEJhc2VSZXN0U2VydmljZTxFbXBsb3llZUludml0ZUJhc2UsIEVtcGxveWVlSW52aXRlPiB7XG4gIHVybDogc3RyaW5nID0gJ2VtcGxveWVlcy9pbnZpdGVzJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIEVtcGxveWVlSW52aXRlID0gRW1wbG95ZWVJbnZpdGU7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBlbXBsb3llZXMgZm9yIGZpcm0gZnJvbSBDU1YgZmlsZVxuICAgKiBAcGFyYW0gZmlsZVxuICAgKi9cbiAgaW1wb3J0KGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPEVtcGxveWVlSW52aXRlW10+IHtcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS9pbXBvcnRgLCBmb3JtRGF0YSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGVtcGxveWVlSW52aXRlOiBFbXBsb3llZUludml0ZVtdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVtcGxveWVlSW52aXRlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNlbmQgaW52aXRhdGlvbiBmcm9tIGZpcm0gdG8gY2xpZW50XG4gICAqIEBwYXJhbSBpbnZpdGVcbiAgICovXG4gIHJlc2VuZChpbnZpdGU6IEVtcGxveWVlSW52aXRlKTogT2JzZXJ2YWJsZTxFbXBsb3llZUludml0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke2ludml0ZS5pZH0vcmVzZW5kYCwgbnVsbClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc2VudEludml0ZUJhc2U6IEVtcGxveWVlSW52aXRlQmFzZSk6IEVtcGxveWVlSW52aXRlID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkSW52aXRlOiBFbXBsb3llZUludml0ZSA9IHBsYWluVG9DbGFzcyhFbXBsb3llZUludml0ZSwgcmVzZW50SW52aXRlQmFzZSk7XG4gICAgICAgICAgLy8gYXZvaWQgY2FjaGUgY2hhbmdlc1xuICAgICAgICAgIC8vIEBUT0RPIG1ha2UgY2FjaGUgcmVhZG9ubHlcbiAgICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IEVtcGxveWVlSW52aXRlW10gPSBfLmNsb25lRGVlcCh0aGlzLmNhY2hlKTtcbiAgICAgICAgICByZXBsYWNlKHRlbXBDYWNoZSwgcGxhaW5Ub0NsYXNzKEVtcGxveWVlSW52aXRlLCB1cGRhdGVkSW52aXRlKSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnZpdGU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG59XG4iXX0=
@@ -1,39 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BaseRestService } from '../base-rest.service';
3
- import { map } from 'rxjs/operators';
4
- import { replace } from '../../functions/array';
5
- import _ from 'lodash';
6
- import { plainToClass } from 'class-transformer';
7
- import { User } from '../../models/user/user';
8
- import * as i0 from "@angular/core";
9
- export class EmployeeService extends BaseRestService {
10
- constructor() {
11
- super(...arguments);
12
- this.url = 'employees';
13
- this.modelClass = User;
14
- }
15
- /**
16
- * Grant/Remove Manager role to employee
17
- * @param employee
18
- */
19
- toggleManagerRole(employee) {
20
- return this.http.put(`${this.environment.apiV2}/${this.url}/${employee.id}`, {})
21
- .pipe(map((updatedEmployeeBase) => {
22
- const tempCache = this.cache;
23
- const updatedEmployee = plainToClass(User, updatedEmployeeBase);
24
- replace(tempCache, updatedEmployee);
25
- this.cache = _.cloneDeep(tempCache);
26
- this.updateCache();
27
- return updatedEmployee;
28
- }));
29
- }
30
- }
31
- EmployeeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
32
- EmployeeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeService, providedIn: 'root' });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeService, decorators: [{
34
- type: Injectable,
35
- args: [{
36
- providedIn: 'root'
37
- }]
38
- }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9lbXBsb3llZS9lbXBsb3llZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEQsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBSzlDLE1BQU0sT0FBTyxlQUFnQixTQUFRLGVBQStCO0lBSHBFOztRQUlFLFFBQUcsR0FBVyxXQUFXLENBQUM7UUFDMUIsZUFBVSxHQUFnQixJQUFJLENBQUM7S0FtQmhDO0lBakJDOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLFFBQWM7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUM3RSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsbUJBQTZCLEVBQVEsRUFBRTtZQUMxQyxNQUFNLFNBQVMsR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3JDLE1BQU0sZUFBZSxHQUFTLFlBQVksQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztZQUN0RSxPQUFPLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxlQUFlLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7OzZHQXBCVSxlQUFlO2lIQUFmLGVBQWUsY0FGZCxNQUFNOzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vYmFzZS1yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlciBhcyBVc2VyQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy91c2VyJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci91c2VyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRW1wbG95ZWVTZXJ2aWNlIGV4dGVuZHMgQmFzZVJlc3RTZXJ2aWNlPFVzZXJCYXNlLCBVc2VyPntcbiAgdXJsOiBzdHJpbmcgPSAnZW1wbG95ZWVzJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIFVzZXIgPSBVc2VyO1xuXG4gIC8qKlxuICAgKiBHcmFudC9SZW1vdmUgTWFuYWdlciByb2xlIHRvIGVtcGxveWVlXG4gICAqIEBwYXJhbSBlbXBsb3llZVxuICAgKi9cbiAgdG9nZ2xlTWFuYWdlclJvbGUoZW1wbG95ZWU6IFVzZXIpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke2VtcGxveWVlLmlkfWAsIHt9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZEVtcGxveWVlQmFzZTogVXNlckJhc2UpOiBVc2VyID0+IHtcbiAgICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IFVzZXJbXSA9IHRoaXMuY2FjaGU7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZEVtcGxveWVlOiBVc2VyID0gcGxhaW5Ub0NsYXNzKFVzZXIsIHVwZGF0ZWRFbXBsb3llZUJhc2UpO1xuICAgICAgICAgIHJlcGxhY2UodGVtcENhY2hlLCB1cGRhdGVkRW1wbG95ZWUpO1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSBfLmNsb25lRGVlcCh0ZW1wQ2FjaGUpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZEVtcGxveWVlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
@@ -1,79 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { ReplaySubject } from 'rxjs';
3
- import { map } from 'rxjs/operators';
4
- import { plainToClass } from 'class-transformer';
5
- import { Firm } from '../../models/firm/firm';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common/http";
8
- // @TODO Alex: think about extend base rest service
9
- export class FirmService {
10
- constructor(http, environment) {
11
- this.http = http;
12
- this.environment = environment;
13
- this.firmSubject = new ReplaySubject(1);
14
- }
15
- /**
16
- * Register new firm
17
- * @param data: firm and firm owner data to register
18
- */
19
- register(data) {
20
- return this.http.post(`${this.environment.apiV2}/firms/registration`, data)
21
- .pipe(map((firm) => {
22
- return plainToClass(Firm, firm);
23
- }));
24
- }
25
- get() {
26
- if (!this.firm) {
27
- this.http.get(`${this.environment.apiV2}/firms/current`)
28
- .pipe(map((firm) => {
29
- return plainToClass(Firm, firm);
30
- }))
31
- .subscribe((firm) => {
32
- this.firm = firm;
33
- this.firmSubject.next(this.firm);
34
- });
35
- }
36
- return this.firmSubject.asObservable();
37
- }
38
- update(firm) {
39
- return this.http.put(`${this.environment.apiV2}/firms/current`, firm)
40
- .pipe(map((updatedItem) => {
41
- const updatedInstance = plainToClass(Firm, updatedItem);
42
- this.firmSubject.next(updatedInstance);
43
- }));
44
- }
45
- /**
46
- * get list of all registered firms
47
- */
48
- getAll() {
49
- return this.http.get(`${this.environment.apiV2}/firms`)
50
- .pipe(map((response) => {
51
- return response['hydra:member'].map((firmBase) => plainToClass(Firm, firmBase));
52
- }));
53
- }
54
- getByType(type) {
55
- return this.getAll().pipe(map((firms) => {
56
- return firms.filter((firm) => firm.type === type);
57
- }));
58
- }
59
- updatePhoto(firm, photo) {
60
- return this.http.post(`${this.environment.apiV2}/firms/photo?_method=PUT`, photo)
61
- .pipe(map((firmPhoto) => {
62
- this.firm = plainToClass(Firm, Object.assign(firm, { photo: firmPhoto }));
63
- this.firmSubject.next(this.firm);
64
- return firm;
65
- }));
66
- }
67
- }
68
- FirmService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FirmService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
69
- FirmService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FirmService, providedIn: 'root' });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FirmService, decorators: [{
71
- type: Injectable,
72
- args: [{
73
- providedIn: 'root'
74
- }]
75
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
76
- type: Inject,
77
- args: ['environment']
78
- }] }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2Zpcm0vZmlybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUc5QyxtREFBbUQ7QUFJbkQsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFDVSxJQUFnQixFQUNTLFdBQWdCO1FBRHpDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDUyxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUpuRCxnQkFBVyxHQUF3QixJQUFJLGFBQWEsQ0FBTyxDQUFDLENBQUMsQ0FBQztJQUszRCxDQUFDO0lBRUo7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLElBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxxQkFBcUIsRUFBRSxJQUFJLENBQUM7YUFDeEUsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLElBQWMsRUFBUSxFQUFFO1lBQzNCLE9BQU8sWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELEdBQUc7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLGdCQUFnQixDQUFDO2lCQUNyRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsSUFBYyxFQUFRLEVBQUU7Z0JBQzNCLE9BQU8sWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxJQUFVLEVBQVEsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssZ0JBQWdCLEVBQUUsSUFBSSxDQUFDO2FBQ2xFLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxXQUFxQixFQUFFLEVBQUU7WUFDNUIsTUFBTSxlQUFlLEdBQVMsWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssUUFBUSxDQUFDO2FBQ3BELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFnQixFQUFVLEVBQUU7WUFDL0IsT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBa0IsRUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2xHLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWtCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FDdkIsR0FBRyxDQUFDLENBQUMsS0FBYSxFQUFVLEVBQUU7WUFDNUIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVUsRUFBRSxLQUFlO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssMEJBQTBCLEVBQUUsS0FBSyxDQUFDO2FBQzlFLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzs7eUdBL0VVLFdBQVcsNENBTVosYUFBYTs2R0FOWixXQUFXLGNBRlYsTUFBTTs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT0ksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmlybVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvZmlybS10eXBlLmVudW0nO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgRmlybSB9IGZyb20gJy4uLy4uL21vZGVscy9maXJtL2Zpcm0nO1xuaW1wb3J0IHsgRmlybSBhcyBGaXJtQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9maXJtJztcblxuLy8gQFRPRE8gQWxleDogdGhpbmsgYWJvdXQgZXh0ZW5kIGJhc2UgcmVzdCBzZXJ2aWNlXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaXJtU2VydmljZSB7XG4gIGZpcm06IEZpcm07XG4gIGZpcm1TdWJqZWN0OiBSZXBsYXlTdWJqZWN0PEZpcm0+ID0gbmV3IFJlcGxheVN1YmplY3Q8RmlybT4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnlcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBuZXcgZmlybVxuICAgKiBAcGFyYW0gZGF0YTogZmlybSBhbmQgZmlybSBvd25lciBkYXRhIHRvIHJlZ2lzdGVyXG4gICAqL1xuICByZWdpc3RlcihkYXRhOiBGaXJtKTogT2JzZXJ2YWJsZTxGaXJtPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2Zpcm1zL3JlZ2lzdHJhdGlvbmAsIGRhdGEpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChmaXJtOiBGaXJtQmFzZSk6IEZpcm0gPT4ge1xuICAgICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MoRmlybSwgZmlybSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0KCk6IE9ic2VydmFibGU8RmlybT4ge1xuICAgIGlmICghdGhpcy5maXJtKSB7XG4gICAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2Zpcm1zL2N1cnJlbnRgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGZpcm06IEZpcm1CYXNlKTogRmlybSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKEZpcm0sIGZpcm0pO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZmlybTogRmlybSk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuZmlybSA9IGZpcm07XG4gICAgICAgICAgdGhpcy5maXJtU3ViamVjdC5uZXh0KHRoaXMuZmlybSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZpcm1TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgdXBkYXRlKGZpcm06IEZpcm0pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9maXJtcy9jdXJyZW50YCwgZmlybSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRJdGVtOiBGaXJtQmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZTogRmlybSA9IHBsYWluVG9DbGFzcyhGaXJtLCB1cGRhdGVkSXRlbSk7XG4gICAgICAgICAgdGhpcy5maXJtU3ViamVjdC5uZXh0KHVwZGF0ZWRJbnN0YW5jZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIGFsbCByZWdpc3RlcmVkIGZpcm1zXG4gICAqL1xuICBnZXRBbGwoKTogT2JzZXJ2YWJsZTxGaXJtW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9maXJtc2ApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KTogRmlybVtdID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2VbJ2h5ZHJhOm1lbWJlciddLm1hcCgoZmlybUJhc2U6IEZpcm1CYXNlKTogRmlybSA9PiBwbGFpblRvQ2xhc3MoRmlybSwgZmlybUJhc2UpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRCeVR5cGUodHlwZTogRmlybVR5cGVFbnVtKTogT2JzZXJ2YWJsZTxGaXJtW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRBbGwoKS5waXBlKFxuICAgICAgbWFwKChmaXJtczogRmlybVtdKTogRmlybVtdID0+IHtcbiAgICAgICAgcmV0dXJuIGZpcm1zLmZpbHRlcigoZmlybTogRmlybSkgPT4gZmlybS50eXBlID09PSB0eXBlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVBob3RvKGZpcm06IEZpcm0sIHBob3RvOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8RmlybT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9maXJtcy9waG90bz9fbWV0aG9kPVBVVGAsIHBob3RvKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZmlybVBob3RvOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICB0aGlzLmZpcm0gPSBwbGFpblRvQ2xhc3MoRmlybSwgT2JqZWN0LmFzc2lnbihmaXJtLCB7cGhvdG86IGZpcm1QaG90b30pKTtcbiAgICAgICAgICB0aGlzLmZpcm1TdWJqZWN0Lm5leHQodGhpcy5maXJtKTtcblxuICAgICAgICAgIHJldHVybiBmaXJtO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
@@ -1,90 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { map } from 'rxjs/operators';
3
- import { plainToClass } from 'class-transformer';
4
- import { BaseRestService } from '../base-rest.service';
5
- import { IncomeSourceForecast } from '../../models/income-source/income-source-forecast';
6
- import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
7
- import { IncomeSource } from '../../models/income-source/income-source';
8
- import { AppEvent } from '../../models/event/app-event';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common/http";
11
- import * as i2 from "../event/event-dispatcher.service";
12
- /**
13
- * Service to work with Other Income Forecasts
14
- */
15
- export class IncomeSourceForecastService extends BaseRestService {
16
- constructor(http, eventDispatcherService, environment) {
17
- super(http, eventDispatcherService, environment);
18
- this.http = http;
19
- this.eventDispatcherService = eventDispatcherService;
20
- this.environment = environment;
21
- this.modelClass = IncomeSourceForecast;
22
- this.url = 'income-source-forecasts';
23
- this.listenEvents();
24
- }
25
- /**
26
- * Listen to Income Sources events
27
- */
28
- listenEvents() {
29
- this.listenToAddedIncomeSources();
30
- this.listenToUpdatedIncomeSources();
31
- }
32
- /**
33
- * Listen to EventDispatcherService event related to added Income Sources
34
- */
35
- listenToAddedIncomeSources() {
36
- this.eventDispatcherService.on(AppEventTypeEnum.INCOME_SOURCES_CREATED)
37
- .pipe(map((incomeSources) => incomeSources
38
- .filter((incomeSource) => !incomeSource.isSalaryIncome())))
39
- .subscribe((incomeSources) => {
40
- const incomeSourceForecasts = this.assignIncomeSourceForecasts(incomeSources);
41
- if (incomeSourceForecasts.length) {
42
- this.addBatch(incomeSourceForecasts).subscribe((createdIncomeSourceForecasts) => {
43
- this.eventDispatcherService
44
- .dispatch(new AppEvent(AppEventTypeEnum.INCOME_SOURCES_FORECASTS_CREATED, createdIncomeSourceForecasts));
45
- });
46
- }
47
- });
48
- }
49
- /**
50
- * Listen to EventDispatcherService event related to updated Income Sources
51
- */
52
- listenToUpdatedIncomeSources() {
53
- this.eventDispatcherService.on(AppEventTypeEnum.INCOME_SOURCES_UPDATED)
54
- .subscribe((incomeSources) => {
55
- const incomeSourceForecasts = this.assignIncomeSourceForecasts(incomeSources);
56
- if (incomeSourceForecasts.length) {
57
- this.updateBatch(incomeSourceForecasts).subscribe((updatedIncomeSourceForecasts) => {
58
- this.eventDispatcherService
59
- .dispatch(new AppEvent(AppEventTypeEnum.INCOME_SOURCES_FORECASTS_UPDATED, updatedIncomeSourceForecasts));
60
- });
61
- }
62
- });
63
- }
64
- /**
65
- * Assign other income forecasts based on provided income sources
66
- * @param incomeSources by which other income forecasts will be assigned
67
- */
68
- assignIncomeSourceForecasts(incomeSources) {
69
- return incomeSources.map((incomeSource) => {
70
- incomeSource.incomeSourceForecasts = incomeSource.incomeSourceForecasts
71
- .map((incomeSourceForecast) => {
72
- incomeSourceForecast.incomeSource = plainToClass(IncomeSource, { id: incomeSource.id });
73
- return incomeSourceForecast;
74
- });
75
- return incomeSource.incomeSourceForecasts;
76
- }).flat();
77
- }
78
- }
79
- IncomeSourceForecastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceForecastService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
80
- IncomeSourceForecastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceForecastService, providedIn: 'root' });
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceForecastService, decorators: [{
82
- type: Injectable,
83
- args: [{
84
- providedIn: 'root'
85
- }]
86
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
87
- type: Inject,
88
- args: ['environment']
89
- }] }]; } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS1mb3JlY2FzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS1mb3JlY2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFFeEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZUFBK0Q7SUFJOUcsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFFakQsS0FBSyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUp2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFObkQsZUFBVSxHQUFnQyxvQkFBb0IsQ0FBQztRQUMvRCxRQUFHLEdBQVcseUJBQXlCLENBQUM7UUFRdEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSywwQkFBMEI7UUFDaEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQzthQUNwRSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsYUFBNkIsRUFBRSxFQUFFLENBQUMsYUFBYTthQUNqRCxNQUFNLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQzNFO2FBQ0EsU0FBUyxDQUFDLENBQUMsYUFBNkIsRUFBRSxFQUFFO1lBRTNDLE1BQU0scUJBQXFCLEdBQTJCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN0RyxJQUFJLHFCQUFxQixDQUFDLE1BQU0sRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLDRCQUFvRCxFQUFFLEVBQUU7b0JBQ3RHLElBQUksQ0FBQyxzQkFBc0I7eUJBQ3hCLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7Z0JBQzdHLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNLLDRCQUE0QjtRQUNsQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO2FBQ3BFLFNBQVMsQ0FBQyxDQUFDLGFBQTZCLEVBQUUsRUFBRTtZQUMzQyxNQUFNLHFCQUFxQixHQUEyQixJQUFJLENBQUMsMkJBQTJCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdEcsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyw0QkFBb0QsRUFBRSxFQUFFO29CQUN6RyxJQUFJLENBQUMsc0JBQXNCO3lCQUN4QixRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLEVBQUUsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO2dCQUM3RyxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssMkJBQTJCLENBQUMsYUFBNkI7UUFDL0QsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQ3RELFlBQVksQ0FBQyxxQkFBcUIsR0FBRyxZQUFZLENBQUMscUJBQXFCO2lCQUNwRSxHQUFHLENBQUMsQ0FBQyxvQkFBMEMsRUFBRSxFQUFFO2dCQUNsRCxvQkFBb0IsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQztnQkFDdEYsT0FBTyxvQkFBb0IsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztZQUNMLE9BQU8sWUFBWSxDQUFDLHFCQUFxQixDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ1osQ0FBQzs7eUhBdkVVLDJCQUEyQixrRkFPNUIsYUFBYTs2SEFQWiwyQkFBMkIsY0FGMUIsTUFBTTs0RkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VGb3JlY2FzdCBhcyBJbmNvbWVTb3VyY2VGb3JlY2FzdEJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvaW5jb21lLXNvdXJjZS1mb3JlY2FzdCc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VGb3JlY2FzdCB9IGZyb20gJy4uLy4uL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UtZm9yZWNhc3QnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gd29yayB3aXRoIE90aGVyIEluY29tZSBGb3JlY2FzdHNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW5jb21lU291cmNlRm9yZWNhc3RTZXJ2aWNlIGV4dGVuZHMgQmFzZVJlc3RTZXJ2aWNlPEluY29tZVNvdXJjZUZvcmVjYXN0QmFzZSwgSW5jb21lU291cmNlRm9yZWNhc3Q+IHtcbiAgbW9kZWxDbGFzczogdHlwZW9mIEluY29tZVNvdXJjZUZvcmVjYXN0ID0gSW5jb21lU291cmNlRm9yZWNhc3Q7XG4gIHVybDogc3RyaW5nID0gJ2luY29tZS1zb3VyY2UtZm9yZWNhc3RzJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50KTtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBJbmNvbWUgU291cmNlcyBldmVudHNcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQWRkZWRJbmNvbWVTb3VyY2VzKCk7XG4gICAgdGhpcy5saXN0ZW5Ub1VwZGF0ZWRJbmNvbWVTb3VyY2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBhZGRlZCBJbmNvbWUgU291cmNlc1xuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ub0FkZGVkSW5jb21lU291cmNlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19DUkVBVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pID0+IGluY29tZVNvdXJjZXNcbiAgICAgICAgICAuZmlsdGVyKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSkgPT4gIWluY29tZVNvdXJjZS5pc1NhbGFyeUluY29tZSgpKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdKSA9PiB7XG5cbiAgICAgICAgY29uc3QgaW5jb21lU291cmNlRm9yZWNhc3RzOiBJbmNvbWVTb3VyY2VGb3JlY2FzdFtdID0gdGhpcy5hc3NpZ25JbmNvbWVTb3VyY2VGb3JlY2FzdHMoaW5jb21lU291cmNlcyk7XG4gICAgICAgIGlmIChpbmNvbWVTb3VyY2VGb3JlY2FzdHMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5hZGRCYXRjaChpbmNvbWVTb3VyY2VGb3JlY2FzdHMpLnN1YnNjcmliZSgoY3JlYXRlZEluY29tZVNvdXJjZUZvcmVjYXN0czogSW5jb21lU291cmNlRm9yZWNhc3RbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlXG4gICAgICAgICAgICAgIC5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19GT1JFQ0FTVFNfQ1JFQVRFRCwgY3JlYXRlZEluY29tZVNvdXJjZUZvcmVjYXN0cykpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRXZlbnREaXNwYXRjaGVyU2VydmljZSBldmVudCByZWxhdGVkIHRvIHVwZGF0ZWQgSW5jb21lIFNvdXJjZXNcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9VcGRhdGVkSW5jb21lU291cmNlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19VUERBVEVEKVxuICAgICAgLnN1YnNjcmliZSgoaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pID0+IHtcbiAgICAgICAgY29uc3QgaW5jb21lU291cmNlRm9yZWNhc3RzOiBJbmNvbWVTb3VyY2VGb3JlY2FzdFtdID0gdGhpcy5hc3NpZ25JbmNvbWVTb3VyY2VGb3JlY2FzdHMoaW5jb21lU291cmNlcyk7XG4gICAgICAgIGlmIChpbmNvbWVTb3VyY2VGb3JlY2FzdHMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVCYXRjaChpbmNvbWVTb3VyY2VGb3JlY2FzdHMpLnN1YnNjcmliZSgodXBkYXRlZEluY29tZVNvdXJjZUZvcmVjYXN0czogSW5jb21lU291cmNlRm9yZWNhc3RbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlXG4gICAgICAgICAgICAgIC5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19GT1JFQ0FTVFNfVVBEQVRFRCwgdXBkYXRlZEluY29tZVNvdXJjZUZvcmVjYXN0cykpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NpZ24gb3RoZXIgaW5jb21lIGZvcmVjYXN0cyBiYXNlZCBvbiBwcm92aWRlZCBpbmNvbWUgc291cmNlc1xuICAgKiBAcGFyYW0gaW5jb21lU291cmNlcyBieSB3aGljaCBvdGhlciBpbmNvbWUgZm9yZWNhc3RzIHdpbGwgYmUgYXNzaWduZWRcbiAgICovXG4gIHByaXZhdGUgYXNzaWduSW5jb21lU291cmNlRm9yZWNhc3RzKGluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdKTogSW5jb21lU291cmNlRm9yZWNhc3RbXSB7XG4gICAgcmV0dXJuIGluY29tZVNvdXJjZXMubWFwKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSkgPT4ge1xuICAgICAgaW5jb21lU291cmNlLmluY29tZVNvdXJjZUZvcmVjYXN0cyA9IGluY29tZVNvdXJjZS5pbmNvbWVTb3VyY2VGb3JlY2FzdHNcbiAgICAgICAgLm1hcCgoaW5jb21lU291cmNlRm9yZWNhc3Q6IEluY29tZVNvdXJjZUZvcmVjYXN0KSA9PiB7XG4gICAgICAgICAgaW5jb21lU291cmNlRm9yZWNhc3QuaW5jb21lU291cmNlID0gcGxhaW5Ub0NsYXNzKEluY29tZVNvdXJjZSwge2lkOiBpbmNvbWVTb3VyY2UuaWR9KTtcbiAgICAgICAgICByZXR1cm4gaW5jb21lU291cmNlRm9yZWNhc3Q7XG4gICAgICAgIH0pO1xuICAgICAgcmV0dXJuIGluY29tZVNvdXJjZS5pbmNvbWVTb3VyY2VGb3JlY2FzdHM7XG4gICAgfSkuZmxhdCgpO1xuICB9XG59XG4iXX0=
@@ -1,109 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { ReplaySubject } from 'rxjs';
3
- import { map } from 'rxjs/operators';
4
- import { BaseRestService } from '../base-rest.service';
5
- import { IncomeSourceType } from '../../models/income-source/income-source-type';
6
- import { SalaryForecast } from '../../models/income-source/salary-forecast';
7
- import { replace } from '../../functions/array';
8
- import { plainToClass } from 'class-transformer';
9
- import { IncomeSource } from '../../models/income-source/income-source';
10
- import { AppEvent } from '../../models/event/app-event';
11
- import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common/http";
14
- import * as i2 from "../event/event-dispatcher.service";
15
- /**
16
- * Service to work with income sources
17
- */
18
- export class IncomeSourceService extends BaseRestService {
19
- constructor(http, eventDispatcherService, environment) {
20
- super(http, eventDispatcherService, environment);
21
- this.http = http;
22
- this.eventDispatcherService = eventDispatcherService;
23
- this.environment = environment;
24
- this.url = 'income-sources';
25
- this.modelClass = IncomeSource;
26
- this.incomeSourceTypeSubject = new ReplaySubject(1);
27
- }
28
- /**
29
- * Get income sources tax calculation
30
- * @param salaryForecast for which tax should be calculated
31
- */
32
- getTaxCalculation(salaryForecast) {
33
- return this.http.post(`${this.environment.apiV2}/${this.url}/tax-calculation`, salaryForecast)
34
- .pipe(map((response) => {
35
- return plainToClass(SalaryForecast, response);
36
- }));
37
- }
38
- /**
39
- * Add batch of income sources
40
- * @param incomeSources to add
41
- */
42
- addBatch(incomeSources) {
43
- return this.http.post(`${this.environment.apiV2}/${this.url}`, incomeSources)
44
- .pipe(map((addedIncomeSources) => {
45
- // assign respond income sources to provided income sources
46
- const assignedIncomeSources = addedIncomeSources
47
- .map((incomeSource, index) => Object.assign(plainToClass(IncomeSource, {}), incomeSource, incomeSources[index]));
48
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.INCOME_SOURCES_CREATED, assignedIncomeSources));
49
- this.cache.push(...assignedIncomeSources);
50
- this.updateCache();
51
- return assignedIncomeSources;
52
- }));
53
- }
54
- /**
55
- * Update batch of income sources
56
- */
57
- updateBatch(incomeSources, queryParams = {}) {
58
- return this.http.put(`${this.environment.apiV2}/${this.url}`, incomeSources, queryParams)
59
- .pipe(map((updatedItems) => {
60
- const updatedInstances = updatedItems.map((item) => this.createModelInstance(this.modelClass, item));
61
- updatedInstances.forEach((instance) => {
62
- replace(this.cache, instance);
63
- });
64
- if (incomeSources[0].forecasts.length) {
65
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.INCOME_SOURCES_UPDATED, incomeSources));
66
- }
67
- this.updateCache();
68
- return updatedInstances;
69
- }));
70
- }
71
- /**
72
- * Get income sources by provided types
73
- * @param types
74
- */
75
- getByTypes(types) {
76
- return this.get()
77
- .pipe(map((incomeSources) => incomeSources
78
- .filter((incomeSource) => types.includes(incomeSource.type))));
79
- }
80
- /**
81
- * Get other incomes types
82
- */
83
- getIncomeSourceTypes() {
84
- if (!this.incomeSourceTypes) {
85
- this.incomeSourceTypes = [];
86
- this.http.get(`${this.environment.apiV2}/income-source-types`)
87
- .pipe(map((response) => {
88
- return response.map((item) => plainToClass(IncomeSourceType, item));
89
- }))
90
- .subscribe((otherIncomesTypes) => {
91
- this.incomeSourceTypes = otherIncomesTypes;
92
- this.incomeSourceTypeSubject.next(this.incomeSourceTypes);
93
- });
94
- }
95
- return this.incomeSourceTypeSubject.asObservable();
96
- }
97
- }
98
- IncomeSourceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
99
- IncomeSourceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceService, providedIn: 'root' });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceService, decorators: [{
101
- type: Injectable,
102
- args: [{
103
- providedIn: 'root'
104
- }]
105
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
106
- type: Inject,
107
- args: ['environment']
108
- }] }]; } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBRTFFOztHQUVHO0FBSUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQStDO0lBTXRGLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCO1FBRWpELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFKdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBUm5ELFFBQUcsR0FBVyxnQkFBZ0IsQ0FBQztRQUMvQixlQUFVLEdBQUcsWUFBWSxDQUFDO1FBRTFCLDRCQUF1QixHQUFzQyxJQUFJLGFBQWEsQ0FBcUIsQ0FBQyxDQUFDLENBQUM7SUFRdEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLGNBQThCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxjQUFjLENBQUM7YUFDM0YsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3BCLE9BQU8sWUFBWSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxhQUE2QjtRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLGFBQWEsQ0FBQzthQUMxRSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsa0JBQXNDLEVBQUUsRUFBRTtZQUM3QywyREFBMkQ7WUFDM0QsTUFBTSxxQkFBcUIsR0FBbUIsa0JBQWtCO2lCQUM3RCxHQUFHLENBQUMsQ0FBQyxZQUEwQixFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1lBRW5ILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcscUJBQXFCLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxxQkFBcUIsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBRUgsV0FBVyxDQUFDLGFBQTZCLEVBQUUsY0FBc0IsRUFBRTtRQUNqRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUM7YUFDdEYsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFlBQTRCLEVBQUUsRUFBRTtZQUNuQyxNQUFNLGdCQUFnQixHQUFtQixZQUFZLENBQUMsR0FBRyxDQUN2RCxDQUFDLElBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUN4RSxDQUFDO1lBQ0YsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBc0IsRUFBRSxFQUFFO2dCQUNsRCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQzthQUM1RztZQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLEtBQTZCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRTthQUNkLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxhQUE2QixFQUFFLEVBQUUsQ0FBQyxhQUFhO2FBQ2pELE1BQU0sQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssc0JBQXNCLENBQUM7aUJBQzNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDcEIsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRSxDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxpQkFBcUMsRUFBRSxFQUFFO2dCQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7Z0JBQzNDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JELENBQUM7O2lIQXZHVSxtQkFBbUIsa0ZBU3BCLGFBQWE7cUhBVFosbUJBQW1CLGNBRmxCLE1BQU07NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIGFzIEluY29tZVNvdXJjZUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS10eXBlJztcbmltcG9ydCB7IFNhbGFyeUZvcmVjYXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luY29tZS1zb3VyY2Uvc2FsYXJ5LWZvcmVjYXN0JztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgSW5jb21lU291cmNlVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9pbmNvbWUtc291cmNlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZXZlbnQvZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5cbi8qKlxuICogU2VydmljZSB0byB3b3JrIHdpdGggaW5jb21lIHNvdXJjZXNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW5jb21lU291cmNlU2VydmljZSBleHRlbmRzIEJhc2VSZXN0U2VydmljZTxJbmNvbWVTb3VyY2VCYXNlLCBJbmNvbWVTb3VyY2U+IHtcbiAgdXJsOiBzdHJpbmcgPSAnaW5jb21lLXNvdXJjZXMnO1xuICBtb2RlbENsYXNzID0gSW5jb21lU291cmNlO1xuICBpbmNvbWVTb3VyY2VUeXBlczogSW5jb21lU291cmNlVHlwZVtdO1xuICBpbmNvbWVTb3VyY2VUeXBlU3ViamVjdDogUmVwbGF5U3ViamVjdDxJbmNvbWVTb3VyY2VUeXBlW10+ID0gbmV3IFJlcGxheVN1YmplY3Q8SW5jb21lU291cmNlVHlwZVtdPigxKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaW5jb21lIHNvdXJjZXMgdGF4IGNhbGN1bGF0aW9uXG4gICAqIEBwYXJhbSBzYWxhcnlGb3JlY2FzdCBmb3Igd2hpY2ggdGF4IHNob3VsZCBiZSBjYWxjdWxhdGVkXG4gICAqL1xuICBnZXRUYXhDYWxjdWxhdGlvbihzYWxhcnlGb3JlY2FzdDogU2FsYXJ5Rm9yZWNhc3QpOiBPYnNlcnZhYmxlPFNhbGFyeUZvcmVjYXN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9L3RheC1jYWxjdWxhdGlvbmAsIHNhbGFyeUZvcmVjYXN0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MoU2FsYXJ5Rm9yZWNhc3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGJhdGNoIG9mIGluY29tZSBzb3VyY2VzXG4gICAqIEBwYXJhbSBpbmNvbWVTb3VyY2VzIHRvIGFkZFxuICAgKi9cbiAgYWRkQmF0Y2goaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pOiBPYnNlcnZhYmxlPEluY29tZVNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgaW5jb21lU291cmNlcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGFkZGVkSW5jb21lU291cmNlczogSW5jb21lU291cmNlQmFzZVtdKSA9PiB7XG4gICAgICAgICAgLy8gYXNzaWduIHJlc3BvbmQgaW5jb21lIHNvdXJjZXMgdG8gcHJvdmlkZWQgaW5jb21lIHNvdXJjZXNcbiAgICAgICAgICBjb25zdCBhc3NpZ25lZEluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdID0gYWRkZWRJbmNvbWVTb3VyY2VzXG4gICAgICAgICAgICAubWFwKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSwgaW5kZXg6IG51bWJlcikgPT4gT2JqZWN0LmFzc2lnbihwbGFpblRvQ2xhc3MoSW5jb21lU291cmNlLCB7fSksIGluY29tZVNvdXJjZSwgaW5jb21lU291cmNlc1tpbmRleF0pKTtcblxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19DUkVBVEVELCBhc3NpZ25lZEluY29tZVNvdXJjZXMpKTtcblxuICAgICAgICAgIHRoaXMuY2FjaGUucHVzaCguLi5hc3NpZ25lZEluY29tZVNvdXJjZXMpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gYXNzaWduZWRJbmNvbWVTb3VyY2VzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYmF0Y2ggb2YgaW5jb21lIHNvdXJjZXNcbiAgICovXG5cbiAgdXBkYXRlQmF0Y2goaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8SW5jb21lU291cmNlW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGluY29tZVNvdXJjZXMsIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZEl0ZW1zOiBJbmNvbWVTb3VyY2VbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZXM6IEluY29tZVNvdXJjZVtdID0gdXBkYXRlZEl0ZW1zLm1hcChcbiAgICAgICAgICAgIChpdGVtOiBJbmNvbWVTb3VyY2UpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh0aGlzLm1vZGVsQ2xhc3MsIGl0ZW0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICB1cGRhdGVkSW5zdGFuY2VzLmZvckVhY2goKGluc3RhbmNlOiBJbmNvbWVTb3VyY2UpID0+IHtcbiAgICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgaW5zdGFuY2UpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGluY29tZVNvdXJjZXNbMF0uZm9yZWNhc3RzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLklOQ09NRV9TT1VSQ0VTX1VQREFURUQsIGluY29tZVNvdXJjZXMpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnN0YW5jZXM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBpbmNvbWUgc291cmNlcyBieSBwcm92aWRlZCB0eXBlc1xuICAgKiBAcGFyYW0gdHlwZXNcbiAgICovXG4gIGdldEJ5VHlwZXModHlwZXM6IEluY29tZVNvdXJjZVR5cGVFbnVtW10pOiBPYnNlcnZhYmxlPEluY29tZVNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdKSA9PiBpbmNvbWVTb3VyY2VzXG4gICAgICAgICAgLmZpbHRlcigoaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2UpID0+IHR5cGVzLmluY2x1ZGVzKGluY29tZVNvdXJjZS50eXBlKSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgb3RoZXIgaW5jb21lcyB0eXBlc1xuICAgKi9cbiAgZ2V0SW5jb21lU291cmNlVHlwZXMoKTogT2JzZXJ2YWJsZTxJbmNvbWVTb3VyY2VUeXBlW10+IHtcbiAgICBpZiAoIXRoaXMuaW5jb21lU291cmNlVHlwZXMpIHtcbiAgICAgIHRoaXMuaW5jb21lU291cmNlVHlwZXMgPSBbXTtcbiAgICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vaW5jb21lLXNvdXJjZS10eXBlc2ApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLm1hcCgoaXRlbTogYW55KSA9PiBwbGFpblRvQ2xhc3MoSW5jb21lU291cmNlVHlwZSwgaXRlbSkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgob3RoZXJJbmNvbWVzVHlwZXM6IEluY29tZVNvdXJjZVR5cGVbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5jb21lU291cmNlVHlwZXMgPSBvdGhlckluY29tZXNUeXBlcztcbiAgICAgICAgICB0aGlzLmluY29tZVNvdXJjZVR5cGVTdWJqZWN0Lm5leHQodGhpcy5pbmNvbWVTb3VyY2VUeXBlcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmluY29tZVNvdXJjZVR5cGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG59XG4iXX0=