taxtank-core 0.32.2 → 0.32.5

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.
@@ -1,6 +1,5 @@
1
1
  import { VehicleLogbookCollection } from './vehicle-logbook.collection';
2
2
  import { DateRange } from 'moment-range';
3
- import round from 'lodash/round';
4
3
  /**
5
4
  * Special logbook collection that contains logbooks from date period with the highest work usage percent
6
5
  * Docs: https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/211517441/Logbook+Vehicle
@@ -15,29 +14,47 @@ export class BestVehicleLogbookCollection extends VehicleLogbookCollection {
15
14
  * constructor is private because we want to prevent collection initialization via 'new' operator.
16
15
  * We should create instances only with fromLogbooks method
17
16
  */
18
- constructor(logbooks, isSole = false) {
19
- super([]);
20
- this.isSole = isSole;
21
- if (!this.isBestPeriodExist(logbooks)) {
22
- return;
23
- }
24
- this.calculateBestPeriod(logbooks);
17
+ constructor(logbooks) {
18
+ super(logbooks);
25
19
  }
26
20
  /**
27
21
  * Best period may be calculated only when user has logbooks minimum for VehicleLogbook.bestPeriodWeeks
28
22
  */
29
- isBestPeriodExist(logbooks = this) {
23
+ static isBestPeriodExist(logbooks) {
30
24
  if (logbooks.length < 2) {
31
25
  return false;
32
26
  }
33
27
  if (!(logbooks instanceof VehicleLogbookCollection)) {
34
28
  logbooks = new VehicleLogbookCollection(logbooks);
35
29
  }
36
- return BestVehicleLogbookCollection.periodDuration < (logbooks.last.date.getTime() - logbooks.first.date.getTime());
30
+ return this.periodDuration < (logbooks.last.date.getTime() - logbooks.first.date.getTime());
31
+ }
32
+ // get list of date ranges for each of passed logbook
33
+ static getPeriods(logbooks) {
34
+ const claimable = logbooks.getClaimable();
35
+ // get a list of date ranges that could potentially be the best
36
+ const periods = claimable
37
+ // skip logbooks whose range ends after the last logbook
38
+ .filter((logbook) => this.getPeriodByLogbook(logbook).end.toDate() < logbooks.last.date)
39
+ .map((logbook) => this.getPeriodByLogbook(logbook));
40
+ // skip if the last logbook already included to the last existing date range
41
+ // if (last(periods).end.toDate() < logbooks.last.date) {
42
+ // add extra date range for the last claimable logbook
43
+ // @TODO vik
44
+ periods.push(this.getPeriodByLogbook(claimable.last, true));
45
+ // }
46
+ return periods;
37
47
  }
38
- getWorkUsageByClaim(claim) {
39
- const claimKilometers = this.getByVehicleClaim(claim).getClaimableLogbooks(this.isSole).kilometers;
40
- return round(this.getWorkUsageByTank(this.isSole) * (claimKilometers / this.kilometers), 2);
48
+ /**
49
+ * Get claimable date range for passed logbook
50
+ * @param logbook logbook instance for range calculation
51
+ * @param isBackward Flag false - range for logbook + duration; flag true - range for logbook - duration. Used for extra case, when we should add an extra date range for the last logbook
52
+ */
53
+ static getPeriodByLogbook(logbook, isBackward = false) {
54
+ if (isBackward) {
55
+ return new DateRange([new Date(logbook.date.getTime() - this.periodDuration), logbook.date]);
56
+ }
57
+ return new DateRange([logbook.date, new Date(logbook.date.getTime() + this.periodDuration)]);
41
58
  }
42
59
  /**
43
60
  * Set Date Range with the biggest work usage percent
@@ -53,44 +70,22 @@ export class BestVehicleLogbookCollection extends VehicleLogbookCollection {
53
70
  */
54
71
  calculateBestPeriod(logbooks) {
55
72
  // get a list of date ranges that could potentially be the best
56
- const periods = this.getPeriods(logbooks);
73
+ const periods = BestVehicleLogbookCollection.getPeriods(logbooks);
57
74
  periods.forEach((period) => {
58
75
  const logbooksInPeriod = logbooks.filterByRange('date', period.start.toDate(), period.end.toDate());
59
- if (!this.period || (this.getWorkUsageByTank(this.isSole) < logbooksInPeriod.getWorkUsageByTank(this.isSole))) {
76
+ if (!this.period || (this.getWorkUsage() < logbooksInPeriod.getWorkUsage())) {
60
77
  this.period = period;
61
78
  this.items = logbooksInPeriod.toArray();
62
79
  }
63
80
  });
64
81
  }
65
- // get list of date ranges for each of passed logbook
66
- getPeriods(logbooks) {
67
- const claimable = logbooks.getClaimableLogbooks(this.isSole);
68
- // get a list of date ranges that could potentially be the best
69
- const periods = claimable
70
- // skip logbooks whose range ends after the last logbook
71
- .filter((logbook) => this.getPeriodByLogbook(logbook).end.toDate() < logbooks.last.date)
72
- .map((logbook) => this.getPeriodByLogbook(logbook));
73
- // skip if the last logbook already included to the last existing date range
74
- // if (last(periods).end.toDate() < logbooks.last.date) {
75
- // add extra date range for the last claimable logbook
76
- periods.push(this.getPeriodByLogbook(claimable.last, true));
77
- // }
78
- return periods;
79
- }
80
- /**
81
- * Get claimable date range for passed logbook
82
- * @param logbook logbook instance for range calculation
83
- * @param isBackward Flag false - range for logbook + duration; flag true - range for logbook - duration. Used for extra case, when we should add an extra date range for the last logbook
84
- */
85
- getPeriodByLogbook(logbook, isBackward = false) {
86
- if (isBackward) {
87
- return new DateRange([new Date(logbook.date.getTime() - BestVehicleLogbookCollection.periodDuration), logbook.date]);
82
+ static fromLogbooks(logbooks) {
83
+ if (!this.isBestPeriodExist(logbooks)) {
84
+ return null;
88
85
  }
89
- return new DateRange([logbook.date, new Date(logbook.date.getTime() + BestVehicleLogbookCollection.periodDuration)]);
90
- }
91
- static fromLogbooks(logbooks, isSole = false) {
92
- const collection = new BestVehicleLogbookCollection(logbooks, isSole);
93
- return collection.isBestPeriodExist(logbooks) ? collection : null;
86
+ const collection = new BestVehicleLogbookCollection(logbooks.toArray());
87
+ collection.calculateBestPeriod(logbooks);
88
+ return collection;
94
89
  }
95
90
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVzdC12ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy92ZWhpY2xlL2Jlc3QtdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFHakM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHdCQUF3QjtJQUN4RTs7O09BR0c7YUFDSSxtQkFBYyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7SUFPbEQ7OztPQUdHO0lBQ0gsWUFBb0IsUUFBa0MsRUFBVSxTQUFrQixLQUFLO1FBQ3JGLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQURvRCxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUdyRixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsQ0FBQyxXQUFxQyxJQUFJO1FBQ3pELElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksQ0FBQyxDQUFDLFFBQVEsWUFBWSx3QkFBd0IsQ0FBQyxFQUFFO1lBQ25ELFFBQVEsR0FBRyxJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsT0FBTyw0QkFBNEIsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFtQjtRQUNyQyxNQUFNLGVBQWUsR0FBVyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUUzRyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSyxtQkFBbUIsQ0FBQyxRQUFrQztRQUM1RCwrREFBK0Q7UUFDL0QsTUFBTSxPQUFPLEdBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQWlCLEVBQUUsRUFBRTtZQUNwQyxNQUFNLGdCQUFnQixHQUE2QixRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUU5SCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7Z0JBQzdHLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3pDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQscURBQXFEO0lBQzdDLFVBQVUsQ0FBQyxRQUFrQztRQUNuRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELCtEQUErRDtRQUMvRCxNQUFNLE9BQU8sR0FBZ0IsU0FBUztZQUNwQyx3REFBd0Q7YUFDdkQsTUFBTSxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUN2RyxHQUFHLENBQUMsQ0FBQyxPQUF1QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUd0RSw0RUFBNEU7UUFDNUUseURBQXlEO1FBQ3ZELHNEQUFzRDtRQUN0RCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSTtRQUVKLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssa0JBQWtCLENBQUMsT0FBdUIsRUFBRSxhQUFzQixLQUFLO1FBQzdFLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsNEJBQTRCLENBQUMsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEg7UUFFRCxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLDRCQUE0QixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFrQyxFQUFFLFNBQWtCLEtBQUs7UUFDN0UsTUFBTSxVQUFVLEdBQUcsSUFBSSw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdEUsT0FBTyxVQUFVLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZWhpY2xlQ2xhaW0sIFZlaGljbGVMb2dib29rIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB9IGZyb20gJy4vdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnbW9tZW50LXJhbmdlJztcbmltcG9ydCByb3VuZCBmcm9tICdsb2Rhc2gvcm91bmQnO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuXG4vKipcbiAqIFNwZWNpYWwgbG9nYm9vayBjb2xsZWN0aW9uIHRoYXQgY29udGFpbnMgbG9nYm9va3MgZnJvbSBkYXRlIHBlcmlvZCB3aXRoIHRoZSBoaWdoZXN0IHdvcmsgdXNhZ2UgcGVyY2VudFxuICogRG9jczogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTE1MTc0NDEvTG9nYm9vaytWZWhpY2xlXG4gKi9cbmV4cG9ydCBjbGFzcyBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIGV4dGVuZHMgVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIHtcbiAgLyoqXG4gICAqIExvZ2Jvb2sgY2xhaW1hYmxlIHBlcmlvZCBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjExNTE3NDQxL0xvZ2Jvb2srVmVoaWNsZVxuICAgKi9cbiAgc3RhdGljIHBlcmlvZER1cmF0aW9uID0gMTIgKiA3ICogMjQgKiAzNjAwICogMTAwMDtcblxuICAvKipcbiAgICogRGF0ZSByYW5nZSB3aXRoIHRoZSBiaWdnZXN0IHdvcmsgdXNhZ2UgcGVyY2VudFxuICAgKi9cbiAgcGVyaW9kOiBEYXRlUmFuZ2U7XG5cbiAgLyoqXG4gICAqIGNvbnN0cnVjdG9yIGlzIHByaXZhdGUgYmVjYXVzZSB3ZSB3YW50IHRvIHByZXZlbnQgY29sbGVjdGlvbiBpbml0aWFsaXphdGlvbiB2aWEgJ25ldycgb3BlcmF0b3IuXG4gICAqIFdlIHNob3VsZCBjcmVhdGUgaW5zdGFuY2VzIG9ubHkgd2l0aCBmcm9tTG9nYm9va3MgbWV0aG9kXG4gICAqL1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKGxvZ2Jvb2tzOiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24sIHByaXZhdGUgaXNTb2xlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBzdXBlcihbXSk7XG5cbiAgICBpZiAoIXRoaXMuaXNCZXN0UGVyaW9kRXhpc3QobG9nYm9va3MpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jYWxjdWxhdGVCZXN0UGVyaW9kKGxvZ2Jvb2tzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCZXN0IHBlcmlvZCBtYXkgYmUgY2FsY3VsYXRlZCBvbmx5IHdoZW4gdXNlciBoYXMgbG9nYm9va3MgbWluaW11bSBmb3IgVmVoaWNsZUxvZ2Jvb2suYmVzdFBlcmlvZFdlZWtzXG4gICAqL1xuICBpc0Jlc3RQZXJpb2RFeGlzdChsb2dib29rczogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uID0gdGhpcyk6IGJvb2xlYW4ge1xuICAgIGlmIChsb2dib29rcy5sZW5ndGggPCAyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCEobG9nYm9va3MgaW5zdGFuY2VvZiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24pKSB7XG4gICAgICBsb2dib29rcyA9IG5ldyBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24obG9nYm9va3MpO1xuICAgIH1cblxuICAgIHJldHVybiBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLnBlcmlvZER1cmF0aW9uIDwgKGxvZ2Jvb2tzLmxhc3QuZGF0ZS5nZXRUaW1lKCkgLSBsb2dib29rcy5maXJzdC5kYXRlLmdldFRpbWUoKSk7XG4gIH1cblxuICBnZXRXb3JrVXNhZ2VCeUNsYWltKGNsYWltOiBWZWhpY2xlQ2xhaW0pOiBudW1iZXIge1xuICAgIGNvbnN0IGNsYWltS2lsb21ldGVyczogbnVtYmVyID0gdGhpcy5nZXRCeVZlaGljbGVDbGFpbShjbGFpbSkuZ2V0Q2xhaW1hYmxlTG9nYm9va3ModGhpcy5pc1NvbGUpLmtpbG9tZXRlcnM7XG5cbiAgICByZXR1cm4gcm91bmQodGhpcy5nZXRXb3JrVXNhZ2VCeVRhbmsodGhpcy5pc1NvbGUpICogKGNsYWltS2lsb21ldGVycyAvIHRoaXMua2lsb21ldGVycyksIDIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBEYXRlIFJhbmdlIHdpdGggdGhlIGJpZ2dlc3Qgd29yayB1c2FnZSBwZXJjZW50XG4gICAqIFJhbmdlIGR1cmF0aW9uIGlzIGRlZmluZWQgYXMgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbi5wZXJpb2REdXJhdGlvbiBieSB0aGUgQVRPXG4gICAqIFxuICAgKiBBbGdvcml0aG06XG4gICAqIENsYWltYWJsZSBsb2dib29rcyBvciBjbGFpbWFibGUgdHJpcHMgLSB3b3JrL2J1c2luZXNzIGxvZ2Jvb2sgaXRlbXMuXG4gICAqIFdlIHNob3VsZCB3b3JrIHdpdGggZGF0ZXMgZnJvbSB0aGUgZmlyc3QgdG8gdGhlIGxhc3QgdHJpcCAoaW5jbHVkZSBwZXJzb25hbCB0cmlwcykuXG4gICAqIEdldCBkYXRlIHJhbmdlcyBzdGFydHMgb24gZWFjaCBjbGFpbWFibGUgdHJpcCwgYWxsIG90aGVyIHJhbmdlcyBhcmUgZGVmaW5ldGlseSB3b3JzdC5cbiAgICogQWxzbyBnZXQgZXh0cmEgZGF0ZSByYW5nZSB3aGljaCBlbmRzIHdpdGggdGhlIGxhc3QgY2xhaW1hYmxlIHRyaXAuXG4gICAqIEdldCBhbGwgdHJpcHMgaW5jbHVkZWQgdG8gZWFjaCBkYXRlIHJhbmdlLlxuICAgKiBGaW5kIGFuZCByZXR1cm4gcmFuZ2Ugd2l0aCB0aGUgYmlnZ2VzdCB3b3JrVXNhZ2UgcGVyY2VudC5cbiAgICovXG4gIHByaXZhdGUgY2FsY3VsYXRlQmVzdFBlcmlvZChsb2dib29rczogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKTogdm9pZCB7XG4gICAgLy8gZ2V0IGEgbGlzdCBvZiBkYXRlIHJhbmdlcyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHRoZSBiZXN0XG4gICAgY29uc3QgcGVyaW9kczogRGF0ZVJhbmdlW10gPSB0aGlzLmdldFBlcmlvZHMobG9nYm9va3MpO1xuXG4gICAgcGVyaW9kcy5mb3JFYWNoKChwZXJpb2Q6IERhdGVSYW5nZSkgPT4ge1xuICAgICAgY29uc3QgbG9nYm9va3NJblBlcmlvZDogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uID0gbG9nYm9va3MuZmlsdGVyQnlSYW5nZSgnZGF0ZScsIHBlcmlvZC5zdGFydC50b0RhdGUoKSwgcGVyaW9kLmVuZC50b0RhdGUoKSk7XG5cbiAgICAgIGlmICghdGhpcy5wZXJpb2QgfHwgKHRoaXMuZ2V0V29ya1VzYWdlQnlUYW5rKHRoaXMuaXNTb2xlKSA8IGxvZ2Jvb2tzSW5QZXJpb2QuZ2V0V29ya1VzYWdlQnlUYW5rKHRoaXMuaXNTb2xlKSkpIHtcbiAgICAgICAgdGhpcy5wZXJpb2QgPSBwZXJpb2Q7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBsb2dib29rc0luUGVyaW9kLnRvQXJyYXkoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIGdldCBsaXN0IG9mIGRhdGUgcmFuZ2VzIGZvciBlYWNoIG9mIHBhc3NlZCBsb2dib29rXG4gIHByaXZhdGUgZ2V0UGVyaW9kcyhsb2dib29rczogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKTogRGF0ZVJhbmdlW10ge1xuICAgIGNvbnN0IGNsYWltYWJsZSA9IGxvZ2Jvb2tzLmdldENsYWltYWJsZUxvZ2Jvb2tzKHRoaXMuaXNTb2xlKTtcbiAgICAvLyBnZXQgYSBsaXN0IG9mIGRhdGUgcmFuZ2VzIHRoYXQgY291bGQgcG90ZW50aWFsbHkgYmUgdGhlIGJlc3RcbiAgICBjb25zdCBwZXJpb2RzOiBEYXRlUmFuZ2VbXSA9IGNsYWltYWJsZVxuICAgICAgLy8gc2tpcCBsb2dib29rcyB3aG9zZSByYW5nZSBlbmRzIGFmdGVyIHRoZSBsYXN0IGxvZ2Jvb2tcbiAgICAgIC5maWx0ZXIoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiB0aGlzLmdldFBlcmlvZEJ5TG9nYm9vayhsb2dib29rKS5lbmQudG9EYXRlKCkgPCBsb2dib29rcy5sYXN0LmRhdGUpXG4gICAgICAubWFwKChsb2dib29rOiBWZWhpY2xlTG9nYm9vaykgPT4gdGhpcy5nZXRQZXJpb2RCeUxvZ2Jvb2sobG9nYm9vaykpO1xuXG5cbiAgICAvLyBza2lwIGlmIHRoZSBsYXN0IGxvZ2Jvb2sgYWxyZWFkeSBpbmNsdWRlZCB0byB0aGUgbGFzdCBleGlzdGluZyBkYXRlIHJhbmdlXG4gICAgLy8gaWYgKGxhc3QocGVyaW9kcykuZW5kLnRvRGF0ZSgpIDwgbG9nYm9va3MubGFzdC5kYXRlKSB7XG4gICAgICAvLyBhZGQgZXh0cmEgZGF0ZSByYW5nZSBmb3IgdGhlIGxhc3QgY2xhaW1hYmxlIGxvZ2Jvb2tcbiAgICAgIHBlcmlvZHMucHVzaCh0aGlzLmdldFBlcmlvZEJ5TG9nYm9vayhjbGFpbWFibGUubGFzdCwgdHJ1ZSkpO1xuICAgIC8vIH1cblxuICAgIHJldHVybiBwZXJpb2RzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjbGFpbWFibGUgZGF0ZSByYW5nZSBmb3IgcGFzc2VkIGxvZ2Jvb2tcbiAgICogQHBhcmFtIGxvZ2Jvb2sgbG9nYm9vayBpbnN0YW5jZSBmb3IgcmFuZ2UgY2FsY3VsYXRpb25cbiAgICogQHBhcmFtIGlzQmFja3dhcmQgRmxhZyBmYWxzZSAtIHJhbmdlIGZvciBsb2dib29rICsgZHVyYXRpb247IGZsYWcgdHJ1ZSAtIHJhbmdlIGZvciBsb2dib29rIC0gZHVyYXRpb24uIFVzZWQgZm9yIGV4dHJhIGNhc2UsIHdoZW4gd2Ugc2hvdWxkIGFkZCBhbiBleHRyYSBkYXRlIHJhbmdlIGZvciB0aGUgbGFzdCBsb2dib29rXG4gICAqL1xuICBwcml2YXRlIGdldFBlcmlvZEJ5TG9nYm9vayhsb2dib29rOiBWZWhpY2xlTG9nYm9vaywgaXNCYWNrd2FyZDogYm9vbGVhbiA9IGZhbHNlKTogRGF0ZVJhbmdlIHtcbiAgICBpZiAoaXNCYWNrd2FyZCkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlUmFuZ2UoW25ldyBEYXRlKGxvZ2Jvb2suZGF0ZS5nZXRUaW1lKCkgLSBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLnBlcmlvZER1cmF0aW9uKSwgbG9nYm9vay5kYXRlXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlUmFuZ2UoW2xvZ2Jvb2suZGF0ZSwgbmV3IERhdGUobG9nYm9vay5kYXRlLmdldFRpbWUoKSArIEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24ucGVyaW9kRHVyYXRpb24pXSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUxvZ2Jvb2tzKGxvZ2Jvb2tzOiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24sIGlzU29sZTogYm9vbGVhbiA9IGZhbHNlKTogQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB8IG51bGwge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBuZXcgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbihsb2dib29rcywgaXNTb2xlKTtcblxuICAgIHJldHVybiBjb2xsZWN0aW9uLmlzQmVzdFBlcmlvZEV4aXN0KGxvZ2Jvb2tzKSA/IGNvbGxlY3Rpb24gOiBudWxsO1xuICB9XG59XG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVzdC12ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy92ZWhpY2xlL2Jlc3QtdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsd0JBQXdCO0lBQ3hFOzs7T0FHRzthQUNJLG1CQUFjLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztJQU9sRDs7O09BR0c7SUFDSCxZQUFvQixRQUEwQjtRQUM1QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQWtDO1FBQ3pELElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksQ0FBQyxDQUFDLFFBQVEsWUFBWSx3QkFBd0IsQ0FBQyxFQUFFO1lBQ25ELFFBQVEsR0FBRyxJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsT0FBTyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQscURBQXFEO0lBQ3JELE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBa0M7UUFDbEQsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLCtEQUErRDtRQUMvRCxNQUFNLE9BQU8sR0FBZ0IsU0FBUztZQUNwQyx3REFBd0Q7YUFDdkQsTUFBTSxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUN2RyxHQUFHLENBQUMsQ0FBQyxPQUF1QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUd0RSw0RUFBNEU7UUFDNUUseURBQXlEO1FBQ3pELHNEQUFzRDtRQUN0RCxZQUFZO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVELElBQUk7UUFFSixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxPQUF1QixFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQ25FLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzlGO1FBRUQsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNLLG1CQUFtQixDQUFDLFFBQWtDO1FBQzVELCtEQUErRDtRQUMvRCxNQUFNLE9BQU8sR0FBZ0IsNEJBQTRCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9FLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFpQixFQUFFLEVBQUU7WUFDcEMsTUFBTSxnQkFBZ0IsR0FBNkIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFFOUgsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRTtnQkFDM0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDekM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWtDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksNEJBQTRCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEUsVUFBVSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZWhpY2xlTG9nYm9vayB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gfSBmcm9tICcuL3ZlaGljbGUtbG9nYm9vay5jb2xsZWN0aW9uJztcbmltcG9ydCB7IERhdGVSYW5nZSB9IGZyb20gJ21vbWVudC1yYW5nZSc7XG5cbi8qKlxuICogU3BlY2lhbCBsb2dib29rIGNvbGxlY3Rpb24gdGhhdCBjb250YWlucyBsb2dib29rcyBmcm9tIGRhdGUgcGVyaW9kIHdpdGggdGhlIGhpZ2hlc3Qgd29yayB1c2FnZSBwZXJjZW50XG4gKiBEb2NzOiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxMTUxNzQ0MS9Mb2dib29rK1ZlaGljbGVcbiAqL1xuZXhwb3J0IGNsYXNzIEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gZXh0ZW5kcyBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24ge1xuICAvKipcbiAgICogTG9nYm9vayBjbGFpbWFibGUgcGVyaW9kIGR1cmF0aW9uIGluIG1pbGxpc2Vjb25kcy5cbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTE1MTc0NDEvTG9nYm9vaytWZWhpY2xlXG4gICAqL1xuICBzdGF0aWMgcGVyaW9kRHVyYXRpb24gPSAxMiAqIDcgKiAyNCAqIDM2MDAgKiAxMDAwO1xuXG4gIC8qKlxuICAgKiBEYXRlIHJhbmdlIHdpdGggdGhlIGJpZ2dlc3Qgd29yayB1c2FnZSBwZXJjZW50XG4gICAqL1xuICBwZXJpb2Q6IERhdGVSYW5nZTtcblxuICAvKipcbiAgICogY29uc3RydWN0b3IgaXMgcHJpdmF0ZSBiZWNhdXNlIHdlIHdhbnQgdG8gcHJldmVudCBjb2xsZWN0aW9uIGluaXRpYWxpemF0aW9uIHZpYSAnbmV3JyBvcGVyYXRvci5cbiAgICogV2Ugc2hvdWxkIGNyZWF0ZSBpbnN0YW5jZXMgb25seSB3aXRoIGZyb21Mb2dib29rcyBtZXRob2RcbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IobG9nYm9va3M6IFZlaGljbGVMb2dib29rW10pIHtcbiAgICBzdXBlcihsb2dib29rcyk7XG4gIH1cblxuICAvKipcbiAgICogQmVzdCBwZXJpb2QgbWF5IGJlIGNhbGN1bGF0ZWQgb25seSB3aGVuIHVzZXIgaGFzIGxvZ2Jvb2tzIG1pbmltdW0gZm9yIFZlaGljbGVMb2dib29rLmJlc3RQZXJpb2RXZWVrc1xuICAgKi9cbiAgc3RhdGljIGlzQmVzdFBlcmlvZEV4aXN0KGxvZ2Jvb2tzOiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24pOiBib29sZWFuIHtcbiAgICBpZiAobG9nYm9va3MubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghKGxvZ2Jvb2tzIGluc3RhbmNlb2YgVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKSkge1xuICAgICAgbG9nYm9va3MgPSBuZXcgVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKGxvZ2Jvb2tzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wZXJpb2REdXJhdGlvbiA8IChsb2dib29rcy5sYXN0LmRhdGUuZ2V0VGltZSgpIC0gbG9nYm9va3MuZmlyc3QuZGF0ZS5nZXRUaW1lKCkpO1xuICB9XG5cbiAgLy8gZ2V0IGxpc3Qgb2YgZGF0ZSByYW5nZXMgZm9yIGVhY2ggb2YgcGFzc2VkIGxvZ2Jvb2tcbiAgc3RhdGljIGdldFBlcmlvZHMobG9nYm9va3M6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbik6IERhdGVSYW5nZVtdIHtcbiAgICBjb25zdCBjbGFpbWFibGUgPSBsb2dib29rcy5nZXRDbGFpbWFibGUoKTtcbiAgICAvLyBnZXQgYSBsaXN0IG9mIGRhdGUgcmFuZ2VzIHRoYXQgY291bGQgcG90ZW50aWFsbHkgYmUgdGhlIGJlc3RcbiAgICBjb25zdCBwZXJpb2RzOiBEYXRlUmFuZ2VbXSA9IGNsYWltYWJsZVxuICAgICAgLy8gc2tpcCBsb2dib29rcyB3aG9zZSByYW5nZSBlbmRzIGFmdGVyIHRoZSBsYXN0IGxvZ2Jvb2tcbiAgICAgIC5maWx0ZXIoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiB0aGlzLmdldFBlcmlvZEJ5TG9nYm9vayhsb2dib29rKS5lbmQudG9EYXRlKCkgPCBsb2dib29rcy5sYXN0LmRhdGUpXG4gICAgICAubWFwKChsb2dib29rOiBWZWhpY2xlTG9nYm9vaykgPT4gdGhpcy5nZXRQZXJpb2RCeUxvZ2Jvb2sobG9nYm9vaykpO1xuXG5cbiAgICAvLyBza2lwIGlmIHRoZSBsYXN0IGxvZ2Jvb2sgYWxyZWFkeSBpbmNsdWRlZCB0byB0aGUgbGFzdCBleGlzdGluZyBkYXRlIHJhbmdlXG4gICAgLy8gaWYgKGxhc3QocGVyaW9kcykuZW5kLnRvRGF0ZSgpIDwgbG9nYm9va3MubGFzdC5kYXRlKSB7XG4gICAgLy8gYWRkIGV4dHJhIGRhdGUgcmFuZ2UgZm9yIHRoZSBsYXN0IGNsYWltYWJsZSBsb2dib29rXG4gICAgLy8gQFRPRE8gdmlrXG4gICAgcGVyaW9kcy5wdXNoKHRoaXMuZ2V0UGVyaW9kQnlMb2dib29rKGNsYWltYWJsZS5sYXN0LCB0cnVlKSk7XG4gICAgLy8gfVxuXG4gICAgcmV0dXJuIHBlcmlvZHM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNsYWltYWJsZSBkYXRlIHJhbmdlIGZvciBwYXNzZWQgbG9nYm9va1xuICAgKiBAcGFyYW0gbG9nYm9vayBsb2dib29rIGluc3RhbmNlIGZvciByYW5nZSBjYWxjdWxhdGlvblxuICAgKiBAcGFyYW0gaXNCYWNrd2FyZCBGbGFnIGZhbHNlIC0gcmFuZ2UgZm9yIGxvZ2Jvb2sgKyBkdXJhdGlvbjsgZmxhZyB0cnVlIC0gcmFuZ2UgZm9yIGxvZ2Jvb2sgLSBkdXJhdGlvbi4gVXNlZCBmb3IgZXh0cmEgY2FzZSwgd2hlbiB3ZSBzaG91bGQgYWRkIGFuIGV4dHJhIGRhdGUgcmFuZ2UgZm9yIHRoZSBsYXN0IGxvZ2Jvb2tcbiAgICovXG4gIHN0YXRpYyBnZXRQZXJpb2RCeUxvZ2Jvb2sobG9nYm9vazogVmVoaWNsZUxvZ2Jvb2ssIGlzQmFja3dhcmQgPSBmYWxzZSk6IERhdGVSYW5nZSB7XG4gICAgaWYgKGlzQmFja3dhcmQpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZVJhbmdlKFtuZXcgRGF0ZShsb2dib29rLmRhdGUuZ2V0VGltZSgpIC0gdGhpcy5wZXJpb2REdXJhdGlvbiksIGxvZ2Jvb2suZGF0ZV0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZVJhbmdlKFtsb2dib29rLmRhdGUsIG5ldyBEYXRlKGxvZ2Jvb2suZGF0ZS5nZXRUaW1lKCkgKyB0aGlzLnBlcmlvZER1cmF0aW9uKV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBEYXRlIFJhbmdlIHdpdGggdGhlIGJpZ2dlc3Qgd29yayB1c2FnZSBwZXJjZW50XG4gICAqIFJhbmdlIGR1cmF0aW9uIGlzIGRlZmluZWQgYXMgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbi5wZXJpb2REdXJhdGlvbiBieSB0aGUgQVRPXG4gICAqXG4gICAqIEFsZ29yaXRobTpcbiAgICogQ2xhaW1hYmxlIGxvZ2Jvb2tzIG9yIGNsYWltYWJsZSB0cmlwcyAtIHdvcmsvYnVzaW5lc3MgbG9nYm9vayBpdGVtcy5cbiAgICogV2Ugc2hvdWxkIHdvcmsgd2l0aCBkYXRlcyBmcm9tIHRoZSBmaXJzdCB0byB0aGUgbGFzdCB0cmlwIChpbmNsdWRlIHBlcnNvbmFsIHRyaXBzKS5cbiAgICogR2V0IGRhdGUgcmFuZ2VzIHN0YXJ0cyBvbiBlYWNoIGNsYWltYWJsZSB0cmlwLCBhbGwgb3RoZXIgcmFuZ2VzIGFyZSBkZWZpbmV0aWx5IHdvcnN0LlxuICAgKiBBbHNvIGdldCBleHRyYSBkYXRlIHJhbmdlIHdoaWNoIGVuZHMgd2l0aCB0aGUgbGFzdCBjbGFpbWFibGUgdHJpcC5cbiAgICogR2V0IGFsbCB0cmlwcyBpbmNsdWRlZCB0byBlYWNoIGRhdGUgcmFuZ2UuXG4gICAqIEZpbmQgYW5kIHJldHVybiByYW5nZSB3aXRoIHRoZSBiaWdnZXN0IHdvcmtVc2FnZSBwZXJjZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxhdGVCZXN0UGVyaW9kKGxvZ2Jvb2tzOiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24pOiB2b2lkIHtcbiAgICAvLyBnZXQgYSBsaXN0IG9mIGRhdGUgcmFuZ2VzIHRoYXQgY291bGQgcG90ZW50aWFsbHkgYmUgdGhlIGJlc3RcbiAgICBjb25zdCBwZXJpb2RzOiBEYXRlUmFuZ2VbXSA9IEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24uZ2V0UGVyaW9kcyhsb2dib29rcyk7XG5cbiAgICBwZXJpb2RzLmZvckVhY2goKHBlcmlvZDogRGF0ZVJhbmdlKSA9PiB7XG4gICAgICBjb25zdCBsb2dib29rc0luUGVyaW9kOiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gPSBsb2dib29rcy5maWx0ZXJCeVJhbmdlKCdkYXRlJywgcGVyaW9kLnN0YXJ0LnRvRGF0ZSgpLCBwZXJpb2QuZW5kLnRvRGF0ZSgpKTtcblxuICAgICAgaWYgKCF0aGlzLnBlcmlvZCB8fCAodGhpcy5nZXRXb3JrVXNhZ2UoKSA8IGxvZ2Jvb2tzSW5QZXJpb2QuZ2V0V29ya1VzYWdlKCkpKSB7XG4gICAgICAgIHRoaXMucGVyaW9kID0gcGVyaW9kO1xuICAgICAgICB0aGlzLml0ZW1zID0gbG9nYm9va3NJblBlcmlvZC50b0FycmF5KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUxvZ2Jvb2tzKGxvZ2Jvb2tzOiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24pOiBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmlzQmVzdFBlcmlvZEV4aXN0KGxvZ2Jvb2tzKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY29sbGVjdGlvbiA9IG5ldyBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKGxvZ2Jvb2tzLnRvQXJyYXkoKSk7XG4gICAgY29sbGVjdGlvbi5jYWxjdWxhdGVCZXN0UGVyaW9kKGxvZ2Jvb2tzKTtcblxuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9XG59XG4iXX0=
@@ -1,43 +1,20 @@
1
1
  import { Collection } from '../collection';
2
2
  import { TankTypeEnum } from '../../db/Enums/tank-type.enum';
3
- import round from 'lodash/round';
4
3
  import { BestVehicleLogbookCollection } from './best-vehicle-logbook.collection';
5
4
  export class VehicleLogbookCollection extends Collection {
6
- /**
7
- * Get collection of non-personal logbooks (work-related, sole-related).
8
- * @TODO Vik: Best period: move this and related logic to backend
9
- */
10
- getClaimableLogbooks(isSole = false) {
11
- return this.filter((logbook) => !logbook.isPersonal && (isSole ? logbook.isSoleTank() : logbook.isWorkTank()));
12
- }
13
5
  /**
14
6
  * Calculate total kilometers traveled
15
7
  */
16
8
  get kilometers() {
17
9
  return this.sumBy('kilometers');
18
10
  }
19
- /**
20
- * Calculate work usage (percent of business-related kilometers from total kilometers)
21
- * @TODO Alex: TT-2089 replace with getter
22
- */
23
- get workUsage() {
24
- if (!this.length) {
25
- return 0;
26
- }
27
- const workKilometers = this.items
28
- .filter((logbook) => !logbook.isPersonal)
29
- .reduce((sum, logbook) => sum + logbook.kilometers, 0);
30
- return round(workKilometers / this.kilometers * 100, 2);
31
- }
32
- getWorkUsageByTank(isSole) {
33
- const workKilometers = this.getClaimableLogbooks(isSole).items
34
- .reduce((sum, logbook) => sum + logbook.kilometers, 0);
35
- return round(workKilometers / this.kilometers * 100, 2);
11
+ getWorkUsage(vehicleClaim) {
12
+ return +(this.getClaimable(vehicleClaim).kilometers / this.kilometers * 100).toFixed(10);
36
13
  }
37
- /**
38
- * Get list of logbooks related to passed vehicle claim
39
- */
40
- getByVehicleClaim(vehicleClaim) {
14
+ getClaimable(vehicleClaim) {
15
+ if (!vehicleClaim) {
16
+ return this.filter((logbook) => !logbook.isPersonal);
17
+ }
41
18
  return vehicleClaim.isSoleTank()
42
19
  // sole tank may have multiple vehicle claims, so we need to filter by business.id
43
20
  ? this.filterBy('business.id', vehicleClaim.business.id)
@@ -47,8 +24,8 @@ export class VehicleLogbookCollection extends Collection {
47
24
  /**
48
25
  * get collection of logbooks with the biggest work usage for {@link BestVehicleLogbookCollection.periodDuration}
49
26
  */
50
- getBest(isSole = false) {
51
- return BestVehicleLogbookCollection.fromLogbooks(this, isSole);
27
+ getBest() {
28
+ return BestVehicleLogbookCollection.fromLogbooks(this);
52
29
  }
53
30
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvdmVoaWNsZS92ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFVBQTBCO0lBQ3RFOzs7T0FHRztJQUNILG9CQUFvQixDQUFDLFNBQWtCLEtBQUs7UUFDMUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakksQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLFNBQVM7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUs7YUFDOUIsTUFBTSxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO2FBQ3hELE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXpELE9BQU8sS0FBSyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBZTtRQUNoQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSzthQUMzRCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6RCxPQUFPLEtBQUssQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsWUFBMEI7UUFDMUMsT0FBTyxZQUFZLENBQUMsVUFBVSxFQUFFO1lBQzlCLGtGQUFrRjtZQUNsRixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDeEQsK0VBQStFO1lBQy9FLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLFNBQWtCLEtBQUs7UUFDN0IsT0FBTyw0QkFBNEIsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFZlaGljbGVDbGFpbSwgVmVoaWNsZUxvZ2Jvb2sgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdGFuay10eXBlLmVudW0nO1xuaW1wb3J0IHJvdW5kIGZyb20gJ2xvZGFzaC9yb3VuZCc7XG5pbXBvcnQgeyBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIH0gZnJvbSAnLi9iZXN0LXZlaGljbGUtbG9nYm9vay5jb2xsZWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248VmVoaWNsZUxvZ2Jvb2s+IHtcbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIG5vbi1wZXJzb25hbCBsb2dib29rcyAod29yay1yZWxhdGVkLCBzb2xlLXJlbGF0ZWQpLlxuICAgKiBAVE9ETyBWaWs6IEJlc3QgcGVyaW9kOiBtb3ZlIHRoaXMgYW5kIHJlbGF0ZWQgbG9naWMgdG8gYmFja2VuZFxuICAgKi9cbiAgZ2V0Q2xhaW1hYmxlTG9nYm9va3MoaXNTb2xlOiBib29sZWFuID0gZmFsc2UpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiAhbG9nYm9vay5pc1BlcnNvbmFsICYmIChpc1NvbGUgPyBsb2dib29rLmlzU29sZVRhbmsoKSA6IGxvZ2Jvb2suaXNXb3JrVGFuaygpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRvdGFsIGtpbG9tZXRlcnMgdHJhdmVsZWRcbiAgICovXG4gIGdldCBraWxvbWV0ZXJzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2tpbG9tZXRlcnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgd29yayB1c2FnZSAocGVyY2VudCBvZiBidXNpbmVzcy1yZWxhdGVkIGtpbG9tZXRlcnMgZnJvbSB0b3RhbCBraWxvbWV0ZXJzKVxuICAgKiBAVE9ETyBBbGV4OiBUVC0yMDg5IHJlcGxhY2Ugd2l0aCBnZXR0ZXJcbiAgICovXG4gIGdldCB3b3JrVXNhZ2UoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCB3b3JrS2lsb21ldGVycyA9IHRoaXMuaXRlbXNcbiAgICAgIC5maWx0ZXIoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiAhbG9nYm9vay5pc1BlcnNvbmFsKVxuICAgICAgLnJlZHVjZSgoc3VtLCBsb2dib29rKSA9PiBzdW0gKyBsb2dib29rLmtpbG9tZXRlcnMsIDApO1xuXG4gICAgcmV0dXJuIHJvdW5kKHdvcmtLaWxvbWV0ZXJzIC8gdGhpcy5raWxvbWV0ZXJzICogMTAwLCAyKTtcbiAgfVxuXG4gIGdldFdvcmtVc2FnZUJ5VGFuayhpc1NvbGU6IGJvb2xlYW4pOiBudW1iZXIge1xuICAgIGNvbnN0IHdvcmtLaWxvbWV0ZXJzID0gdGhpcy5nZXRDbGFpbWFibGVMb2dib29rcyhpc1NvbGUpLml0ZW1zXG4gICAgICAucmVkdWNlKChzdW0sIGxvZ2Jvb2spID0+IHN1bSArIGxvZ2Jvb2sua2lsb21ldGVycywgMCk7XG5cbiAgICByZXR1cm4gcm91bmQod29ya0tpbG9tZXRlcnMgLyB0aGlzLmtpbG9tZXRlcnMgKiAxMDAsIDIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIGxvZ2Jvb2tzIHJlbGF0ZWQgdG8gcGFzc2VkIHZlaGljbGUgY2xhaW1cbiAgICovXG4gIGdldEJ5VmVoaWNsZUNsYWltKHZlaGljbGVDbGFpbTogVmVoaWNsZUNsYWltKTogdGhpcyB7XG4gICAgcmV0dXJuIHZlaGljbGVDbGFpbS5pc1NvbGVUYW5rKClcbiAgICAgIC8vIHNvbGUgdGFuayBtYXkgaGF2ZSBtdWx0aXBsZSB2ZWhpY2xlIGNsYWltcywgc28gd2UgbmVlZCB0byBmaWx0ZXIgYnkgYnVzaW5lc3MuaWRcbiAgICAgID8gdGhpcy5maWx0ZXJCeSgnYnVzaW5lc3MuaWQnLCB2ZWhpY2xlQ2xhaW0uYnVzaW5lc3MuaWQpXG4gICAgICAvLyB3b3JrIHRhbmsgbWF5IGhhdmUgb25seSBvbmUgdmVoaWNsZSBjbGFpbSwgc28gd2UgbmVlZCB0byBmaWx0ZXIgYnkgdGFuayB0eXBlXG4gICAgICA6IHRoaXMuZmlsdGVyQnkoJ3RhbmtUeXBlJywgVGFua1R5cGVFbnVtLldPUkspO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBjb2xsZWN0aW9uIG9mIGxvZ2Jvb2tzIHdpdGggdGhlIGJpZ2dlc3Qgd29yayB1c2FnZSBmb3Ige0BsaW5rIEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24ucGVyaW9kRHVyYXRpb259XG4gICAqL1xuICBnZXRCZXN0KGlzU29sZTogYm9vbGVhbiA9IGZhbHNlKTogQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB8IG51bGwge1xuICAgIHJldHVybiBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLmZyb21Mb2dib29rcyh0aGlzLCBpc1NvbGUpO1xuICB9XG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvdmVoaWNsZS92ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVqRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsVUFBMEI7SUFDdEU7O09BRUc7SUFDSCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUEyQjtRQUN0QyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsWUFBWSxDQUFDLFlBQTJCO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdEU7UUFFRCxPQUFPLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDOUIsa0ZBQWtGO1lBQ2xGLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUN4RCwrRUFBK0U7WUFDL0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsT0FBTyw0QkFBNEIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgVmVoaWNsZUNsYWltLCBWZWhpY2xlTG9nYm9vayB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIH0gZnJvbSAnLi9iZXN0LXZlaGljbGUtbG9nYm9vay5jb2xsZWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248VmVoaWNsZUxvZ2Jvb2s+IHtcbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0b3RhbCBraWxvbWV0ZXJzIHRyYXZlbGVkXG4gICAqL1xuICBnZXQga2lsb21ldGVycygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdraWxvbWV0ZXJzJyk7XG4gIH1cblxuICBnZXRXb3JrVXNhZ2UodmVoaWNsZUNsYWltPzogVmVoaWNsZUNsYWltKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKyh0aGlzLmdldENsYWltYWJsZSh2ZWhpY2xlQ2xhaW0pLmtpbG9tZXRlcnMgLyB0aGlzLmtpbG9tZXRlcnMgKiAxMDApLnRvRml4ZWQoMTApO1xuICB9XG5cbiAgZ2V0Q2xhaW1hYmxlKHZlaGljbGVDbGFpbT86IFZlaGljbGVDbGFpbSk6IHRoaXMge1xuICAgIGlmICghdmVoaWNsZUNsYWltKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiAhbG9nYm9vay5pc1BlcnNvbmFsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVoaWNsZUNsYWltLmlzU29sZVRhbmsoKVxuICAgICAgLy8gc29sZSB0YW5rIG1heSBoYXZlIG11bHRpcGxlIHZlaGljbGUgY2xhaW1zLCBzbyB3ZSBuZWVkIHRvIGZpbHRlciBieSBidXNpbmVzcy5pZFxuICAgICAgPyB0aGlzLmZpbHRlckJ5KCdidXNpbmVzcy5pZCcsIHZlaGljbGVDbGFpbS5idXNpbmVzcy5pZClcbiAgICAgIC8vIHdvcmsgdGFuayBtYXkgaGF2ZSBvbmx5IG9uZSB2ZWhpY2xlIGNsYWltLCBzbyB3ZSBuZWVkIHRvIGZpbHRlciBieSB0YW5rIHR5cGVcbiAgICAgIDogdGhpcy5maWx0ZXJCeSgndGFua1R5cGUnLCBUYW5rVHlwZUVudW0uV09SSyk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGNvbGxlY3Rpb24gb2YgbG9nYm9va3Mgd2l0aCB0aGUgYmlnZ2VzdCB3b3JrIHVzYWdlIGZvciB7QGxpbmsgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbi5wZXJpb2REdXJhdGlvbn1cbiAgICovXG4gIGdldEJlc3QoKTogQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB8IG51bGwge1xuICAgIHJldHVybiBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLmZyb21Mb2dib29rcyh0aGlzKTtcbiAgfVxufVxuIl19
@@ -2,7 +2,9 @@ export class FinancialYear {
2
2
  static { this.weeksInYear = 52; }
3
3
  static { this.monthsInYear = 12; }
4
4
  static { this.startMonthIndex = 6; }
5
- static { this.year = +localStorage.getItem('financialYear'); }
5
+ static get year() {
6
+ return +localStorage.getItem('financialYear');
7
+ }
6
8
  constructor(date) {
7
9
  this.yearStartDate = '-07-01';
8
10
  this.yearEndDate = '-06-30';
@@ -52,4 +54,4 @@ export class FinancialYear {
52
54
  return months;
53
55
  }
54
56
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYW5jaWFsLXllYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxhQUFhO2FBQ2pCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO2FBQ2pCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO2FBQ2xCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO2FBQ3BCLFNBQUksR0FBVyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFRN0QsWUFBWSxJQUFrQjtRQUh0QixrQkFBYSxHQUFHLFFBQVEsQ0FBQztRQUN6QixnQkFBVyxHQUFHLFFBQVEsQ0FBQztRQUc3QixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ3pFO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7U0FDdkU7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFlLGFBQWEsQ0FBQyxJQUFJO1FBQ2hELE9BQU8sYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVU7UUFDekIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLFVBQWtCO1FBQzdCLElBQUksVUFBVSxJQUFJLGFBQWEsQ0FBQyxlQUFlLEVBQUU7WUFDL0MsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLFVBQVUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksVUFBVSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFZO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBWTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sR0FBRyxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQVMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM5RCxLQUFLLE1BQU0sQ0FBQyxHQUFTLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUMvRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQzNCO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGaW5hbmNpYWxZZWFyIHtcclxuICBzdGF0aWMgd2Vla3NJblllYXIgPSA1MjtcclxuICBzdGF0aWMgbW9udGhzSW5ZZWFyID0gMTI7XHJcbiAgc3RhdGljIHN0YXJ0TW9udGhJbmRleCA9IDY7XHJcbiAgc3RhdGljIHllYXI6IG51bWJlciA9ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZmluYW5jaWFsWWVhcicpO1xyXG4gIHllYXI6IG51bWJlcjtcclxuICBzdGFydERhdGU6IERhdGU7XHJcbiAgZW5kRGF0ZTogRGF0ZTtcclxuXHJcbiAgcHJpdmF0ZSB5ZWFyU3RhcnREYXRlID0gJy0wNy0wMSc7XHJcbiAgcHJpdmF0ZSB5ZWFyRW5kRGF0ZSA9ICctMDYtMzAnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihkYXRlPzogRGF0ZXxudW1iZXIpIHtcclxuICAgIGlmIChkYXRlKSB7XHJcbiAgICAgIHRoaXMueWVhciA9IGRhdGUgaW5zdGFuY2VvZiBEYXRlID8gRmluYW5jaWFsWWVhci50b0ZpblllYXIoZGF0ZSkgOiBkYXRlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy55ZWFyID0gRmluYW5jaWFsWWVhci55ZWFyIHx8IEZpbmFuY2lhbFllYXIudG9GaW5ZZWFyKG5ldyBEYXRlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0U3RhcnREYXRlKHRoaXMueWVhcik7XHJcbiAgICB0aGlzLnNldEVuZERhdGUodGhpcy55ZWFyKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBpc0N1cnJlbnQoeWVhcjogbnVtYmVyID0gRmluYW5jaWFsWWVhci55ZWFyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gRmluYW5jaWFsWWVhci50b0ZpblllYXIobmV3IERhdGUoKSkgPT09IHllYXI7XHJcbiAgfVxyXG5cclxuICBpbmNsdWRlcyhkYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy55ZWFyID09PSBuZXcgRmluYW5jaWFsWWVhcihkYXRlKS55ZWFyO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHRvRmluWWVhcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgKyAoZGF0ZS5nZXRNb250aCgpID49IHRoaXMuc3RhcnRNb250aEluZGV4ID8gMSA6IDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHByZXZGaW5ZZWFyKCk6IEZpbmFuY2lhbFllYXIge1xyXG4gICAgcmV0dXJuIG5ldyBGaW5hbmNpYWxZZWFyKG5ldyBEYXRlKGAke25ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDF9JHt0aGlzLnllYXJTdGFydERhdGV9YCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGRhdGUgYnkgZGVzaXJlZCBtb250aFxyXG4gICAqL1xyXG4gIGdldE1vbnRoRGF0ZShtb250aEluZGV4OiBudW1iZXIpOiBEYXRlIHtcclxuICAgIGlmIChtb250aEluZGV4ID49IEZpbmFuY2lhbFllYXIuc3RhcnRNb250aEluZGV4KSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShgJHt0aGlzLnllYXIgLSAxfS0ke21vbnRoSW5kZXggKyAxfS0wMWApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGAke3RoaXMueWVhcn0tJHttb250aEluZGV4ICsgMX0tMDFgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0U3RhcnREYXRlKHllYXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZShgJHt5ZWFyIC0gMX0ke3RoaXMueWVhclN0YXJ0RGF0ZX1gKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RW5kRGF0ZSh5ZWFyOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuZW5kRGF0ZSA9IG5ldyBEYXRlKGAke3llYXJ9JHt0aGlzLnllYXJFbmREYXRlfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFzdE1vbnRocygpOiBudW1iZXJbXSB7XHJcbiAgICBjb25zdCBtb250aHM6IG51bWJlcltdID0gW107XHJcbiAgICBjb25zdCBub3c6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZW5kRGF0ZTogRGF0ZSA9IHRoaXMuZW5kRGF0ZSA8IG5vdyA/IHRoaXMuZW5kRGF0ZSA6IG5vdztcclxuICAgIGZvciAoY29uc3QgZDogRGF0ZSA9IHRoaXMuc3RhcnREYXRlOyBkIDw9IGVuZERhdGU7IGQuc2V0TW9udGgoZC5nZXRNb250aCgpICsgMSkpIHtcclxuICAgICAgbW9udGhzLnB1c2goZC5nZXRNb250aCgpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbW9udGhzO1xyXG4gIH1cclxufVxyXG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYW5jaWFsLXllYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxhQUFhO2FBQ2pCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO2FBQ2pCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO2FBQ2xCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLE1BQU0sS0FBSyxJQUFJO1FBQ2IsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQVFELFlBQVksSUFBa0I7UUFIdEIsa0JBQWEsR0FBRyxRQUFRLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxRQUFRLENBQUM7UUFHN0IsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUN6RTthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBZSxhQUFhLENBQUMsSUFBSTtRQUNoRCxPQUFPLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBQyxVQUFrQjtRQUM3QixJQUFJLFVBQVUsSUFBSSxhQUFhLENBQUMsZUFBZSxFQUFFO1lBQy9DLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxRDtRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLFVBQVUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTyxZQUFZLENBQUMsSUFBWTtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sVUFBVSxDQUFDLElBQVk7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUM1QixNQUFNLEdBQUcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFTLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDOUQsS0FBSyxNQUFNLENBQUMsR0FBUyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDL0UsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUMzQjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRmluYW5jaWFsWWVhciB7XHJcbiAgc3RhdGljIHdlZWtzSW5ZZWFyID0gNTI7XHJcbiAgc3RhdGljIG1vbnRoc0luWWVhciA9IDEyO1xyXG4gIHN0YXRpYyBzdGFydE1vbnRoSW5kZXggPSA2O1xyXG4gIHN0YXRpYyBnZXQgeWVhcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZmluYW5jaWFsWWVhcicpO1xyXG4gIH1cclxuICB5ZWFyOiBudW1iZXI7XHJcbiAgc3RhcnREYXRlOiBEYXRlO1xyXG4gIGVuZERhdGU6IERhdGU7XHJcblxyXG4gIHByaXZhdGUgeWVhclN0YXJ0RGF0ZSA9ICctMDctMDEnO1xyXG4gIHByaXZhdGUgeWVhckVuZERhdGUgPSAnLTA2LTMwJztcclxuXHJcbiAgY29uc3RydWN0b3IoZGF0ZT86IERhdGV8bnVtYmVyKSB7XHJcbiAgICBpZiAoZGF0ZSkge1xyXG4gICAgICB0aGlzLnllYXIgPSBkYXRlIGluc3RhbmNlb2YgRGF0ZSA/IEZpbmFuY2lhbFllYXIudG9GaW5ZZWFyKGRhdGUpIDogZGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMueWVhciA9IEZpbmFuY2lhbFllYXIueWVhciB8fCBGaW5hbmNpYWxZZWFyLnRvRmluWWVhcihuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldFN0YXJ0RGF0ZSh0aGlzLnllYXIpO1xyXG4gICAgdGhpcy5zZXRFbmREYXRlKHRoaXMueWVhcik7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNDdXJyZW50KHllYXI6IG51bWJlciA9IEZpbmFuY2lhbFllYXIueWVhcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEZpbmFuY2lhbFllYXIudG9GaW5ZZWFyKG5ldyBEYXRlKCkpID09PSB5ZWFyO1xyXG4gIH1cclxuXHJcbiAgaW5jbHVkZXMoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMueWVhciA9PT0gbmV3IEZpbmFuY2lhbFllYXIoZGF0ZSkueWVhcjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyB0b0ZpblllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpICsgKGRhdGUuZ2V0TW9udGgoKSA+PSB0aGlzLnN0YXJ0TW9udGhJbmRleCA/IDEgOiAwKTtcclxuICB9XHJcblxyXG4gIGdldCBwcmV2RmluWWVhcigpOiBGaW5hbmNpYWxZZWFyIHtcclxuICAgIHJldHVybiBuZXcgRmluYW5jaWFsWWVhcihuZXcgRGF0ZShgJHtuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAxfSR7dGhpcy55ZWFyU3RhcnREYXRlfWApKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBkYXRlIGJ5IGRlc2lyZWQgbW9udGhcclxuICAgKi9cclxuICBnZXRNb250aERhdGUobW9udGhJbmRleDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBpZiAobW9udGhJbmRleCA+PSBGaW5hbmNpYWxZZWFyLnN0YXJ0TW9udGhJbmRleCkge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUoYCR7dGhpcy55ZWFyIC0gMX0tJHttb250aEluZGV4ICsgMX0tMDFgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZShgJHt0aGlzLnllYXJ9LSR7bW9udGhJbmRleCArIDF9LTAxYCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFN0YXJ0RGF0ZSh5ZWFyOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhcnREYXRlID0gbmV3IERhdGUoYCR7eWVhciAtIDF9JHt0aGlzLnllYXJTdGFydERhdGV9YCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEVuZERhdGUoeWVhcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmVuZERhdGUgPSBuZXcgRGF0ZShgJHt5ZWFyfSR7dGhpcy55ZWFyRW5kRGF0ZX1gKTtcclxuICB9XHJcblxyXG4gIGdldFBhc3RNb250aHMoKTogbnVtYmVyW10ge1xyXG4gICAgY29uc3QgbW9udGhzOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgY29uc3Qgbm93OiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IGVuZERhdGU6IERhdGUgPSB0aGlzLmVuZERhdGUgPCBub3cgPyB0aGlzLmVuZERhdGUgOiBub3c7XHJcbiAgICBmb3IgKGNvbnN0IGQ6IERhdGUgPSB0aGlzLnN0YXJ0RGF0ZTsgZCA8PSBlbmREYXRlOyBkLnNldE1vbnRoKGQuZ2V0TW9udGgoKSArIDEpKSB7XHJcbiAgICAgIG1vbnRocy5wdXNoKGQuZ2V0TW9udGgoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1vbnRocztcclxuICB9XHJcbn1cclxuIl19
@@ -8,13 +8,14 @@ export class VehicleLogbook extends VehicleLogbookBase {
8
8
  return this.odometerEnd - this.odometerStart;
9
9
  }
10
10
  get tankType() {
11
- return this.isSoleTank() ? TankTypeEnum.SOLE : TankTypeEnum.WORK;
12
- }
13
- isWorkTank() {
14
- return !this.business;
15
- }
16
- isSoleTank() {
17
- return !!this.business;
11
+ switch (true) {
12
+ case !!this.business:
13
+ return TankTypeEnum.SOLE;
14
+ case this.isPersonal:
15
+ return TankTypeEnum.PERSONAL;
16
+ default:
17
+ return TankTypeEnum.WORK;
18
+ }
18
19
  }
19
20
  }
20
21
  __decorate([
@@ -23,4 +24,4 @@ __decorate([
23
24
  __decorate([
24
25
  Type(() => SoleBusiness)
25
26
  ], VehicleLogbook.prototype, "business", void 0);
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy92ZWhpY2xlL3ZlaGljbGUtbG9nYm9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGtCQUFrQjtJQU9wRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDbkUsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBcEJHO0lBREQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzs0Q0FDSjtBQUdYO0lBREQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztnREFDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlaGljbGVMb2dib29rIGFzIFZlaGljbGVMb2dib29rQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy92ZWhpY2xlL3ZlaGljbGUtbG9nYm9vayc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgU29sZUJ1c2luZXNzIH0gZnJvbSAnLi4vc29sZSc7XG5pbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBWZWhpY2xlTG9nYm9vayBleHRlbmRzIFZlaGljbGVMb2dib29rQmFzZSB7XG4gIEBUeXBlKCgpID0+IERhdGUpXG4gICAgZGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBTb2xlQnVzaW5lc3MpXG4gICAgYnVzaW5lc3M6IFNvbGVCdXNpbmVzcztcblxuICBnZXQga2lsb21ldGVycygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm9kb21ldGVyRW5kIC0gdGhpcy5vZG9tZXRlclN0YXJ0O1xuICB9XG5cbiAgZ2V0IHRhbmtUeXBlKCk6IFRhbmtUeXBlRW51bSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTb2xlVGFuaygpID8gVGFua1R5cGVFbnVtLlNPTEUgOiBUYW5rVHlwZUVudW0uV09SSztcbiAgfVxuXG4gIGlzV29ya1RhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmJ1c2luZXNzO1xuICB9XG5cbiAgaXNTb2xlVGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmJ1c2luZXNzO1xuICB9XG59XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy92ZWhpY2xlL3ZlaGljbGUtbG9nYm9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGtCQUFrQjtJQU9wRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDbEIsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQzNCLEtBQUssSUFBSSxDQUFDLFVBQVU7Z0JBQ2xCLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQztZQUMvQjtnQkFDRSxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUM7U0FDNUI7SUFDSCxDQUFDO0NBQ0Y7QUFuQkM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOzRDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO2dEQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVoaWNsZUxvZ2Jvb2sgYXMgVmVoaWNsZUxvZ2Jvb2tCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3ZlaGljbGUvdmVoaWNsZS1sb2dib29rJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTb2xlQnVzaW5lc3MgfSBmcm9tICcuLi9zb2xlJztcbmltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFZlaGljbGVMb2dib29rIGV4dGVuZHMgVmVoaWNsZUxvZ2Jvb2tCYXNlIHtcbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBTb2xlQnVzaW5lc3MpXG4gIGJ1c2luZXNzOiBTb2xlQnVzaW5lc3M7XG5cbiAgZ2V0IGtpbG9tZXRlcnMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5vZG9tZXRlckVuZCAtIHRoaXMub2RvbWV0ZXJTdGFydDtcbiAgfVxuXG4gIGdldCB0YW5rVHlwZSgpOiBUYW5rVHlwZUVudW0ge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSAhIXRoaXMuYnVzaW5lc3M6XG4gICAgICAgIHJldHVybiBUYW5rVHlwZUVudW0uU09MRTtcbiAgICAgIGNhc2UgdGhpcy5pc1BlcnNvbmFsOlxuICAgICAgICByZXR1cm4gVGFua1R5cGVFbnVtLlBFUlNPTkFMO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFRhbmtUeXBlRW51bS5XT1JLO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -15,9 +15,6 @@ export class VehicleClaimService extends RestService {
15
15
  this.url = 'vehicle-claims';
16
16
  this.roles = [UserRolesEnum.WORK_TANK, UserRolesEnum.SOLE_TANK];
17
17
  }
18
- listenEvents() {
19
- this.listenVehicleClaimDetailsChanges();
20
- }
21
18
  add(model) {
22
19
  return super.add(model).pipe(map((vehicleClaim) => {
23
20
  this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.VEHICLE_CLAIM_CREATED, vehicleClaim));
@@ -30,32 +27,16 @@ export class VehicleClaimService extends RestService {
30
27
  return vehicleClaim;
31
28
  }));
32
29
  }
33
- /**
34
- * Details changes may affect vehicle claims:
35
- * when details method changed, all claims current values become 0
36
- */
37
- listenVehicleClaimDetailsChanges() {
38
- this.eventDispatcherService.on(AppEventTypeEnum.VEHICLE_CLAIM_DETAILS_UPDATED)
39
- .subscribe(() => {
40
- this.refreshCache();
41
- });
42
- }
43
30
  /**
44
31
  * Update workUsage for all vehicle claims if logbook best period changed
45
32
  * @TODO Vik: Best period move this and related logic to backend
46
33
  */
47
34
  updateWorkUsage(bestLogbooks) {
48
- // no need to update if cache not exist
49
- if (!this.cache) {
50
- return;
51
- }
52
- // @TODO Vik (TT-2210): need batch endpoint for this update
53
- // @TODO Alex (TT-2210): fix frontend when endpoint ready
54
- const batch$ = this.cache.map((claim) => {
55
- const claimToUpdate = plainToClass(VehicleClaim, Object.assign({}, claim, { workUsage: bestLogbooks.getWorkUsageByClaim(claim) }));
35
+ const batch$ = (this.cache ?? []).map((claim) => {
36
+ const claimToUpdate = plainToClass(VehicleClaim, Object.assign({}, claim, { workUsage: bestLogbooks.getWorkUsage(claim) }));
56
37
  return this.update(claimToUpdate);
57
38
  });
58
- combineLatest(batch$).subscribe();
39
+ return combineLatest(batch$);
59
40
  }
60
41
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VehicleClaimService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
61
42
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VehicleClaimService, providedIn: 'root' }); }
@@ -66,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
66
47
  providedIn: 'root'
67
48
  }]
68
49
  }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1jbGFpbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdmVoaWNsZS92ZWhpY2xlLWNsYWltLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQU1sRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBMkM7SUFIcEY7O1FBSUUsZUFBVSxHQUF3QixZQUFZLENBQUM7UUFDL0MsUUFBRyxHQUFHLGdCQUFnQixDQUFDO1FBQ3ZCLFVBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBNEQ1RDtJQTFEQyxZQUFZO1FBQ1YsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFtQjtRQUNyQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBRXpHLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQW1CLEVBQUUsY0FBc0IsRUFBRTtRQUNsRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDMUMsR0FBRyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUV6RyxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdDQUFnQztRQUN0QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLDZCQUE2QixDQUFDO2FBQzNFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZUFBZSxDQUFDLFlBQTBDO1FBQ2hFLHVDQUF1QztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE9BQU87U0FDUjtRQUVELDJEQUEyRDtRQUMzRCx5REFBeUQ7UUFDekQsTUFBTSxNQUFNLEdBQStCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBbUIsRUFBRSxFQUFFO1lBQ2hGLE1BQU0sYUFBYSxHQUFpQixZQUFZLENBQzlDLFlBQVksRUFDWixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsQ0FDL0UsQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQTtRQUVGLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNwQyxDQUFDOytHQTlEVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmVoaWNsZUNsYWltIGFzIFZlaGljbGVDbGFpbUJhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMvdmVoaWNsZS92ZWhpY2xlLWNsYWltJztcbmltcG9ydCB7IFZlaGljbGVDbGFpbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uL3Jlc3QvcmVzdC1vbGQuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcbmltcG9ydCB7IEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFZlaGljbGVDbGFpbVNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxWZWhpY2xlQ2xhaW1CYXNlLCBWZWhpY2xlQ2xhaW0+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBtb2RlbENsYXNzOiB0eXBlb2YgVmVoaWNsZUNsYWltID0gVmVoaWNsZUNsYWltO1xuICB1cmwgPSAndmVoaWNsZS1jbGFpbXMnO1xuICByb2xlcyA9IFtVc2VyUm9sZXNFbnVtLldPUktfVEFOSywgVXNlclJvbGVzRW51bS5TT0xFX1RBTktdO1xuXG4gIGxpc3RlbkV2ZW50cygpIHtcbiAgICB0aGlzLmxpc3RlblZlaGljbGVDbGFpbURldGFpbHNDaGFuZ2VzKCk7XG4gIH1cblxuICBhZGQobW9kZWw6IFZlaGljbGVDbGFpbSk6IE9ic2VydmFibGU8VmVoaWNsZUNsYWltPiB7XG4gICAgcmV0dXJuIHN1cGVyLmFkZChtb2RlbCkucGlwZShcbiAgICAgIG1hcCgodmVoaWNsZUNsYWltOiBWZWhpY2xlQ2xhaW0pID0+IHtcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfQ0xBSU1fQ1JFQVRFRCwgdmVoaWNsZUNsYWltKSk7XG5cbiAgICAgICAgcmV0dXJuIHZlaGljbGVDbGFpbTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZShtb2RlbDogVmVoaWNsZUNsYWltLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPFZlaGljbGVDbGFpbT4ge1xuICAgIHJldHVybiBzdXBlci51cGRhdGUobW9kZWwsIHF1ZXJ5UGFyYW1zKS5waXBlKFxuICAgICAgbWFwKCh2ZWhpY2xlQ2xhaW06IFZlaGljbGVDbGFpbSkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9DTEFJTV9VUERBVEVELCB2ZWhpY2xlQ2xhaW0pKTtcblxuICAgICAgICByZXR1cm4gdmVoaWNsZUNsYWltO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGFpbHMgY2hhbmdlcyBtYXkgYWZmZWN0IHZlaGljbGUgY2xhaW1zOlxuICAgKiB3aGVuIGRldGFpbHMgbWV0aG9kIGNoYW5nZWQsIGFsbCBjbGFpbXMgY3VycmVudCB2YWx1ZXMgYmVjb21lIDBcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVmVoaWNsZUNsYWltRGV0YWlsc0NoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9DTEFJTV9ERVRBSUxTX1VQREFURUQpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZWZyZXNoQ2FjaGUoKTtcbiAgICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHdvcmtVc2FnZSBmb3IgYWxsIHZlaGljbGUgY2xhaW1zIGlmIGxvZ2Jvb2sgYmVzdCBwZXJpb2QgY2hhbmdlZFxuICAgKiBAVE9ETyBWaWs6IEJlc3QgcGVyaW9kIG1vdmUgdGhpcyBhbmQgcmVsYXRlZCBsb2dpYyB0byBiYWNrZW5kXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZVdvcmtVc2FnZShiZXN0TG9nYm9va3M6IEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24pOiB2b2lkIHtcbiAgICAvLyBubyBuZWVkIHRvIHVwZGF0ZSBpZiBjYWNoZSBub3QgZXhpc3RcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBAVE9ETyBWaWsgKFRULTIyMTApOiBuZWVkIGJhdGNoIGVuZHBvaW50IGZvciB0aGlzIHVwZGF0ZVxuICAgIC8vIEBUT0RPIEFsZXggKFRULTIyMTApOiBmaXggZnJvbnRlbmQgd2hlbiBlbmRwb2ludCByZWFkeVxuICAgIGNvbnN0IGJhdGNoJDogT2JzZXJ2YWJsZTxWZWhpY2xlQ2xhaW0+W10gPSB0aGlzLmNhY2hlLm1hcCgoY2xhaW06IFZlaGljbGVDbGFpbSkgPT4ge1xuICAgICAgY29uc3QgY2xhaW1Ub1VwZGF0ZTogVmVoaWNsZUNsYWltID0gcGxhaW5Ub0NsYXNzKFxuICAgICAgICBWZWhpY2xlQ2xhaW0sXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIGNsYWltLCB7d29ya1VzYWdlOiBiZXN0TG9nYm9va3MuZ2V0V29ya1VzYWdlQnlDbGFpbShjbGFpbSl9KVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKGNsYWltVG9VcGRhdGUpO1xuICAgIH0pXG5cbiAgICBjb21iaW5lTGF0ZXN0KGJhdGNoJCkuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1jbGFpbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdmVoaWNsZS92ZWhpY2xlLWNsYWltLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQU1sRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBMkM7SUFIcEY7O1FBSUUsZUFBVSxHQUF3QixZQUFZLENBQUM7UUFDL0MsUUFBRyxHQUFHLGdCQUFnQixDQUFDO1FBQ3ZCLFVBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBc0M1RDtJQXBDQyxHQUFHLENBQUMsS0FBbUI7UUFDckIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUV6RyxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFtQixFQUFFLGNBQXNCLEVBQUU7UUFDbEQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFFekcsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsWUFBMEM7UUFDeEQsTUFBTSxNQUFNLEdBQStCLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFtQixFQUFFLEVBQUU7WUFDeEYsTUFBTSxhQUFhLEdBQWlCLFlBQVksQ0FDOUMsWUFBWSxFQUNaLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FDMUUsQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQTtRQUVGLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7K0dBeENVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWZWhpY2xlQ2xhaW0gYXMgVmVoaWNsZUNsYWltQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy92ZWhpY2xlL3ZlaGljbGUtY2xhaW0nO1xuaW1wb3J0IHsgVmVoaWNsZUNsYWltIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdC9yZXN0LW9sZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFVzZXJSb2xlc0VudW0gfSBmcm9tICcuLi8uLi8uLi9kYi9FbnVtcy91c2VyLXJvbGVzLmVudW0nO1xuaW1wb3J0IHsgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVmVoaWNsZUNsYWltU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFZlaGljbGVDbGFpbUJhc2UsIFZlaGljbGVDbGFpbT4ge1xuICBtb2RlbENsYXNzOiB0eXBlb2YgVmVoaWNsZUNsYWltID0gVmVoaWNsZUNsYWltO1xuICB1cmwgPSAndmVoaWNsZS1jbGFpbXMnO1xuICByb2xlcyA9IFtVc2VyUm9sZXNFbnVtLldPUktfVEFOSywgVXNlclJvbGVzRW51bS5TT0xFX1RBTktdO1xuXG4gIGFkZChtb2RlbDogVmVoaWNsZUNsYWltKTogT2JzZXJ2YWJsZTxWZWhpY2xlQ2xhaW0+IHtcbiAgICByZXR1cm4gc3VwZXIuYWRkKG1vZGVsKS5waXBlKFxuICAgICAgbWFwKCh2ZWhpY2xlQ2xhaW06IFZlaGljbGVDbGFpbSkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9DTEFJTV9DUkVBVEVELCB2ZWhpY2xlQ2xhaW0pKTtcblxuICAgICAgICByZXR1cm4gdmVoaWNsZUNsYWltO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlKG1vZGVsOiBWZWhpY2xlQ2xhaW0sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8VmVoaWNsZUNsYWltPiB7XG4gICAgcmV0dXJuIHN1cGVyLnVwZGF0ZShtb2RlbCwgcXVlcnlQYXJhbXMpLnBpcGUoXG4gICAgICBtYXAoKHZlaGljbGVDbGFpbTogVmVoaWNsZUNsYWltKSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX1VQREFURUQsIHZlaGljbGVDbGFpbSkpO1xuXG4gICAgICAgIHJldHVybiB2ZWhpY2xlQ2xhaW07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHdvcmtVc2FnZSBmb3IgYWxsIHZlaGljbGUgY2xhaW1zIGlmIGxvZ2Jvb2sgYmVzdCBwZXJpb2QgY2hhbmdlZFxuICAgKiBAVE9ETyBWaWs6IEJlc3QgcGVyaW9kIG1vdmUgdGhpcyBhbmQgcmVsYXRlZCBsb2dpYyB0byBiYWNrZW5kXG4gICAqL1xuICB1cGRhdGVXb3JrVXNhZ2UoYmVzdExvZ2Jvb2tzOiBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKTogT2JzZXJ2YWJsZTxWZWhpY2xlQ2xhaW1bXT4ge1xuICAgIGNvbnN0IGJhdGNoJDogT2JzZXJ2YWJsZTxWZWhpY2xlQ2xhaW0+W10gPSAodGhpcy5jYWNoZSA/PyBbXSkubWFwKChjbGFpbTogVmVoaWNsZUNsYWltKSA9PiB7XG4gICAgICBjb25zdCBjbGFpbVRvVXBkYXRlOiBWZWhpY2xlQ2xhaW0gPSBwbGFpblRvQ2xhc3MoXG4gICAgICAgIFZlaGljbGVDbGFpbSxcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgY2xhaW0sIHsgd29ya1VzYWdlOiBiZXN0TG9nYm9va3MuZ2V0V29ya1VzYWdlKGNsYWltKSB9KVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKGNsYWltVG9VcGRhdGUpO1xuICAgIH0pXG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChiYXRjaCQpO1xuICB9XG59XG4iXX0=