taxtank-core 0.24.3 → 0.26.0
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 +3067 -2561
- package/bundles/taxtank-core.umd.js.map +1 -1
- package/esm2015/lib/collections/client-invite.collection.js +1 -4
- package/esm2015/lib/collections/depreciation.collection.js +11 -1
- package/esm2015/lib/collections/index.js +3 -0
- package/esm2015/lib/collections/loan/loan-payment.collection.js +14 -1
- package/esm2015/lib/collections/loan/loan.collection.js +11 -1
- package/esm2015/lib/collections/report/vehicle-expense/vehicle-expense.collection.js +1 -1
- package/esm2015/lib/collections/transaction/transaction.collection.js +20 -1
- package/esm2015/lib/collections/vehicle/index.js +3 -0
- package/esm2015/lib/collections/vehicle/vehicle-claim.collection.js +27 -0
- package/esm2015/lib/collections/vehicle/vehicle-logbook.collection.js +106 -0
- package/esm2015/lib/db/Enums/bank-account-type.enum.js +3 -2
- package/esm2015/lib/db/Enums/vehicle-claim-details-method.enum.js +6 -0
- package/esm2015/lib/db/Models/sole/sole-business.js +1 -1
- package/esm2015/lib/db/Models/sole/sole-invoice-template.js +1 -1
- package/esm2015/lib/db/Models/transaction/transaction-base.js +15 -2
- package/esm2015/lib/db/Models/vehicle/vehicle-claim-details.js +4 -0
- package/esm2015/lib/db/Models/vehicle/vehicle-claim.js +1 -1
- package/esm2015/lib/db/Models/vehicle/vehicle-logbook.js +1 -1
- package/esm2015/lib/db/Models/vehicle/vehicle.js +1 -1
- package/esm2015/lib/forms/abstract.form.js +23 -1
- package/esm2015/lib/forms/bank/bank-account/bank-account-add-manual.form.js +8 -5
- package/esm2015/lib/forms/bank/bank-account/bank-account-allocation.form.js +16 -9
- package/esm2015/lib/forms/bank/bank-account/bank-account-import.form.js +8 -3
- package/esm2015/lib/forms/index.js +3 -4
- package/esm2015/lib/forms/loan/index.js +2 -0
- package/esm2015/lib/forms/loan/loan.form.js +86 -0
- package/esm2015/lib/forms/report/my-tax/my-tax-deductions.form.js +2 -2
- package/esm2015/lib/forms/sole/index.js +3 -1
- package/esm2015/lib/forms/sole/sole-business-allocations.form.js +65 -0
- package/esm2015/lib/forms/sole/sole-invoice-template.form.js +13 -0
- package/esm2015/lib/forms/vehicle/index.js +5 -0
- package/esm2015/lib/forms/vehicle/vehicle-claim-details.form.js +21 -0
- package/esm2015/lib/forms/vehicle/vehicle-claim.form.js +12 -102
- package/esm2015/lib/forms/vehicle/vehicle-logbook.form.js +56 -0
- package/esm2015/lib/forms/vehicle/vehicle.form.js +5 -2
- package/esm2015/lib/models/bank/bank-account-types.const.js +1 -2
- package/esm2015/lib/models/bank/bank-account.js +10 -5
- package/esm2015/lib/models/bank/type-loan.const.js +1 -2
- package/esm2015/lib/models/endpoint/endpoints.const.js +13 -4
- package/esm2015/lib/models/event/app-event-type.enum.js +7 -4
- package/esm2015/lib/models/index.js +2 -1
- package/esm2015/lib/models/loan/loan.js +36 -2
- package/esm2015/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.js +5 -5
- package/esm2015/lib/models/sole/sole-business.js +2 -2
- package/esm2015/lib/models/sole/sole-invoice-template.js +5 -2
- package/esm2015/lib/models/vehicle/index.js +6 -0
- package/esm2015/lib/models/vehicle/logbook-period.js +23 -0
- package/esm2015/lib/models/vehicle/vehicle-claim-details.js +26 -0
- package/esm2015/lib/models/vehicle/vehicle-claim.js +64 -0
- package/esm2015/lib/models/vehicle/vehicle-logbook.js +32 -0
- package/esm2015/lib/models/vehicle/vehicle.js +10 -0
- package/esm2015/lib/services/http/depreciation/depreciation.service.js +10 -5
- package/esm2015/lib/services/http/firm/client-invite/client-invite.service.js +15 -1
- package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +13 -10
- package/esm2015/lib/services/http/index.js +2 -1
- package/esm2015/lib/services/http/sole/index.js +2 -1
- package/esm2015/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.js +21 -0
- package/esm2015/lib/services/http/tax-review/tax-review.service.js +11 -3
- package/esm2015/lib/services/http/transaction/transaction.service.js +12 -1
- package/esm2015/lib/services/http/vehicle/index.js +5 -0
- package/esm2015/lib/services/http/vehicle/vehicle-claim-details.service.js +91 -0
- package/esm2015/lib/services/http/vehicle/vehicle-claim.service.js +65 -6
- package/esm2015/lib/services/http/vehicle/vehicle-logbook.service.js +11 -47
- package/esm2015/lib/services/http/vehicle/vehicle.service.js +2 -52
- package/esm2015/lib/services/index.js +2 -1
- package/esm2015/lib/services/vehicle/index.js +2 -0
- package/esm2015/lib/services/vehicle/logbook-best-period.service.js +72 -0
- package/esm2015/lib/validators/index.js +3 -1
- package/esm2015/lib/validators/min-date/messages.enum.js +5 -0
- package/esm2015/lib/validators/min-date/min-date.validator.js +14 -0
- package/esm2015/public-api.js +3 -14
- package/fesm2015/taxtank-core.js +2253 -1814
- package/fesm2015/taxtank-core.js.map +1 -1
- package/lib/collections/client-invite.collection.d.ts +0 -3
- package/lib/collections/depreciation.collection.d.ts +6 -1
- package/lib/collections/index.d.ts +1 -0
- package/lib/collections/loan/loan-payment.collection.d.ts +4 -0
- package/lib/collections/loan/loan.collection.d.ts +6 -0
- package/lib/collections/report/vehicle-expense/vehicle-expense.collection.d.ts +1 -1
- package/lib/collections/transaction/transaction.collection.d.ts +9 -0
- package/lib/collections/vehicle/index.d.ts +2 -0
- package/lib/collections/vehicle/vehicle-claim.collection.d.ts +14 -0
- package/lib/collections/vehicle/vehicle-logbook.collection.d.ts +38 -0
- package/lib/db/Enums/bank-account-type.enum.d.ts +0 -1
- package/lib/db/Enums/vehicle-claim-details-method.enum.d.ts +4 -0
- package/lib/db/Models/sole/sole-business.d.ts +2 -0
- package/lib/db/Models/sole/sole-invoice-template.d.ts +1 -0
- package/lib/db/Models/transaction/transaction-base.d.ts +2 -0
- package/lib/db/Models/vehicle/vehicle-claim-details.d.ts +10 -0
- package/lib/db/Models/vehicle/vehicle-claim.d.ts +3 -5
- package/lib/db/Models/vehicle/vehicle-logbook.d.ts +3 -2
- package/lib/forms/abstract.form.d.ts +12 -0
- package/lib/forms/index.d.ts +2 -3
- package/lib/forms/loan/index.d.ts +1 -0
- package/lib/forms/loan/loan.form.d.ts +25 -0
- package/lib/forms/sole/index.d.ts +2 -0
- package/lib/forms/sole/sole-business-allocations.form.d.ts +17 -0
- package/lib/forms/sole/sole-invoice-template.form.d.ts +5 -0
- package/lib/forms/vehicle/index.d.ts +4 -0
- package/lib/forms/vehicle/vehicle-claim-details.form.d.ts +13 -0
- package/lib/forms/vehicle/vehicle-claim.form.d.ts +8 -38
- package/lib/forms/vehicle/vehicle-logbook.form.d.ts +20 -0
- package/lib/forms/vehicle/vehicle.form.d.ts +4 -1
- package/lib/models/bank/bank-account.d.ts +3 -2
- package/lib/models/event/app-event-type.enum.d.ts +6 -3
- package/lib/models/index.d.ts +1 -0
- package/lib/models/loan/loan.d.ts +26 -0
- package/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.d.ts +3 -2
- package/lib/models/sole/sole-business.d.ts +1 -1
- package/lib/models/sole/sole-invoice-template.d.ts +1 -0
- package/lib/models/vehicle/index.d.ts +5 -0
- package/lib/models/vehicle/logbook-period.d.ts +15 -0
- package/lib/models/vehicle/vehicle-claim-details.d.ts +8 -0
- package/lib/models/{logbook → vehicle}/vehicle-claim.d.ts +11 -17
- package/lib/models/vehicle/vehicle-logbook.d.ts +17 -0
- package/lib/models/{logbook → vehicle}/vehicle.d.ts +0 -5
- package/lib/services/http/depreciation/depreciation.service.d.ts +1 -1
- package/lib/services/http/firm/client-invite/client-invite.service.d.ts +7 -1
- package/lib/services/http/firm/client-movement/client-movement.service.d.ts +2 -4
- package/lib/services/http/index.d.ts +1 -0
- package/lib/services/http/sole/index.d.ts +1 -0
- package/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.d.ts +11 -0
- package/lib/services/http/tax-review/tax-review.service.d.ts +1 -0
- package/lib/services/http/transaction/transaction.service.d.ts +1 -0
- package/lib/services/http/vehicle/index.d.ts +4 -0
- package/lib/services/http/vehicle/vehicle-claim-details.service.d.ts +34 -0
- package/lib/services/http/vehicle/vehicle-claim.service.d.ts +22 -5
- package/lib/services/http/vehicle/vehicle-logbook.service.d.ts +6 -15
- package/lib/services/http/vehicle/vehicle.service.d.ts +2 -20
- package/lib/services/index.d.ts +1 -0
- package/lib/services/vehicle/index.d.ts +1 -0
- package/lib/services/vehicle/logbook-best-period.service.d.ts +28 -0
- package/lib/validators/index.d.ts +2 -0
- package/lib/validators/min-date/messages.enum.d.ts +3 -0
- package/lib/validators/min-date/min-date.validator.d.ts +5 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -13
- package/esm2015/lib/collections/vehicle-logbook.collection.js +0 -88
- package/esm2015/lib/collections/vehicle.collection.js +0 -9
- package/esm2015/lib/db/Enums/vehicle-claim-method.enum.js +0 -6
- package/esm2015/lib/forms/bank/bank-account/bank-account-loan.form.js +0 -23
- package/esm2015/lib/models/logbook/default-vehicle-expense.js +0 -20
- package/esm2015/lib/models/logbook/logbook-period.js +0 -18
- package/esm2015/lib/models/logbook/logbook-purpose-options.const.js +0 -6
- package/esm2015/lib/models/logbook/vehicle-claim.js +0 -94
- package/esm2015/lib/models/logbook/vehicle-logbook.js +0 -22
- package/esm2015/lib/models/logbook/vehicle.js +0 -17
- package/esm2015/lib/services/http/user/users-invite/users-invite.service.js +0 -23
- package/esm2015/lib/services/http/vehicle/messages.enum.js +0 -13
- package/lib/collections/vehicle-logbook.collection.d.ts +0 -30
- package/lib/collections/vehicle.collection.d.ts +0 -6
- package/lib/db/Enums/vehicle-claim-method.enum.d.ts +0 -4
- package/lib/forms/bank/bank-account/bank-account-loan.form.d.ts +0 -8
- package/lib/models/logbook/default-vehicle-expense.d.ts +0 -5
- package/lib/models/logbook/logbook-period.d.ts +0 -10
- package/lib/models/logbook/logbook-purpose-options.const.d.ts +0 -4
- package/lib/models/logbook/vehicle-logbook.d.ts +0 -12
- package/lib/services/http/user/users-invite/users-invite.service.d.ts +0 -13
- package/lib/services/http/vehicle/messages.enum.d.ts +0 -11
|
@@ -1,16 +1,75 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { VehicleClaim } from '../../../models
|
|
2
|
+
import { VehicleClaim } from '../../../models';
|
|
3
3
|
import { RestService } from '../rest/rest.service';
|
|
4
|
-
import {
|
|
4
|
+
import { AppEventTypeEnum } from '../../../models/event/app-event-type.enum';
|
|
5
|
+
import { combineLatest } from 'rxjs';
|
|
6
|
+
import { map, take } from 'rxjs/operators';
|
|
7
|
+
import { AppEvent } from '../../../models/event/app-event';
|
|
8
|
+
import { plainToClass } from 'class-transformer';
|
|
5
9
|
import * as i0 from "@angular/core";
|
|
6
10
|
export class VehicleClaimService extends RestService {
|
|
7
11
|
constructor() {
|
|
8
12
|
super(...arguments);
|
|
9
13
|
this.modelClass = VehicleClaim;
|
|
10
14
|
this.url = 'vehicle-claims';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.
|
|
15
|
+
}
|
|
16
|
+
listenEvents() {
|
|
17
|
+
this.listenVehicleClaimDetailsChanges();
|
|
18
|
+
this.listenBestPeriodChanges();
|
|
19
|
+
}
|
|
20
|
+
add(model) {
|
|
21
|
+
return super.add(model).pipe(map((vehicleClaim) => {
|
|
22
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.VEHICLE_CLAIM_CREATED, vehicleClaim));
|
|
23
|
+
return vehicleClaim;
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
update(model, queryParams = {}) {
|
|
27
|
+
return super.update(model, queryParams).pipe(map((vehicleClaim) => {
|
|
28
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.VEHICLE_CLAIM_UPDATED, vehicleClaim));
|
|
29
|
+
return vehicleClaim;
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Details changes may affect vehicle claims:
|
|
34
|
+
* when details method changed, all claims current values become 0
|
|
35
|
+
*/
|
|
36
|
+
listenVehicleClaimDetailsChanges() {
|
|
37
|
+
this.eventDispatcherService.on([
|
|
38
|
+
AppEventTypeEnum.VEHICLE_CLAIM_DETAILS_CREATED,
|
|
39
|
+
AppEventTypeEnum.VEHICLE_CLAIM_DETAILS_UPDATED
|
|
40
|
+
])
|
|
41
|
+
.subscribe(() => {
|
|
42
|
+
this.resetCache();
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Best period changes affect to claims workUsage
|
|
47
|
+
* @TODO Vik: Best period move this and related logic to backend
|
|
48
|
+
*/
|
|
49
|
+
listenBestPeriodChanges() {
|
|
50
|
+
this.eventDispatcherService.on(AppEventTypeEnum.VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED)
|
|
51
|
+
.subscribe((bestPeriod) => {
|
|
52
|
+
// no need to update claims when best period become null
|
|
53
|
+
// (case when logbook removed and user don't have enough logbooks for claim period)
|
|
54
|
+
if (!bestPeriod) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.updateWorkUsage(bestPeriod);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Update workUsage for all vehicle claims if logbook best period changed
|
|
62
|
+
* @TODO Vik: Best period move this and related logic to backend
|
|
63
|
+
*/
|
|
64
|
+
updateWorkUsage(bestPeriod) {
|
|
65
|
+
// We are sure this.cache exist here because logbook best period calculation is based on vehicle claims,
|
|
66
|
+
// so before we can get logbook best period changes, we must get vehicle claims
|
|
67
|
+
const batch$ = this.cache.map((claim) => {
|
|
68
|
+
const claimToUpdate = plainToClass(VehicleClaim, Object.assign({}, claim, { workUsage: bestPeriod === null || bestPeriod === void 0 ? void 0 : bestPeriod.getWorkUsageByClaim(claim) }));
|
|
69
|
+
return this.update(claimToUpdate);
|
|
70
|
+
});
|
|
71
|
+
// take(1) is using to avoid unnecessary callback calling whe user updated details directly
|
|
72
|
+
combineLatest(batch$).pipe(take(1)).subscribe();
|
|
14
73
|
}
|
|
15
74
|
}
|
|
16
75
|
VehicleClaimService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleClaimService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -21,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
21
80
|
providedIn: 'root'
|
|
22
81
|
}]
|
|
23
82
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1jbGFpbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdmVoaWNsZS92ZWhpY2xlLWNsYWltLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWlCLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFLakQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQTJDO0lBSHBGOztRQUlFLGVBQVUsR0FBd0IsWUFBWSxDQUFDO1FBQy9DLFFBQUcsR0FBVyxnQkFBZ0IsQ0FBQztLQThFaEM7SUE1RUMsWUFBWTtRQUNWLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBbUI7UUFDckIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUV6RyxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFtQixFQUFFLGNBQXNCLEVBQUU7UUFDbEQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFFekcsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSyxnQ0FBZ0M7UUFDdEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztZQUM3QixnQkFBZ0IsQ0FBQyw2QkFBNkI7WUFDOUMsZ0JBQWdCLENBQUMsNkJBQTZCO1NBQy9DLENBQUM7YUFDQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNLLHVCQUF1QjtRQUM3QixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLG1DQUFtQyxDQUFDO2FBQ2pGLFNBQVMsQ0FBQyxDQUFDLFVBQXlCLEVBQUUsRUFBRTtZQUN2Qyx3REFBd0Q7WUFDeEQsbUZBQW1GO1lBQ25GLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2YsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRDs7O09BR0c7SUFDSyxlQUFlLENBQUMsVUFBeUI7UUFDL0Msd0dBQXdHO1FBQ3hHLCtFQUErRTtRQUMvRSxNQUFNLE1BQU0sR0FBK0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFtQixFQUFFLEVBQUU7WUFDaEYsTUFBTSxhQUFhLEdBQWlCLFlBQVksQ0FDOUMsWUFBWSxFQUNaLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFDLFNBQVMsRUFBRSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUM5RSxDQUFDO1lBRUYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFBO1FBRUYsMkZBQTJGO1FBQzNGLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEQsQ0FBQzs7aUhBL0VVLG1CQUFtQjtxSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZlaGljbGVDbGFpbSBhcyBWZWhpY2xlQ2xhaW1CYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3ZlaGljbGUvdmVoaWNsZS1jbGFpbSc7XG5pbXBvcnQgeyBMb2dib29rUGVyaW9kLCBWZWhpY2xlQ2xhaW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBWZWhpY2xlQ2xhaW1TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8VmVoaWNsZUNsYWltQmFzZSwgVmVoaWNsZUNsYWltPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgbW9kZWxDbGFzczogdHlwZW9mIFZlaGljbGVDbGFpbSA9IFZlaGljbGVDbGFpbTtcbiAgdXJsOiBzdHJpbmcgPSAndmVoaWNsZS1jbGFpbXMnO1xuXG4gIGxpc3RlbkV2ZW50cygpIHtcbiAgICB0aGlzLmxpc3RlblZlaGljbGVDbGFpbURldGFpbHNDaGFuZ2VzKCk7XG4gICAgdGhpcy5saXN0ZW5CZXN0UGVyaW9kQ2hhbmdlcygpO1xuICB9XG5cbiAgYWRkKG1vZGVsOiBWZWhpY2xlQ2xhaW0pOiBPYnNlcnZhYmxlPFZlaGljbGVDbGFpbT4ge1xuICAgIHJldHVybiBzdXBlci5hZGQobW9kZWwpLnBpcGUoXG4gICAgICBtYXAoKHZlaGljbGVDbGFpbTogVmVoaWNsZUNsYWltKSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX0NSRUFURUQsIHZlaGljbGVDbGFpbSkpO1xuXG4gICAgICAgIHJldHVybiB2ZWhpY2xlQ2xhaW07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB1cGRhdGUobW9kZWw6IFZlaGljbGVDbGFpbSwgcXVlcnlQYXJhbXM6IG9iamVjdCA9IHt9KTogT2JzZXJ2YWJsZTxWZWhpY2xlQ2xhaW0+IHtcbiAgICByZXR1cm4gc3VwZXIudXBkYXRlKG1vZGVsLCBxdWVyeVBhcmFtcykucGlwZShcbiAgICAgIG1hcCgodmVoaWNsZUNsYWltOiBWZWhpY2xlQ2xhaW0pID0+IHtcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfQ0xBSU1fVVBEQVRFRCwgdmVoaWNsZUNsYWltKSk7XG5cbiAgICAgICAgcmV0dXJuIHZlaGljbGVDbGFpbTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRhaWxzIGNoYW5nZXMgbWF5IGFmZmVjdCB2ZWhpY2xlIGNsYWltczpcbiAgICogd2hlbiBkZXRhaWxzIG1ldGhvZCBjaGFuZ2VkLCBhbGwgY2xhaW1zIGN1cnJlbnQgdmFsdWVzIGJlY29tZSAwXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblZlaGljbGVDbGFpbURldGFpbHNDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbXG4gICAgICBBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfQ0xBSU1fREVUQUlMU19DUkVBVEVELFxuICAgICAgQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX0RFVEFJTFNfVVBEQVRFRFxuICAgIF0pXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEJlc3QgcGVyaW9kIGNoYW5nZXMgYWZmZWN0IHRvIGNsYWltcyB3b3JrVXNhZ2VcbiAgICogQFRPRE8gVmlrOiBCZXN0IHBlcmlvZCBtb3ZlIHRoaXMgYW5kIHJlbGF0ZWQgbG9naWMgdG8gYmFja2VuZFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5CZXN0UGVyaW9kQ2hhbmdlcygpIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0xPR0JPT0tfQkVTVF9QRVJJT0RfVVBEQVRFRClcbiAgICAgIC5zdWJzY3JpYmUoKGJlc3RQZXJpb2Q6IExvZ2Jvb2tQZXJpb2QpID0+IHtcbiAgICAgICAgLy8gbm8gbmVlZCB0byB1cGRhdGUgY2xhaW1zIHdoZW4gYmVzdCBwZXJpb2QgYmVjb21lIG51bGxcbiAgICAgICAgLy8gKGNhc2Ugd2hlbiBsb2dib29rIHJlbW92ZWQgYW5kIHVzZXIgZG9uJ3QgaGF2ZSBlbm91Z2ggbG9nYm9va3MgZm9yIGNsYWltIHBlcmlvZClcbiAgICAgICAgaWYgKCFiZXN0UGVyaW9kKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVXb3JrVXNhZ2UoYmVzdFBlcmlvZCk7XG4gICAgICB9KTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB3b3JrVXNhZ2UgZm9yIGFsbCB2ZWhpY2xlIGNsYWltcyBpZiBsb2dib29rIGJlc3QgcGVyaW9kIGNoYW5nZWRcbiAgICogQFRPRE8gVmlrOiBCZXN0IHBlcmlvZCBtb3ZlIHRoaXMgYW5kIHJlbGF0ZWQgbG9naWMgdG8gYmFja2VuZFxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVXb3JrVXNhZ2UoYmVzdFBlcmlvZDogTG9nYm9va1BlcmlvZCk6IHZvaWQge1xuICAgIC8vIFdlIGFyZSBzdXJlIHRoaXMuY2FjaGUgZXhpc3QgaGVyZSBiZWNhdXNlIGxvZ2Jvb2sgYmVzdCBwZXJpb2QgY2FsY3VsYXRpb24gaXMgYmFzZWQgb24gdmVoaWNsZSBjbGFpbXMsXG4gICAgLy8gc28gYmVmb3JlIHdlIGNhbiBnZXQgbG9nYm9vayBiZXN0IHBlcmlvZCBjaGFuZ2VzLCB3ZSBtdXN0IGdldCB2ZWhpY2xlIGNsYWltc1xuICAgIGNvbnN0IGJhdGNoJDogT2JzZXJ2YWJsZTxWZWhpY2xlQ2xhaW0+W10gPSB0aGlzLmNhY2hlLm1hcCgoY2xhaW06IFZlaGljbGVDbGFpbSkgPT4ge1xuICAgICAgY29uc3QgY2xhaW1Ub1VwZGF0ZTogVmVoaWNsZUNsYWltID0gcGxhaW5Ub0NsYXNzKFxuICAgICAgICBWZWhpY2xlQ2xhaW0sXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIGNsYWltLCB7d29ya1VzYWdlOiBiZXN0UGVyaW9kPy5nZXRXb3JrVXNhZ2VCeUNsYWltKGNsYWltKX0pXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gdGhpcy51cGRhdGUoY2xhaW1Ub1VwZGF0ZSk7XG4gICAgfSlcblxuICAgIC8vIHRha2UoMSkgaXMgdXNpbmcgdG8gYXZvaWQgdW5uZWNlc3NhcnkgY2FsbGJhY2sgY2FsbGluZyB3aGUgdXNlciB1cGRhdGVkIGRldGFpbHMgZGlyZWN0bHlcbiAgICBjb21iaW5lTGF0ZXN0KGJhdGNoJCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,59 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { VehicleLogbook } from '../../../models
|
|
3
|
-
import {
|
|
4
|
-
import { plainToClass } from 'class-transformer';
|
|
5
|
-
import { AppEvent } from '../../../models/event/app-event';
|
|
6
|
-
import { AppEventTypeEnum } from '../../../models/event/app-event-type.enum';
|
|
7
|
-
import { MessagesEnum } from './messages.enum';
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { VehicleLogbook } from '../../../models';
|
|
3
|
+
import { RestService } from '../rest/rest.service';
|
|
8
4
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/common/http";
|
|
10
|
-
import * as i2 from "../../event/event-dispatcher.service";
|
|
11
|
-
import * as i3 from "../../toast/toast.service";
|
|
12
5
|
/**
|
|
13
6
|
* Vehicle logbook service. Allows user to add, update or delete vehicle trips
|
|
14
|
-
* @TODO extend rest service after it refactored
|
|
15
7
|
*/
|
|
16
|
-
export class VehicleLogbookService {
|
|
17
|
-
constructor(
|
|
18
|
-
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.toastService = toastService;
|
|
22
|
-
}
|
|
23
|
-
add(logbook, vehicleId) {
|
|
24
|
-
return this.http.post(`${this.environment.apiV2}/vehicles/${vehicleId}/logbooks`, logbook)
|
|
25
|
-
.pipe(map((vehicleLogbookBase) => {
|
|
26
|
-
const newVehicleLogbook = plainToClass(VehicleLogbook, vehicleLogbookBase);
|
|
27
|
-
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.VEHICLE_LOGBOOK_CREATED, { logbook: newVehicleLogbook, vehicleId }));
|
|
28
|
-
this.toastService.success(MessagesEnum.VEHICLE_LOGBOOK_CREATED);
|
|
29
|
-
return newVehicleLogbook;
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
update(logbook, vehicleId) {
|
|
33
|
-
return this.http.put(`${this.environment.apiV2}/vehicles/${vehicleId}/logbooks/${logbook.id}`, logbook).pipe(map((vehicleLogbookBase) => {
|
|
34
|
-
const updatedVehicleLogbook = plainToClass(VehicleLogbook, vehicleLogbookBase);
|
|
35
|
-
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.VEHICLE_LOGBOOK_UPDATED, { logbook: updatedVehicleLogbook, vehicleId }));
|
|
36
|
-
this.toastService.success(MessagesEnum.VEHICLE_LOGBOOK_UPDATED);
|
|
37
|
-
return plainToClass(VehicleLogbook, updatedVehicleLogbook);
|
|
38
|
-
}));
|
|
39
|
-
}
|
|
40
|
-
delete(logbook, vehicleId) {
|
|
41
|
-
return this.http.delete(`${this.environment.apiV2}/vehicles/${vehicleId}/logbooks/${logbook.id}`)
|
|
42
|
-
.pipe(map(() => {
|
|
43
|
-
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.VEHICLE_LOGBOOK_DELETED, { logbook, vehicleId }));
|
|
44
|
-
this.toastService.success(MessagesEnum.VEHICLE_LOGBOOK_DELETED);
|
|
45
|
-
}));
|
|
8
|
+
export class VehicleLogbookService extends RestService {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.url = 'vehicles/logbooks';
|
|
12
|
+
this.modelClass = VehicleLogbook;
|
|
46
13
|
}
|
|
47
14
|
}
|
|
48
|
-
VehicleLogbookService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleLogbookService, deps:
|
|
15
|
+
VehicleLogbookService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleLogbookService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
49
16
|
VehicleLogbookService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleLogbookService, providedIn: 'root' });
|
|
50
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleLogbookService, decorators: [{
|
|
51
18
|
type: Injectable,
|
|
52
19
|
args: [{
|
|
53
20
|
providedIn: 'root'
|
|
54
21
|
}]
|
|
55
|
-
}]
|
|
56
|
-
|
|
57
|
-
args: ['environment']
|
|
58
|
-
}] }, { type: i3.ToastService }]; } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC92ZWhpY2xlL3ZlaGljbGUtbG9nYm9vay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBRS9DOzs7R0FHRztBQUlILE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFDVSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0IsRUFDdkMsWUFBMEI7UUFIMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ2hDLENBQUM7SUFFTCxHQUFHLENBQUMsT0FBdUIsRUFBRSxTQUFpQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLGFBQWEsU0FBUyxXQUFXLEVBQUUsT0FBTyxDQUFDO2FBQ3ZGLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxrQkFBc0MsRUFBRSxFQUFFO1lBQzdDLE1BQU0saUJBQWlCLEdBQW1CLFlBQVksQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUMzRixJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixFQUFFLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztZQUN0SSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNoRSxPQUFPLGlCQUFpQixDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXVCLEVBQUUsU0FBaUI7UUFDL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxhQUFhLFNBQVMsYUFBYSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUMxRyxHQUFHLENBQUMsQ0FBQyxrQkFBc0MsRUFBRSxFQUFFO1lBQzdDLE1BQU0scUJBQXFCLEdBQW1CLFlBQVksQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUMvRixJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixFQUFFLEVBQUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztZQUMxSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNoRSxPQUFPLFlBQVksQ0FBQyxjQUFjLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUF1QixFQUFFLFNBQWlCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssYUFBYSxTQUFTLGFBQWEsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQzlGLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsRUFBRSxFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkgsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7O21IQXhDVSxxQkFBcUIsa0ZBS3RCLGFBQWE7dUhBTFoscUJBQXFCLGNBRnBCLE1BQU07NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWZWhpY2xlTG9nYm9vayBhcyBWZWhpY2xlTG9nYm9va0Jhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMvdmVoaWNsZS92ZWhpY2xlLWxvZ2Jvb2snO1xuaW1wb3J0IHsgVmVoaWNsZUxvZ2Jvb2sgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbG9nYm9vay92ZWhpY2xlLWxvZ2Jvb2snO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1lc3NhZ2VzRW51bSB9IGZyb20gJy4vbWVzc2FnZXMuZW51bSc7XG5cbi8qKlxuICogVmVoaWNsZSBsb2dib29rIHNlcnZpY2UuIEFsbG93cyB1c2VyIHRvIGFkZCwgdXBkYXRlIG9yIGRlbGV0ZSB2ZWhpY2xlIHRyaXBzXG4gKiBAVE9ETyBleHRlbmQgcmVzdCBzZXJ2aWNlIGFmdGVyIGl0IHJlZmFjdG9yZWRcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVmVoaWNsZUxvZ2Jvb2tTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55LFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2VcbiAgKSB7IH1cblxuICBhZGQobG9nYm9vazogVmVoaWNsZUxvZ2Jvb2ssIHZlaGljbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxWZWhpY2xlTG9nYm9vaz4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS92ZWhpY2xlcy8ke3ZlaGljbGVJZH0vbG9nYm9va3NgLCBsb2dib29rKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodmVoaWNsZUxvZ2Jvb2tCYXNlOiBWZWhpY2xlTG9nYm9va0Jhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdWZWhpY2xlTG9nYm9vazogVmVoaWNsZUxvZ2Jvb2sgPSBwbGFpblRvQ2xhc3MoVmVoaWNsZUxvZ2Jvb2ssIHZlaGljbGVMb2dib29rQmFzZSk7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfTE9HQk9PS19DUkVBVEVELCB7bG9nYm9vazogbmV3VmVoaWNsZUxvZ2Jvb2ssIHZlaGljbGVJZH0pKTtcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKE1lc3NhZ2VzRW51bS5WRUhJQ0xFX0xPR0JPT0tfQ1JFQVRFRCk7XG4gICAgICAgICAgcmV0dXJuIG5ld1ZlaGljbGVMb2dib29rO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZShsb2dib29rOiBWZWhpY2xlTG9nYm9vaywgdmVoaWNsZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3ZlaGljbGVzLyR7dmVoaWNsZUlkfS9sb2dib29rcy8ke2xvZ2Jvb2suaWR9YCwgbG9nYm9vaykucGlwZShcbiAgICAgIG1hcCgodmVoaWNsZUxvZ2Jvb2tCYXNlOiBWZWhpY2xlTG9nYm9va0Jhc2UpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZFZlaGljbGVMb2dib29rOiBWZWhpY2xlTG9nYm9vayA9IHBsYWluVG9DbGFzcyhWZWhpY2xlTG9nYm9vaywgdmVoaWNsZUxvZ2Jvb2tCYXNlKTtcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfTE9HQk9PS19VUERBVEVELCB7bG9nYm9vazogdXBkYXRlZFZlaGljbGVMb2dib29rLCB2ZWhpY2xlSWR9KSk7XG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3MoTWVzc2FnZXNFbnVtLlZFSElDTEVfTE9HQk9PS19VUERBVEVEKTtcbiAgICAgICAgcmV0dXJuIHBsYWluVG9DbGFzcyhWZWhpY2xlTG9nYm9vaywgdXBkYXRlZFZlaGljbGVMb2dib29rKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZShsb2dib29rOiBWZWhpY2xlTG9nYm9vaywgdmVoaWNsZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS92ZWhpY2xlcy8ke3ZlaGljbGVJZH0vbG9nYm9va3MvJHtsb2dib29rLmlkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9MT0dCT09LX0RFTEVURUQsIHtsb2dib29rLCB2ZWhpY2xlSWR9KSk7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2VzcyhNZXNzYWdlc0VudW0uVkVISUNMRV9MT0dCT09LX0RFTEVURUQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC92ZWhpY2xlL3ZlaGljbGUtbG9nYm9vay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFbkQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsV0FBK0M7SUFIMUY7O1FBSUUsUUFBRyxHQUFXLG1CQUFtQixDQUFDO1FBQ2xDLGVBQVUsR0FBMEIsY0FBYyxDQUFDO0tBQ3BEOzttSEFIWSxxQkFBcUI7dUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWZWhpY2xlTG9nYm9vayBhcyBWZWhpY2xlTG9nYm9va0Jhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMvdmVoaWNsZS92ZWhpY2xlLWxvZ2Jvb2snO1xuaW1wb3J0IHsgVmVoaWNsZUxvZ2Jvb2sgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5cbi8qKlxuICogVmVoaWNsZSBsb2dib29rIHNlcnZpY2UuIEFsbG93cyB1c2VyIHRvIGFkZCwgdXBkYXRlIG9yIGRlbGV0ZSB2ZWhpY2xlIHRyaXBzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFZlaGljbGVMb2dib29rU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFZlaGljbGVMb2dib29rQmFzZSwgVmVoaWNsZUxvZ2Jvb2s+IHtcbiAgdXJsOiBzdHJpbmcgPSAndmVoaWNsZXMvbG9nYm9va3MnO1xuICBtb2RlbENsYXNzOiB0eXBlb2YgVmVoaWNsZUxvZ2Jvb2sgPSBWZWhpY2xlTG9nYm9vaztcbn1cbiJdfQ==
|
|
@@ -1,65 +1,15 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Vehicle } from '../../../models
|
|
2
|
+
import { Vehicle } from '../../../models';
|
|
3
3
|
import { RestService } from '../rest/rest.service';
|
|
4
|
-
import { AppEventTypeEnum } from '../../../models/event/app-event-type.enum';
|
|
5
|
-
import { replace } from '../../../functions/array';
|
|
6
|
-
import cloneDeep from 'lodash/cloneDeep';
|
|
7
|
-
import { MessagesEnum } from './messages.enum';
|
|
8
4
|
import * as i0 from "@angular/core";
|
|
9
5
|
/**
|
|
10
6
|
* Service that allows to work with WorkTank operations
|
|
11
|
-
* @TODO separate vehicles and logbooks to different api
|
|
12
7
|
*/
|
|
13
8
|
export class VehicleService extends RestService {
|
|
14
9
|
constructor() {
|
|
15
10
|
super(...arguments);
|
|
16
11
|
this.url = 'vehicles';
|
|
17
12
|
this.modelClass = Vehicle;
|
|
18
|
-
this.messageCreated = MessagesEnum.VEHICLE_CREATED;
|
|
19
|
-
this.messageUpdated = MessagesEnum.VEHICLE_UPDATED;
|
|
20
|
-
this.messageDeleted = MessagesEnum.VEHICLE_DELETED;
|
|
21
|
-
}
|
|
22
|
-
listenEvents() {
|
|
23
|
-
this.listenLogbookAdded();
|
|
24
|
-
this.listenLogbookUpdated();
|
|
25
|
-
this.listenLogbookDeleted();
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Add a new logbook items to the vehicle when a new one created
|
|
29
|
-
*/
|
|
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
|
-
});
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Replace vehicle's logbook with updated instance when logbook item updated
|
|
41
|
-
*/
|
|
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
|
-
});
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Remove logbook item from vehicle when logbook deleted
|
|
53
|
-
*/
|
|
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
|
-
});
|
|
63
13
|
}
|
|
64
14
|
}
|
|
65
15
|
VehicleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VehicleService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -70,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
70
20
|
providedIn: 'root'
|
|
71
21
|
}]
|
|
72
22
|
}] });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdmVoaWNsZS92ZWhpY2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUVuRDs7R0FFRztBQUlILE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBaUM7SUFIckU7O1FBSUUsUUFBRyxHQUFXLFVBQVUsQ0FBQztRQUN6QixlQUFVLEdBQW1CLE9BQU8sQ0FBQztLQUN0Qzs7NEdBSFksY0FBYztnSEFBZCxjQUFjLGNBRmIsTUFBTTs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZlaGljbGUgYXMgVmVoaWNsZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMvdmVoaWNsZS92ZWhpY2xlJztcbmltcG9ydCB7IFZlaGljbGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5cbi8qKlxuICogU2VydmljZSB0aGF0IGFsbG93cyB0byB3b3JrIHdpdGggV29ya1Rhbmsgb3BlcmF0aW9uc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBWZWhpY2xlU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFZlaGljbGVCYXNlLCBWZWhpY2xlPiB7XG4gIHVybDogc3RyaW5nID0gJ3ZlaGljbGVzJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIFZlaGljbGUgPSBWZWhpY2xlO1xufVxuIl19
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './http';
|
|
2
|
-
|
|
2
|
+
export * from './vehicle';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2h0dHAnO1xuZXhwb3J0ICogZnJvbSAnLi92ZWhpY2xlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './logbook-best-period.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvdmVoaWNsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sb2dib29rLWJlc3QtcGVyaW9kLnNlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { combineLatest, ReplaySubject } from 'rxjs';
|
|
3
|
+
import { map, skip } from 'rxjs/operators';
|
|
4
|
+
import { VehicleLogbookCollection } from '../../collections';
|
|
5
|
+
import { AppEvent } from '../../models/event/app-event';
|
|
6
|
+
import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
|
|
7
|
+
import isEqual from 'lodash/isEqual';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../http";
|
|
10
|
+
import * as i2 from "../event/event-dispatcher.service";
|
|
11
|
+
/**
|
|
12
|
+
* Service for logbook best period calculation
|
|
13
|
+
* @TODO Vik: improve structure for such cases (TT-2043)
|
|
14
|
+
* @TODO Vik: Best period move this and related logic to backend
|
|
15
|
+
*/
|
|
16
|
+
export class LogbookBestPeriodService {
|
|
17
|
+
constructor(vehicleClaimDetailsService, vehicleClaimService, vehicleLogbookService, eventDispatcherService) {
|
|
18
|
+
this.vehicleClaimDetailsService = vehicleClaimDetailsService;
|
|
19
|
+
this.vehicleClaimService = vehicleClaimService;
|
|
20
|
+
this.vehicleLogbookService = vehicleLogbookService;
|
|
21
|
+
this.eventDispatcherService = eventDispatcherService;
|
|
22
|
+
this.cacheSubject = new ReplaySubject();
|
|
23
|
+
this.listenEvents();
|
|
24
|
+
}
|
|
25
|
+
listenEvents() {
|
|
26
|
+
this.listenCacheUpdates();
|
|
27
|
+
}
|
|
28
|
+
get() {
|
|
29
|
+
if (!this.cache) {
|
|
30
|
+
combineLatest([
|
|
31
|
+
this.vehicleClaimDetailsService.get(),
|
|
32
|
+
this.vehicleLogbookService.get().pipe(map((logbooks) => new VehicleLogbookCollection(logbooks)))
|
|
33
|
+
])
|
|
34
|
+
.subscribe(([details, logbooks]) => {
|
|
35
|
+
let period;
|
|
36
|
+
// calculate current initial best period
|
|
37
|
+
if ((details === null || details === void 0 ? void 0 : details.isManual) || !(details === null || details === void 0 ? void 0 : details.isLogbookMethod()) || !logbooks.isBestPeriodExist()) {
|
|
38
|
+
period = null;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
period = logbooks.getBestPeriod();
|
|
42
|
+
}
|
|
43
|
+
// update cache only when best period changed
|
|
44
|
+
if (!isEqual(this.cache, period)) {
|
|
45
|
+
this.cache = period;
|
|
46
|
+
this.cacheSubject.next(this.cache);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return this.cacheSubject.asObservable();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Dispatch event when logbook best period changed
|
|
54
|
+
*/
|
|
55
|
+
listenCacheUpdates() {
|
|
56
|
+
// Skip initial calculation and fire event only when subject changed
|
|
57
|
+
this.cacheSubject
|
|
58
|
+
.pipe(skip(1))
|
|
59
|
+
.subscribe((period) => {
|
|
60
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED, period));
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
LogbookBestPeriodService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LogbookBestPeriodService, deps: [{ token: i1.VehicleClaimDetailsService }, { token: i1.VehicleClaimService }, { token: i1.VehicleLogbookService }, { token: i2.EventDispatcherService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
65
|
+
LogbookBestPeriodService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LogbookBestPeriodService, providedIn: 'root' });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LogbookBestPeriodService, decorators: [{
|
|
67
|
+
type: Injectable,
|
|
68
|
+
args: [{
|
|
69
|
+
providedIn: 'root'
|
|
70
|
+
}]
|
|
71
|
+
}], ctorParameters: function () { return [{ type: i1.VehicleClaimDetailsService }, { type: i1.VehicleClaimService }, { type: i1.VehicleLogbookService }, { type: i2.EventDispatcherService }]; } });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nYm9vay1iZXN0LXBlcmlvZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL3ZlaGljbGUvbG9nYm9vay1iZXN0LXBlcmlvZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUs3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFckM7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyx3QkFBd0I7SUFJbkMsWUFDVSwwQkFBc0QsRUFDdEQsbUJBQXdDLEVBQ3hDLHFCQUE0QyxFQUM1QyxzQkFBOEM7UUFIOUMsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQUN0RCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQU54RCxpQkFBWSxHQUFpQyxJQUFJLGFBQWEsRUFBaUIsQ0FBQztRQVE5RSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsR0FBRztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsYUFBYSxDQUFDO2dCQUNaLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBMEIsRUFBRSxFQUFFLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQ25ILENBQUM7aUJBQ0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtnQkFDakMsSUFBSSxNQUFxQixDQUFDO2dCQUUxQix3Q0FBd0M7Z0JBQ3hDLElBQUksQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxLQUFJLENBQUMsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZUFBZSxFQUFFLENBQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO29CQUNyRixNQUFNLEdBQUcsSUFBSSxDQUFDO2lCQUNmO3FCQUFNO29CQUNMLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ25DO2dCQUVELDZDQUE2QztnQkFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNwQztZQUNILENBQUMsQ0FBQyxDQUFBO1NBQ0w7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCO1FBQ3hCLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsWUFBWTthQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsQ0FBQyxNQUFxQixFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxtQ0FBbUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ2xILENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzs7c0hBdERVLHdCQUF3QjswSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2tpcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IFZlaGljbGVDbGFpbURldGFpbHNTZXJ2aWNlLCBWZWhpY2xlTG9nYm9va1NlcnZpY2UsIFZlaGljbGVDbGFpbVNlcnZpY2UgfSBmcm9tICcuLi9odHRwJztcbmltcG9ydCB7IFZlaGljbGVMb2dib29rLCBMb2dib29rUGVyaW9kIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBsb2dib29rIGJlc3QgcGVyaW9kIGNhbGN1bGF0aW9uXG4gKiBAVE9ETyBWaWs6IGltcHJvdmUgc3RydWN0dXJlIGZvciBzdWNoIGNhc2VzIChUVC0yMDQzKVxuICogQFRPRE8gVmlrOiBCZXN0IHBlcmlvZCBtb3ZlIHRoaXMgYW5kIHJlbGF0ZWQgbG9naWMgdG8gYmFja2VuZFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMb2dib29rQmVzdFBlcmlvZFNlcnZpY2UgaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIGNhY2hlOiBMb2dib29rUGVyaW9kO1xuICBjYWNoZVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8TG9nYm9va1BlcmlvZD4gPSBuZXcgUmVwbGF5U3ViamVjdDxMb2dib29rUGVyaW9kPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdmVoaWNsZUNsYWltRGV0YWlsc1NlcnZpY2U6IFZlaGljbGVDbGFpbURldGFpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmVoaWNsZUNsYWltU2VydmljZTogVmVoaWNsZUNsYWltU2VydmljZSxcbiAgICBwcml2YXRlIHZlaGljbGVMb2dib29rU2VydmljZTogVmVoaWNsZUxvZ2Jvb2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZVxuICApIHtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuQ2FjaGVVcGRhdGVzKCk7XG4gIH1cblxuICBnZXQoKTogT2JzZXJ2YWJsZTxMb2dib29rUGVyaW9kPiB7XG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy52ZWhpY2xlQ2xhaW1EZXRhaWxzU2VydmljZS5nZXQoKSxcbiAgICAgICAgdGhpcy52ZWhpY2xlTG9nYm9va1NlcnZpY2UuZ2V0KCkucGlwZShtYXAoKGxvZ2Jvb2tzOiBWZWhpY2xlTG9nYm9va1tdKSA9PiBuZXcgVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKGxvZ2Jvb2tzKSkpXG4gICAgICBdKVxuICAgICAgICAuc3Vic2NyaWJlKChbZGV0YWlscywgbG9nYm9va3NdKSA9PiB7XG4gICAgICAgICAgbGV0IHBlcmlvZDogTG9nYm9va1BlcmlvZDtcblxuICAgICAgICAgIC8vIGNhbGN1bGF0ZSBjdXJyZW50IGluaXRpYWwgYmVzdCBwZXJpb2RcbiAgICAgICAgICBpZiAoZGV0YWlscz8uaXNNYW51YWwgfHwgIWRldGFpbHM/LmlzTG9nYm9va01ldGhvZCgpIHx8ICFsb2dib29rcy5pc0Jlc3RQZXJpb2RFeGlzdCgpKSB7XG4gICAgICAgICAgICBwZXJpb2QgPSBudWxsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZXJpb2QgPSBsb2dib29rcy5nZXRCZXN0UGVyaW9kKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gdXBkYXRlIGNhY2hlIG9ubHkgd2hlbiBiZXN0IHBlcmlvZCBjaGFuZ2VkXG4gICAgICAgICAgaWYgKCFpc0VxdWFsKHRoaXMuY2FjaGUsIHBlcmlvZCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUgPSBwZXJpb2Q7XG4gICAgICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGF0Y2ggZXZlbnQgd2hlbiBsb2dib29rIGJlc3QgcGVyaW9kIGNoYW5nZWRcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuQ2FjaGVVcGRhdGVzKCkge1xuICAgIC8vIFNraXAgaW5pdGlhbCBjYWxjdWxhdGlvbiBhbmQgZmlyZSBldmVudCBvbmx5IHdoZW4gc3ViamVjdCBjaGFuZ2VkXG4gICAgdGhpcy5jYWNoZVN1YmplY3RcbiAgICAgIC5waXBlKHNraXAoMSkpXG4gICAgICAuc3Vic2NyaWJlKChwZXJpb2Q6IExvZ2Jvb2tQZXJpb2QpID0+IHtcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfTE9HQk9PS19CRVNUX1BFUklPRF9VUERBVEVELCBwZXJpb2QpKVxuICAgICAgfSlcbiAgfVxufVxuIl19
|
|
@@ -3,4 +3,6 @@ export * from './autocomplete.validator';
|
|
|
3
3
|
export * from './conditional.validator';
|
|
4
4
|
export * from './password.validator';
|
|
5
5
|
export * from './password-match.validator';
|
|
6
|
-
|
|
6
|
+
export * from './min-date/min-date.validator';
|
|
7
|
+
export * from './fields-sum.validator';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdC1sZWFzdC1vbmUudmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbmRpdGlvbmFsLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3Bhc3N3b3JkLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3Bhc3N3b3JkLW1hdGNoLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL21pbi1kYXRlL21pbi1kYXRlLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkcy1zdW0udmFsaWRhdG9yJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export var MessagesEnum;
|
|
2
|
+
(function (MessagesEnum) {
|
|
3
|
+
MessagesEnum["INVALID_DATE"] = "The date should not be before $1";
|
|
4
|
+
})(MessagesEnum || (MessagesEnum = {}));
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi92YWxpZGF0b3JzL21pbi1kYXRlL21lc3NhZ2VzLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksWUFFWDtBQUZELFdBQVksWUFBWTtJQUN0QixpRUFBaUQsQ0FBQTtBQUNuRCxDQUFDLEVBRlcsWUFBWSxLQUFaLFlBQVksUUFFdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBNZXNzYWdlc0VudW0ge1xuICBJTlZBTElEX0RBVEUgPSBgVGhlIGRhdGUgc2hvdWxkIG5vdCBiZSBiZWZvcmUgJDFgXG59XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { MessagesEnum } from './messages.enum';
|
|
2
|
+
import { DatePipe } from '@angular/common';
|
|
3
|
+
/**
|
|
4
|
+
* Validation function, that checks If date form value is more than provided date
|
|
5
|
+
*/
|
|
6
|
+
export function minDateValidator(date, message = MessagesEnum.INVALID_DATE.replace('$1', new DatePipe('en-US').transform(date))) {
|
|
7
|
+
return (control) => {
|
|
8
|
+
if (!control.value || (control.value >= date)) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return { minDate: message };
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLWRhdGUudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvbWluLWRhdGUvbWluLWRhdGUudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0M7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLElBQVUsRUFDVixVQUFrQixZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWhHLE9BQU8sQ0FBQyxPQUF3QixFQUFvQixFQUFFO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsRUFBRTtZQUM3QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQztJQUM1QixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1lc3NhZ2VzRW51bSB9IGZyb20gJy4vbWVzc2FnZXMuZW51bSc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogVmFsaWRhdGlvbiBmdW5jdGlvbiwgdGhhdCBjaGVja3MgSWYgZGF0ZSBmb3JtIHZhbHVlIGlzIG1vcmUgdGhhbiBwcm92aWRlZCBkYXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaW5EYXRlVmFsaWRhdG9yKFxuICBkYXRlOiBEYXRlLFxuICBtZXNzYWdlOiBzdHJpbmcgPSBNZXNzYWdlc0VudW0uSU5WQUxJRF9EQVRFLnJlcGxhY2UoJyQxJywgbmV3IERhdGVQaXBlKCdlbi1VUycpLnRyYW5zZm9ybShkYXRlKSlcbik6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzID0+IHtcbiAgICBpZiAoIWNvbnRyb2wudmFsdWUgfHwgKGNvbnRyb2wudmFsdWUgPj0gZGF0ZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7bWluRGF0ZTogbWVzc2FnZX07XG4gIH07XG59XG4iXX0=
|