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.
- package/bundles/taxtank-core.umd.js +145 -140
- package/bundles/taxtank-core.umd.js.map +1 -1
- package/esm2015/lib/collections/collection.js +2 -2
- package/esm2015/lib/collections/depreciation.collection.js +3 -3
- package/esm2015/lib/collections/tax-summary/report-item.collection.js +141 -0
- package/esm2015/lib/db/Models/transaction-base.js +2 -1
- package/esm2015/lib/models/property/property.js +7 -4
- package/esm2015/lib/models/tax-summary/report-item-details.js +9 -0
- package/esm2015/lib/models/tax-summary/report-item.js +15 -0
- package/esm2015/lib/models/tax-summary/tax-summary-section.js +5 -5
- package/esm2015/lib/services/http/address/address.service.js +39 -0
- package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +118 -0
- package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +52 -0
- package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +89 -0
- package/esm2015/lib/services/http/bank/bank.service.js +24 -0
- package/esm2015/lib/services/http/bank/basiq/basiq.service.js +94 -0
- package/esm2015/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.js +38 -0
- package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +89 -0
- package/esm2015/lib/services/http/chat/chat.service.js +77 -0
- package/esm2015/lib/services/http/chat/message/message.service.js +65 -0
- package/esm2015/lib/services/http/chat/message-document/message-document.service.js +118 -0
- package/esm2015/lib/services/{depreciation/capital-project.service.js → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.js} +7 -7
- package/esm2015/lib/services/http/depreciation/depreciation.service.js +146 -0
- package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +84 -0
- package/esm2015/lib/services/{client → http/firm/client-invite}/client-invite.service.js +7 -7
- package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +98 -0
- package/esm2015/lib/services/http/firm/employee/employee.service.js +39 -0
- package/esm2015/lib/services/http/firm/employee-invite/employee-invite.service.js +53 -0
- package/esm2015/lib/services/http/firm/firm.service.js +79 -0
- package/esm2015/lib/services/http/firm/portfolio-report/client-portfolio-report.service.js +37 -0
- package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +90 -0
- package/esm2015/lib/services/http/income-source/income-source.service.js +109 -0
- package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +90 -0
- package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +87 -0
- package/esm2015/lib/services/http/loan/borrowing-expense/borrowing-expense.service.js +73 -0
- package/esm2015/lib/services/http/loan/loan.service.js +145 -0
- package/esm2015/lib/services/http/property/property-category/property-category.service.js +23 -0
- package/esm2015/lib/services/http/property/property-category-movement/property-category-movement.service.js +47 -0
- package/esm2015/lib/services/http/property/property-document/property-document.service.js +70 -0
- package/esm2015/lib/services/http/property/property-sale/property-sale.service.js +20 -0
- package/esm2015/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.js +21 -0
- package/esm2015/lib/services/http/property/property-share/property-share.service.js +115 -0
- package/esm2015/lib/services/http/property/property.service.js +126 -0
- package/esm2015/lib/services/http/rest/rest.service.js +190 -0
- package/esm2015/lib/services/http/service-notification/service-notification.service.js +65 -0
- package/esm2015/lib/services/http/subscription/subscription.service.js +157 -0
- package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +41 -0
- package/esm2015/lib/services/http/tax-review/tax-review.service.js +103 -0
- package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +71 -0
- package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +85 -0
- package/esm2015/lib/services/http/transaction/transaction.service.js +319 -0
- package/esm2015/lib/services/http/user/occupation/occupation.service.js +45 -0
- package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +59 -0
- package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +29 -0
- package/esm2015/lib/services/http/user/user.service.js +124 -0
- package/esm2015/lib/services/http/vehicle/vehicle.service.js +237 -0
- package/esm2015/lib/services/property/equity-position-chart/equity-position-chart.service.js +45 -0
- package/esm2015/public-api.js +51 -51
- package/fesm2015/taxtank-core.js +67 -62
- package/fesm2015/taxtank-core.js.map +1 -1
- package/lib/collections/collection.d.ts +1 -1
- package/lib/collections/{tax-return-category-item.collection.d.ts → tax-summary/report-item.collection.d.ts} +5 -5
- package/lib/models/property/property.d.ts +1 -0
- package/lib/models/tax-summary/{tax-return-category-item-details.d.ts → report-item-details.d.ts} +2 -2
- package/lib/models/tax-summary/{tax-return-category-item.d.ts → report-item.d.ts} +4 -4
- package/lib/models/tax-summary/tax-summary-section.d.ts +2 -2
- package/lib/services/{address → http/address}/address.service.d.ts +1 -1
- package/lib/services/{bank → http/bank/bank-account}/bank-account.service.d.ts +5 -5
- package/lib/services/{bank → http/bank/bank-connection}/bank-connection.service.d.ts +5 -5
- package/lib/services/{bank → http/bank/bank-transaction}/bank-transaction.service.d.ts +5 -5
- package/lib/services/{bank → http/bank}/bank.service.d.ts +4 -4
- package/lib/services/{bank → http/bank/basiq}/basiq.service.d.ts +7 -7
- package/lib/services/{chart-accounts → http/chart-accounts/chart-accounts-depreciations}/chart-accounts-depreciations.service.d.ts +4 -4
- package/lib/services/{chart-accounts → http/chart-accounts}/chart-accounts.service.d.ts +3 -3
- package/lib/services/{chat → http/chat}/chat.service.d.ts +7 -7
- package/lib/services/{chat → http/chat/message}/message.service.d.ts +7 -7
- package/lib/services/{chat → http/chat/message-document}/message-document.service.d.ts +3 -3
- package/lib/services/{depreciation/capital-project.service.d.ts → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.d.ts} +4 -4
- package/lib/services/{depreciation → http/depreciation}/depreciation.service.d.ts +5 -5
- package/lib/services/{document → http/document/document-folder}/document-folder.service.d.ts +6 -6
- package/lib/services/{client → http/firm/client-invite}/client-invite.service.d.ts +4 -4
- package/lib/services/{client → http/firm/client-movement}/client-movement.service.d.ts +7 -7
- package/lib/services/{employee → http/firm/employee}/employee.service.d.ts +4 -4
- package/lib/services/{employee → http/firm/employee-invite}/employee-invite.service.d.ts +4 -4
- package/lib/services/{firm → http/firm}/firm.service.d.ts +2 -2
- package/lib/services/{client → http/firm/portfolio-report}/client-portfolio-report.service.d.ts +1 -1
- package/lib/services/{income-source → http/income-source/income-source-forecast}/income-source-forecast.service.d.ts +5 -5
- package/lib/services/{income-source → http/income-source}/income-source.service.d.ts +8 -8
- package/lib/services/{income-source → http/income-source/salary-forecast}/salary-forecast.service.d.ts +6 -6
- package/lib/services/{income-source → http/income-source/sole-forecast}/sole-forecast.service.d.ts +5 -5
- package/lib/services/{borrowing-expense → http/loan/borrowing-expense}/borrowing-expense.service.d.ts +2 -2
- package/lib/services/{loan → http/loan}/loan.service.d.ts +6 -6
- package/lib/services/{property → http/property}/property-category/property-category.service.d.ts +4 -4
- package/lib/services/{property → http/property/property-category-movement}/property-category-movement.service.d.ts +4 -4
- package/lib/services/{property → http/property}/property-document/property-document.service.d.ts +5 -5
- package/lib/services/http/property/property-sale/property-sale.service.d.ts +10 -0
- package/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.d.ts +11 -0
- package/lib/services/{property → http/property}/property-share/property-share.service.d.ts +5 -5
- package/lib/services/{property → http/property}/property.service.d.ts +5 -5
- package/lib/services/{base-rest.service.d.ts → http/rest/rest.service.d.ts} +4 -4
- package/lib/services/http/service-notification/service-notification.service.d.ts +31 -0
- package/lib/services/{subscription → http/subscription}/subscription.service.d.ts +6 -6
- package/lib/services/{tax-review → http/tax-review/tax-review-history}/tax-review-history.service.d.ts +5 -5
- package/lib/services/{tax-review → http/tax-review}/tax-review.service.d.ts +6 -6
- package/lib/services/{tax-summary → http/tax-summary}/tax-summary.service.d.ts +2 -2
- package/lib/services/{transaction → http/transaction/transaction-allocation}/transaction-allocation.service.d.ts +6 -6
- package/lib/services/{transaction → http/transaction}/transaction.service.d.ts +7 -7
- package/lib/services/{user → http/user/occupation}/occupation.service.d.ts +1 -1
- package/lib/services/{user-event → http/user/user-event-setting}/user-event-setting.service.d.ts +5 -5
- package/lib/services/{user-event → http/user/user-event-type}/user-event-type.service.d.ts +5 -5
- package/lib/services/{user → http/user}/user.service.d.ts +3 -3
- package/lib/services/{work/work-tank.service.d.ts → http/vehicle/vehicle.service.d.ts} +9 -8
- package/lib/services/property/{equity-position-chart.service.d.ts → equity-position-chart/equity-position-chart.service.d.ts} +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +50 -50
- package/esm2015/lib/collections/tax-return-category-item.collection.js +0 -141
- package/esm2015/lib/models/tax-summary/tax-return-category-item-details.js +0 -9
- package/esm2015/lib/models/tax-summary/tax-return-category-item.js +0 -15
- package/esm2015/lib/services/address/address.service.js +0 -39
- package/esm2015/lib/services/bank/bank-account.service.js +0 -118
- package/esm2015/lib/services/bank/bank-connection.service.js +0 -52
- package/esm2015/lib/services/bank/bank-transaction.service.js +0 -89
- package/esm2015/lib/services/bank/bank.service.js +0 -24
- package/esm2015/lib/services/bank/basiq.service.js +0 -94
- package/esm2015/lib/services/base-rest.service.js +0 -190
- package/esm2015/lib/services/borrowing-expense/borrowing-expense.service.js +0 -73
- package/esm2015/lib/services/chart-accounts/chart-accounts-depreciations.service.js +0 -38
- package/esm2015/lib/services/chart-accounts/chart-accounts.service.js +0 -89
- package/esm2015/lib/services/chat/chat.service.js +0 -77
- package/esm2015/lib/services/chat/message-document.service.js +0 -118
- package/esm2015/lib/services/chat/message.service.js +0 -65
- package/esm2015/lib/services/client/client-movement.service.js +0 -98
- package/esm2015/lib/services/client/client-portfolio-report.service.js +0 -37
- package/esm2015/lib/services/depreciation/depreciation.service.js +0 -146
- package/esm2015/lib/services/document/document-folder.service.js +0 -84
- package/esm2015/lib/services/employee/employee-invite.service.js +0 -53
- package/esm2015/lib/services/employee/employee.service.js +0 -39
- package/esm2015/lib/services/firm/firm.service.js +0 -79
- package/esm2015/lib/services/income-source/income-source-forecast.service.js +0 -90
- package/esm2015/lib/services/income-source/income-source.service.js +0 -109
- package/esm2015/lib/services/income-source/salary-forecast.service.js +0 -90
- package/esm2015/lib/services/income-source/sole-forecast.service.js +0 -87
- package/esm2015/lib/services/loan/loan.service.js +0 -145
- package/esm2015/lib/services/notification/notification.service.js +0 -65
- package/esm2015/lib/services/property/equity-position-chart.service.js +0 -45
- package/esm2015/lib/services/property/property-category/property-category.service.js +0 -23
- package/esm2015/lib/services/property/property-category-movement.service.js +0 -47
- package/esm2015/lib/services/property/property-document/property-document.service.js +0 -70
- package/esm2015/lib/services/property/property-sale/property-sale.service.js +0 -20
- package/esm2015/lib/services/property/property-sale/tax-exemption/tax-exemption.service.js +0 -21
- package/esm2015/lib/services/property/property-share/property-share.service.js +0 -115
- package/esm2015/lib/services/property/property.service.js +0 -126
- package/esm2015/lib/services/subscription/subscription.service.js +0 -157
- package/esm2015/lib/services/tax-review/tax-review-history.service.js +0 -41
- package/esm2015/lib/services/tax-review/tax-review.service.js +0 -103
- package/esm2015/lib/services/tax-summary/tax-summary.service.js +0 -71
- package/esm2015/lib/services/transaction/transaction-allocation.service.js +0 -85
- package/esm2015/lib/services/transaction/transaction.service.js +0 -319
- package/esm2015/lib/services/user/occupation.service.js +0 -45
- package/esm2015/lib/services/user/user.service.js +0 -124
- package/esm2015/lib/services/user-event/user-event-setting.service.js +0 -59
- package/esm2015/lib/services/user-event/user-event-type.service.js +0 -29
- package/esm2015/lib/services/work/work-tank.service.js +0 -236
- package/lib/services/notification/notification.service.d.ts +0 -31
- package/lib/services/property/property-sale/property-sale.service.d.ts +0 -10
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZm9sZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvZG9jdW1lbnQvZG9jdW1lbnQtZm9sZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7QUFHdkU7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBbUQ7SUFJNUYsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFFakQsS0FBSyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUp2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFObkQsUUFBRyxHQUFXLFNBQVMsQ0FBQztRQUN4QixlQUFVLEdBQTBCLGNBQWMsQ0FBQztJQVFuRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFVLEVBQUUsTUFBc0I7UUFDNUMsNENBQTRDO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNsRCxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXRDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssWUFBWSxNQUFNLENBQUMsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQ3RHLEdBQUcsQ0FBQyxDQUFDLFFBQXNCLEVBQUUsRUFBRTtZQUM3QixNQUFNLGFBQWEsR0FBbUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlGLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUUvRCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsY0FBd0IsRUFBRSxjQUE4QixFQUFFLFdBQW1CO1FBQzFGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssWUFBWSxjQUFjLENBQUMsRUFBRSxjQUFjLGNBQWMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQ2hJLEdBQUcsQ0FBQyxDQUFDLFFBQXNCLEVBQUUsRUFBRTtZQUM3QixNQUFNLFNBQVMsR0FBbUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFzQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLFdBQVcsQ0FBQyxDQUFDO1lBQ3pHLGtDQUFrQztZQUNsQyxTQUFTLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBeUIsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFcEgsNENBQTRDO1lBQzVDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLGNBQWMsRUFBRSxFQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUNuRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFFN0QscURBQXFEO1lBQ3JELGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNoRSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFFbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxRQUFrQixFQUFFLE1BQXNCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssWUFBWSxNQUFNLENBQUMsRUFBRSxjQUFjLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDckcsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVM7aUJBQ2hDLE1BQU0sQ0FBQyxDQUFDLGVBQXlCLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUUxRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O21IQTFFVSxxQkFBcUIsa0ZBT3RCLGFBQWE7dUhBUFoscUJBQXFCLGNBRnBCLE1BQU07NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBUUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudEZvbGRlciBhcyBEb2N1bWVudEZvbGRlckJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvZG9jdW1lbnQtZm9sZGVyJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBEb2N1bWVudCBhcyBEb2N1bWVudEJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvZG9jdW1lbnQnO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG9jdW1lbnQvZG9jdW1lbnQnO1xuaW1wb3J0IHsgcmVwbGFjZSB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBEb2N1bWVudEZvbGRlciB9IGZyb20gJy4uLy4uL21vZGVscy9kb2N1bWVudC9kb2N1bWVudC1mb2xkZXInO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgZG9jdW1lbnQtZm9sZGVycyBhbmQgZGVwZW5kaW5nIGRvY3VtZW50cyBsb2dpY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudEZvbGRlclNlcnZpY2UgZXh0ZW5kcyBCYXNlUmVzdFNlcnZpY2U8RG9jdW1lbnRGb2xkZXJCYXNlLCBEb2N1bWVudEZvbGRlcj4ge1xuICB1cmw6IHN0cmluZyA9ICdmb2xkZXJzJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIERvY3VtZW50Rm9sZGVyID0gRG9jdW1lbnRGb2xkZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG5ldyBkb2N1bWVudCB0byB0aGUgZm9sZGVyXG4gICAqIEBwYXJhbSBmaWxlIHRvIGJlIHVwbG9hZGVkIHRvIHRoZSBmb2xkZXJcbiAgICogQHBhcmFtIGZvbGRlciBmb3IgZG9jdW1lbnRcbiAgICovXG4gIGFkZERvY3VtZW50KGZpbGU6IEZpbGUsIGZvbGRlcjogRG9jdW1lbnRGb2xkZXIpOiBPYnNlcnZhYmxlPHZvaWQ+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBRTFFOztHQUVHO0FBSUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQStDO0lBTXRGLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCO1FBRWpELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFKdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFL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bnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIGFzIEluY29tZVNvdXJjZUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS10eXBlJztcbmltcG9ydCB7IFNhbGFyeUZvcmVjYXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luY29tZS1zb3VyY2Uvc2FsYXJ5LWZvcmVjYXN0JztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgSW5jb21lU291cmNlVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9pbmNvbWUtc291cmNlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZXZlbnQvZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5cbi8qKlxuICogU2VydmljZSB0byB3b3JrIHdpdGggaW5jb21lIHNvdXJjZXNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW5jb21lU291cmNlU2VydmljZSBleHRlbmRzIEJhc2VSZXN0U2VydmljZTxJbmNvbWVTb3VyY2VCYXNlLCBJbmNvbWVTb3VyY2U+IHtcbiAgdXJsOiBzdHJpbmcgPSAnaW5jb21lLXNvdXJjZXMnO1xuICBtb2RlbENsYXNzID0gSW5jb21lU291cmNlO1xuICBpbmNvbWVTb3VyY2VUeXBlczogSW5jb21lU291cmNlVHlwZVtdO1xuICBpbmNvbWVTb3VyY2VUeXBlU3ViamVjdDogUmVwbGF5U3ViamVjdDxJbmNvbWVTb3VyY2VUeXBlW10+ID0gbmV3IFJlcGxheVN1YmplY3Q8SW5jb21lU291cmNlVHlwZVtdPigxKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaW5jb21lIHNvdXJjZXMgdGF4IGNhbGN1bGF0aW9uXG4gICAqIEBwYXJhbSBzYWxhcnlGb3JlY2FzdCBmb3Igd2hpY2ggdGF4IHNob3VsZCBiZSBjYWxjdWxhdGVkXG4gICAqL1xuICBnZXRUYXhDYWxjdWxhdGlvbihzYWxhcnlGb3JlY2FzdDogU2FsYXJ5Rm9yZWNhc3QpOiBPYnNlcnZhYmxlPFNhbGFyeUZvcmVjYXN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9L3RheC1jYWxjdWxhdGlvbmAsIHNhbGFyeUZvcmVjYXN0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MoU2FsYXJ5Rm9yZWNhc3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGJhdGNoIG9mIGluY29tZSBzb3VyY2VzXG4gICAqIEBwYXJhbSBpbmNvbWVTb3VyY2VzIHRvIGFkZFxuICAgKi9cbiAgYWRkQmF0Y2goaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pOiBPYnNlcnZhYmxlPEluY29tZVNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgaW5jb21lU291cmNlcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGFkZGVkSW5jb21lU291cmNlczogSW5jb21lU291cmNlQmFzZVtdKSA9PiB7XG4gICAgICAgICAgLy8gYXNzaWduIHJlc3BvbmQgaW5jb21lIHNvdXJjZXMgdG8gcHJvdmlkZWQgaW5jb21lIHNvdXJjZXNcbiAgICAgICAgICBjb25zdCBhc3NpZ25lZEluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdID0gYWRkZWRJbmNvbWVTb3VyY2VzXG4gICAgICAgICAgICAubWFwKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSwgaW5kZXg6IG51bWJlcikgPT4gT2JqZWN0LmFzc2lnbihwbGFpblRvQ2xhc3MoSW5jb21lU291cmNlLCB7fSksIGluY29tZVNvdXJjZSwgaW5jb21lU291cmNlc1tpbmRleF0pKTtcblxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19DUkVBVEVELCBhc3NpZ25lZEluY29tZVNvdXJjZXMpKTtcblxuICAgICAgICAgIHRoaXMuY2FjaGUucHVzaCguLi5hc3NpZ25lZEluY29tZVNvdXJjZXMpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gYXNzaWduZWRJbmNvbWVTb3VyY2VzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYmF0Y2ggb2YgaW5jb21lIHNvdXJjZXNcbiAgICovXG5cbiAgdXBkYXRlQmF0Y2goaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8SW5jb21lU291cmNlW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGluY29tZVNvdXJjZXMsIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZEl0ZW1zOiBJbmNvbWVTb3VyY2VbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZXM6IEluY29tZVNvdXJjZVtdID0gdXBkYXRlZEl0ZW1zLm1hcChcbiAgICAgICAgICAgIChpdGVtOiBJbmNvbWVTb3VyY2UpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh0aGlzLm1vZGVsQ2xhc3MsIGl0ZW0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICB1cGRhdGVkSW5zdGFuY2VzLmZvckVhY2goKGluc3RhbmNlOiBJbmNvbWVTb3VyY2UpID0+IHtcbiAgICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgaW5zdGFuY2UpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGluY29tZVNvdXJjZXNbMF0uZm9yZWNhc3RzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLklOQ09NRV9TT1VSQ0VTX1VQREFURUQsIGluY29tZVNvdXJjZXMpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnN0YW5jZXM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBpbmNvbWUgc291cmNlcyBieSBwcm92aWRlZCB0eXBlc1xuICAgKiBAcGFyYW0gdHlwZXNcbiAgICovXG4gIGdldEJ5VHlwZXModHlwZXM6IEluY29tZVNvdXJjZVR5cGVFbnVtW10pOiBPYnNlcnZhYmxlPEluY29tZVNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdKSA9PiBpbmNvbWVTb3VyY2VzXG4gICAgICAgICAgLmZpbHRlcigoaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2UpID0+IHR5cGVzLmluY2x1ZGVzKGluY29tZVNvdXJjZS50eXBlKSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgb3RoZXIgaW5jb21lcyB0eXBlc1xuICAgKi9cbiAgZ2V0SW5jb21lU291cmNlVHlwZXMoKTogT2JzZXJ2YWJsZTxJbmNvbWVTb3VyY2VUeXBlW10+IHtcbiAgICBpZiAoIXRoaXMuaW5jb21lU291cmNlVHlwZXMpIHtcbiAgICAgIHRoaXMuaW5jb21lU291cmNlVHlwZXMgPSBbXTtcbiAgICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vaW5jb21lLXNvdXJjZS10eXBlc2ApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLm1hcCgoaXRlbTogYW55KSA9PiBwbGFpblRvQ2xhc3MoSW5jb21lU291cmNlVHlwZSwgaXRlbSkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgob3RoZXJJbmNvbWVzVHlwZXM6IEluY29tZVNvdXJjZVR5cGVbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5jb21lU291cmNlVHlwZXMgPSBvdGhlckluY29tZXNUeXBlcztcbiAgICAgICAgICB0aGlzLmluY29tZVNvdXJjZVR5cGVTdWJqZWN0Lm5leHQodGhpcy5pbmNvbWVTb3VyY2VUeXBlcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmluY29tZVNvdXJjZVR5cGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG59XG4iXX0=
|