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.
Files changed (161) hide show
  1. package/bundles/taxtank-core.umd.js +3067 -2561
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/client-invite.collection.js +1 -4
  4. package/esm2015/lib/collections/depreciation.collection.js +11 -1
  5. package/esm2015/lib/collections/index.js +3 -0
  6. package/esm2015/lib/collections/loan/loan-payment.collection.js +14 -1
  7. package/esm2015/lib/collections/loan/loan.collection.js +11 -1
  8. package/esm2015/lib/collections/report/vehicle-expense/vehicle-expense.collection.js +1 -1
  9. package/esm2015/lib/collections/transaction/transaction.collection.js +20 -1
  10. package/esm2015/lib/collections/vehicle/index.js +3 -0
  11. package/esm2015/lib/collections/vehicle/vehicle-claim.collection.js +27 -0
  12. package/esm2015/lib/collections/vehicle/vehicle-logbook.collection.js +106 -0
  13. package/esm2015/lib/db/Enums/bank-account-type.enum.js +3 -2
  14. package/esm2015/lib/db/Enums/vehicle-claim-details-method.enum.js +6 -0
  15. package/esm2015/lib/db/Models/sole/sole-business.js +1 -1
  16. package/esm2015/lib/db/Models/sole/sole-invoice-template.js +1 -1
  17. package/esm2015/lib/db/Models/transaction/transaction-base.js +15 -2
  18. package/esm2015/lib/db/Models/vehicle/vehicle-claim-details.js +4 -0
  19. package/esm2015/lib/db/Models/vehicle/vehicle-claim.js +1 -1
  20. package/esm2015/lib/db/Models/vehicle/vehicle-logbook.js +1 -1
  21. package/esm2015/lib/db/Models/vehicle/vehicle.js +1 -1
  22. package/esm2015/lib/forms/abstract.form.js +23 -1
  23. package/esm2015/lib/forms/bank/bank-account/bank-account-add-manual.form.js +8 -5
  24. package/esm2015/lib/forms/bank/bank-account/bank-account-allocation.form.js +16 -9
  25. package/esm2015/lib/forms/bank/bank-account/bank-account-import.form.js +8 -3
  26. package/esm2015/lib/forms/index.js +3 -4
  27. package/esm2015/lib/forms/loan/index.js +2 -0
  28. package/esm2015/lib/forms/loan/loan.form.js +86 -0
  29. package/esm2015/lib/forms/report/my-tax/my-tax-deductions.form.js +2 -2
  30. package/esm2015/lib/forms/sole/index.js +3 -1
  31. package/esm2015/lib/forms/sole/sole-business-allocations.form.js +65 -0
  32. package/esm2015/lib/forms/sole/sole-invoice-template.form.js +13 -0
  33. package/esm2015/lib/forms/vehicle/index.js +5 -0
  34. package/esm2015/lib/forms/vehicle/vehicle-claim-details.form.js +21 -0
  35. package/esm2015/lib/forms/vehicle/vehicle-claim.form.js +12 -102
  36. package/esm2015/lib/forms/vehicle/vehicle-logbook.form.js +56 -0
  37. package/esm2015/lib/forms/vehicle/vehicle.form.js +5 -2
  38. package/esm2015/lib/models/bank/bank-account-types.const.js +1 -2
  39. package/esm2015/lib/models/bank/bank-account.js +10 -5
  40. package/esm2015/lib/models/bank/type-loan.const.js +1 -2
  41. package/esm2015/lib/models/endpoint/endpoints.const.js +13 -4
  42. package/esm2015/lib/models/event/app-event-type.enum.js +7 -4
  43. package/esm2015/lib/models/index.js +2 -1
  44. package/esm2015/lib/models/loan/loan.js +36 -2
  45. package/esm2015/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.js +5 -5
  46. package/esm2015/lib/models/sole/sole-business.js +2 -2
  47. package/esm2015/lib/models/sole/sole-invoice-template.js +5 -2
  48. package/esm2015/lib/models/vehicle/index.js +6 -0
  49. package/esm2015/lib/models/vehicle/logbook-period.js +23 -0
  50. package/esm2015/lib/models/vehicle/vehicle-claim-details.js +26 -0
  51. package/esm2015/lib/models/vehicle/vehicle-claim.js +64 -0
  52. package/esm2015/lib/models/vehicle/vehicle-logbook.js +32 -0
  53. package/esm2015/lib/models/vehicle/vehicle.js +10 -0
  54. package/esm2015/lib/services/http/depreciation/depreciation.service.js +10 -5
  55. package/esm2015/lib/services/http/firm/client-invite/client-invite.service.js +15 -1
  56. package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +13 -10
  57. package/esm2015/lib/services/http/index.js +2 -1
  58. package/esm2015/lib/services/http/sole/index.js +2 -1
  59. package/esm2015/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.js +21 -0
  60. package/esm2015/lib/services/http/tax-review/tax-review.service.js +11 -3
  61. package/esm2015/lib/services/http/transaction/transaction.service.js +12 -1
  62. package/esm2015/lib/services/http/vehicle/index.js +5 -0
  63. package/esm2015/lib/services/http/vehicle/vehicle-claim-details.service.js +91 -0
  64. package/esm2015/lib/services/http/vehicle/vehicle-claim.service.js +65 -6
  65. package/esm2015/lib/services/http/vehicle/vehicle-logbook.service.js +11 -47
  66. package/esm2015/lib/services/http/vehicle/vehicle.service.js +2 -52
  67. package/esm2015/lib/services/index.js +2 -1
  68. package/esm2015/lib/services/vehicle/index.js +2 -0
  69. package/esm2015/lib/services/vehicle/logbook-best-period.service.js +72 -0
  70. package/esm2015/lib/validators/index.js +3 -1
  71. package/esm2015/lib/validators/min-date/messages.enum.js +5 -0
  72. package/esm2015/lib/validators/min-date/min-date.validator.js +14 -0
  73. package/esm2015/public-api.js +3 -14
  74. package/fesm2015/taxtank-core.js +2253 -1814
  75. package/fesm2015/taxtank-core.js.map +1 -1
  76. package/lib/collections/client-invite.collection.d.ts +0 -3
  77. package/lib/collections/depreciation.collection.d.ts +6 -1
  78. package/lib/collections/index.d.ts +1 -0
  79. package/lib/collections/loan/loan-payment.collection.d.ts +4 -0
  80. package/lib/collections/loan/loan.collection.d.ts +6 -0
  81. package/lib/collections/report/vehicle-expense/vehicle-expense.collection.d.ts +1 -1
  82. package/lib/collections/transaction/transaction.collection.d.ts +9 -0
  83. package/lib/collections/vehicle/index.d.ts +2 -0
  84. package/lib/collections/vehicle/vehicle-claim.collection.d.ts +14 -0
  85. package/lib/collections/vehicle/vehicle-logbook.collection.d.ts +38 -0
  86. package/lib/db/Enums/bank-account-type.enum.d.ts +0 -1
  87. package/lib/db/Enums/vehicle-claim-details-method.enum.d.ts +4 -0
  88. package/lib/db/Models/sole/sole-business.d.ts +2 -0
  89. package/lib/db/Models/sole/sole-invoice-template.d.ts +1 -0
  90. package/lib/db/Models/transaction/transaction-base.d.ts +2 -0
  91. package/lib/db/Models/vehicle/vehicle-claim-details.d.ts +10 -0
  92. package/lib/db/Models/vehicle/vehicle-claim.d.ts +3 -5
  93. package/lib/db/Models/vehicle/vehicle-logbook.d.ts +3 -2
  94. package/lib/forms/abstract.form.d.ts +12 -0
  95. package/lib/forms/index.d.ts +2 -3
  96. package/lib/forms/loan/index.d.ts +1 -0
  97. package/lib/forms/loan/loan.form.d.ts +25 -0
  98. package/lib/forms/sole/index.d.ts +2 -0
  99. package/lib/forms/sole/sole-business-allocations.form.d.ts +17 -0
  100. package/lib/forms/sole/sole-invoice-template.form.d.ts +5 -0
  101. package/lib/forms/vehicle/index.d.ts +4 -0
  102. package/lib/forms/vehicle/vehicle-claim-details.form.d.ts +13 -0
  103. package/lib/forms/vehicle/vehicle-claim.form.d.ts +8 -38
  104. package/lib/forms/vehicle/vehicle-logbook.form.d.ts +20 -0
  105. package/lib/forms/vehicle/vehicle.form.d.ts +4 -1
  106. package/lib/models/bank/bank-account.d.ts +3 -2
  107. package/lib/models/event/app-event-type.enum.d.ts +6 -3
  108. package/lib/models/index.d.ts +1 -0
  109. package/lib/models/loan/loan.d.ts +26 -0
  110. package/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.d.ts +3 -2
  111. package/lib/models/sole/sole-business.d.ts +1 -1
  112. package/lib/models/sole/sole-invoice-template.d.ts +1 -0
  113. package/lib/models/vehicle/index.d.ts +5 -0
  114. package/lib/models/vehicle/logbook-period.d.ts +15 -0
  115. package/lib/models/vehicle/vehicle-claim-details.d.ts +8 -0
  116. package/lib/models/{logbook → vehicle}/vehicle-claim.d.ts +11 -17
  117. package/lib/models/vehicle/vehicle-logbook.d.ts +17 -0
  118. package/lib/models/{logbook → vehicle}/vehicle.d.ts +0 -5
  119. package/lib/services/http/depreciation/depreciation.service.d.ts +1 -1
  120. package/lib/services/http/firm/client-invite/client-invite.service.d.ts +7 -1
  121. package/lib/services/http/firm/client-movement/client-movement.service.d.ts +2 -4
  122. package/lib/services/http/index.d.ts +1 -0
  123. package/lib/services/http/sole/index.d.ts +1 -0
  124. package/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.d.ts +11 -0
  125. package/lib/services/http/tax-review/tax-review.service.d.ts +1 -0
  126. package/lib/services/http/transaction/transaction.service.d.ts +1 -0
  127. package/lib/services/http/vehicle/index.d.ts +4 -0
  128. package/lib/services/http/vehicle/vehicle-claim-details.service.d.ts +34 -0
  129. package/lib/services/http/vehicle/vehicle-claim.service.d.ts +22 -5
  130. package/lib/services/http/vehicle/vehicle-logbook.service.d.ts +6 -15
  131. package/lib/services/http/vehicle/vehicle.service.d.ts +2 -20
  132. package/lib/services/index.d.ts +1 -0
  133. package/lib/services/vehicle/index.d.ts +1 -0
  134. package/lib/services/vehicle/logbook-best-period.service.d.ts +28 -0
  135. package/lib/validators/index.d.ts +2 -0
  136. package/lib/validators/min-date/messages.enum.d.ts +3 -0
  137. package/lib/validators/min-date/min-date.validator.d.ts +5 -0
  138. package/package.json +1 -1
  139. package/public-api.d.ts +2 -13
  140. package/esm2015/lib/collections/vehicle-logbook.collection.js +0 -88
  141. package/esm2015/lib/collections/vehicle.collection.js +0 -9
  142. package/esm2015/lib/db/Enums/vehicle-claim-method.enum.js +0 -6
  143. package/esm2015/lib/forms/bank/bank-account/bank-account-loan.form.js +0 -23
  144. package/esm2015/lib/models/logbook/default-vehicle-expense.js +0 -20
  145. package/esm2015/lib/models/logbook/logbook-period.js +0 -18
  146. package/esm2015/lib/models/logbook/logbook-purpose-options.const.js +0 -6
  147. package/esm2015/lib/models/logbook/vehicle-claim.js +0 -94
  148. package/esm2015/lib/models/logbook/vehicle-logbook.js +0 -22
  149. package/esm2015/lib/models/logbook/vehicle.js +0 -17
  150. package/esm2015/lib/services/http/user/users-invite/users-invite.service.js +0 -23
  151. package/esm2015/lib/services/http/vehicle/messages.enum.js +0 -13
  152. package/lib/collections/vehicle-logbook.collection.d.ts +0 -30
  153. package/lib/collections/vehicle.collection.d.ts +0 -6
  154. package/lib/db/Enums/vehicle-claim-method.enum.d.ts +0 -4
  155. package/lib/forms/bank/bank-account/bank-account-loan.form.d.ts +0 -8
  156. package/lib/models/logbook/default-vehicle-expense.d.ts +0 -5
  157. package/lib/models/logbook/logbook-period.d.ts +0 -10
  158. package/lib/models/logbook/logbook-purpose-options.const.d.ts +0 -4
  159. package/lib/models/logbook/vehicle-logbook.d.ts +0 -12
  160. package/lib/services/http/user/users-invite/users-invite.service.d.ts +0 -13
  161. package/lib/services/http/vehicle/messages.enum.d.ts +0 -11
@@ -0,0 +1,8 @@
1
+ import { VehicleClaimDetails as VehicleClaimDetailsBase } from '../../db/Models/vehicle/vehicle-claim-details';
2
+ import { User } from '../user/user';
3
+ export declare class VehicleClaimDetails extends VehicleClaimDetailsBase {
4
+ user: User;
5
+ isLogbookMethod(): boolean;
6
+ isKlmsMethod(): boolean;
7
+ static create(): VehicleClaimDetails;
8
+ }
@@ -1,21 +1,19 @@
1
1
  import { VehicleClaim as VehicleClaimBase } from '../../db/Models/vehicle/vehicle-claim';
2
- import { VehicleClaimMethodEnum } from '../../db/Enums/vehicle-claim-method.enum';
3
2
  import { TankTypeEnum } from '../../db/Enums/tank-type.enum';
4
- import { Transaction } from '../transaction/transaction';
5
3
  import { TransactionCollection } from '../../collections/transaction/transaction.collection';
4
+ import { VehicleClaimDetails } from './vehicle-claim-details';
5
+ import { SoleBusiness } from '../sole';
6
6
  export declare class VehicleClaim extends VehicleClaimBase {
7
- kmsLimit: number;
8
- financialYear: number;
9
- method: VehicleClaimMethodEnum;
10
- kilometers: number;
11
- workUsage: number;
12
- isManual: boolean;
13
7
  /**
14
- * get amount of kilometres per week
8
+ * limit for kms claim method
15
9
  */
16
- get averageWeeklyTraveledKms(): number;
17
- isLogbookMethod(): boolean;
18
- isKLMsMethod(): boolean;
10
+ static totalKmsLimit: number;
11
+ /**
12
+ * limit for work usage claim method
13
+ */
14
+ static totalWorkUsagePercent: number;
15
+ details: VehicleClaimDetails;
16
+ business: SoleBusiness;
19
17
  isWorkTank(): boolean;
20
18
  isSoleTank(): boolean;
21
19
  get tankType(): TankTypeEnum;
@@ -28,10 +26,6 @@ export declare class VehicleClaim extends VehicleClaimBase {
28
26
  * ClaimAmount = WorkUsage * transaction/depreciation amount
29
27
  */
30
28
  getLogbookClaimAmount(transactions: TransactionCollection): number;
31
- /**
32
- * Create KLMs transaction based on vehicle claim and vehicle claim rate
33
- * @TODO handle on backend: Create klms transaction when vhicle claim created
34
- */
35
- toTransaction(vehicleClaimRate: number): Transaction;
36
29
  getKlmsChartAccountsIdByTankType(tankType?: TankTypeEnum): number;
30
+ static create(details: VehicleClaimDetails, business?: SoleBusiness): VehicleClaim;
37
31
  }
@@ -0,0 +1,17 @@
1
+ import { VehicleLogbook as VehicleLogbookBase } from '../../db/Models/vehicle/vehicle-logbook';
2
+ import { SoleBusiness } from '../sole';
3
+ import { TankTypeEnum } from '../../db/Enums/tank-type.enum';
4
+ export declare class VehicleLogbook extends VehicleLogbookBase {
5
+ /**
6
+ * 12 weeks in milliseconds
7
+ * "To work out your business-use percentage, you need to keep a logbook and the odometer readings for the logbook period.
8
+ * The logbook period is a minimum continuous period of 12 weeks." © Nicole Kelly
9
+ */
10
+ static periodDuration: number;
11
+ date: Date;
12
+ business: SoleBusiness;
13
+ get kilometers(): number;
14
+ get tankType(): TankTypeEnum;
15
+ isWorkTank(): boolean;
16
+ isSoleTank(): boolean;
17
+ }
@@ -1,10 +1,5 @@
1
1
  import { Vehicle as VehicleBase } from '../../db/Models/vehicle/vehicle';
2
2
  import { VehicleLogbook } from './vehicle-logbook';
3
- import { VehicleLogbookCollection } from '../../collections/vehicle-logbook.collection';
4
3
  export declare class Vehicle extends VehicleBase {
5
4
  logbook: VehicleLogbook[];
6
- /**
7
- * Get vehicle's logbooks as collection
8
- */
9
- getLogbooks(): VehicleLogbookCollection;
10
5
  }
@@ -38,7 +38,7 @@ export declare class DepreciationService extends RestService<DepreciationBase, D
38
38
  /**
39
39
  * Listen to EventDispatcherService event related to updated vehicle claim
40
40
  */
41
- private listenToVehicleClaim;
41
+ private listenVehicleClaimChanges;
42
42
  static ɵfac: i0.ɵɵFactoryDeclaration<DepreciationService, never>;
43
43
  static ɵprov: i0.ɵɵInjectableDeclaration<DepreciationService>;
44
44
  }
@@ -2,10 +2,12 @@ import { Observable } from 'rxjs';
2
2
  import { ClientInvite as ClientInviteBase } from '../../../../db/Models/firm/client-invite';
3
3
  import { RestService } from '../../rest/rest.service';
4
4
  import { ClientInvite } from '../../../../models/client/client-invite';
5
+ import { IEventListener } from "../../../../interfaces/event-listener.interface";
5
6
  import * as i0 from "@angular/core";
6
- export declare class ClientInviteService extends RestService<ClientInviteBase, ClientInvite> {
7
+ export declare class ClientInviteService extends RestService<ClientInviteBase, ClientInvite> implements IEventListener {
7
8
  url: string;
8
9
  modelClass: typeof ClientInvite;
10
+ listenEvents(): void;
9
11
  /**
10
12
  * Import employees for firm from CSV file
11
13
  * @param file
@@ -31,6 +33,10 @@ export declare class ClientInviteService extends RestService<ClientInviteBase, C
31
33
  * @param invite
32
34
  */
33
35
  inviteFirmByUser(invite: ClientInvite): Observable<ClientInvite>;
36
+ /**
37
+ * Reset cache on client/firm invite events
38
+ */
39
+ listenNotifications(): void;
34
40
  static ɵfac: i0.ɵɵFactoryDeclaration<ClientInviteService, never>;
35
41
  static ɵprov: i0.ɵɵInjectableDeclaration<ClientInviteService>;
36
42
  }
@@ -10,6 +10,7 @@ export declare class ClientMovementService extends RestService<ClientMovementBas
10
10
  modelClass: typeof ClientMovement;
11
11
  url: string;
12
12
  isHydra: boolean;
13
+ listenEvents(): void;
13
14
  /**
14
15
  * @TODO BaseRestService should return collection
15
16
  */
@@ -22,10 +23,7 @@ export declare class ClientMovementService extends RestService<ClientMovementBas
22
23
  * Reject current firm
23
24
  */
24
25
  close(clientMovement: ClientMovement): Observable<void>;
25
- /**
26
- * Listen Event Dispatcher service
27
- */
28
- listenEvents(): void;
26
+ private listenNotifications;
29
27
  /**
30
28
  * Listen to EventDispatcherService event related to clients invitations
31
29
  */
@@ -1 +1,2 @@
1
1
  export * from './sole';
2
+ export * from './vehicle';
@@ -1,3 +1,4 @@
1
1
  export * from './sole-business/sole-business.service';
2
2
  export * from './sole-contact/sole-contact.service';
3
3
  export * from './sole-details/sole-details.service';
4
+ export * from './sole-invoice-template/sole-invoice-template.service';
@@ -0,0 +1,11 @@
1
+ import { RestService } from '../../rest/rest.service';
2
+ import { SoleInvoiceTemplate as SoleInvoiceTemplateBase } from '../../../../db/Models/sole/sole-invoice-template';
3
+ import { SoleInvoiceTemplate } from '../../../../models';
4
+ import * as i0 from "@angular/core";
5
+ export declare class SoleInvoiceTemplateService extends RestService<SoleInvoiceTemplateBase, SoleInvoiceTemplate> {
6
+ modelClass: typeof SoleInvoiceTemplate;
7
+ url: string;
8
+ isHydra: boolean;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<SoleInvoiceTemplateService, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<SoleInvoiceTemplateService>;
11
+ }
@@ -33,6 +33,7 @@ export declare class TaxReviewService extends RestService<TaxReviewBase, TaxRevi
33
33
  * @private
34
34
  */
35
35
  private listenClientTransfer;
36
+ private listenNotifications;
36
37
  static ɵfac: i0.ɵɵFactoryDeclaration<TaxReviewService, never>;
37
38
  static ɵprov: i0.ɵɵInjectableDeclaration<TaxReviewService>;
38
39
  }
@@ -92,6 +92,7 @@ export declare class TransactionService extends RestService<TransactionBase, Tra
92
92
  private listenPropertyShareUpdate;
93
93
  private listenReceiptAdded;
94
94
  private listenReceiptDeleted;
95
+ private listenVehicleClaimChanges;
95
96
  static ɵfac: i0.ɵɵFactoryDeclaration<TransactionService, never>;
96
97
  static ɵprov: i0.ɵɵInjectableDeclaration<TransactionService>;
97
98
  }
@@ -0,0 +1,4 @@
1
+ export * from './vehicle.service';
2
+ export * from './vehicle-claim.service';
3
+ export * from './vehicle-claim-details.service';
4
+ export * from './vehicle-logbook.service';
@@ -0,0 +1,34 @@
1
+ import { VehicleClaimDetails } from '../../../models';
2
+ import { Observable, ReplaySubject } from 'rxjs';
3
+ import { HttpClient } from '@angular/common/http';
4
+ import { EventDispatcherService } from '../../event/event-dispatcher.service';
5
+ import { IEventListener } from '../../../interfaces/event-listener.interface';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * @TODO TT-1777 Alex: extend from rest service when it refactored
9
+ */
10
+ export declare class VehicleClaimDetailsService implements IEventListener {
11
+ protected environment: any;
12
+ private http;
13
+ private eventDispatcherService;
14
+ cache: VehicleClaimDetails;
15
+ cacheSubject: ReplaySubject<VehicleClaimDetails>;
16
+ url: string;
17
+ constructor(environment: any, http: HttpClient, eventDispatcherService: EventDispatcherService);
18
+ listenEvents(): void;
19
+ get(): Observable<VehicleClaimDetails>;
20
+ add(details: VehicleClaimDetails): Observable<VehicleClaimDetails>;
21
+ update(details: VehicleClaimDetails): Observable<VehicleClaimDetails>;
22
+ /**
23
+ * Listen logbook best period updates
24
+ * @TODO Vik: Best period move this and related logic to backend
25
+ */
26
+ private listenBestPeriodChanges;
27
+ /**
28
+ * Set vehicle claim details as manual
29
+ * @TODO Vik: Best period move this and related logic to backend
30
+ */
31
+ private updateToManual;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<VehicleClaimDetailsService, never>;
33
+ static ɵprov: i0.ɵɵInjectableDeclaration<VehicleClaimDetailsService>;
34
+ }
@@ -1,13 +1,30 @@
1
1
  import { VehicleClaim as VehicleClaimBase } from '../../../db/Models/vehicle/vehicle-claim';
2
- import { VehicleClaim } from '../../../models/logbook/vehicle-claim';
2
+ import { VehicleClaim } from '../../../models';
3
3
  import { RestService } from '../rest/rest.service';
4
+ import { IEventListener } from '../../../interfaces/event-listener.interface';
5
+ import { Observable } from 'rxjs';
4
6
  import * as i0 from "@angular/core";
5
- export declare class VehicleClaimService extends RestService<VehicleClaimBase, VehicleClaim> {
7
+ export declare class VehicleClaimService extends RestService<VehicleClaimBase, VehicleClaim> implements IEventListener {
6
8
  modelClass: typeof VehicleClaim;
7
9
  url: string;
8
- messageCreated: string;
9
- messageUpdated: string;
10
- messageDeleted: string;
10
+ listenEvents(): void;
11
+ add(model: VehicleClaim): Observable<VehicleClaim>;
12
+ update(model: VehicleClaim, queryParams?: object): Observable<VehicleClaim>;
13
+ /**
14
+ * Details changes may affect vehicle claims:
15
+ * when details method changed, all claims current values become 0
16
+ */
17
+ private listenVehicleClaimDetailsChanges;
18
+ /**
19
+ * Best period changes affect to claims workUsage
20
+ * @TODO Vik: Best period move this and related logic to backend
21
+ */
22
+ private listenBestPeriodChanges;
23
+ /**
24
+ * Update workUsage for all vehicle claims if logbook best period changed
25
+ * @TODO Vik: Best period move this and related logic to backend
26
+ */
27
+ private updateWorkUsage;
11
28
  static ɵfac: i0.ɵɵFactoryDeclaration<VehicleClaimService, never>;
12
29
  static ɵprov: i0.ɵɵInjectableDeclaration<VehicleClaimService>;
13
30
  }
@@ -1,22 +1,13 @@
1
- import { VehicleLogbook } from '../../../models/logbook/vehicle-logbook';
2
- import { Observable } from 'rxjs';
3
- import { HttpClient } from '@angular/common/http';
4
- import { EventDispatcherService } from '../../event/event-dispatcher.service';
5
- import { ToastService } from '../../toast/toast.service';
1
+ import { VehicleLogbook as VehicleLogbookBase } from '../../../db/Models/vehicle/vehicle-logbook';
2
+ import { VehicleLogbook } from '../../../models';
3
+ import { RestService } from '../rest/rest.service';
6
4
  import * as i0 from "@angular/core";
7
5
  /**
8
6
  * Vehicle logbook service. Allows user to add, update or delete vehicle trips
9
- * @TODO extend rest service after it refactored
10
7
  */
11
- export declare class VehicleLogbookService {
12
- private http;
13
- private eventDispatcherService;
14
- private environment;
15
- private toastService;
16
- constructor(http: HttpClient, eventDispatcherService: EventDispatcherService, environment: any, toastService: ToastService);
17
- add(logbook: VehicleLogbook, vehicleId: number): Observable<VehicleLogbook>;
18
- update(logbook: VehicleLogbook, vehicleId: number): Observable<any>;
19
- delete(logbook: VehicleLogbook, vehicleId: number): Observable<void>;
8
+ export declare class VehicleLogbookService extends RestService<VehicleLogbookBase, VehicleLogbook> {
9
+ url: string;
10
+ modelClass: typeof VehicleLogbook;
20
11
  static ɵfac: i0.ɵɵFactoryDeclaration<VehicleLogbookService, never>;
21
12
  static ɵprov: i0.ɵɵInjectableDeclaration<VehicleLogbookService>;
22
13
  }
@@ -1,31 +1,13 @@
1
1
  import { Vehicle as VehicleBase } from '../../../db/Models/vehicle/vehicle';
2
- import { Vehicle } from '../../../models/logbook/vehicle';
2
+ import { Vehicle } from '../../../models';
3
3
  import { RestService } from '../rest/rest.service';
4
- import { IEventListener } from '../../../interfaces/event-listener.interface';
5
4
  import * as i0 from "@angular/core";
6
5
  /**
7
6
  * Service that allows to work with WorkTank operations
8
- * @TODO separate vehicles and logbooks to different api
9
7
  */
10
- export declare class VehicleService extends RestService<VehicleBase, Vehicle> implements IEventListener {
8
+ export declare class VehicleService extends RestService<VehicleBase, Vehicle> {
11
9
  url: string;
12
10
  modelClass: typeof Vehicle;
13
- messageCreated: string;
14
- messageUpdated: string;
15
- messageDeleted: string;
16
- listenEvents(): void;
17
- /**
18
- * Add a new logbook items to the vehicle when a new one created
19
- */
20
- private listenLogbookAdded;
21
- /**
22
- * Replace vehicle's logbook with updated instance when logbook item updated
23
- */
24
- private listenLogbookUpdated;
25
- /**
26
- * Remove logbook item from vehicle when logbook deleted
27
- */
28
- private listenLogbookDeleted;
29
11
  static ɵfac: i0.ɵɵFactoryDeclaration<VehicleService, never>;
30
12
  static ɵprov: i0.ɵɵInjectableDeclaration<VehicleService>;
31
13
  }
@@ -1 +1,2 @@
1
1
  export * from './http';
2
+ export * from './vehicle';
@@ -0,0 +1 @@
1
+ export * from './logbook-best-period.service';
@@ -0,0 +1,28 @@
1
+ import { Observable, ReplaySubject } from 'rxjs';
2
+ import { VehicleClaimDetailsService, VehicleLogbookService, VehicleClaimService } from '../http';
3
+ import { LogbookPeriod } from '../../models';
4
+ import { EventDispatcherService } from '../event/event-dispatcher.service';
5
+ import { IEventListener } from '../../interfaces/event-listener.interface';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Service for logbook best period calculation
9
+ * @TODO Vik: improve structure for such cases (TT-2043)
10
+ * @TODO Vik: Best period move this and related logic to backend
11
+ */
12
+ export declare class LogbookBestPeriodService implements IEventListener {
13
+ private vehicleClaimDetailsService;
14
+ private vehicleClaimService;
15
+ private vehicleLogbookService;
16
+ private eventDispatcherService;
17
+ cache: LogbookPeriod;
18
+ cacheSubject: ReplaySubject<LogbookPeriod>;
19
+ constructor(vehicleClaimDetailsService: VehicleClaimDetailsService, vehicleClaimService: VehicleClaimService, vehicleLogbookService: VehicleLogbookService, eventDispatcherService: EventDispatcherService);
20
+ listenEvents(): void;
21
+ get(): Observable<LogbookPeriod>;
22
+ /**
23
+ * Dispatch event when logbook best period changed
24
+ */
25
+ private listenCacheUpdates;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<LogbookBestPeriodService, never>;
27
+ static ɵprov: i0.ɵɵInjectableDeclaration<LogbookBestPeriodService>;
28
+ }
@@ -3,3 +3,5 @@ export * from './autocomplete.validator';
3
3
  export * from './conditional.validator';
4
4
  export * from './password.validator';
5
5
  export * from './password-match.validator';
6
+ export * from './min-date/min-date.validator';
7
+ export * from './fields-sum.validator';
@@ -0,0 +1,3 @@
1
+ export declare enum MessagesEnum {
2
+ INVALID_DATE = "The date should not be before $1"
3
+ }
@@ -0,0 +1,5 @@
1
+ import { ValidatorFn } from '@angular/forms';
2
+ /**
3
+ * Validation function, that checks If date form value is more than provided date
4
+ */
5
+ export declare function minDateValidator(date: Date, message?: string): ValidatorFn;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taxtank-core",
3
- "version": "0.24.3",
3
+ "version": "0.26.0",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^12.2.3 || ~13.0.0",
package/public-api.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './lib/tt-core.module';
5
5
  /**
6
6
  * Collections
7
7
  */
8
+ export * from './lib/collections';
8
9
  export * from './lib/collections/collection';
9
10
  export * from './lib/collections/account-setup-item.collection';
10
11
  export * from './lib/collections/bank-account.collection';
@@ -37,8 +38,6 @@ export * from './lib/collections/tax-review.collection';
37
38
  export * from './lib/collections/transaction/transaction-allocation.collection';
38
39
  export * from './lib/collections/transaction/transaction.collection';
39
40
  export * from './lib/collections/user-event-setting.collection';
40
- export * from './lib/collections/vehicle.collection';
41
- export * from './lib/collections/vehicle-logbook.collection';
42
41
  export * from './lib/collections/exportable.collection';
43
42
  export * from './lib/collections/client-invite.collection';
44
43
  /**
@@ -133,7 +132,7 @@ export * from './lib/db/Enums/user-status.enum';
133
132
  export * from './lib/db/Enums/user-title.enum';
134
133
  export * from './lib/db/Enums/user-work-depreciation-calculation.enum';
135
134
  export * from './lib/db/Enums/user-working-holiday-maker.enum';
136
- export * from './lib/db/Enums/vehicle-claim-method.enum';
135
+ export * from './lib/db/Enums/vehicle-claim-details-method.enum';
137
136
  export * from './lib/db/Enums/vehicle-logbook-purpose.enum';
138
137
  export * from './lib/db/Enums/property/property-sale/tax-exemption.enum';
139
138
  export * from './lib/db/Enums/property/property-sale/tax-exemption-metadata.enum';
@@ -222,12 +221,6 @@ export * from './lib/models/loan/loan';
222
221
  export * from './lib/models/loan/loan-max-number-of-payments.enum';
223
222
  export * from './lib/models/loan/loan-payment';
224
223
  export * from './lib/models/loan/loan-payout';
225
- export * from './lib/models/logbook/default-vehicle-expense';
226
- export * from './lib/models/logbook/logbook-period';
227
- export * from './lib/models/logbook/logbook-purpose-options.const';
228
- export * from './lib/models/logbook/vehicle';
229
- export * from './lib/models/logbook/vehicle-claim';
230
- export * from './lib/models/logbook/vehicle-logbook';
231
224
  export * from './lib/models/notification/notification';
232
225
  export * from './lib/models/pdf/pdf-orientation.enum';
233
226
  export * from './lib/models/pdf/pdf-settings';
@@ -369,10 +362,6 @@ export * from './lib/services/http/user/user.service';
369
362
  export * from './lib/services/user/user-switcher.service';
370
363
  export * from './lib/services/http/user/user-event-setting/user-event-setting.service';
371
364
  export * from './lib/services/http/user/user-event-type/user-event-type.service';
372
- export * from './lib/services/http/user/users-invite/users-invite.service';
373
- export * from './lib/services/http/vehicle/vehicle.service';
374
- export * from './lib/services/http/vehicle/vehicle-claim.service';
375
- export * from './lib/services/http/vehicle/vehicle-logbook.service';
376
365
  export * from './lib/services/xlsx/xlsx.service';
377
366
  export * from './lib/services/http/property/property-sale/tax-exemption/tax-exemption.service';
378
367
  export * from './lib/services/http/facebook/facebook.service';
@@ -1,88 +0,0 @@
1
- import { FinancialYear } from '../models/financial-year/financial-year';
2
- import { LogbookPeriod } from '../models/logbook/logbook-period';
3
- import { plainToClass } from 'class-transformer';
4
- import { Collection } from './collection';
5
- /**
6
- * 12 weeks in milliseconds
7
- * "To work out your business-use percentage, you need to keep a logbook and the odometer readings for the logbook period.
8
- * The logbook period is a minimum continuous period of 12 weeks." © Nicole Kelly
9
- */
10
- const LOGBOOK_PERIOD_DURATION = 12 * 7 * 24 * 3600 * 1000;
11
- export class VehicleLogbookCollection extends Collection {
12
- /**
13
- * Check if we can calculate the best period
14
- */
15
- isBestPeriodExist() {
16
- if (this.items.length < 2) {
17
- return false;
18
- }
19
- return LOGBOOK_PERIOD_DURATION < (this.last.date.getTime() - this.first.date.getTime());
20
- }
21
- /**
22
- * Get collection of non-personal logbooks (work-related, sole-related).
23
- */
24
- getBusinessLogbooks() {
25
- return this.create(this.items.filter((logbook) => logbook.isBusiness()));
26
- }
27
- /**
28
- * Logbook Period is the best when it has the biggest amount of work kilometers
29
- * Best period duration is defined as LOGBOOK_PERIOD_DURATION (12 weeks) by the ATO
30
- */
31
- getBestPeriod() {
32
- if (!this.isBestPeriodExist()) {
33
- return null;
34
- }
35
- let bestPeriod;
36
- const businessLogbooks = this.getBusinessLogbooks().toArray();
37
- for (let i = 0; i < businessLogbooks.length; i++) {
38
- const logbook = businessLogbooks[i];
39
- // no sense to check next logbooks because we already get the end of the year
40
- if (bestPeriod && bestPeriod.isEndOfYear()) {
41
- break;
42
- }
43
- const dateRange = this.getPeriodRange(logbook.date);
44
- // get logbooks included in current logbook period
45
- const logbooksInRange = this.filterByRange('date', logbook.date, new Date(logbook.date.getTime() + LOGBOOK_PERIOD_DURATION));
46
- const workUsage = logbooksInRange.getWorkUsage();
47
- // compare with previous best period and overwrite if needs
48
- if (!bestPeriod || workUsage > bestPeriod.workUsage) {
49
- bestPeriod = plainToClass(LogbookPeriod, {
50
- from: dateRange.from,
51
- to: dateRange.to,
52
- kilometers: logbooksInRange.getBusinessLogbooks().getKlms(),
53
- workUsage: workUsage
54
- });
55
- }
56
- }
57
- return bestPeriod;
58
- }
59
- /**
60
- * Calculate total kilometers traveled
61
- */
62
- getKlms() {
63
- return this.items.reduce((sum, logbook) => sum + logbook.getKlms(), 0);
64
- }
65
- /**
66
- * Calculate work usage (percent of business-related kilometers from total kilometers)
67
- */
68
- getWorkUsage() {
69
- const totalKilometers = this.getKlms();
70
- const workKilometers = this.getBusinessLogbooks().getKlms();
71
- return Math.round(workKilometers / totalKilometers * 100);
72
- }
73
- /**
74
- * Get LOGBOOK_PERIOD_DURATION date range from passed start date
75
- */
76
- getPeriodRange(from) {
77
- // set end date after LOGBOOK_PERIOD_DURATION after start date
78
- let to = new Date(from.getTime() + LOGBOOK_PERIOD_DURATION);
79
- const financialYear = new FinancialYear();
80
- // set as period last LOGBOOK_PERIOD_DURATION of current year if period end date after end of current year
81
- if (to > financialYear.endDate) {
82
- to = financialYear.endDate;
83
- from = new Date(to.getTime() - LOGBOOK_PERIOD_DURATION);
84
- }
85
- return { from, to };
86
- }
87
- }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxQzs7OztHQUlHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBRTFELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxVQUEwQjtJQUN0RTs7T0FFRztJQUNILGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLHVCQUF1QixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQXVCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUNyRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksVUFBeUIsQ0FBQztRQUU5QixNQUFNLGdCQUFnQixHQUFxQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVoRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRyxFQUFFO1lBQ2pELE1BQU0sT0FBTyxHQUFtQixnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRCw2RUFBNkU7WUFDN0UsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUMxQyxNQUFNO2FBQ1A7WUFFRCxNQUFNLFNBQVMsR0FBMkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFNUUsa0RBQWtEO1lBQ2xELE1BQU0sZUFBZSxHQUE2QixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1lBRXZKLE1BQU0sU0FBUyxHQUFXLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUV6RCwyREFBMkQ7WUFDM0QsSUFBSSxDQUFDLFVBQVUsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsRUFBRTtnQkFDbkQsVUFBVSxHQUFHLFlBQVksQ0FBQyxhQUFhLEVBQUU7b0JBQ3ZDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtvQkFDcEIsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFO29CQUNoQixVQUFVLEVBQUUsZUFBZSxDQUFDLG1CQUFtQixFQUFFLENBQUMsT0FBTyxFQUFFO29CQUMzRCxTQUFTLEVBQUUsU0FBUztpQkFDckIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLE9BQXVCLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLE1BQU0sZUFBZSxHQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQyxNQUFNLGNBQWMsR0FBVyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVwRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLGVBQWUsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjLENBQUMsSUFBVTtRQUMvQiw4REFBOEQ7UUFDOUQsSUFBSSxFQUFFLEdBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLHVCQUF1QixDQUFDLENBQUM7UUFFbEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUUxQywwR0FBMEc7UUFDMUcsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRTtZQUM5QixFQUFFLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUMzQixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLHVCQUF1QixDQUFDLENBQUM7U0FDekQ7UUFFRCxPQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlaGljbGVMb2dib29rIH0gZnJvbSAnLi4vbW9kZWxzL2xvZ2Jvb2svdmVoaWNsZS1sb2dib29rJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgTG9nYm9va1BlcmlvZCB9IGZyb20gJy4uL21vZGVscy9sb2dib29rL2xvZ2Jvb2stcGVyaW9kJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL2NvbGxlY3Rpb24nO1xuXG4vKipcbiAqIDEyIHdlZWtzIGluIG1pbGxpc2Vjb25kc1xuICogXCJUbyB3b3JrIG91dCB5b3VyIGJ1c2luZXNzLXVzZSBwZXJjZW50YWdlLCB5b3UgbmVlZCB0byBrZWVwIGEgbG9nYm9vayBhbmQgdGhlIG9kb21ldGVyIHJlYWRpbmdzIGZvciB0aGUgbG9nYm9vayBwZXJpb2QuXG4gKiBUaGUgbG9nYm9vayBwZXJpb2QgaXMgYSBtaW5pbXVtIGNvbnRpbnVvdXMgcGVyaW9kIG9mIDEyIHdlZWtzLlwiIMKpIE5pY29sZSBLZWxseVxuICovXG5jb25zdCBMT0dCT09LX1BFUklPRF9EVVJBVElPTiA9IDEyICogNyAqIDI0ICogMzYwMCAqIDEwMDA7XG5cbmV4cG9ydCBjbGFzcyBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFZlaGljbGVMb2dib29rPiB7XG4gIC8qKlxuICAgKiBDaGVjayBpZiB3ZSBjYW4gY2FsY3VsYXRlIHRoZSBiZXN0IHBlcmlvZFxuICAgKi9cbiAgaXNCZXN0UGVyaW9kRXhpc3QoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBMT0dCT09LX1BFUklPRF9EVVJBVElPTiA8ICh0aGlzLmxhc3QuZGF0ZS5nZXRUaW1lKCkgLSB0aGlzLmZpcnN0LmRhdGUuZ2V0VGltZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sbGVjdGlvbiBvZiBub24tcGVyc29uYWwgbG9nYm9va3MgKHdvcmstcmVsYXRlZCwgc29sZS1yZWxhdGVkKS5cbiAgICovXG4gIGdldEJ1c2luZXNzTG9nYm9va3MoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiBsb2dib29rLmlzQnVzaW5lc3MoKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIExvZ2Jvb2sgUGVyaW9kIGlzIHRoZSBiZXN0IHdoZW4gaXQgaGFzIHRoZSBiaWdnZXN0IGFtb3VudCBvZiB3b3JrIGtpbG9tZXRlcnNcbiAgICogQmVzdCBwZXJpb2QgZHVyYXRpb24gaXMgZGVmaW5lZCBhcyBMT0dCT09LX1BFUklPRF9EVVJBVElPTiAoMTIgd2Vla3MpIGJ5IHRoZSBBVE9cbiAgICovXG4gIGdldEJlc3RQZXJpb2QoKTogTG9nYm9va1BlcmlvZCB7XG4gICAgaWYgKCF0aGlzLmlzQmVzdFBlcmlvZEV4aXN0KCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBiZXN0UGVyaW9kOiBMb2dib29rUGVyaW9kO1xuXG4gICAgY29uc3QgYnVzaW5lc3NMb2dib29rczogVmVoaWNsZUxvZ2Jvb2tbXSA9IHRoaXMuZ2V0QnVzaW5lc3NMb2dib29rcygpLnRvQXJyYXkoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnVzaW5lc3NMb2dib29rcy5sZW5ndGg7IGkgKyspIHtcbiAgICAgIGNvbnN0IGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rID0gYnVzaW5lc3NMb2dib29rc1tpXTtcblxuICAgICAgLy8gbm8gc2Vuc2UgdG8gY2hlY2sgbmV4dCBsb2dib29rcyBiZWNhdXNlIHdlIGFscmVhZHkgZ2V0IHRoZSBlbmQgb2YgdGhlIHllYXJcbiAgICAgIGlmIChiZXN0UGVyaW9kICYmIGJlc3RQZXJpb2QuaXNFbmRPZlllYXIoKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0ZVJhbmdlOiB7ZnJvbTogRGF0ZSwgdG86IERhdGV9ID0gdGhpcy5nZXRQZXJpb2RSYW5nZShsb2dib29rLmRhdGUpO1xuXG4gICAgICAvLyBnZXQgbG9nYm9va3MgaW5jbHVkZWQgaW4gY3VycmVudCBsb2dib29rIHBlcmlvZFxuICAgICAgY29uc3QgbG9nYm9va3NJblJhbmdlOiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gPSB0aGlzLmZpbHRlckJ5UmFuZ2UoJ2RhdGUnLCBsb2dib29rLmRhdGUsIG5ldyBEYXRlKGxvZ2Jvb2suZGF0ZS5nZXRUaW1lKCkgKyBMT0dCT09LX1BFUklPRF9EVVJBVElPTikpO1xuXG4gICAgICBjb25zdCB3b3JrVXNhZ2U6IG51bWJlciA9IGxvZ2Jvb2tzSW5SYW5nZS5nZXRXb3JrVXNhZ2UoKTtcblxuICAgICAgLy8gY29tcGFyZSB3aXRoIHByZXZpb3VzIGJlc3QgcGVyaW9kIGFuZCBvdmVyd3JpdGUgaWYgbmVlZHNcbiAgICAgIGlmICghYmVzdFBlcmlvZCB8fCB3b3JrVXNhZ2UgPiBiZXN0UGVyaW9kLndvcmtVc2FnZSkge1xuICAgICAgICBiZXN0UGVyaW9kID0gcGxhaW5Ub0NsYXNzKExvZ2Jvb2tQZXJpb2QsIHtcbiAgICAgICAgICBmcm9tOiBkYXRlUmFuZ2UuZnJvbSxcbiAgICAgICAgICB0bzogZGF0ZVJhbmdlLnRvLFxuICAgICAgICAgIGtpbG9tZXRlcnM6IGxvZ2Jvb2tzSW5SYW5nZS5nZXRCdXNpbmVzc0xvZ2Jvb2tzKCkuZ2V0S2xtcygpLFxuICAgICAgICAgIHdvcmtVc2FnZTogd29ya1VzYWdlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBiZXN0UGVyaW9kO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0b3RhbCBraWxvbWV0ZXJzIHRyYXZlbGVkXG4gICAqL1xuICBnZXRLbG1zKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgbG9nYm9vazogVmVoaWNsZUxvZ2Jvb2spID0+IHN1bSArIGxvZ2Jvb2suZ2V0S2xtcygpLCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgd29yayB1c2FnZSAocGVyY2VudCBvZiBidXNpbmVzcy1yZWxhdGVkIGtpbG9tZXRlcnMgZnJvbSB0b3RhbCBraWxvbWV0ZXJzKVxuICAgKi9cbiAgZ2V0V29ya1VzYWdlKCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWxLaWxvbWV0ZXJzOiBudW1iZXIgPSB0aGlzLmdldEtsbXMoKTtcbiAgICBjb25zdCB3b3JrS2lsb21ldGVyczogbnVtYmVyID0gdGhpcy5nZXRCdXNpbmVzc0xvZ2Jvb2tzKCkuZ2V0S2xtcygpO1xuXG4gICAgcmV0dXJuIE1hdGgucm91bmQod29ya0tpbG9tZXRlcnMgLyB0b3RhbEtpbG9tZXRlcnMgKiAxMDApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBMT0dCT09LX1BFUklPRF9EVVJBVElPTiBkYXRlIHJhbmdlIGZyb20gcGFzc2VkIHN0YXJ0IGRhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0UGVyaW9kUmFuZ2UoZnJvbTogRGF0ZSk6IHtmcm9tOiBEYXRlLCB0bzogRGF0ZX0ge1xuICAgIC8vIHNldCBlbmQgZGF0ZSBhZnRlciBMT0dCT09LX1BFUklPRF9EVVJBVElPTiBhZnRlciBzdGFydCBkYXRlXG4gICAgbGV0IHRvOiBEYXRlID0gbmV3IERhdGUoZnJvbS5nZXRUaW1lKCkgKyBMT0dCT09LX1BFUklPRF9EVVJBVElPTik7XG5cbiAgICBjb25zdCBmaW5hbmNpYWxZZWFyID0gbmV3IEZpbmFuY2lhbFllYXIoKTtcblxuICAgIC8vIHNldCBhcyBwZXJpb2QgbGFzdCBMT0dCT09LX1BFUklPRF9EVVJBVElPTiBvZiBjdXJyZW50IHllYXIgaWYgcGVyaW9kIGVuZCBkYXRlIGFmdGVyIGVuZCBvZiBjdXJyZW50IHllYXJcbiAgICBpZiAodG8gPiBmaW5hbmNpYWxZZWFyLmVuZERhdGUpIHtcbiAgICAgIHRvID0gZmluYW5jaWFsWWVhci5lbmREYXRlO1xuICAgICAgZnJvbSA9IG5ldyBEYXRlKHRvLmdldFRpbWUoKSAtIExPR0JPT0tfUEVSSU9EX0RVUkFUSU9OKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge2Zyb20sIHRvfTtcbiAgfVxufVxuIl19
@@ -1,9 +0,0 @@
1
- import { Collection } from './collection';
2
- import { VehicleLogbookCollection } from './vehicle-logbook.collection';
3
- import flatten from 'lodash/flatten';
4
- export class VehicleCollection extends Collection {
5
- getLogbooks() {
6
- return new VehicleLogbookCollection(flatten(this.items.map((vehicle) => vehicle.logbook)));
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL3ZlaGljbGUuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxVQUFtQjtJQUN4RCxXQUFXO1FBQ1QsT0FBTyxJQUFJLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBWZWhpY2xlIH0gZnJvbSAnLi4vbW9kZWxzL2xvZ2Jvb2svdmVoaWNsZSc7XG5pbXBvcnQgeyBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gfSBmcm9tICcuL3ZlaGljbGUtbG9nYm9vay5jb2xsZWN0aW9uJztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcblxuZXhwb3J0IGNsYXNzIFZlaGljbGVDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxWZWhpY2xlPntcbiAgZ2V0TG9nYm9va3MoKTogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbihmbGF0dGVuKHRoaXMuaXRlbXMubWFwKCh2ZWhpY2xlOiBWZWhpY2xlKSA9PiB2ZWhpY2xlLmxvZ2Jvb2spKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- export var VehicleClaimMethodEnum;
2
- (function (VehicleClaimMethodEnum) {
3
- VehicleClaimMethodEnum[VehicleClaimMethodEnum["KMS"] = 1] = "KMS";
4
- VehicleClaimMethodEnum[VehicleClaimMethodEnum["LOGBOOK"] = 2] = "LOGBOOK";
5
- })(VehicleClaimMethodEnum || (VehicleClaimMethodEnum = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1jbGFpbS1tZXRob2QuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9FbnVtcy92ZWhpY2xlLWNsYWltLW1ldGhvZC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHNCQUdYO0FBSEQsV0FBWSxzQkFBc0I7SUFDakMsaUVBQU8sQ0FBQTtJQUNQLHlFQUFXLENBQUE7QUFDWixDQUFDLEVBSFcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUdqQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFZlaGljbGVDbGFpbU1ldGhvZEVudW0ge1xuXHRLTVMgPSAxLFxuXHRMT0dCT09LID0gMixcbn0iXX0=
@@ -1,23 +0,0 @@
1
- import { AbstractForm } from '../../abstract.form';
2
- import { FormControl, Validators } from '@angular/forms';
3
- import { Loan } from '../../../models/loan/loan';
4
- import { plainToClass } from 'class-transformer';
5
- /**
6
- * Form with bank account loan details
7
- */
8
- export class BankAccountLoanForm extends AbstractForm {
9
- constructor(loan = plainToClass(Loan, {})) {
10
- super({
11
- type: new FormControl(loan.type, Validators.required),
12
- amount: new FormControl(loan.amount, Validators.required),
13
- repaymentType: new FormControl(loan.repaymentType, Validators.required),
14
- interestRate: new FormControl(loan.interestRate, [Validators.required, Validators.min(0), Validators.max(100)]),
15
- interestType: new FormControl(loan.interestType, Validators.required),
16
- availableRedraw: new FormControl(loan.availableRedraw, Validators.required),
17
- commencementDate: new FormControl(loan.commencementDate, Validators.required),
18
- repaymentAmount: new FormControl(loan.repaymentAmount, Validators.required),
19
- repaymentFrequency: new FormControl(loan.repaymentFrequency, Validators.required)
20
- }, loan);
21
- }
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1hY2NvdW50LWxvYW4uZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy9iYW5rL2JhbmstYWNjb3VudC9iYW5rLWFjY291bnQtbG9hbi5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsWUFBa0I7SUFDekQsWUFBWSxPQUFhLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzdDLEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDckQsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN6RCxhQUFhLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3ZFLFlBQVksRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRyxZQUFZLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3JFLGVBQWUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDM0UsZ0JBQWdCLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDN0UsZUFBZSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMzRSxrQkFBa0IsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNsRixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RGb3JtIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3QuZm9ybSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExvYW4gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbG9hbi9sb2FuJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcblxuLyoqXG4gKiBGb3JtIHdpdGggYmFuayBhY2NvdW50IGxvYW4gZGV0YWlsc1xuICovXG5leHBvcnQgY2xhc3MgQmFua0FjY291bnRMb2FuRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxMb2FuPiB7XG4gIGNvbnN0cnVjdG9yKGxvYW46IExvYW4gPSBwbGFpblRvQ2xhc3MoTG9hbiwge30pKSB7XG4gICAgc3VwZXIoe1xuICAgICAgdHlwZTogbmV3IEZvcm1Db250cm9sKGxvYW4udHlwZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBhbW91bnQ6IG5ldyBGb3JtQ29udHJvbChsb2FuLmFtb3VudCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICByZXBheW1lbnRUeXBlOiBuZXcgRm9ybUNvbnRyb2wobG9hbi5yZXBheW1lbnRUeXBlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGludGVyZXN0UmF0ZTogbmV3IEZvcm1Db250cm9sKGxvYW4uaW50ZXJlc3RSYXRlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldKSxcbiAgICAgIGludGVyZXN0VHlwZTogbmV3IEZvcm1Db250cm9sKGxvYW4uaW50ZXJlc3RUeXBlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGF2YWlsYWJsZVJlZHJhdzogbmV3IEZvcm1Db250cm9sKGxvYW4uYXZhaWxhYmxlUmVkcmF3LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGNvbW1lbmNlbWVudERhdGU6IG5ldyBGb3JtQ29udHJvbChsb2FuLmNvbW1lbmNlbWVudERhdGUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgcmVwYXltZW50QW1vdW50OiBuZXcgRm9ybUNvbnRyb2wobG9hbi5yZXBheW1lbnRBbW91bnQsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgcmVwYXltZW50RnJlcXVlbmN5OiBuZXcgRm9ybUNvbnRyb2wobG9hbi5yZXBheW1lbnRGcmVxdWVuY3ksIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgfSwgbG9hbik7XG4gIH1cbn1cbiJdfQ==
@@ -1,20 +0,0 @@
1
- import { TransactionSourceEnum } from '../../db/Enums/transaction-source.enum';
2
- import { TankTypeEnum } from '../../db/Enums/tank-type.enum';
3
- import { TransactionTypeEnum } from '../../db/Enums/transaction-type.enum';
4
- import { ChartAccountsListEnum } from '../../db/Enums/chart-accounts-list.enum';
5
- import { FinancialYear } from '../financial-year/financial-year';
6
- /**
7
- * Default vehicle transaction object,
8
- * which could be used to create transaction with 'Klms travelled for work' chart accounts category
9
- */
10
- export const DEFAULT_VEHICLE_EXPENSE = {
11
- source: TransactionSourceEnum.CASH,
12
- tankType: TankTypeEnum.WORK,
13
- type: TransactionTypeEnum.DEBIT,
14
- taxWithheld: 0,
15
- description: 'Klm’s method',
16
- date: new Date(`${new FinancialYear().year}-06-30`),
17
- chartAccounts: { id: ChartAccountsListEnum.KLMS_TRAVELLED_FOR_WORK },
18
- claimPercent: 100
19
- };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC12ZWhpY2xlLWV4cGVuc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2xvZ2Jvb2svZGVmYXVsdC12ZWhpY2xlLWV4cGVuc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBVztJQUM3QyxNQUFNLEVBQUUscUJBQXFCLENBQUMsSUFBSTtJQUNsQyxRQUFRLEVBQUUsWUFBWSxDQUFDLElBQUk7SUFDM0IsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEtBQUs7SUFDL0IsV0FBVyxFQUFFLENBQUM7SUFDZCxXQUFXLEVBQUUsY0FBYztJQUMzQixJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDLElBQUksUUFBUSxDQUFDO0lBQ25ELGFBQWEsRUFBRSxFQUFDLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyx1QkFBdUIsRUFBQztJQUNsRSxZQUFZLEVBQUUsR0FBRztDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25Tb3VyY2VFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tc291cmNlLmVudW0nO1xuaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdGFuay10eXBlLmVudW0nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzTGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1saXN0LmVudW0nO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyJztcblxuLyoqXG4gKiBEZWZhdWx0IHZlaGljbGUgdHJhbnNhY3Rpb24gb2JqZWN0LFxuICogd2hpY2ggY291bGQgYmUgdXNlZCB0byBjcmVhdGUgdHJhbnNhY3Rpb24gd2l0aCAnS2xtcyB0cmF2ZWxsZWQgZm9yIHdvcmsnIGNoYXJ0IGFjY291bnRzIGNhdGVnb3J5XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1ZFSElDTEVfRVhQRU5TRTogb2JqZWN0ID0ge1xuICBzb3VyY2U6IFRyYW5zYWN0aW9uU291cmNlRW51bS5DQVNILFxuICB0YW5rVHlwZTogVGFua1R5cGVFbnVtLldPUkssXG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZUVudW0uREVCSVQsXG4gIHRheFdpdGhoZWxkOiAwLFxuICBkZXNjcmlwdGlvbjogJ0tsbeKAmXMgbWV0aG9kJyxcbiAgZGF0ZTogbmV3IERhdGUoYCR7bmV3IEZpbmFuY2lhbFllYXIoKS55ZWFyfS0wNi0zMGApLFxuICBjaGFydEFjY291bnRzOiB7aWQ6IENoYXJ0QWNjb3VudHNMaXN0RW51bS5LTE1TX1RSQVZFTExFRF9GT1JfV09SS30sXG4gIGNsYWltUGVyY2VudDogMTAwXG59O1xuIl19