taxtank-core 0.10.7 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taxtank-core.umd.js +1631 -1346
- package/bundles/taxtank-core.umd.js.map +1 -1
- package/esm2015/lib/collections/account-setup-item.collection.js +11 -0
- package/esm2015/lib/collections/bank-transaction.collection.js +2 -2
- package/esm2015/lib/collections/collection-dictionary.js +4 -4
- package/esm2015/lib/collections/collection.js +4 -1
- package/esm2015/lib/collections/depreciation.collection.js +24 -10
- package/esm2015/lib/collections/transaction-allocation.collection.js +2 -2
- package/esm2015/lib/collections/transaction.collection.js +28 -1
- package/esm2015/lib/collections/vehicle-logbook.collection.js +88 -0
- package/esm2015/lib/collections/vehicle.collection.js +9 -0
- package/esm2015/lib/db/Enums/chart-accounts-heading-vehicle-list.enum.js +3 -1
- package/esm2015/lib/db/Enums/chart-accounts-list.enum.js +4 -3
- package/esm2015/lib/db/Enums/user-status.enum.js +1 -2
- package/esm2015/lib/db/Models/client-details.js +1 -1
- package/esm2015/lib/db/Models/client-income-types.js +3 -0
- package/esm2015/lib/db/Models/vehicle-claim.js +1 -1
- package/esm2015/lib/db/Models/vehicle.js +1 -1
- package/esm2015/lib/forms/client/client-income-types.form.js +22 -0
- package/esm2015/lib/forms/index.js +4 -1
- package/esm2015/lib/forms/vehicle/vehicle-claim.form.js +114 -0
- package/esm2015/lib/forms/vehicle/vehicle.form.js +20 -0
- package/esm2015/lib/interfaces/event-listener.interface.js +1 -1
- package/esm2015/lib/interfaces/expense.interface.js +2 -0
- package/esm2015/lib/interfaces/tank.interface.js +1 -1
- package/esm2015/lib/models/account-setup/account-setup-item.js +6 -0
- package/esm2015/lib/models/account-setup/account-setup-items.const.js +44 -0
- package/esm2015/lib/models/account-setup/account-setup-items.enum.js +14 -0
- package/esm2015/lib/models/chart-accounts/chart-accounts-value.js +4 -0
- package/esm2015/lib/models/chart-accounts/chart-accounts.js +34 -1
- package/esm2015/lib/models/client/client-income-types.js +10 -0
- package/esm2015/lib/models/depreciation/depreciation.js +5 -1
- package/esm2015/lib/models/event/app-event-type.enum.js +4 -1
- package/esm2015/lib/models/logbook/logbook-period.js +8 -1
- package/esm2015/lib/models/logbook/vehicle-claim.js +63 -4
- package/esm2015/lib/models/logbook/vehicle-logbook.js +9 -3
- package/esm2015/lib/models/logbook/vehicle.js +7 -29
- package/esm2015/lib/models/pdf/pdf-config.js +2 -2
- package/esm2015/lib/models/pdf/pdf-orientation.enum.js +6 -0
- package/esm2015/lib/models/pdf/pdf-settings.js +10 -0
- package/esm2015/lib/models/transaction/transaction.js +1 -1
- package/esm2015/lib/services/account-setup/account-setup.service.js +109 -0
- package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +6 -15
- package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +6 -15
- package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +6 -15
- package/esm2015/lib/services/http/bank/basiq/basiq.service.js +6 -15
- package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +1 -1
- package/esm2015/lib/services/http/chat/chat.service.js +8 -12
- package/esm2015/lib/services/http/chat/message/message.service.js +8 -12
- package/esm2015/lib/services/http/chat/message-document/message-document.service.js +1 -1
- package/esm2015/lib/services/http/depreciation/depreciation.service.js +6 -23
- package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +6 -14
- package/esm2015/lib/services/http/firm/client-income/client-income-types.service.js +50 -0
- package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +6 -15
- package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +6 -15
- package/esm2015/lib/services/http/income-source/income-source.service.js +6 -14
- package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +6 -15
- package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +6 -15
- package/esm2015/lib/services/http/loan/loan.service.js +6 -15
- package/esm2015/lib/services/http/property/property-document/property-document.service.js +6 -15
- package/esm2015/lib/services/http/property/property-share/property-share.service.js +6 -15
- package/esm2015/lib/services/http/property/property.service.js +6 -15
- package/esm2015/lib/services/http/rest/rest.service.js +31 -4
- package/esm2015/lib/services/http/service-notification/service-notification.service.js +8 -12
- package/esm2015/lib/services/http/subscription/subscription.service.js +1 -4
- package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +15 -16
- package/esm2015/lib/services/http/tax-review/tax-review.service.js +6 -15
- package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +1 -1
- package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +6 -15
- package/esm2015/lib/services/http/transaction/transaction.service.js +6 -25
- package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +6 -14
- package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +6 -14
- package/esm2015/lib/services/http/vehicle/messages.enum.js +13 -0
- package/esm2015/lib/services/http/vehicle/vehicle-claim.service.js +24 -0
- package/esm2015/lib/services/http/vehicle/vehicle-logbook.service.js +59 -0
- package/esm2015/lib/services/http/vehicle/vehicle.service.js +49 -213
- package/esm2015/lib/services/pdf/pdf.service.js +12 -12
- package/esm2015/lib/validators/at-least-one.validator.js +11 -0
- package/esm2015/lib/validators/index.js +2 -0
- package/esm2015/public-api.js +14 -2
- package/fesm2015/taxtank-core.js +1408 -1106
- package/fesm2015/taxtank-core.js.map +1 -1
- package/lib/collections/account-setup-item.collection.d.ts +6 -0
- package/lib/collections/collection.d.ts +1 -0
- package/lib/collections/depreciation.collection.d.ts +5 -4
- package/lib/collections/transaction.collection.d.ts +9 -0
- package/lib/collections/vehicle-logbook.collection.d.ts +30 -0
- package/lib/collections/vehicle.collection.d.ts +6 -0
- package/lib/db/Enums/chart-accounts-heading-vehicle-list.enum.d.ts +3 -1
- package/lib/db/Enums/chart-accounts-list.enum.d.ts +4 -3
- package/lib/db/Enums/user-status.enum.d.ts +1 -2
- package/lib/db/Models/client-details.d.ts +5 -1
- package/lib/db/Models/client-income-types.d.ts +11 -0
- package/lib/db/Models/vehicle-claim.d.ts +2 -0
- package/lib/db/Models/vehicle.d.ts +2 -0
- package/lib/forms/client/client-income-types.form.d.ts +7 -0
- package/lib/forms/index.d.ts +3 -0
- package/lib/forms/vehicle/vehicle-claim.form.d.ts +43 -0
- package/lib/forms/vehicle/vehicle.form.d.ts +11 -0
- package/lib/interfaces/event-listener.interface.d.ts +1 -0
- package/lib/interfaces/expense.interface.d.ts +12 -0
- package/lib/interfaces/tank.interface.d.ts +2 -0
- package/lib/models/account-setup/account-setup-item.d.ts +9 -0
- package/lib/models/account-setup/account-setup-items.const.d.ts +7 -0
- package/lib/models/account-setup/account-setup-items.enum.d.ts +12 -0
- package/lib/models/chart-accounts/chart-accounts-value.d.ts +3 -0
- package/lib/models/chart-accounts/chart-accounts.d.ts +18 -0
- package/lib/models/client/client-income-types.d.ts +7 -0
- package/lib/models/depreciation/depreciation.d.ts +6 -2
- package/lib/models/event/app-event-type.enum.d.ts +4 -1
- package/lib/models/logbook/logbook-period.d.ts +4 -0
- package/lib/models/logbook/vehicle-claim.d.ts +20 -3
- package/lib/models/logbook/vehicle-logbook.d.ts +8 -2
- package/lib/models/logbook/vehicle.d.ts +5 -7
- package/lib/models/pdf/pdf-orientation.enum.d.ts +4 -0
- package/lib/models/pdf/pdf-settings.d.ts +9 -0
- package/lib/models/transaction/transaction.d.ts +2 -2
- package/lib/services/account-setup/account-setup.service.d.ts +43 -0
- package/lib/services/http/bank/bank-account/bank-account.service.d.ts +2 -7
- package/lib/services/http/bank/bank-connection/bank-connection.service.d.ts +2 -7
- package/lib/services/http/bank/bank-transaction/bank-transaction.service.d.ts +3 -8
- package/lib/services/http/bank/basiq/basiq.service.d.ts +2 -7
- package/lib/services/http/chat/chat.service.d.ts +4 -7
- package/lib/services/http/chat/message/message.service.d.ts +4 -7
- package/lib/services/http/chat/message-document/message-document.service.d.ts +3 -3
- package/lib/services/http/depreciation/depreciation.service.d.ts +2 -11
- package/lib/services/http/document/document-folder/document-folder.service.d.ts +0 -6
- package/lib/services/http/firm/client-income/client-income-types.service.d.ts +18 -0
- package/lib/services/http/firm/client-movement/client-movement.service.d.ts +2 -7
- package/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.d.ts +2 -7
- package/lib/services/http/income-source/income-source.service.d.ts +0 -6
- package/lib/services/http/income-source/salary-forecast/salary-forecast.service.d.ts +1 -7
- package/lib/services/http/income-source/sole-forecast/sole-forecast.service.d.ts +2 -7
- package/lib/services/http/loan/loan.service.d.ts +2 -7
- package/lib/services/http/property/property-document/property-document.service.d.ts +3 -8
- package/lib/services/http/property/property-share/property-share.service.d.ts +2 -7
- package/lib/services/http/property/property.service.d.ts +2 -7
- package/lib/services/http/rest/rest.service.d.ts +17 -2
- package/lib/services/http/service-notification/service-notification.service.d.ts +4 -7
- package/lib/services/http/subscription/subscription.service.d.ts +0 -1
- package/lib/services/http/tax-review/tax-review-history/tax-review-history.service.d.ts +7 -7
- package/lib/services/http/tax-review/tax-review.service.d.ts +1 -7
- package/lib/services/http/tax-summary/tax-summary.service.d.ts +2 -1
- package/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.d.ts +3 -8
- package/lib/services/http/transaction/transaction.service.d.ts +0 -12
- package/lib/services/http/user/user-event-setting/user-event-setting.service.d.ts +0 -6
- package/lib/services/http/user/user-event-type/user-event-type.service.d.ts +0 -6
- package/lib/services/http/vehicle/messages.enum.d.ts +11 -0
- package/lib/services/http/vehicle/vehicle-claim.service.d.ts +13 -0
- package/lib/services/http/vehicle/vehicle-logbook.service.d.ts +22 -0
- package/lib/services/http/vehicle/vehicle.service.d.ts +17 -80
- package/lib/services/pdf/pdf.service.d.ts +3 -2
- package/lib/validators/at-least-one.validator.d.ts +6 -0
- package/lib/validators/index.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +13 -1
- package/esm2015/lib/collections/logbook.collection.js +0 -97
- package/lib/collections/logbook.collection.d.ts +0 -19
|
@@ -1,237 +1,73 @@
|
|
|
1
|
-
import {
|
|
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';
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
8
2
|
import { Vehicle } from '../../../models/logbook/vehicle';
|
|
9
|
-
import {
|
|
10
|
-
import { VehicleLogbook } from '../../../models/logbook/vehicle-logbook';
|
|
3
|
+
import { RestService } from '../rest/rest.service';
|
|
11
4
|
import { AppEventTypeEnum } from '../../../models/event/app-event-type.enum';
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
14
|
-
import {
|
|
5
|
+
import { replace } from '../../../functions/array';
|
|
6
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
7
|
+
import { MessagesEnum } from './messages.enum';
|
|
15
8
|
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
9
|
/**
|
|
22
10
|
* Service that allows to work with WorkTank operations
|
|
23
|
-
* @TODO separate
|
|
11
|
+
* @TODO separate vehicles and logbooks to different api
|
|
24
12
|
*/
|
|
25
|
-
export class VehicleService {
|
|
26
|
-
constructor(
|
|
27
|
-
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
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);
|
|
13
|
+
export class VehicleService extends RestService {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.url = 'vehicles';
|
|
17
|
+
this.modelClass = Vehicle;
|
|
18
|
+
this.messageCreated = MessagesEnum.VEHICLE_CREATED;
|
|
19
|
+
this.messageUpdated = MessagesEnum.VEHICLE_UPDATED;
|
|
20
|
+
this.messageDeleted = MessagesEnum.VEHICLE_DELETED;
|
|
38
21
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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();
|
|
22
|
+
listenEvents() {
|
|
23
|
+
this.listenLogbookAdded();
|
|
24
|
+
this.listenLogbookUpdated();
|
|
25
|
+
this.listenLogbookDeleted();
|
|
52
26
|
}
|
|
53
27
|
/**
|
|
54
|
-
*
|
|
28
|
+
* Add a new logbook items to the vehicle when a new one created
|
|
55
29
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
this._vehicleClaim = vehicleClaim;
|
|
65
|
-
this.vehicleClaimSubject.next(vehicleClaim);
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
return this.vehicleClaimSubject.asObservable();
|
|
30
|
+
listenLogbookAdded() {
|
|
31
|
+
this.eventDispatcherService.on(AppEventTypeEnum.VEHICLE_LOGBOOK_CREATED)
|
|
32
|
+
.subscribe((result) => {
|
|
33
|
+
const tempCache = cloneDeep(this.cache);
|
|
34
|
+
tempCache.find((vehicle) => vehicle.id === result.vehicleId).logbook.push(result.logbook);
|
|
35
|
+
this.cache = tempCache;
|
|
36
|
+
this.updateCache();
|
|
37
|
+
});
|
|
69
38
|
}
|
|
70
39
|
/**
|
|
71
|
-
*
|
|
72
|
-
* @param claim object which should be added
|
|
40
|
+
* Replace vehicle's logbook with updated instance when logbook item updated
|
|
73
41
|
*/
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
42
|
+
listenLogbookUpdated() {
|
|
43
|
+
this.eventDispatcherService.on(AppEventTypeEnum.VEHICLE_LOGBOOK_UPDATED)
|
|
44
|
+
.subscribe((result) => {
|
|
45
|
+
const tempCache = cloneDeep(this.cache);
|
|
46
|
+
replace(tempCache.find((vehicle) => vehicle.id === result.vehicleId).logbook, result.logbook);
|
|
47
|
+
this.cache = tempCache;
|
|
48
|
+
this.updateCache();
|
|
49
|
+
});
|
|
80
50
|
}
|
|
81
51
|
/**
|
|
82
|
-
*
|
|
52
|
+
* Remove logbook item from vehicle when logbook deleted
|
|
83
53
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
}));
|
|
54
|
+
listenLogbookDeleted() {
|
|
55
|
+
this.eventDispatcherService.on(AppEventTypeEnum.VEHICLE_LOGBOOK_DELETED)
|
|
56
|
+
.subscribe((result) => {
|
|
57
|
+
const tempCache = cloneDeep(this.cache);
|
|
58
|
+
const vehicle = tempCache.find((vehicle) => vehicle.id === result.vehicleId);
|
|
59
|
+
vehicle.logbook = vehicle.logbook.filter((logbook) => logbook.id !== result.logbook.id);
|
|
60
|
+
this.cache = tempCache;
|
|
61
|
+
this.updateCache();
|
|
62
|
+
});
|
|
224
63
|
}
|
|
225
64
|
}
|
|
226
|
-
VehicleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleService, deps:
|
|
65
|
+
VehicleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
227
66
|
VehicleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleService, providedIn: 'root' });
|
|
228
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleService, decorators: [{
|
|
229
68
|
type: Injectable,
|
|
230
69
|
args: [{
|
|
231
70
|
providedIn: 'root'
|
|
232
71
|
}]
|
|
233
|
-
}]
|
|
234
|
-
|
|
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==
|
|
72
|
+
}] });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdmVoaWNsZS92ZWhpY2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRy9DOzs7R0FHRztBQUlILE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBaUM7SUFIckU7O1FBSUUsUUFBRyxHQUFXLFVBQVUsQ0FBQztRQUN6QixlQUFVLEdBQW1CLE9BQU8sQ0FBQztRQUNyQyxtQkFBYyxHQUFXLFlBQVksQ0FBQyxlQUFlLENBQUM7UUFDdEQsbUJBQWMsR0FBVyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ3RELG1CQUFjLEdBQVcsWUFBWSxDQUFDLGVBQWUsQ0FBQztLQStDdkQ7SUE3Q0MsWUFBWTtRQUNWLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNLLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDO2FBQ3JFLFNBQVMsQ0FBQyxDQUFDLE1BQW9ELEVBQUUsRUFBRTtZQUNsRSxNQUFNLFNBQVMsR0FBYyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFnQixFQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQzthQUNyRSxTQUFTLENBQUMsQ0FBQyxNQUFvRCxFQUFRLEVBQUU7WUFDeEUsTUFBTSxTQUFTLEdBQWMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQWdCLEVBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEgsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ssb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUM7YUFDckUsU0FBUyxDQUFDLENBQUMsTUFBb0QsRUFBRSxFQUFFO1lBQ2xFLE1BQU0sU0FBUyxHQUFjLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkQsTUFBTSxPQUFPLEdBQVksU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQWdCLEVBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hHLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUF1QixFQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakgsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7NEdBbkRVLGNBQWM7Z0hBQWQsY0FBYyxjQUZiLE1BQU07NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBWZWhpY2xlIGFzIFZlaGljbGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3ZlaGljbGUnO1xuaW1wb3J0IHsgVmVoaWNsZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9sb2dib29rL3ZlaGljbGUnO1xuaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdGFuay10eXBlLmVudW0nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgVmVoaWNsZUxvZ2Jvb2sgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbG9nYm9vay92ZWhpY2xlLWxvZ2Jvb2snO1xuaW1wb3J0IHsgcmVwbGFjZSB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC9jbG9uZURlZXAnO1xuaW1wb3J0IHsgTWVzc2FnZXNFbnVtIH0gZnJvbSAnLi9tZXNzYWdlcy5lbnVtJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBhbGxvd3MgdG8gd29yayB3aXRoIFdvcmtUYW5rIG9wZXJhdGlvbnNcbiAqIEBUT0RPIHNlcGFyYXRlIHZlaGljbGVzIGFuZCBsb2dib29rcyB0byBkaWZmZXJlbnQgYXBpXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFZlaGljbGVTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8VmVoaWNsZUJhc2UsIFZlaGljbGU+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICB1cmw6IHN0cmluZyA9ICd2ZWhpY2xlcyc7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBWZWhpY2xlID0gVmVoaWNsZTtcbiAgbWVzc2FnZUNyZWF0ZWQ6IHN0cmluZyA9IE1lc3NhZ2VzRW51bS5WRUhJQ0xFX0NSRUFURUQ7XG4gIG1lc3NhZ2VVcGRhdGVkOiBzdHJpbmcgPSBNZXNzYWdlc0VudW0uVkVISUNMRV9VUERBVEVEO1xuICBtZXNzYWdlRGVsZXRlZDogc3RyaW5nID0gTWVzc2FnZXNFbnVtLlZFSElDTEVfREVMRVRFRDtcblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Mb2dib29rQWRkZWQoKTtcbiAgICB0aGlzLmxpc3RlbkxvZ2Jvb2tVcGRhdGVkKCk7XG4gICAgdGhpcy5saXN0ZW5Mb2dib29rRGVsZXRlZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBsb2dib29rIGl0ZW1zIHRvIHRoZSB2ZWhpY2xlIHdoZW4gYSBuZXcgb25lIGNyZWF0ZWRcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuTG9nYm9va0FkZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfTE9HQk9PS19DUkVBVEVEKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiB7bG9nYm9vazogVmVoaWNsZUxvZ2Jvb2ssIHZlaGljbGVJZDogbnVtYmVyfSkgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IFZlaGljbGVbXSA9IGNsb25lRGVlcCh0aGlzLmNhY2hlKTtcbiAgICAgICAgdGVtcENhY2hlLmZpbmQoKHZlaGljbGU6IFZlaGljbGUpOiBib29sZWFuID0+IHZlaGljbGUuaWQgPT09IHJlc3VsdC52ZWhpY2xlSWQpLmxvZ2Jvb2sucHVzaChyZXN1bHQubG9nYm9vayk7XG4gICAgICAgIHRoaXMuY2FjaGUgPSB0ZW1wQ2FjaGU7XG4gICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgdmVoaWNsZSdzIGxvZ2Jvb2sgd2l0aCB1cGRhdGVkIGluc3RhbmNlIHdoZW4gbG9nYm9vayBpdGVtIHVwZGF0ZWRcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuTG9nYm9va1VwZGF0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9MT0dCT09LX1VQREFURUQpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IHtsb2dib29rOiBWZWhpY2xlTG9nYm9vaywgdmVoaWNsZUlkOiBudW1iZXJ9KTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHRlbXBDYWNoZTogVmVoaWNsZVtdID0gY2xvbmVEZWVwKHRoaXMuY2FjaGUpO1xuICAgICAgICByZXBsYWNlKHRlbXBDYWNoZS5maW5kKCh2ZWhpY2xlOiBWZWhpY2xlKTogYm9vbGVhbiA9PiB2ZWhpY2xlLmlkID09PSByZXN1bHQudmVoaWNsZUlkKS5sb2dib29rLCByZXN1bHQubG9nYm9vayk7XG4gICAgICAgIHRoaXMuY2FjaGUgPSB0ZW1wQ2FjaGU7XG4gICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBsb2dib29rIGl0ZW0gZnJvbSB2ZWhpY2xlIHdoZW4gbG9nYm9vayBkZWxldGVkXG4gICAqL1xuICBwcml2YXRlIGxpc3RlbkxvZ2Jvb2tEZWxldGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfTE9HQk9PS19ERUxFVEVEKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiB7bG9nYm9vazogVmVoaWNsZUxvZ2Jvb2ssIHZlaGljbGVJZDogbnVtYmVyfSkgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IFZlaGljbGVbXSA9IGNsb25lRGVlcCh0aGlzLmNhY2hlKTtcbiAgICAgICAgY29uc3QgdmVoaWNsZTogVmVoaWNsZSA9IHRlbXBDYWNoZS5maW5kKCh2ZWhpY2xlOiBWZWhpY2xlKTogYm9vbGVhbiA9PiB2ZWhpY2xlLmlkID09PSByZXN1bHQudmVoaWNsZUlkKTtcbiAgICAgICAgdmVoaWNsZS5sb2dib29rID0gdmVoaWNsZS5sb2dib29rLmZpbHRlcigobG9nYm9vazogVmVoaWNsZUxvZ2Jvb2spOiBib29sZWFuID0+IGxvZ2Jvb2suaWQgIT09IHJlc3VsdC5sb2dib29rLmlkKTtcbiAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -10,21 +10,21 @@ export class PdfService {
|
|
|
10
10
|
/**
|
|
11
11
|
* Export file from provided HTML tables
|
|
12
12
|
*/
|
|
13
|
-
exportTables(tables,
|
|
14
|
-
const document = this.generateFromTables(tables,
|
|
15
|
-
document.save(`${
|
|
13
|
+
exportTables(tables, fileSettings) {
|
|
14
|
+
const document = this.generateFromTables(tables, fileSettings);
|
|
15
|
+
document.save(`${fileSettings.filename}.pdf`);
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Export file from provided array-like table data
|
|
19
19
|
*/
|
|
20
|
-
exportFromDataTables(dataTables,
|
|
21
|
-
const document = this.generateFromDataTables(
|
|
22
|
-
document.save(`${
|
|
20
|
+
exportFromDataTables(dataTables, fileSettings) {
|
|
21
|
+
const document = this.generateFromDataTables(dataTables, fileSettings.title);
|
|
22
|
+
document.save(`${fileSettings.filename}.pdf`);
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Generate file from array-like table data
|
|
26
26
|
*/
|
|
27
|
-
generateFromDataTables(
|
|
27
|
+
generateFromDataTables(dataTables, title) {
|
|
28
28
|
const pdf = new jsPDF();
|
|
29
29
|
this.setDocumentTitle(pdf, title);
|
|
30
30
|
this.setDocumentLogo(pdf);
|
|
@@ -33,9 +33,9 @@ export class PdfService {
|
|
|
33
33
|
});
|
|
34
34
|
return pdf;
|
|
35
35
|
}
|
|
36
|
-
generateFromTables(tables,
|
|
37
|
-
const pdf = new jsPDF();
|
|
38
|
-
this.setDocumentTitle(pdf, title);
|
|
36
|
+
generateFromTables(tables, fileSettings) {
|
|
37
|
+
const pdf = new jsPDF(fileSettings.orientation);
|
|
38
|
+
this.setDocumentTitle(pdf, fileSettings.title);
|
|
39
39
|
this.setDocumentLogo(pdf);
|
|
40
40
|
tables.forEach((table) => {
|
|
41
41
|
// Add table caption if not provided
|
|
@@ -80,7 +80,7 @@ export class PdfService {
|
|
|
80
80
|
setDocumentLogo(doc) {
|
|
81
81
|
const logo = new Image();
|
|
82
82
|
logo.src = PDF_CONFIG.logo.src;
|
|
83
|
-
doc.addImage(logo, 'PNG', PDF_CONFIG.logo.positionX, PDF_CONFIG.logo.positionY, PDF_CONFIG.logo.width, PDF_CONFIG.logo.height);
|
|
83
|
+
doc.addImage(logo, 'PNG', doc.internal.pageSize.width - PDF_CONFIG.logo.positionX, PDF_CONFIG.logo.positionY, PDF_CONFIG.logo.width, PDF_CONFIG.logo.height);
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
PdfService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
91
91
|
providedIn: 'root'
|
|
92
92
|
}]
|
|
93
93
|
}] });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvcGRmL3BkZi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sU0FBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFRekQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUNyQjs7T0FFRztJQUNILFlBQVksQ0FBQyxNQUFvQyxFQUFFLFlBQXlCO1FBQzFFLE1BQU0sUUFBUSxHQUFVLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdEUsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxRQUFRLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLFVBQTZCLEVBQUUsWUFBeUI7UUFDM0UsTUFBTSxRQUFRLEdBQVUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEYsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxRQUFRLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNLLHNCQUFzQixDQUFDLFVBQTZCLEVBQUUsS0FBYTtRQUN6RSxNQUFNLEdBQUcsR0FBVSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBRS9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUxQixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBMEIsRUFBRSxFQUFFO1lBQ2hELFNBQVMsQ0FDUCxHQUFHLGtCQUNELElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFDeEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQ3BCLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUMvQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxNQUFvQyxFQUFFLFlBQXlCO1FBQ3hGLE1BQU0sR0FBRyxHQUFVLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUF1QixFQUFFLEVBQUU7WUFDekMsb0NBQW9DO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNsQixLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3RCLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQTthQUM3QjtZQUVELFNBQVMsQ0FDUCxHQUFHLGtCQUVELElBQUksRUFBRSxLQUFLLElBQ1IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDckQsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlLENBQUMsR0FBVSxFQUFFLGVBQXVCLEVBQUU7UUFDM0QsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUMxRixxREFBcUQ7UUFDckQsTUFBTSxhQUFhLEdBQVcsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RILEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLGVBQWUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWxILE9BQU87WUFDTCxVQUFVLEVBQUU7Z0JBQ1YsU0FBUyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWTthQUN4QztZQUNELFVBQVUsRUFBRTtnQkFDVixTQUFTLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVO2dCQUNyQyxTQUFTLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVO2FBQ3RDO1lBQ0QsTUFBTSxFQUFFLGVBQWUsR0FBRyxhQUFhLEdBQUcsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFNBQVM7WUFDakYsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3JCLHFDQUFxQztnQkFDckMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUMxRixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFBO2lCQUNsQztZQUNILENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEdBQVUsRUFBRSxLQUFjO1FBQ2pELEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDdEMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ3hGLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU8sZUFBZSxDQUFDLEdBQVU7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQy9CLEdBQUcsQ0FBQyxRQUFRLENBQ1YsSUFBSSxFQUNKLEtBQUssRUFDTCxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQ3ZELFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUN6QixVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFDckIsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ3ZCLENBQUE7SUFDSCxDQUFDOzt3R0EzR1UsVUFBVTs0R0FBVixVQUFVLGNBTlQsTUFBTTs0RkFNUCxVQUFVO2tCQVB0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XG5pbXBvcnQgYXV0b1RhYmxlIGZyb20gJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgeyBQREZfQ09ORklHIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BkZi9wZGYtY29uZmlnJztcbmltcG9ydCB7IEV4cG9ydERhdGFUYWJsZSB9IGZyb20gJy4uLy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWRhdGEtdGFibGUnO1xuaW1wb3J0IHsgUGRmU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvcGRmL3BkZi1zZXR0aW5ncyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG4vKipcbiAqIFNlcnZpY2UgdG8gd29yayB3aXRoIFBERiAoZ2VuZXJhdGUsIGRvd25sb2FkLCBlLnQuYy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBQZGZTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEV4cG9ydCBmaWxlIGZyb20gcHJvdmlkZWQgSFRNTCB0YWJsZXNcbiAgICovXG4gIGV4cG9ydFRhYmxlcyh0YWJsZXM6IE5vZGVMaXN0T2Y8SFRNTFRhYmxlRWxlbWVudD4sIGZpbGVTZXR0aW5nczogUGRmU2V0dGluZ3MpOiB2b2lkIHtcbiAgICBjb25zdCBkb2N1bWVudDoganNQREYgPSB0aGlzLmdlbmVyYXRlRnJvbVRhYmxlcyh0YWJsZXMsIGZpbGVTZXR0aW5ncyk7XG4gICAgZG9jdW1lbnQuc2F2ZShgJHtmaWxlU2V0dGluZ3MuZmlsZW5hbWV9LnBkZmApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCBmaWxlIGZyb20gcHJvdmlkZWQgYXJyYXktbGlrZSB0YWJsZSBkYXRhXG4gICAqL1xuICBleHBvcnRGcm9tRGF0YVRhYmxlcyhkYXRhVGFibGVzOiBFeHBvcnREYXRhVGFibGVbXSwgZmlsZVNldHRpbmdzOiBQZGZTZXR0aW5ncyk6IHZvaWQge1xuICAgIGNvbnN0IGRvY3VtZW50OiBqc1BERiA9IHRoaXMuZ2VuZXJhdGVGcm9tRGF0YVRhYmxlcyhkYXRhVGFibGVzLCBmaWxlU2V0dGluZ3MudGl0bGUpO1xuICAgIGRvY3VtZW50LnNhdmUoYCR7ZmlsZVNldHRpbmdzLmZpbGVuYW1lfS5wZGZgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBmaWxlIGZyb20gYXJyYXktbGlrZSB0YWJsZSBkYXRhXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlRnJvbURhdGFUYWJsZXMoZGF0YVRhYmxlczogRXhwb3J0RGF0YVRhYmxlW10sIHRpdGxlOiBzdHJpbmcpOiBqc1BERiB7XG4gICAgY29uc3QgcGRmOiBqc1BERiA9IG5ldyBqc1BERigpO1xuXG4gICAgdGhpcy5zZXREb2N1bWVudFRpdGxlKHBkZiwgdGl0bGUpO1xuICAgIHRoaXMuc2V0RG9jdW1lbnRMb2dvKHBkZik7XG5cbiAgICBkYXRhVGFibGVzLmZvckVhY2goKGRhdGFUYWJsZTogRXhwb3J0RGF0YVRhYmxlKSA9PiB7XG4gICAgICBhdXRvVGFibGUoXG4gICAgICAgIHBkZiwge1xuICAgICAgICAgIGhlYWQ6IFtkYXRhVGFibGUuaGVhZGVyXSxcbiAgICAgICAgICBib2R5OiBkYXRhVGFibGUucm93cyxcbiAgICAgICAgICBmb290OiBbZGF0YVRhYmxlLmZvb3Rlcl0sXG4gICAgICAgICAgLi4udGhpcy5zZXRUYWJsZU9wdGlvbnMocGRmLCBkYXRhVGFibGUuY2FwdGlvbilcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGRmO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUZyb21UYWJsZXModGFibGVzOiBOb2RlTGlzdE9mPEhUTUxUYWJsZUVsZW1lbnQ+LCBmaWxlU2V0dGluZ3M6IFBkZlNldHRpbmdzKToganNQREYge1xuICAgIGNvbnN0IHBkZjoganNQREYgPSBuZXcganNQREYoZmlsZVNldHRpbmdzLm9yaWVudGF0aW9uKTtcblxuICAgIHRoaXMuc2V0RG9jdW1lbnRUaXRsZShwZGYsIGZpbGVTZXR0aW5ncy50aXRsZSk7XG4gICAgdGhpcy5zZXREb2N1bWVudExvZ28ocGRmKTtcblxuICAgIHRhYmxlcy5mb3JFYWNoKCh0YWJsZTogSFRNTFRhYmxlRWxlbWVudCkgPT4ge1xuICAgICAgLy8gQWRkIHRhYmxlIGNhcHRpb24gaWYgbm90IHByb3ZpZGVkXG4gICAgICBpZiAoIXRhYmxlLmNhcHRpb24pIHtcbiAgICAgICAgdGFibGUuY3JlYXRlQ2FwdGlvbigpO1xuICAgICAgICB0YWJsZS5jYXB0aW9uLmlubmVyVGV4dCA9ICcnXG4gICAgICB9XG5cbiAgICAgIGF1dG9UYWJsZShcbiAgICAgICAgcGRmLFxuICAgICAgICB7XG4gICAgICAgICAgaHRtbDogdGFibGUsXG4gICAgICAgICAgLi4udGhpcy5zZXRUYWJsZU9wdGlvbnMocGRmLCB0YWJsZS5jYXB0aW9uLmlubmVyVGV4dClcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGRmO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBiYXNpYyBvcHRpb25zIGZvciBQREYgdGFibGVcbiAgICovXG4gIHByaXZhdGUgc2V0VGFibGVPcHRpb25zKHBkZjoganNQREYsIHRhYmxlQ2FwdGlvbjogc3RyaW5nID0gJycpOiBvYmplY3Qge1xuICAgIGNvbnN0IGxhc3RUYWJsZUNvb3JkcyA9IHBkZlsnbGFzdEF1dG9UYWJsZSddLmZpbmFsWSB8fCBQREZfQ09ORklHLmNvbnRlbnRDb29yZHMubWFyZ2luVG9wO1xuICAgIC8vIGdldCBjYXB0aW9uIGhlaWdodCBiYXNlZCBvbiBjYXB0aW9uIGNvbnRlbnQgaGVpZ2h0XG4gICAgY29uc3QgY2FwdGlvbkhlaWdodDogbnVtYmVyID0gcGRmLmdldFRleHREaW1lbnNpb25zKHBkZi5zcGxpdFRleHRUb1NpemUodGFibGVDYXB0aW9uLCBwZGYuaW50ZXJuYWwucGFnZVNpemUud2lkdGgpKS5oO1xuICAgIHBkZi50ZXh0KHRhYmxlQ2FwdGlvbiwgUERGX0NPTkZJRy5jb250ZW50Q29vcmRzLm1hcmdpbkxlZnQsIGxhc3RUYWJsZUNvb3JkcyArIFBERl9DT05GSUcuY29udGVudENvb3Jkcy5tYXJnaW5Ub3ApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWRTdHlsZXM6IHtcbiAgICAgICAgZmlsbENvbG9yOiBQREZfQ09ORklHLnRleHQuY29sb3JQcmltYXJ5LFxuICAgICAgfSxcbiAgICAgIGZvb3RTdHlsZXM6IHtcbiAgICAgICAgZmlsbENvbG9yOiBQREZfQ09ORklHLnRleHQuY29sb3JXaGl0ZSxcbiAgICAgICAgdGV4dENvbG9yOiBQREZfQ09ORklHLnRleHQuY29sb3JCbGFja1xuICAgICAgfSxcbiAgICAgIHN0YXJ0WTogbGFzdFRhYmxlQ29vcmRzICsgY2FwdGlvbkhlaWdodCArIFBERl9DT05GSUcuY29udGVudFRpdGxlQ29vcmRzLm1hcmdpblRvcCxcbiAgICAgIGRpZFBhcnNlQ2VsbDogKGRhdGEpID0+IHtcbiAgICAgICAgLy8gQWxpZ24gbGFzdCBjb2x1bW4gY29udGVudCB0byByaWdodFxuICAgICAgICBpZiAoZGF0YS50YWJsZS5jb2x1bW5zLmxlbmd0aCA+IDEgJiYgKGRhdGEuY29sdW1uLmluZGV4ID09PSBkYXRhLnRhYmxlLmNvbHVtbnMubGVuZ3RoIC0gMSkpIHtcbiAgICAgICAgICBkYXRhLmNlbGwuc3R5bGVzLmhhbGlnbiA9ICdyaWdodCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RG9jdW1lbnRUaXRsZShkb2M6IGpzUERGLCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGRvYy5zZXRGb250U2l6ZShQREZfQ09ORklHLnRleHQuZm9udFNpemUpXG4gICAgICAuc2V0Rm9udChQREZfQ09ORklHLnRleHQuZm9udE5hbWUsIFBERl9DT05GSUcudGV4dC5mb250U3R5bGUsIFBERl9DT05GSUcudGV4dC5mb250V2VpZ2h0KVxuICAgICAgLnRleHQodGl0bGUsIFBERl9DT05GSUcudGV4dC5wb3NpdGlvblgsIFBERl9DT05GSUcudGV4dC5wb3NpdGlvblkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREb2N1bWVudExvZ28oZG9jOiBqc1BERik6IHZvaWQge1xuICAgIGNvbnN0IGxvZ28gPSBuZXcgSW1hZ2UoKTtcbiAgICBsb2dvLnNyYyA9IFBERl9DT05GSUcubG9nby5zcmM7XG4gICAgZG9jLmFkZEltYWdlKFxuICAgICAgbG9nbyxcbiAgICAgICdQTkcnLFxuICAgICAgZG9jLmludGVybmFsLnBhZ2VTaXplLndpZHRoIC0gUERGX0NPTkZJRy5sb2dvLnBvc2l0aW9uWCxcbiAgICAgIFBERl9DT05GSUcubG9nby5wb3NpdGlvblksXG4gICAgICBQREZfQ09ORklHLmxvZ28ud2lkdGgsXG4gICAgICBQREZfQ09ORklHLmxvZ28uaGVpZ2h0XG4gICAgKVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if at least one form field is true, otherwise form is invalid.
|
|
3
|
+
* Use with groups of boolean form controls (checkbox, toggle, etc.)
|
|
4
|
+
*/
|
|
5
|
+
export function atLeastOneCheckedValidator() {
|
|
6
|
+
return (formGroup) => {
|
|
7
|
+
return Object.values(formGroup.controls)
|
|
8
|
+
.find((control) => control.value) ? null : { nothingChecked: true };
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXQtbGVhc3Qtb25lLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi92YWxpZGF0b3JzL2F0LWxlYXN0LW9uZS52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQjtJQUN4QyxPQUFPLENBQUMsU0FBb0IsRUFBb0IsRUFBRTtRQUNoRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzthQUNyQyxJQUFJLENBQUMsQ0FBQyxPQUFvQixFQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxjQUFjLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDNUYsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIENoZWNrIGlmIGF0IGxlYXN0IG9uZSBmb3JtIGZpZWxkIGlzIHRydWUsIG90aGVyd2lzZSBmb3JtIGlzIGludmFsaWQuXG4gKiBVc2Ugd2l0aCBncm91cHMgb2YgYm9vbGVhbiBmb3JtIGNvbnRyb2xzIChjaGVja2JveCwgdG9nZ2xlLCBldGMuKVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXRMZWFzdE9uZUNoZWNrZWRWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICByZXR1cm4gKGZvcm1Hcm91cDogRm9ybUdyb3VwKTogVmFsaWRhdGlvbkVycm9ycyA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZm9ybUdyb3VwLmNvbnRyb2xzKVxuICAgICAgLmZpbmQoKGNvbnRyb2w6IEZvcm1Db250cm9sKTogYm9vbGVhbiA9PiBjb250cm9sLnZhbHVlKSA/IG51bGwgOiB7bm90aGluZ0NoZWNrZWQ6IHRydWV9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './at-least-one.validator';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdC1sZWFzdC1vbmUudmFsaWRhdG9yJztcbiJdfQ==
|