taxtank-core 0.8.3 → 0.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/bundles/taxtank-core.umd.js +145 -140
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/collection.js +2 -2
  4. package/esm2015/lib/collections/depreciation.collection.js +3 -3
  5. package/esm2015/lib/collections/tax-summary/report-item.collection.js +141 -0
  6. package/esm2015/lib/db/Models/transaction-base.js +2 -1
  7. package/esm2015/lib/models/property/property.js +7 -4
  8. package/esm2015/lib/models/tax-summary/report-item-details.js +9 -0
  9. package/esm2015/lib/models/tax-summary/report-item.js +15 -0
  10. package/esm2015/lib/models/tax-summary/tax-summary-section.js +5 -5
  11. package/esm2015/lib/services/http/address/address.service.js +39 -0
  12. package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +118 -0
  13. package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +52 -0
  14. package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +89 -0
  15. package/esm2015/lib/services/http/bank/bank.service.js +24 -0
  16. package/esm2015/lib/services/http/bank/basiq/basiq.service.js +94 -0
  17. package/esm2015/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.js +38 -0
  18. package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +89 -0
  19. package/esm2015/lib/services/http/chat/chat.service.js +77 -0
  20. package/esm2015/lib/services/http/chat/message/message.service.js +65 -0
  21. package/esm2015/lib/services/http/chat/message-document/message-document.service.js +118 -0
  22. package/esm2015/lib/services/{depreciation/capital-project.service.js → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.js} +7 -7
  23. package/esm2015/lib/services/http/depreciation/depreciation.service.js +146 -0
  24. package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +84 -0
  25. package/esm2015/lib/services/{client → http/firm/client-invite}/client-invite.service.js +7 -7
  26. package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +98 -0
  27. package/esm2015/lib/services/http/firm/employee/employee.service.js +39 -0
  28. package/esm2015/lib/services/http/firm/employee-invite/employee-invite.service.js +53 -0
  29. package/esm2015/lib/services/http/firm/firm.service.js +79 -0
  30. package/esm2015/lib/services/http/firm/portfolio-report/client-portfolio-report.service.js +37 -0
  31. package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +90 -0
  32. package/esm2015/lib/services/http/income-source/income-source.service.js +109 -0
  33. package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +90 -0
  34. package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +87 -0
  35. package/esm2015/lib/services/http/loan/borrowing-expense/borrowing-expense.service.js +73 -0
  36. package/esm2015/lib/services/http/loan/loan.service.js +145 -0
  37. package/esm2015/lib/services/http/property/property-category/property-category.service.js +23 -0
  38. package/esm2015/lib/services/http/property/property-category-movement/property-category-movement.service.js +47 -0
  39. package/esm2015/lib/services/http/property/property-document/property-document.service.js +70 -0
  40. package/esm2015/lib/services/http/property/property-sale/property-sale.service.js +20 -0
  41. package/esm2015/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.js +21 -0
  42. package/esm2015/lib/services/http/property/property-share/property-share.service.js +115 -0
  43. package/esm2015/lib/services/http/property/property.service.js +126 -0
  44. package/esm2015/lib/services/http/rest/rest.service.js +190 -0
  45. package/esm2015/lib/services/http/service-notification/service-notification.service.js +65 -0
  46. package/esm2015/lib/services/http/subscription/subscription.service.js +157 -0
  47. package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +41 -0
  48. package/esm2015/lib/services/http/tax-review/tax-review.service.js +103 -0
  49. package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +71 -0
  50. package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +85 -0
  51. package/esm2015/lib/services/http/transaction/transaction.service.js +319 -0
  52. package/esm2015/lib/services/http/user/occupation/occupation.service.js +45 -0
  53. package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +59 -0
  54. package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +29 -0
  55. package/esm2015/lib/services/http/user/user.service.js +124 -0
  56. package/esm2015/lib/services/http/vehicle/vehicle.service.js +237 -0
  57. package/esm2015/lib/services/property/equity-position-chart/equity-position-chart.service.js +45 -0
  58. package/esm2015/public-api.js +51 -51
  59. package/fesm2015/taxtank-core.js +67 -62
  60. package/fesm2015/taxtank-core.js.map +1 -1
  61. package/lib/collections/collection.d.ts +1 -1
  62. package/lib/collections/{tax-return-category-item.collection.d.ts → tax-summary/report-item.collection.d.ts} +5 -5
  63. package/lib/models/property/property.d.ts +1 -0
  64. package/lib/models/tax-summary/{tax-return-category-item-details.d.ts → report-item-details.d.ts} +2 -2
  65. package/lib/models/tax-summary/{tax-return-category-item.d.ts → report-item.d.ts} +4 -4
  66. package/lib/models/tax-summary/tax-summary-section.d.ts +2 -2
  67. package/lib/services/{address → http/address}/address.service.d.ts +1 -1
  68. package/lib/services/{bank → http/bank/bank-account}/bank-account.service.d.ts +5 -5
  69. package/lib/services/{bank → http/bank/bank-connection}/bank-connection.service.d.ts +5 -5
  70. package/lib/services/{bank → http/bank/bank-transaction}/bank-transaction.service.d.ts +5 -5
  71. package/lib/services/{bank → http/bank}/bank.service.d.ts +4 -4
  72. package/lib/services/{bank → http/bank/basiq}/basiq.service.d.ts +7 -7
  73. package/lib/services/{chart-accounts → http/chart-accounts/chart-accounts-depreciations}/chart-accounts-depreciations.service.d.ts +4 -4
  74. package/lib/services/{chart-accounts → http/chart-accounts}/chart-accounts.service.d.ts +3 -3
  75. package/lib/services/{chat → http/chat}/chat.service.d.ts +7 -7
  76. package/lib/services/{chat → http/chat/message}/message.service.d.ts +7 -7
  77. package/lib/services/{chat → http/chat/message-document}/message-document.service.d.ts +3 -3
  78. package/lib/services/{depreciation/capital-project.service.d.ts → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.d.ts} +4 -4
  79. package/lib/services/{depreciation → http/depreciation}/depreciation.service.d.ts +5 -5
  80. package/lib/services/{document → http/document/document-folder}/document-folder.service.d.ts +6 -6
  81. package/lib/services/{client → http/firm/client-invite}/client-invite.service.d.ts +4 -4
  82. package/lib/services/{client → http/firm/client-movement}/client-movement.service.d.ts +7 -7
  83. package/lib/services/{employee → http/firm/employee}/employee.service.d.ts +4 -4
  84. package/lib/services/{employee → http/firm/employee-invite}/employee-invite.service.d.ts +4 -4
  85. package/lib/services/{firm → http/firm}/firm.service.d.ts +2 -2
  86. package/lib/services/{client → http/firm/portfolio-report}/client-portfolio-report.service.d.ts +1 -1
  87. package/lib/services/{income-source → http/income-source/income-source-forecast}/income-source-forecast.service.d.ts +5 -5
  88. package/lib/services/{income-source → http/income-source}/income-source.service.d.ts +8 -8
  89. package/lib/services/{income-source → http/income-source/salary-forecast}/salary-forecast.service.d.ts +6 -6
  90. package/lib/services/{income-source → http/income-source/sole-forecast}/sole-forecast.service.d.ts +5 -5
  91. package/lib/services/{borrowing-expense → http/loan/borrowing-expense}/borrowing-expense.service.d.ts +2 -2
  92. package/lib/services/{loan → http/loan}/loan.service.d.ts +6 -6
  93. package/lib/services/{property → http/property}/property-category/property-category.service.d.ts +4 -4
  94. package/lib/services/{property → http/property/property-category-movement}/property-category-movement.service.d.ts +4 -4
  95. package/lib/services/{property → http/property}/property-document/property-document.service.d.ts +5 -5
  96. package/lib/services/http/property/property-sale/property-sale.service.d.ts +10 -0
  97. package/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.d.ts +11 -0
  98. package/lib/services/{property → http/property}/property-share/property-share.service.d.ts +5 -5
  99. package/lib/services/{property → http/property}/property.service.d.ts +5 -5
  100. package/lib/services/{base-rest.service.d.ts → http/rest/rest.service.d.ts} +4 -4
  101. package/lib/services/http/service-notification/service-notification.service.d.ts +31 -0
  102. package/lib/services/{subscription → http/subscription}/subscription.service.d.ts +6 -6
  103. package/lib/services/{tax-review → http/tax-review/tax-review-history}/tax-review-history.service.d.ts +5 -5
  104. package/lib/services/{tax-review → http/tax-review}/tax-review.service.d.ts +6 -6
  105. package/lib/services/{tax-summary → http/tax-summary}/tax-summary.service.d.ts +2 -2
  106. package/lib/services/{transaction → http/transaction/transaction-allocation}/transaction-allocation.service.d.ts +6 -6
  107. package/lib/services/{transaction → http/transaction}/transaction.service.d.ts +7 -7
  108. package/lib/services/{user → http/user/occupation}/occupation.service.d.ts +1 -1
  109. package/lib/services/{user-event → http/user/user-event-setting}/user-event-setting.service.d.ts +5 -5
  110. package/lib/services/{user-event → http/user/user-event-type}/user-event-type.service.d.ts +5 -5
  111. package/lib/services/{user → http/user}/user.service.d.ts +3 -3
  112. package/lib/services/{work/work-tank.service.d.ts → http/vehicle/vehicle.service.d.ts} +9 -8
  113. package/lib/services/property/{equity-position-chart.service.d.ts → equity-position-chart/equity-position-chart.service.d.ts} +1 -1
  114. package/package.json +1 -1
  115. package/public-api.d.ts +50 -50
  116. package/esm2015/lib/collections/tax-return-category-item.collection.js +0 -141
  117. package/esm2015/lib/models/tax-summary/tax-return-category-item-details.js +0 -9
  118. package/esm2015/lib/models/tax-summary/tax-return-category-item.js +0 -15
  119. package/esm2015/lib/services/address/address.service.js +0 -39
  120. package/esm2015/lib/services/bank/bank-account.service.js +0 -118
  121. package/esm2015/lib/services/bank/bank-connection.service.js +0 -52
  122. package/esm2015/lib/services/bank/bank-transaction.service.js +0 -89
  123. package/esm2015/lib/services/bank/bank.service.js +0 -24
  124. package/esm2015/lib/services/bank/basiq.service.js +0 -94
  125. package/esm2015/lib/services/base-rest.service.js +0 -190
  126. package/esm2015/lib/services/borrowing-expense/borrowing-expense.service.js +0 -73
  127. package/esm2015/lib/services/chart-accounts/chart-accounts-depreciations.service.js +0 -38
  128. package/esm2015/lib/services/chart-accounts/chart-accounts.service.js +0 -89
  129. package/esm2015/lib/services/chat/chat.service.js +0 -77
  130. package/esm2015/lib/services/chat/message-document.service.js +0 -118
  131. package/esm2015/lib/services/chat/message.service.js +0 -65
  132. package/esm2015/lib/services/client/client-movement.service.js +0 -98
  133. package/esm2015/lib/services/client/client-portfolio-report.service.js +0 -37
  134. package/esm2015/lib/services/depreciation/depreciation.service.js +0 -146
  135. package/esm2015/lib/services/document/document-folder.service.js +0 -84
  136. package/esm2015/lib/services/employee/employee-invite.service.js +0 -53
  137. package/esm2015/lib/services/employee/employee.service.js +0 -39
  138. package/esm2015/lib/services/firm/firm.service.js +0 -79
  139. package/esm2015/lib/services/income-source/income-source-forecast.service.js +0 -90
  140. package/esm2015/lib/services/income-source/income-source.service.js +0 -109
  141. package/esm2015/lib/services/income-source/salary-forecast.service.js +0 -90
  142. package/esm2015/lib/services/income-source/sole-forecast.service.js +0 -87
  143. package/esm2015/lib/services/loan/loan.service.js +0 -145
  144. package/esm2015/lib/services/notification/notification.service.js +0 -65
  145. package/esm2015/lib/services/property/equity-position-chart.service.js +0 -45
  146. package/esm2015/lib/services/property/property-category/property-category.service.js +0 -23
  147. package/esm2015/lib/services/property/property-category-movement.service.js +0 -47
  148. package/esm2015/lib/services/property/property-document/property-document.service.js +0 -70
  149. package/esm2015/lib/services/property/property-sale/property-sale.service.js +0 -20
  150. package/esm2015/lib/services/property/property-sale/tax-exemption/tax-exemption.service.js +0 -21
  151. package/esm2015/lib/services/property/property-share/property-share.service.js +0 -115
  152. package/esm2015/lib/services/property/property.service.js +0 -126
  153. package/esm2015/lib/services/subscription/subscription.service.js +0 -157
  154. package/esm2015/lib/services/tax-review/tax-review-history.service.js +0 -41
  155. package/esm2015/lib/services/tax-review/tax-review.service.js +0 -103
  156. package/esm2015/lib/services/tax-summary/tax-summary.service.js +0 -71
  157. package/esm2015/lib/services/transaction/transaction-allocation.service.js +0 -85
  158. package/esm2015/lib/services/transaction/transaction.service.js +0 -319
  159. package/esm2015/lib/services/user/occupation.service.js +0 -45
  160. package/esm2015/lib/services/user/user.service.js +0 -124
  161. package/esm2015/lib/services/user-event/user-event-setting.service.js +0 -59
  162. package/esm2015/lib/services/user-event/user-event-type.service.js +0 -29
  163. package/esm2015/lib/services/work/work-tank.service.js +0 -236
  164. package/lib/services/notification/notification.service.d.ts +0 -31
  165. package/lib/services/property/property-sale/property-sale.service.d.ts +0 -10
  166. package/lib/services/property/property-sale/tax-exemption/tax-exemption.service.d.ts +0 -11
@@ -0,0 +1,124 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import { User } from '../../../models/user/user';
4
+ import { AppEvent } from '../../../models/event/app-event';
5
+ import { AppEventTypeEnum } from '../../../models/event/app-event-type.enum';
6
+ import { map } from 'rxjs/operators';
7
+ import { plainToClass } from 'class-transformer';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common/http";
10
+ import * as i2 from "../../auth/jwt.service";
11
+ import * as i3 from "../../event/event-dispatcher.service";
12
+ /**
13
+ * Service to work with user
14
+ */
15
+ export class UserService {
16
+ constructor(http, jwtService, eventDispatcherService, environment) {
17
+ this.http = http;
18
+ this.jwtService = jwtService;
19
+ this.eventDispatcherService = eventDispatcherService;
20
+ this.environment = environment;
21
+ this.cacheSubject = new ReplaySubject(1);
22
+ }
23
+ /**
24
+ * Get current user
25
+ */
26
+ get() {
27
+ if (!this.cache) {
28
+ this.http.get(`${this.environment.apiV2}/users/current`)
29
+ .pipe(map((userBase) => {
30
+ return plainToClass(User, userBase);
31
+ }))
32
+ .subscribe((user) => {
33
+ localStorage.setItem('userId', user.id.toString());
34
+ // @TODO remove
35
+ localStorage.setItem('financialYear', user.financialYear.toString());
36
+ this.cache = user;
37
+ this.cacheSubject.next(this.cache);
38
+ });
39
+ }
40
+ return this.cacheSubject.asObservable();
41
+ }
42
+ /**
43
+ * Register new user
44
+ */
45
+ register(data) {
46
+ return this.http.post(`${this.environment.apiV2}/users/registration`, data);
47
+ }
48
+ /**
49
+ * Update user
50
+ */
51
+ update(user) {
52
+ return this.http.put(`${this.environment.apiV2}/users/${user.id}`, user)
53
+ .pipe(map((userBase) => {
54
+ this.cache = plainToClass(User, userBase);
55
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.USER_UPDATED, null));
56
+ this.cacheSubject.next(this.cache);
57
+ }));
58
+ }
59
+ /**
60
+ * Change user password
61
+ */
62
+ changePassword(currentPassword, newPassword) {
63
+ return this.http.put(`${this.environment.apiV2}/users/current/password`, { currentPassword, newPassword });
64
+ }
65
+ /**
66
+ * Reset user password
67
+ */
68
+ resetPassword(email) {
69
+ return this.http.put(`${this.environment.apiV2}/users/reset-password`, { email });
70
+ }
71
+ /**
72
+ * Confirm registered user
73
+ */
74
+ confirm(verificationCode) {
75
+ return this.http.post(`${this.environment.apiV2}/users/confirmation`, { verificationCode });
76
+ }
77
+ /**
78
+ * Search existing user
79
+ */
80
+ search(email) {
81
+ return this.http.get(`${this.environment.apiV2}/users/search?email=${email}`)
82
+ .pipe(map((userBase) => {
83
+ return plainToClass(User, userBase);
84
+ }));
85
+ }
86
+ /**
87
+ * Finish onboarding process
88
+ */
89
+ finishOnboarding(user) {
90
+ return this.http.put(`${this.environment.apiV2}/users/status`, user)
91
+ .pipe(map(() => {
92
+ this.cache = user;
93
+ this.cacheSubject.next(this.cache);
94
+ }));
95
+ }
96
+ /**
97
+ * Update user photo
98
+ */
99
+ updatePhoto(photo) {
100
+ return this.http.post(`${this.environment.apiV2}/users/photo?_method=PUT`, photo)
101
+ .pipe(map((photoUrl) => {
102
+ this.cache = plainToClass(User, Object.assign(this.cache, { photo: photoUrl }));
103
+ this.cacheSubject.next(this.cache);
104
+ }));
105
+ }
106
+ /**
107
+ * Run forecast update script on backend when user switched financial year
108
+ */
109
+ switchFinancialYear() {
110
+ return this.http.get(`${this.environment.apiV2}/financial-year/switch`);
111
+ }
112
+ }
113
+ UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UserService, deps: [{ token: i1.HttpClient }, { token: i2.JwtService }, { token: i3.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
114
+ UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UserService, providedIn: 'root' });
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UserService, decorators: [{
116
+ type: Injectable,
117
+ args: [{
118
+ providedIn: 'root'
119
+ }]
120
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.JwtService }, { type: i3.EventDispatcherService }, { type: undefined, decorators: [{
121
+ type: Inject,
122
+ args: ['environment']
123
+ }] }]; } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdXNlci91c2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBRWpEOztHQUVHO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFDVSxJQUFnQixFQUNoQixVQUFzQixFQUN0QixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFIdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFOakQsaUJBQVksR0FBd0IsSUFBSSxhQUFhLENBQU8sQ0FBQyxDQUFDLENBQUM7SUFRL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssZ0JBQWdCLENBQUM7aUJBQ3JELElBQUksQ0FDSCxHQUFHLENBQUMs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QU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXIgYXMgVXNlckJhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMvdXNlcic7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3VzZXIvdXNlcic7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSnd0U2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGgvand0LnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gd29yayB3aXRoIHVzZXJcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2Uge1xuICBjYWNoZTogVXNlcjtcbiAgY2FjaGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PFVzZXI+ID0gbmV3IFJlcGxheVN1YmplY3Q8VXNlcj4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgand0U2VydmljZTogSnd0U2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgdXNlclxuICAgKi9cbiAgZ2V0KCk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS91c2Vycy9jdXJyZW50YClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKCh1c2VyQmFzZTogVXNlckJhc2UpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MoVXNlciwgdXNlckJhc2UpO1xuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHVzZXI6IFVzZXIpID0+IHtcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndXNlcklkJywgdXNlci5pZC50b1N0cmluZygpKTtcbiAgICAgICAgICAvLyBAVE9ETyByZW1vdmVcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZmluYW5jaWFsWWVhcicsIHVzZXIuZmluYW5jaWFsWWVhci50b1N0cmluZygpKTtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdXNlcjtcbiAgICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgbmV3IHVzZXJcbiAgICovXG4gIHJlZ2lzdGVyKGRhdGE6IG9iamVjdCk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3VzZXJzL3JlZ2lzdHJhdGlvbmAsIGRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB1c2VyXG4gICAqL1xuICB1cGRhdGUodXNlcjogVXNlcik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3VzZXJzLyR7dXNlci5pZH1gLCB1c2VyKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXNlckJhc2U6IFVzZXJCYXNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHBsYWluVG9DbGFzcyhVc2VyLCB1c2VyQmFzZSk7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlVTRVJfVVBEQVRFRCwgbnVsbCkpO1xuICAgICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB1c2VyIHBhc3N3b3JkXG4gICAqL1xuICBjaGFuZ2VQYXNzd29yZChjdXJyZW50UGFzc3dvcmQ6IHN0cmluZywgbmV3UGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvY3VycmVudC9wYXNzd29yZGAsIHtjdXJyZW50UGFzc3dvcmQsIG5ld1Bhc3N3b3JkfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdXNlciBwYXNzd29yZFxuICAgKi9cbiAgcmVzZXRQYXNzd29yZChlbWFpbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS91c2Vycy9yZXNldC1wYXNzd29yZGAsIHtlbWFpbH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpcm0gcmVnaXN0ZXJlZCB1c2VyXG4gICAqL1xuICBjb25maXJtKHZlcmlmaWNhdGlvbkNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3VzZXJzL2NvbmZpcm1hdGlvbmAsIHt2ZXJpZmljYXRpb25Db2RlfSk7XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoIGV4aXN0aW5nIHVzZXJcbiAgICovXG4gIHNlYXJjaChlbWFpbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvc2VhcmNoP2VtYWlsPSR7ZW1haWx9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVzZXJCYXNlOiBVc2VyQmFzZSkgPT4ge1xuICAgICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MoVXNlciwgdXNlckJhc2UpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5pc2ggb25ib2FyZGluZyBwcm9jZXNzXG4gICAqL1xuICBmaW5pc2hPbmJvYXJkaW5nKHVzZXI6IFVzZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS91c2Vycy9zdGF0dXNgLCB1c2VyKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHVzZXI7XG4gICAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHVzZXIgcGhvdG9cbiAgICovXG4gIHVwZGF0ZVBob3RvKHBob3RvOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS91c2Vycy9waG90bz9fbWV0aG9kPVBVVGAsIHBob3RvKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocGhvdG9Vcmw6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSBwbGFpblRvQ2xhc3MoVXNlciwgT2JqZWN0LmFzc2lnbih0aGlzLmNhY2hlLCB7cGhvdG86IHBob3RvVXJsfSkpO1xuICAgICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1biBmb3JlY2FzdCB1cGRhdGUgc2NyaXB0IG9uIGJhY2tlbmQgd2hlbiB1c2VyIHN3aXRjaGVkIGZpbmFuY2lhbCB5ZWFyXG4gICAqL1xuICBzd2l0Y2hGaW5hbmNpYWxZZWFyKCk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vZmluYW5jaWFsLXllYXIvc3dpdGNoYCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,237 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { combineLatest, ReplaySubject } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { ChartAccountsHeadingVehicleListEnum } from '../../../db/Enums/chart-accounts-heading-vehicle-list.enum';
5
+ import { ChartAccountsListEnum } from '../../../db/Enums/chart-accounts-list.enum';
6
+ import { plainToClass } from 'class-transformer';
7
+ import { enumToList } from '../../../functions/enum-to-list';
8
+ import { Vehicle } from '../../../models/logbook/vehicle';
9
+ import { VehicleClaim } from '../../../models/logbook/vehicle-claim';
10
+ import { VehicleLogbook } from '../../../models/logbook/vehicle-logbook';
11
+ import { AppEventTypeEnum } from '../../../models/event/app-event-type.enum';
12
+ import { AppEvent } from '../../../models/event/app-event';
13
+ import { FinancialYear } from '../../../models/financial-year/financial-year';
14
+ import { Depreciation } from '../../../models/depreciation/depreciation';
15
+ import * as i0 from "@angular/core";
16
+ import * as i1 from "@angular/common/http";
17
+ import * as i2 from "../transaction/transaction.service";
18
+ import * as i3 from "../depreciation/depreciation.service";
19
+ import * as i4 from "../chart-accounts/chart-accounts.service";
20
+ import * as i5 from "../../event/event-dispatcher.service";
21
+ /**
22
+ * Service that allows to work with WorkTank operations
23
+ * @TODO separate into multiple services, extend restService
24
+ */
25
+ export class VehicleService {
26
+ constructor(http, transactionService, depreciationService, chartAccountsService, eventDispatcherService, environment) {
27
+ this.http = http;
28
+ this.transactionService = transactionService;
29
+ this.depreciationService = depreciationService;
30
+ this.chartAccountsService = chartAccountsService;
31
+ this.eventDispatcherService = eventDispatcherService;
32
+ this.environment = environment;
33
+ this.vehiclesSubject = new ReplaySubject(1);
34
+ this.vehicleClaimSubject = new ReplaySubject(1);
35
+ this.vehicleClaimRateSubject = new ReplaySubject(1);
36
+ this.vehicleTaxReturnSubject = new ReplaySubject(1);
37
+ this.incomePositionsSubject = new ReplaySubject(1);
38
+ }
39
+ getVehicles() {
40
+ // @TODO create backend for get logbook
41
+ if (!this._vehicles) {
42
+ this.http.get(`${this.environment.apiV2}/vehicles`)
43
+ .pipe(map((response) => {
44
+ return response.map((item) => plainToClass(Vehicle, item));
45
+ }))
46
+ .subscribe((vehicles) => {
47
+ this._vehicles = vehicles;
48
+ this.vehiclesSubject.next(vehicles);
49
+ });
50
+ }
51
+ return this.vehiclesSubject.asObservable();
52
+ }
53
+ /**
54
+ * Get vehicles claim amount
55
+ */
56
+ getVehiclesClaim() {
57
+ if (!this._vehicleClaim) {
58
+ this.http.get(`${this.environment.apiV2}/vehicle-claims`)
59
+ .pipe(map((response) => {
60
+ // return Vehicle claim from backend or create new if it not exist
61
+ return response.length ? response.map((item) => plainToClass(VehicleClaim, item))[0] : plainToClass(VehicleClaim, {});
62
+ }))
63
+ .subscribe((vehicleClaim) => {
64
+ this._vehicleClaim = vehicleClaim;
65
+ this.vehicleClaimSubject.next(vehicleClaim);
66
+ });
67
+ }
68
+ return this.vehicleClaimSubject.asObservable();
69
+ }
70
+ /**
71
+ * Add new vehicle claim
72
+ * @param claim object which should be added
73
+ */
74
+ addVehicleClaim(claim) {
75
+ return this.http.post(`${this.environment.apiV2}/vehicle-claims`, claim).pipe(map((response) => {
76
+ this._vehicleClaim = plainToClass(VehicleClaim, response);
77
+ this.vehicleClaimSubject.next(this._vehicleClaim);
78
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.VEHICLE_CLAIM_CREATED, null));
79
+ }));
80
+ }
81
+ /**
82
+ * Get vehicles claim rate for current financial year
83
+ */
84
+ getVehiclesClaimRate() {
85
+ if (!this._vehicleClaimRate) {
86
+ this.chartAccountsService.getChartAccountsById(ChartAccountsListEnum.KLMS_TRAVELLED_FOR_WORK)
87
+ .pipe(map((response) => {
88
+ return response.values.find((chartAccount) => chartAccount.financialYear === new FinancialYear().year).value;
89
+ }))
90
+ .subscribe((claimRate) => {
91
+ this._vehicleClaimRate = claimRate;
92
+ this.vehicleClaimRateSubject.next(this._vehicleClaimRate);
93
+ });
94
+ }
95
+ return this.vehicleClaimRateSubject.asObservable();
96
+ }
97
+ /**
98
+ * Get vehicles tax return for vehicle transactions & depreciations
99
+ */
100
+ getVehiclesTaxReturn() {
101
+ if (!this._vehicleTaxReturn) {
102
+ combineLatest([
103
+ // @Todo refactor to avoid injection of another services
104
+ this.transactionService.get(),
105
+ this.depreciationService.get(),
106
+ this.getVehiclesClaim()
107
+ ]).pipe(map(([transactions, depreciations, vehicleClaim]) => {
108
+ const chartAccountsHeadingsIds = enumToList(ChartAccountsHeadingVehicleListEnum)
109
+ .map((item) => item.value);
110
+ // get transactions & depreciations which chart accounts headings are belong to vehicle category
111
+ // but except KLMS transaction
112
+ const filteredItems = [...transactions, ...depreciations].filter((item) => {
113
+ var _a;
114
+ return chartAccountsHeadingsIds.includes((_a = item.chartAccounts.heading) === null || _a === void 0 ? void 0 : _a.id) && !item.chartAccounts.isKlmsForWork();
115
+ });
116
+ // get claim amount sum
117
+ return filteredItems.reduce((sum, item) =>
118
+ // @Todo remove item.amount negative sign when depreciations will be refactored and will have negative sign
119
+ sum + ((item instanceof Depreciation ? item.currentYearForecast.amount : -item.amount) * (vehicleClaim.workUsage / 100)), 0);
120
+ }))
121
+ .subscribe((taxReturn) => {
122
+ this._vehicleTaxReturn = taxReturn;
123
+ this.vehicleTaxReturnSubject.next(this._vehicleTaxReturn);
124
+ });
125
+ }
126
+ return this.vehicleTaxReturnSubject.asObservable();
127
+ }
128
+ /**
129
+ * Update vehicle claim
130
+ * @param claim which should be updated
131
+ *
132
+ * @TODO alex refresh depreciation/transaction cache
133
+ */
134
+ updateVehicleClaim(claim) {
135
+ return this.http.put(`${this.environment.apiV2}/vehicle-claims/${claim.id}`, claim).pipe(map((response) => {
136
+ const updatedVehicleClaim = plainToClass(VehicleClaim, response);
137
+ this._vehicleClaim = updatedVehicleClaim;
138
+ this.vehicleClaimSubject.next(this._vehicleClaim);
139
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.VEHICLE_CLAIM_UPDATED, null));
140
+ return updatedVehicleClaim;
141
+ }));
142
+ }
143
+ /**
144
+ * Add new logbook for desired vehicle
145
+ * @param logbook which should be added
146
+ * @param vehicle for which logbook object should be added
147
+ */
148
+ addLogbook(logbook, vehicle) {
149
+ return this.http.post(`${this.environment.apiV2}/vehicles/${vehicle.id}/logbooks`, logbook)
150
+ .pipe(map((response) => {
151
+ this._vehicles.find((v) => v.id === vehicle.id).logbook.push(response);
152
+ // we update nested logbook object inside vehicles list. So list is not changed and next not emit subscriptions updates.
153
+ // that is why we recreate vehicles array
154
+ this.vehiclesSubject.next(this._vehicles.map((item) => plainToClass(Vehicle, item)));
155
+ }));
156
+ }
157
+ /**
158
+ * Update logbook
159
+ * @param logbook which should be updated
160
+ * @param vehicle for which logbook object should be updated
161
+ */
162
+ updateLogbook(logbook, vehicle) {
163
+ return this.http.put(`${this.environment.apiV2}/vehicles/${vehicle.id}/logbooks/${logbook.id}`, logbook).pipe(map((response) => {
164
+ const editedVehicle = this._vehicles.find((v) => v.id === vehicle.id);
165
+ const editedLogbookIndex = editedVehicle.logbook.findIndex((l) => l.id === logbook.id);
166
+ editedVehicle.logbook.splice(editedLogbookIndex, 1, plainToClass(VehicleLogbook, response));
167
+ // we update nested logbook object inside vehicles list. So list is not changed and next not emit subscriptions updates.
168
+ // that is why we recreate vehicles array
169
+ this.vehiclesSubject.next(this._vehicles.map((item) => plainToClass(Vehicle, item)));
170
+ }));
171
+ }
172
+ /**
173
+ * Delete trip
174
+ * @param logbook for which trip should be deleted
175
+ * @param vehicle for which trip should be deleted
176
+ */
177
+ deleteTrip(logbook, vehicle) {
178
+ return this.http.delete(`${this.environment.apiV2}/vehicles/${vehicle.id}/logbooks/${logbook.id}`)
179
+ .pipe(map(() => {
180
+ const editedVehicle = this._vehicles.find((v) => v.id === vehicle.id);
181
+ const deletedLogbookIndex = editedVehicle.logbook.findIndex((l) => l.id === logbook.id);
182
+ editedVehicle.logbook.splice(deletedLogbookIndex, 1);
183
+ // we update nested logbook object inside vehicles list. So list is not changed and next not emit subscriptions updates.
184
+ // that is why we recreate vehicles array
185
+ this.vehiclesSubject.next(this._vehicles.map((item) => plainToClass(Vehicle, item)));
186
+ }));
187
+ }
188
+ /**
189
+ * Add new vehicle
190
+ * @param vehicle which should be added
191
+ */
192
+ addVehicle(vehicle) {
193
+ return this.http.post(`${this.environment.apiV2}/vehicles`, { name: vehicle.name })
194
+ .pipe(map((response) => {
195
+ this._vehicles.push(plainToClass(Vehicle, response));
196
+ this.vehiclesSubject.next(this._vehicles);
197
+ }));
198
+ }
199
+ /**
200
+ * Update vehicle
201
+ * @param vehicle which should be updated
202
+ */
203
+ updateVehicle(vehicle) {
204
+ return this.http.put(`${this.environment.apiV2}/vehicles/${vehicle.id}`, { name: vehicle.name })
205
+ .pipe(map((response) => {
206
+ const editedVehicleIndex = this._vehicles.findIndex((v) => v.id === vehicle.id);
207
+ this._vehicles.splice(editedVehicleIndex, 1, plainToClass(Vehicle, response));
208
+ this.vehiclesSubject.next(this._vehicles);
209
+ }));
210
+ }
211
+ /**
212
+ * Delete vehicle
213
+ * @param vehicle which should be deleted
214
+ */
215
+ deleteVehicle(vehicle) {
216
+ return this.http.delete(`${this.environment.apiV2}/vehicles/${vehicle.id}`)
217
+ .pipe(map(() => {
218
+ const deletedVehicleIndex = this._vehicles.findIndex((v) => v.id === vehicle.id);
219
+ this._vehicles.splice(deletedVehicleIndex, 1);
220
+ // we update nested logbook object inside vehicles list. So list is not changed and next not emit subscriptions updates.
221
+ // that is why we recreate vehicles array
222
+ this.vehiclesSubject.next(this._vehicles.map((item) => plainToClass(Vehicle, item)));
223
+ }));
224
+ }
225
+ }
226
+ VehicleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleService, deps: [{ token: i1.HttpClient }, { token: i2.TransactionService }, { token: i3.DepreciationService }, { token: i4.ChartAccountsService }, { token: i5.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
227
+ VehicleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleService, providedIn: 'root' });
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleService, decorators: [{
229
+ type: Injectable,
230
+ args: [{
231
+ providedIn: 'root'
232
+ }]
233
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.TransactionService }, { type: i3.DepreciationService }, { type: i4.ChartAccountsService }, { type: i5.EventDispatcherService }, { type: undefined, decorators: [{
234
+ type: Inject,
235
+ args: ['environment']
236
+ }] }]; } });
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdmVoaWNsZS92ZWhpY2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2pILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7QUFLekU7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFhekIsWUFDVSxJQUFnQixFQUNoQixrQkFBc0MsRUFDdEMsbUJBQXdDLEVBQ3hDLG9CQUEwQyxF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OztPQUdHO0lBQ0gsYUFBYSxDQUFDLE9BQWdCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssYUFBYSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7YUFDeEUsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxNQUFNLG1CQUFtQixHQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5Qyx3SEFBd0g7WUFDeEgseUNBQXlDO1lBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzs7NEdBdlBVLGNBQWMsMkxBbUJmLGFBQWE7Z0hBbkJaLGNBQWMsY0FGYixNQUFNOzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFvQkksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0hlYWRpbmdWZWhpY2xlTGlzdEVudW0gfSBmcm9tICcuLi8uLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLXZlaGljbGUtbGlzdC5lbnVtJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNMaXN0RW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWxpc3QuZW51bSc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblNlcnZpY2UgfSBmcm9tICcuLi90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGVudW1Ub0xpc3QgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvZW51bS10by1saXN0JztcbmltcG9ydCB7IFZlaGljbGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbG9nYm9vay92ZWhpY2xlJztcbmltcG9ydCB7IFZlaGljbGVDbGFpbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9sb2dib29rL3ZlaGljbGUtY2xhaW0nO1xuaW1wb3J0IHsgVmVoaWNsZUxvZ2Jvb2sgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbG9nYm9vay92ZWhpY2xlLWxvZ2Jvb2snO1xuaW1wb3J0IHsgSW5jb21lUG9zaXRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaW5jb21lLXBvc2l0aW9uL2luY29tZS1wb3NpdGlvbic7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uU2VydmljZSB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzU2VydmljZSB9IGZyb20gJy4uL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5cbi8qKlxuICogU2VydmljZSB0aGF0IGFsbG93cyB0byB3b3JrIHdpdGggV29ya1Rhbmsgb3BlcmF0aW9uc1xuICogQFRPRE8gc2VwYXJhdGUgaW50byBtdWx0aXBsZSBzZXJ2aWNlcywgZXh0ZW5kIHJlc3RTZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFZlaGljbGVTZXJ2aWNlIHtcbiAgLy8gQFRPRE8gcmVmYWN0b3IgYW5kIG1heWJlIGJyZWFrIHRvIHNlcGFyYXRlZCBzZXJ2aWNlc1xuICBfdmVoaWNsZXM6IFZlaGljbGVbXTtcbiAgdmVoaWNsZXNTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PFZlaGljbGVbXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxWZWhpY2xlW10+KDEpO1xuICBfdmVoaWNsZUNsYWltOiBWZWhpY2xlQ2xhaW07XG4gIHZlaGljbGVDbGFpbVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8VmVoaWNsZUNsYWltPiA9IG5ldyBSZXBsYXlTdWJqZWN0PFZlaGljbGVDbGFpbT4oMSk7XG4gIF92ZWhpY2xlQ2xhaW1SYXRlOiBudW1iZXI7XG4gIHZlaGljbGVDbGFpbVJhdGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PG51bWJlcj4gPSBuZXcgUmVwbGF5U3ViamVjdDxudW1iZXI+KDEpO1xuICBfdmVoaWNsZVRheFJldHVybjogbnVtYmVyO1xuICB2ZWhpY2xlVGF4UmV0dXJuU3ViamVjdDogUmVwbGF5U3ViamVjdDxudW1iZXI+ID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyPigxKTtcbiAgX2luY29tZVBvc2l0aW9uczogSW5jb21lUG9zaXRpb25bXTtcbiAgaW5jb21lUG9zaXRpb25zU3ViamVjdDogUmVwbGF5U3ViamVjdDxJbmNvbWVQb3NpdGlvbltdPiA9IG5ldyBSZXBsYXlTdWJqZWN0PEluY29tZVBvc2l0aW9uW10+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZGVwcmVjaWF0aW9uU2VydmljZTogRGVwcmVjaWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNoYXJ0QWNjb3VudHNTZXJ2aWNlOiBDaGFydEFjY291bnRzU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gIH1cblxuICBnZXRWZWhpY2xlcygpOiBPYnNlcnZhYmxlPFZlaGljbGVbXT4ge1xuICAgIC8vIEBUT0RPIGNyZWF0ZSBiYWNrZW5kIGZvciBnZXQgbG9nYm9va1xuICAgIGlmICghdGhpcy5fdmVoaWNsZXMpIHtcbiAgICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdmVoaWNsZXNgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5tYXAoKGl0ZW06IGFueSkgPT4gcGxhaW5Ub0NsYXNzKFZlaGljbGUsIGl0ZW0pKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZlaGljbGVzOiBWZWhpY2xlW10pID0+IHtcbiAgICAgICAgICB0aGlzLl92ZWhpY2xlcyA9IHZlaGljbGVzO1xuICAgICAgICAgIHRoaXMudmVoaWNsZXNTdWJqZWN0Lm5leHQodmVoaWNsZXMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy52ZWhpY2xlc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHZlaGljbGVzIGNsYWltIGFtb3VudFxuICAgKi9cbiAgZ2V0VmVoaWNsZXNDbGFpbSgpOiBPYnNlcnZhYmxlPFZlaGljbGVDbGFpbT4ge1xuICAgIGlmICghdGhpcy5fdmVoaWNsZUNsYWltKSB7XG4gICAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3ZlaGljbGUtY2xhaW1zYClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAvLyByZXR1cm4gVmVoaWNsZSBjbGFpbSBmcm9tIGJhY2tlbmQgb3IgY3JlYXRlIG5ldyBpZiBpdCBub3QgZXhpc3RcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5sZW5ndGggPyByZXNwb25zZS5tYXAoKGl0ZW06IGFueSkgPT4gcGxhaW5Ub0NsYXNzKFZlaGljbGVDbGFpbSwgaXRlbSkpWzBdIDogcGxhaW5Ub0NsYXNzKFZlaGljbGVDbGFpbSwge30pO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgodmVoaWNsZUNsYWltOiBWZWhpY2xlQ2xhaW0pID0+IHtcbiAgICAgICAgICB0aGlzLl92ZWhpY2xlQ2xhaW0gPSB2ZWhpY2xlQ2xhaW07XG4gICAgICAgICAgdGhpcy52ZWhpY2xlQ2xhaW1TdWJqZWN0Lm5leHQodmVoaWNsZUNsYWltKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudmVoaWNsZUNsYWltU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbmV3IHZlaGljbGUgY2xhaW1cbiAgICogQHBhcmFtIGNsYWltIG9iamVjdCB3aGljaCBzaG91bGQgYmUgYWRkZWRcbiAgICovXG4gIGFkZFZlaGljbGVDbGFpbShjbGFpbTogVmVoaWNsZUNsYWltKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdmVoaWNsZS1jbGFpbXNgLCBjbGFpbSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLl92ZWhpY2xlQ2xhaW0gPSBwbGFpblRvQ2xhc3MoVmVoaWNsZUNsYWltLCByZXNwb25zZSk7XG4gICAgICAgIHRoaXMudmVoaWNsZUNsYWltU3ViamVjdC5uZXh0KHRoaXMuX3ZlaGljbGVDbGFpbSk7XG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX0NSRUFURUQsIG51bGwpKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdmVoaWNsZXMgY2xhaW0gcmF0ZSBmb3IgY3VycmVudCBmaW5hbmNpYWwgeWVhclxuICAgKi9cbiAgZ2V0VmVoaWNsZXNDbGFpbVJhdGUoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBpZiAoIXRoaXMuX3ZlaGljbGVDbGFpbVJhdGUpIHtcbiAgICAgIHRoaXMuY2hhcnRBY2NvdW50c1NlcnZpY2UuZ2V0Q2hhcnRBY2NvdW50c0J5SWQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLktMTVNfVFJBVkVMTEVEX0ZPUl9XT1JLKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS52YWx1ZXMuZmluZCgoY2hhcnRBY2NvdW50OiBhbnkpID0+IGNoYXJ0QWNjb3VudC5maW5hbmNpYWxZZWFyID09PSBuZXcgRmluYW5jaWFsWWVhcigpLnllYXIpLnZhbHVlO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoY2xhaW1SYXRlOiBudW1iZXIpID0+IHtcbiAgICAgICAgICB0aGlzLl92ZWhpY2xlQ2xhaW1SYXRlID0gY2xhaW1SYXRlO1xuICAgICAgICAgIHRoaXMudmVoaWNsZUNsYWltUmF0ZVN1YmplY3QubmV4dCh0aGlzLl92ZWhpY2xlQ2xhaW1SYXRlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudmVoaWNsZUNsYWltUmF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHZlaGljbGVzIHRheCByZXR1cm4gZm9yIHZlaGljbGUgdHJhbnNhY3Rpb25zICYgZGVwcmVjaWF0aW9uc1xuICAgKi9cbiAgZ2V0VmVoaWNsZXNUYXhSZXR1cm4oKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBpZiAoIXRoaXMuX3ZlaGljbGVUYXhSZXR1cm4pIHtcbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAvLyBAVG9kbyByZWZhY3RvciB0byBhdm9pZCBpbmplY3Rpb24gb2YgYW5vdGhlciBzZXJ2aWNlc1xuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXQoKSxcbiAgICAgICAgdGhpcy5kZXByZWNpYXRpb25TZXJ2aWNlLmdldCgpLFxuICAgICAgICB0aGlzLmdldFZlaGljbGVzQ2xhaW0oKVxuICAgICAgXSkucGlwZShcbiAgICAgICAgICBtYXAoKFt0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMsIHZlaGljbGVDbGFpbV06IFtUcmFuc2FjdGlvbltdLCBEZXByZWNpYXRpb25bXSwgVmVoaWNsZUNsYWltXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hhcnRBY2NvdW50c0hlYWRpbmdzSWRzOiBudW1iZXJbXSA9IGVudW1Ub0xpc3QoQ2hhcnRBY2NvdW50c0hlYWRpbmdWZWhpY2xlTGlzdEVudW0pXG4gICAgICAgICAgICAgIC5tYXAoKGl0ZW06IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9KSA9PiBpdGVtLnZhbHVlKTtcbiAgICAgICAgICAgIC8vIGdldCB0cmFuc2FjdGlvbnMgJiBkZXByZWNpYXRpb25zIHdoaWNoIGNoYXJ0IGFjY291bnRzIGhlYWRpbmdzIGFyZSBiZWxvbmcgdG8gdmVoaWNsZSBjYXRlZ29yeVxuICAgICAgICAgICAgLy8gYnV0IGV4Y2VwdCBLTE1TIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zOiBBcnJheTxUcmFuc2FjdGlvbiB8IERlcHJlY2lhdGlvbj4gPSBbLi4udHJhbnNhY3Rpb25zLCAuLi5kZXByZWNpYXRpb25zXS5maWx0ZXIoKGl0ZW06IFRyYW5zYWN0aW9uIHwgRGVwcmVjaWF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGFydEFjY291bnRzSGVhZGluZ3NJZHMuaW5jbHVkZXMoaXRlbS5jaGFydEFjY291bnRzLmhlYWRpbmc/LmlkKSAmJiAhaXRlbS5jaGFydEFjY291bnRzLmlzS2xtc0ZvcldvcmsoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBnZXQgY2xhaW0gYW1vdW50IHN1bVxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkSXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgaXRlbTogVHJhbnNhY3Rpb24gfCBEZXByZWNpYXRpb24pID0+XG4gICAgICAgICAgICAgIC8vIEBUb2RvIHJlbW92ZSBpdGVtLmFtb3VudCBuZWdhdGl2ZSBzaWduIHdoZW4gZGVwcmVjaWF0aW9ucyB3aWxsIGJlIHJlZmFjdG9yZWQgYW5kIHdpbGwgaGF2ZSBuZWdhdGl2ZSBzaWduXG4gICAgICAgICAgICAgIHN1bSArICgoaXRlbSBpbnN0YW5jZW9mIERlcHJlY2lhdGlvbiA/IGl0ZW0uY3VycmVudFllYXJGb3JlY2FzdC5hbW91bnQgOiAtaXRlbS5hbW91bnQpICogKHZlaGljbGVDbGFpbS53b3JrVXNhZ2UgLyAxMDApKSwgMCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodGF4UmV0dXJuOiBudW1iZXIpID0+IHtcbiAgICAgICAgdGhpcy5fdmVoaWNsZVRheFJldHVybiA9IHRheFJldHVybjtcbiAgICAgICAgdGhpcy52ZWhpY2xlVGF4UmV0dXJuU3ViamVjdC5uZXh0KHRoaXMuX3ZlaGljbGVUYXhSZXR1cm4pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudmVoaWNsZVRheFJldHVyblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHZlaGljbGUgY2xhaW1cbiAgICogQHBhcmFtIGNsYWltIHdoaWNoIHNob3VsZCBiZSB1cGRhdGVkXG4gICAqXG4gICAqIEBUT0RPIGFsZXggcmVmcmVzaCBkZXByZWNpYXRpb24vdHJhbnNhY3Rpb24gY2FjaGVcbiAgICovXG4gIHVwZGF0ZVZlaGljbGVDbGFpbShjbGFpbTogVmVoaWNsZUNsYWltKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS92ZWhpY2xlLWNsYWltcy8ke2NsYWltLmlkfWAsIGNsYWltKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRWZWhpY2xlQ2xhaW06IFZlaGljbGVDbGFpbSA9IHBsYWluVG9DbGFzcyhWZWhpY2xlQ2xhaW0sIHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5fdmVoaWNsZUNsYWltID0gdXBkYXRlZFZlaGljbGVDbGFpbTtcbiAgICAgICAgdGhpcy52ZWhpY2xlQ2xhaW1TdWJqZWN0Lm5leHQodGhpcy5fdmVoaWNsZUNsYWltKTtcblxuICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9DTEFJTV9VUERBVEVELCBudWxsKSk7XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRWZWhpY2xlQ2xhaW07XG4gICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG5ldyBsb2dib29rIGZvciBkZXNpcmVkIHZlaGljbGVcbiAgICogQHBhcmFtIGxvZ2Jvb2sgd2hpY2ggc2hvdWxkIGJlIGFkZGVkXG4gICAqIEBwYXJhbSB2ZWhpY2xlIGZvciB3aGljaCBsb2dib29rIG9iamVjdCBzaG91bGQgYmUgYWRkZWRcbiAgICovXG4gIGFkZExvZ2Jvb2sobG9nYm9vazogVmVoaWNsZUxvZ2Jvb2ssIHZlaGljbGU6IFZlaGljbGUpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdmVoaWNsZXMvJHt2ZWhpY2xlLmlkfS9sb2dib29rc2AsIGxvZ2Jvb2spXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5fdmVoaWNsZXMuZmluZCgodjogVmVoaWNsZSkgPT4gdi5pZCA9PT0gdmVoaWNsZS5pZCkubG9nYm9vay5wdXNoKHJlc3BvbnNlKTtcbiAgICAgICAgICAvLyB3ZSB1cGRhdGUgbmVzdGVkIGxvZ2Jvb2sgb2JqZWN0IGluc2lkZSB2ZWhpY2xlcyBsaXN0LiBTbyBsaXN0IGlzIG5vdCBjaGFuZ2VkIGFuZCBuZXh0IG5vdCBlbWl0IHN1YnNjcmlwdGlvbnMgdXBkYXRlcy5cbiAgICAgICAgICAvLyB0aGF0IGlzIHdoeSB3ZSByZWNyZWF0ZSB2ZWhpY2xlcyBhcnJheVxuICAgICAgICAgIHRoaXMudmVoaWNsZXNTdWJqZWN0Lm5leHQodGhpcy5fdmVoaWNsZXMubWFwKChpdGVtOiBvYmplY3QpID0+IHBsYWluVG9DbGFzcyhWZWhpY2xlLCBpdGVtKSkpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgbG9nYm9va1xuICAgKiBAcGFyYW0gbG9nYm9vayB3aGljaCBzaG91bGQgYmUgdXBkYXRlZFxuICAgKiBAcGFyYW0gdmVoaWNsZSBmb3Igd2hpY2ggbG9nYm9vayBvYmplY3Qgc2hvdWxkIGJlIHVwZGF0ZWRcbiAgICovXG4gIHVwZGF0ZUxvZ2Jvb2sobG9nYm9vazogVmVoaWNsZUxvZ2Jvb2ssIHZlaGljbGU6IFZlaGljbGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3ZlaGljbGVzLyR7dmVoaWNsZS5pZH0vbG9nYm9va3MvJHtsb2dib29rLmlkfWAsIGxvZ2Jvb2spLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgZWRpdGVkVmVoaWNsZTogVmVoaWNsZSA9IHRoaXMuX3ZlaGljbGVzLmZpbmQoKHY6IFZlaGljbGUpID0+IHYuaWQgPT09IHZlaGljbGUuaWQpO1xuICAgICAgICBjb25zdCBlZGl0ZWRMb2dib29rSW5kZXg6IG51bWJlciA9IGVkaXRlZFZlaGljbGUubG9nYm9vay5maW5kSW5kZXgoKGw6IFZlaGljbGVMb2dib29rKSA9PiBsLmlkID09PSBsb2dib29rLmlkKTtcbiAgICAgICAgZWRpdGVkVmVoaWNsZS5sb2dib29rLnNwbGljZShlZGl0ZWRMb2dib29rSW5kZXgsIDEsIHBsYWluVG9DbGFzcyhWZWhpY2xlTG9nYm9vaywgcmVzcG9uc2UpKTtcbiAgICAgICAgLy8gd2UgdXBkYXRlIG5lc3RlZCBsb2dib29rIG9iamVjdCBpbnNpZGUgdmVoaWNsZXMgbGlzdC4gU28gbGlzdCBpcyBub3QgY2hhbmdlZCBhbmQgbmV4dCBub3QgZW1pdCBzdWJzY3JpcHRpb25zIHVwZGF0ZXMuXG4gICAgICAgIC8vIHRoYXQgaXMgd2h5IHdlIHJlY3JlYXRlIHZlaGljbGVzIGFycmF5XG4gICAgICAgIHRoaXMudmVoaWNsZXNTdWJqZWN0Lm5leHQodGhpcy5fdmVoaWNsZXMubWFwKChpdGVtOiBvYmplY3QpID0+IHBsYWluVG9DbGFzcyhWZWhpY2xlLCBpdGVtKSkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSB0cmlwXG4gICAqIEBwYXJhbSBsb2dib29rIGZvciB3aGljaCB0cmlwIHNob3VsZCBiZSBkZWxldGVkXG4gICAqIEBwYXJhbSB2ZWhpY2xlIGZvciB3aGljaCB0cmlwIHNob3VsZCBiZSBkZWxldGVkXG4gICAqL1xuICBkZWxldGVUcmlwKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rLCB2ZWhpY2xlOiBWZWhpY2xlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS92ZWhpY2xlcy8ke3ZlaGljbGUuaWR9L2xvZ2Jvb2tzLyR7bG9nYm9vay5pZH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWRpdGVkVmVoaWNsZTogVmVoaWNsZSA9IHRoaXMuX3ZlaGljbGVzLmZpbmQoKHY6IFZlaGljbGUpID0+IHYuaWQgPT09IHZlaGljbGUuaWQpO1xuICAgICAgICAgIGNvbnN0IGRlbGV0ZWRMb2dib29rSW5kZXg6IG51bWJlciA9IGVkaXRlZFZlaGljbGUubG9nYm9vay5maW5kSW5kZXgoKGw6IFZlaGljbGVMb2dib29rKSA9PiBsLmlkID09PSBsb2dib29rLmlkKTtcbiAgICAgICAgICBlZGl0ZWRWZWhpY2xlLmxvZ2Jvb2suc3BsaWNlKGRlbGV0ZWRMb2dib29rSW5kZXgsIDEpO1xuICAgICAgICAgIC8vIHdlIHVwZGF0ZSBuZXN0ZWQgbG9nYm9vayBvYmplY3QgaW5zaWRlIHZlaGljbGVzIGxpc3QuIFNvIGxpc3QgaXMgbm90IGNoYW5nZWQgYW5kIG5leHQgbm90IGVtaXQgc3Vic2NyaXB0aW9ucyB1cGRhdGVzLlxuICAgICAgICAgIC8vIHRoYXQgaXMgd2h5IHdlIHJlY3JlYXRlIHZlaGljbGVzIGFycmF5XG4gICAgICAgICAgdGhpcy52ZWhpY2xlc1N1YmplY3QubmV4dCh0aGlzLl92ZWhpY2xlcy5tYXAoKGl0ZW06IG9iamVjdCkgPT4gcGxhaW5Ub0NsYXNzKFZlaGljbGUsIGl0ZW0pKSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBuZXcgdmVoaWNsZVxuICAgKiBAcGFyYW0gdmVoaWNsZSB3aGljaCBzaG91bGQgYmUgYWRkZWRcbiAgICovXG4gIGFkZFZlaGljbGUodmVoaWNsZTogVmVoaWNsZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3ZlaGljbGVzYCwge25hbWU6IHZlaGljbGUubmFtZX0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5fdmVoaWNsZXMucHVzaChwbGFpblRvQ2xhc3MoVmVoaWNsZSwgcmVzcG9uc2UpKTtcbiAgICAgICAgICB0aGlzLnZlaGljbGVzU3ViamVjdC5uZXh0KHRoaXMuX3ZlaGljbGVzKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHZlaGljbGVcbiAgICogQHBhcmFtIHZlaGljbGUgd2hpY2ggc2hvdWxkIGJlIHVwZGF0ZWRcbiAgICovXG4gIHVwZGF0ZVZlaGljbGUodmVoaWNsZTogVmVoaWNsZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdmVoaWNsZXMvJHt2ZWhpY2xlLmlkfWAsIHtuYW1lOiB2ZWhpY2xlLm5hbWV9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRlZFZlaGljbGVJbmRleDogbnVtYmVyID0gdGhpcy5fdmVoaWNsZXMuZmluZEluZGV4KCh2OiBWZWhpY2xlKSA9PiB2LmlkID09PSB2ZWhpY2xlLmlkKTtcbiAgICAgICAgICB0aGlzLl92ZWhpY2xlcy5zcGxpY2UoZWRpdGVkVmVoaWNsZUluZGV4LCAxLCBwbGFpblRvQ2xhc3MoVmVoaWNsZSwgcmVzcG9uc2UpKTtcbiAgICAgICAgICB0aGlzLnZlaGljbGVzU3ViamVjdC5uZXh0KHRoaXMuX3ZlaGljbGVzKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIHZlaGljbGVcbiAgICogQHBhcmFtIHZlaGljbGUgd2hpY2ggc2hvdWxkIGJlIGRlbGV0ZWRcbiAgICovXG4gIGRlbGV0ZVZlaGljbGUodmVoaWNsZTogVmVoaWNsZSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3ZlaGljbGVzLyR7dmVoaWNsZS5pZH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVsZXRlZFZlaGljbGVJbmRleDogbnVtYmVyID0gdGhpcy5fdmVoaWNsZXMuZmluZEluZGV4KCh2OiBWZWhpY2xlKSA9PiB2LmlkID09PSB2ZWhpY2xlLmlkKTtcbiAgICAgICAgICB0aGlzLl92ZWhpY2xlcy5zcGxpY2UoZGVsZXRlZFZlaGljbGVJbmRleCwgMSk7XG4gICAgICAgICAgLy8gd2UgdXBkYXRlIG5lc3RlZCBsb2dib29rIG9iamVjdCBpbnNpZGUgdmVoaWNsZXMgbGlzdC4gU28gbGlzdCBpcyBub3QgY2hhbmdlZCBhbmQgbmV4dCBub3QgZW1pdCBzdWJzY3JpcHRpb25zIHVwZGF0ZXMuXG4gICAgICAgICAgLy8gdGhhdCBpcyB3aHkgd2UgcmVjcmVhdGUgdmVoaWNsZXMgYXJyYXlcbiAgICAgICAgICB0aGlzLnZlaGljbGVzU3ViamVjdC5uZXh0KHRoaXMuX3ZlaGljbGVzLm1hcCgoaXRlbTogb2JqZWN0KSA9PiBwbGFpblRvQ2xhc3MoVmVoaWNsZSwgaXRlbSkpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,45 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { plainToClass } from 'class-transformer';
4
+ import { ChartData } from '../../../models/chart/chart-data';
5
+ import { ChartSerie } from '../../../models/chart/chart-serie';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common/http";
8
+ /**
9
+ * Service for get property equity position half-year history chart data
10
+ */
11
+ export class EquityPositionChartService {
12
+ constructor(http, environment) {
13
+ this.http = http;
14
+ this.environment = environment;
15
+ }
16
+ get() {
17
+ // @TODO refactor backend
18
+ return this.http.get(`${this.environment.apiV2}/properties/categories/equity`)
19
+ .pipe(map((response) => {
20
+ return response.map((item) => {
21
+ return plainToClass(ChartData, {
22
+ name: item.category.name,
23
+ data: item.equity.map((serie) => {
24
+ return plainToClass(ChartSerie, {
25
+ label: serie.date,
26
+ value: serie.amount
27
+ });
28
+ })
29
+ });
30
+ });
31
+ }));
32
+ }
33
+ }
34
+ EquityPositionChartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EquityPositionChartService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
35
+ EquityPositionChartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EquityPositionChartService, providedIn: 'root' });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EquityPositionChartService, decorators: [{
37
+ type: Injectable,
38
+ args: [{
39
+ providedIn: 'root'
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
42
+ type: Inject,
43
+ args: ['environment']
44
+ }] }]; } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1aXR5LXBvc2l0aW9uLWNoYXJ0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvcHJvcGVydHkvZXF1aXR5LXBvc2l0aW9uLWNoYXJ0L2VxdWl0eS1wb3NpdGlvbi1jaGFydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBRS9EOztHQUVHO0FBSUgsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUNVLElBQWdCLEVBQ08sV0FBZ0I7UUFEdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNPLGdCQUFXLEdBQVgsV0FBVyxDQUFLO0lBQzdDLENBQUM7SUFFTCxHQUFHO1FBQ0QseUJBQXlCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssK0JBQStCLENBQUM7YUFDM0UsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWUsRUFBZSxFQUFFO1lBQ25DLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUNoQyxPQUFPLFlBQVksQ0FBQyxTQUFTLEVBQUU7b0JBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7b0JBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO3dCQUNuQyxPQUFPLFlBQVksQ0FBQyxVQUFVLEVBQUU7NEJBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSTs0QkFDakIsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNO3lCQUNwQixDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDO2lCQUNILENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7O3dIQXhCVSwwQkFBMEIsNENBRzNCLGFBQWE7NEhBSFosMEJBQTBCLGNBRnpCLE1BQU07NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBSUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ2hhcnREYXRhIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2NoYXJ0L2NoYXJ0LWRhdGEnO1xuaW1wb3J0IHsgQ2hhcnRTZXJpZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9jaGFydC9jaGFydC1zZXJpZSc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgZ2V0IHByb3BlcnR5IGVxdWl0eSBwb3NpdGlvbiBoYWxmLXllYXIgaGlzdG9yeSBjaGFydCBkYXRhXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVxdWl0eVBvc2l0aW9uQ2hhcnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkgeyB9XG5cbiAgZ2V0KCk6IE9ic2VydmFibGU8Q2hhcnREYXRhW10+IHtcbiAgICAvLyBAVE9ETyByZWZhY3RvciBiYWNrZW5kXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vcHJvcGVydGllcy9jYXRlZ29yaWVzL2VxdWl0eWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogYW55W10pOiBDaGFydERhdGFbXSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKENoYXJ0RGF0YSwge1xuICAgICAgICAgICAgICBuYW1lOiBpdGVtLmNhdGVnb3J5Lm5hbWUsXG4gICAgICAgICAgICAgIGRhdGE6IGl0ZW0uZXF1aXR5Lm1hcCgoc2VyaWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MoQ2hhcnRTZXJpZSwge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IHNlcmllLmRhdGUsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogc2VyaWUuYW1vdW50XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==