taxtank-core 0.11.0 → 0.12.2

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 (131) hide show
  1. package/bundles/taxtank-core.umd.js +2760 -2780
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/collection.js +4 -1
  4. package/esm2015/lib/collections/depreciation.collection.js +24 -10
  5. package/esm2015/lib/collections/transaction.collection.js +28 -1
  6. package/esm2015/lib/collections/vehicle-logbook.collection.js +88 -0
  7. package/esm2015/lib/collections/vehicle.collection.js +9 -0
  8. package/esm2015/lib/db/Enums/chart-accounts-heading-vehicle-list.enum.js +3 -1
  9. package/esm2015/lib/db/Enums/chart-accounts-list.enum.js +4 -3
  10. package/esm2015/lib/db/Models/client-income-types.js +1 -1
  11. package/esm2015/lib/db/Models/vehicle-claim.js +1 -1
  12. package/esm2015/lib/db/Models/vehicle.js +1 -1
  13. package/esm2015/lib/forms/client/client-income-types.form.js +3 -3
  14. package/esm2015/lib/forms/index.js +3 -1
  15. package/esm2015/lib/forms/vehicle/vehicle-claim.form.js +114 -0
  16. package/esm2015/lib/forms/vehicle/vehicle.form.js +20 -0
  17. package/esm2015/lib/interfaces/event-listener.interface.js +1 -1
  18. package/esm2015/lib/interfaces/expense.interface.js +2 -0
  19. package/esm2015/lib/interfaces/tank.interface.js +1 -1
  20. package/esm2015/lib/models/chart-accounts/chart-accounts-value.js +4 -0
  21. package/esm2015/lib/models/chart-accounts/chart-accounts.js +34 -1
  22. package/esm2015/lib/models/depreciation/depreciation.js +5 -1
  23. package/esm2015/lib/models/event/app-event-type.enum.js +4 -1
  24. package/esm2015/lib/models/logbook/logbook-period.js +8 -1
  25. package/esm2015/lib/models/logbook/vehicle-claim.js +63 -4
  26. package/esm2015/lib/models/logbook/vehicle-logbook.js +9 -3
  27. package/esm2015/lib/models/logbook/vehicle.js +7 -29
  28. package/esm2015/lib/models/pdf/pdf-settings.js +10 -0
  29. package/esm2015/lib/models/transaction/transaction.js +1 -1
  30. package/esm2015/lib/services/account-setup/account-setup.service.js +8 -23
  31. package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +6 -15
  32. package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +6 -15
  33. package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +6 -15
  34. package/esm2015/lib/services/http/bank/basiq/basiq.service.js +6 -15
  35. package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +1 -1
  36. package/esm2015/lib/services/http/chat/chat.service.js +8 -12
  37. package/esm2015/lib/services/http/chat/message/message.service.js +8 -12
  38. package/esm2015/lib/services/http/chat/message-document/message-document.service.js +1 -1
  39. package/esm2015/lib/services/http/depreciation/depreciation.service.js +6 -23
  40. package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +6 -14
  41. package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +6 -15
  42. package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +6 -15
  43. package/esm2015/lib/services/http/income-source/income-source.service.js +6 -14
  44. package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +6 -15
  45. package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +6 -15
  46. package/esm2015/lib/services/http/loan/loan.service.js +6 -15
  47. package/esm2015/lib/services/http/property/property-document/property-document.service.js +6 -15
  48. package/esm2015/lib/services/http/property/property-share/property-share.service.js +6 -15
  49. package/esm2015/lib/services/http/property/property.service.js +6 -15
  50. package/esm2015/lib/services/http/rest/rest.service.js +31 -4
  51. package/esm2015/lib/services/http/service-notification/service-notification.service.js +8 -12
  52. package/esm2015/lib/services/http/subscription/subscription.service.js +1 -4
  53. package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +15 -16
  54. package/esm2015/lib/services/http/tax-review/tax-review.service.js +6 -15
  55. package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +1 -1
  56. package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +6 -15
  57. package/esm2015/lib/services/http/transaction/transaction.service.js +6 -25
  58. package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +6 -14
  59. package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +6 -14
  60. package/esm2015/lib/services/http/vehicle/messages.enum.js +13 -0
  61. package/esm2015/lib/services/http/vehicle/vehicle-claim.service.js +24 -0
  62. package/esm2015/lib/services/http/vehicle/vehicle-logbook.service.js +59 -0
  63. package/esm2015/lib/services/http/vehicle/vehicle.service.js +49 -213
  64. package/esm2015/lib/services/pdf/pdf.service.js +11 -11
  65. package/esm2015/public-api.js +8 -2
  66. package/fesm2015/taxtank-core.js +2482 -2450
  67. package/fesm2015/taxtank-core.js.map +1 -1
  68. package/lib/collections/collection.d.ts +1 -0
  69. package/lib/collections/depreciation.collection.d.ts +5 -4
  70. package/lib/collections/transaction.collection.d.ts +9 -0
  71. package/lib/collections/vehicle-logbook.collection.d.ts +30 -0
  72. package/lib/collections/vehicle.collection.d.ts +6 -0
  73. package/lib/db/Enums/chart-accounts-heading-vehicle-list.enum.d.ts +3 -1
  74. package/lib/db/Enums/chart-accounts-list.enum.d.ts +4 -3
  75. package/lib/db/Models/client-income-types.d.ts +2 -2
  76. package/lib/db/Models/vehicle-claim.d.ts +2 -0
  77. package/lib/db/Models/vehicle.d.ts +2 -0
  78. package/lib/forms/index.d.ts +2 -0
  79. package/lib/forms/vehicle/vehicle-claim.form.d.ts +43 -0
  80. package/lib/forms/vehicle/vehicle.form.d.ts +11 -0
  81. package/lib/interfaces/event-listener.interface.d.ts +1 -0
  82. package/lib/interfaces/expense.interface.d.ts +12 -0
  83. package/lib/interfaces/tank.interface.d.ts +2 -0
  84. package/lib/models/chart-accounts/chart-accounts-value.d.ts +3 -0
  85. package/lib/models/chart-accounts/chart-accounts.d.ts +18 -0
  86. package/lib/models/depreciation/depreciation.d.ts +6 -2
  87. package/lib/models/event/app-event-type.enum.d.ts +4 -1
  88. package/lib/models/logbook/logbook-period.d.ts +4 -0
  89. package/lib/models/logbook/vehicle-claim.d.ts +20 -3
  90. package/lib/models/logbook/vehicle-logbook.d.ts +8 -2
  91. package/lib/models/logbook/vehicle.d.ts +5 -7
  92. package/lib/models/pdf/pdf-settings.d.ts +9 -0
  93. package/lib/models/transaction/transaction.d.ts +2 -2
  94. package/lib/services/account-setup/account-setup.service.d.ts +3 -7
  95. package/lib/services/http/bank/bank-account/bank-account.service.d.ts +2 -7
  96. package/lib/services/http/bank/bank-connection/bank-connection.service.d.ts +2 -7
  97. package/lib/services/http/bank/bank-transaction/bank-transaction.service.d.ts +3 -8
  98. package/lib/services/http/bank/basiq/basiq.service.d.ts +2 -7
  99. package/lib/services/http/chat/chat.service.d.ts +4 -7
  100. package/lib/services/http/chat/message/message.service.d.ts +4 -7
  101. package/lib/services/http/chat/message-document/message-document.service.d.ts +3 -3
  102. package/lib/services/http/depreciation/depreciation.service.d.ts +2 -11
  103. package/lib/services/http/document/document-folder/document-folder.service.d.ts +0 -6
  104. package/lib/services/http/firm/client-movement/client-movement.service.d.ts +2 -7
  105. package/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.d.ts +2 -7
  106. package/lib/services/http/income-source/income-source.service.d.ts +0 -6
  107. package/lib/services/http/income-source/salary-forecast/salary-forecast.service.d.ts +1 -7
  108. package/lib/services/http/income-source/sole-forecast/sole-forecast.service.d.ts +2 -7
  109. package/lib/services/http/loan/loan.service.d.ts +2 -7
  110. package/lib/services/http/property/property-document/property-document.service.d.ts +3 -8
  111. package/lib/services/http/property/property-share/property-share.service.d.ts +2 -7
  112. package/lib/services/http/property/property.service.d.ts +2 -7
  113. package/lib/services/http/rest/rest.service.d.ts +17 -2
  114. package/lib/services/http/service-notification/service-notification.service.d.ts +4 -7
  115. package/lib/services/http/subscription/subscription.service.d.ts +0 -1
  116. package/lib/services/http/tax-review/tax-review-history/tax-review-history.service.d.ts +7 -7
  117. package/lib/services/http/tax-review/tax-review.service.d.ts +1 -7
  118. package/lib/services/http/tax-summary/tax-summary.service.d.ts +2 -1
  119. package/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.d.ts +3 -8
  120. package/lib/services/http/transaction/transaction.service.d.ts +0 -12
  121. package/lib/services/http/user/user-event-setting/user-event-setting.service.d.ts +0 -6
  122. package/lib/services/http/user/user-event-type/user-event-type.service.d.ts +0 -6
  123. package/lib/services/http/vehicle/messages.enum.d.ts +11 -0
  124. package/lib/services/http/vehicle/vehicle-claim.service.d.ts +13 -0
  125. package/lib/services/http/vehicle/vehicle-logbook.service.d.ts +22 -0
  126. package/lib/services/http/vehicle/vehicle.service.d.ts +17 -80
  127. package/lib/services/pdf/pdf.service.d.ts +3 -3
  128. package/package.json +1 -1
  129. package/public-api.d.ts +7 -1
  130. package/esm2015/lib/collections/logbook.collection.js +0 -97
  131. package/lib/collections/logbook.collection.d.ts +0 -19
@@ -86,5 +86,8 @@ export class Collection {
86
86
  get last() {
87
87
  return last(this.items);
88
88
  }
89
+ getByDateRange(from, to, dateField = 'date') {
90
+ return this.create(this.items.filter((item) => item[dateField] >= from && item[dateField] <= to));
91
+ }
89
92
  }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFOUI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUlyQixZQUFZLFFBQWlCLEVBQUU7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFpQixFQUFFO1FBQ3hCLE9BQU8sSUFBSyxJQUFJLENBQUMsV0FBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRTtRQUN2QixPQUFPLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQix5Q0FBeUM7UUFDekMsTUFBTSxNQUFNLEdBQTZCLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2YsZ0RBQWdEO1FBQ2hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBVyxFQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsRUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBVyxFQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFXLEVBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBWTtRQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsSUFBVyxFQUFVLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFFBQWtDO1FBQ3ZDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBZ0IsSUFBSSxFQUFFLFNBQWtCLElBQUk7UUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uRGljdGlvbmFyeSB9IGZyb20gJy4vY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcclxuaW1wb3J0IGZpcnN0IGZyb20gJ2xvZGFzaC9maXJzdCc7XHJcbmltcG9ydCBsYXN0IGZyb20gJ2xvZGFzaC9sYXN0JztcclxuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcclxuaW1wb3J0IHsgc29ydCB9IGZyb20gJy4uL2Z1bmN0aW9ucy9hcnJheSc7XHJcblxyXG5jb25zdCBERUZBVUxUX0lOREVYID0gJ290aGVyJztcclxuXHJcbi8qKlxyXG4gKiBCYXNlIGNvbGxlY3Rpb24gY2xhc3MuIENvbnRhaW5zIGNvbW1vbiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGZvciBhbGwgY29sbGVjdGlvbnNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uPE1vZGVsIGV4dGVuZHMgb2JqZWN0PiBpbXBsZW1lbnRzIEl0ZXJhYmxlPE1vZGVsPiB7XHJcbiAgLy8gbGlzdCBvZiBjb2xsZWN0aW9uJ3MgaXRlbXNcclxuICBpdGVtczogTW9kZWxbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoaXRlbXM6IE1vZGVsW10gPSBbXSkge1xyXG4gICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKGl0ZW1zOiBNb2RlbFtdID0gW10pOiB0aGlzIHtcclxuICAgIHJldHVybiBuZXcgKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KShpdGVtcyk7XHJcbiAgfVxyXG5cclxuICBncm91cEJ5KHBhdGg6IHN0cmluZyA9ICcnKTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8Q29sbGVjdGlvbjxNb2RlbD4+IHtcclxuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbkRpY3Rpb25hcnkodGhpcywgcGF0aCk7XHJcbiAgfVxyXG5cclxuICBpbmRleEJ5KHBhdGg6IHN0cmluZyk6IG9iamVjdCB7XHJcbiAgICAvLyBDcmVhdGUgZW1wdHkgaW5pdGlhbCBvYmplY3QgZm9yIGdyb3Vwc1xyXG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IE1vZGVsIH0gPSB7fTtcclxuXHJcbiAgICB0aGlzLnRvQXJyYXkoKS5mb3JFYWNoKChtb2RlbDogTW9kZWwpID0+IHtcclxuICAgICAgcmVzdWx0W2dldChtb2RlbCwgcGF0aCwgREVGQVVMVF9JTkRFWCldID0gbW9kZWw7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXRlcmF0b3IgdGhhdCBhbGxvdyB0byBpdGVyYXRlIGNvbGxlY3Rpb24gaXRlbXNcclxuICAgKi9cclxuICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYXRvcjxNb2RlbD4ge1xyXG4gICAgLy8gLnZhbHVlcygpIHJldHVybnMgSXRlcmF0b3IgaW5zdGFuY2UgZm9yIGFycmF5XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy52YWx1ZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGdldCBjb2xsZWN0aW9uIGxlbmd0aFxyXG4gICAqL1xyXG4gIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBsaXN0IG9mIGl0ZW1zIGlkc1xyXG4gICAqL1xyXG4gIGdldElkcygpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKGl0ZW06IE1vZGVsKTogbnVtYmVyID0+IGl0ZW1bJ2lkJ10pO1xyXG4gIH1cclxuXHJcbiAgZmluZEJ5KHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IE1vZGVsIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IE1vZGVsKSA9PiBnZXQoaXRlbSwgcGF0aCkgPT09IHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldEJ5KHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBNb2RlbCkgPT4gZ2V0KGl0ZW0sIHBhdGgpID09PSB2YWx1ZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHNpbmdsZSBpdGVtIGJ5IGlkXHJcbiAgICovXHJcbiAgZ2V0QnlJZChpZDogbnVtYmVyKTogTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogTW9kZWwpOiBib29sZWFuID0+IGl0ZW1bJ2lkJ10gPT09IGlkKTtcclxuICB9XHJcblxyXG4gIGdldEJ5SWRzKGlkczogbnVtYmVyW10pOiBNb2RlbFtdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbTogTW9kZWwpOiBib29sZWFuID0+IGlkcy5pbmNsdWRlcyhpdGVtWydpZCddKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdG90YWwgc3VtIG9mIGl0ZW1zIGJ5IGZpZWxkXHJcbiAgICovXHJcbiAgc3VtQnkocGF0aDogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIHJldHVybiArdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBpdGVtOiBNb2RlbCk6IG51bWJlciA9PiBzdW0gKyBOdW1iZXIoZ2V0KGl0ZW0sIHBhdGgpKSwgMCkudG9GaXhlZCgyKTtcclxuICB9XHJcblxyXG4gIHRvQXJyYXkoKTogTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gWy4uLnRoaXMuaXRlbXNdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIGl0ZW1zIGJ5IHNwZWNpZmljIHByb3ZpZGVkIGNhbGxiYWNrXHJcbiAgICovXHJcbiAgZmlsdGVyKGNhbGxiYWNrOiAoaXRlbTogTW9kZWwpID0+IGJvb2xlYW4pOiBDb2xsZWN0aW9uPE1vZGVsPiB7XHJcbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhpcy5pdGVtcy5maWx0ZXIoY2FsbGJhY2spKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvcnQgY29sbGVjdGlvbiBpdGVtcyBieSBwcm92aWRlZCBmaWVsZFxyXG4gICAqL1xyXG4gIHNvcnRCeShmaWxlZDogc3RyaW5nID0gJ2lkJywgaXNEZXNjOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgc29ydCh0aGlzLml0ZW1zLCBmaWxlZCwgaXNEZXNjKTtcclxuICB9XHJcblxyXG4gIGdldCBmaXJzdCgpOiBNb2RlbCB7XHJcbiAgICByZXR1cm4gZmlyc3QodGhpcy5pdGVtcyk7XHJcbiAgfVxyXG5cclxuICBnZXQgbGFzdCgpOiBNb2RlbCB7XHJcbiAgICByZXR1cm4gbGFzdCh0aGlzLml0ZW1zKTtcclxuICB9XHJcbn1cclxuIl19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFOUI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUlyQixZQUFZLFFBQWlCLEVBQUU7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFpQixFQUFFO1FBQ3hCLE9BQU8sSUFBSyxJQUFJLENBQUMsV0FBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRTtRQUN2QixPQUFPLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQix5Q0FBeUM7UUFDekMsTUFBTSxNQUFNLEdBQTZCLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2YsZ0RBQWdEO1FBQ2hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBVyxFQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsRUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBVyxFQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFXLEVBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBWTtRQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsSUFBVyxFQUFVLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFFBQWtDO1FBQ3ZDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBZ0IsSUFBSSxFQUFFLFNBQWtCLElBQUk7UUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVUsRUFBRSxFQUFRLEVBQUUsWUFBb0IsTUFBTTtRQUM3RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBVyxFQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDOUYsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25EaWN0aW9uYXJ5IH0gZnJvbSAnLi9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xyXG5pbXBvcnQgZmlyc3QgZnJvbSAnbG9kYXNoL2ZpcnN0JztcclxuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xyXG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xyXG5pbXBvcnQgeyBzb3J0IH0gZnJvbSAnLi4vZnVuY3Rpb25zL2FycmF5JztcclxuXHJcbmNvbnN0IERFRkFVTFRfSU5ERVggPSAnb3RoZXInO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgY29sbGVjdGlvbiBjbGFzcy4gQ29udGFpbnMgY29tbW9uIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgZm9yIGFsbCBjb2xsZWN0aW9uc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb248TW9kZWwgZXh0ZW5kcyBvYmplY3Q+IGltcGxlbWVudHMgSXRlcmFibGU8TW9kZWw+IHtcclxuICAvLyBsaXN0IG9mIGNvbGxlY3Rpb24ncyBpdGVtc1xyXG4gIGl0ZW1zOiBNb2RlbFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihpdGVtczogTW9kZWxbXSA9IFtdKSB7XHJcbiAgICB0aGlzLml0ZW1zID0gaXRlbXM7XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoaXRlbXM6IE1vZGVsW10gPSBbXSk6IHRoaXMge1xyXG4gICAgcmV0dXJuIG5ldyAodGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkpKGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIGdyb3VwQnkocGF0aDogc3RyaW5nID0gJycpOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxDb2xsZWN0aW9uPE1vZGVsPj4ge1xyXG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uRGljdGlvbmFyeSh0aGlzLCBwYXRoKTtcclxuICB9XHJcblxyXG4gIGluZGV4QnkocGF0aDogc3RyaW5nKTogb2JqZWN0IHtcclxuICAgIC8vIENyZWF0ZSBlbXB0eSBpbml0aWFsIG9iamVjdCBmb3IgZ3JvdXBzXHJcbiAgICBjb25zdCByZXN1bHQ6IHsgW2tleTogc3RyaW5nXTogTW9kZWwgfSA9IHt9O1xyXG5cclxuICAgIHRoaXMudG9BcnJheSgpLmZvckVhY2goKG1vZGVsOiBNb2RlbCkgPT4ge1xyXG4gICAgICByZXN1bHRbZ2V0KG1vZGVsLCBwYXRoLCBERUZBVUxUX0lOREVYKV0gPSBtb2RlbDtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJdGVyYXRvciB0aGF0IGFsbG93IHRvIGl0ZXJhdGUgY29sbGVjdGlvbiBpdGVtc1xyXG4gICAqL1xyXG4gIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhdG9yPE1vZGVsPiB7XHJcbiAgICAvLyAudmFsdWVzKCkgcmV0dXJucyBJdGVyYXRvciBpbnN0YW5jZSBmb3IgYXJyYXlcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLnZhbHVlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZ2V0IGNvbGxlY3Rpb24gbGVuZ3RoXHJcbiAgICovXHJcbiAgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGxpc3Qgb2YgaXRlbXMgaWRzXHJcbiAgICovXHJcbiAgZ2V0SWRzKCk6IG51bWJlcltdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaXRlbTogTW9kZWwpOiBudW1iZXIgPT4gaXRlbVsnaWQnXSk7XHJcbiAgfVxyXG5cclxuICBmaW5kQnkocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KTogTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogTW9kZWwpID0+IGdldChpdGVtLCBwYXRoKSA9PT0gdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnkocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiBnZXQoaXRlbSwgcGF0aCkgPT09IHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgc2luZ2xlIGl0ZW0gYnkgaWRcclxuICAgKi9cclxuICBnZXRCeUlkKGlkOiBudW1iZXIpOiBNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKChpdGVtOiBNb2RlbCk6IGJvb2xlYW4gPT4gaXRlbVsnaWQnXSA9PT0gaWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnlJZHMoaWRzOiBudW1iZXJbXSk6IE1vZGVsW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBNb2RlbCk6IGJvb2xlYW4gPT4gaWRzLmluY2x1ZGVzKGl0ZW1bJ2lkJ10pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0b3RhbCBzdW0gb2YgaXRlbXMgYnkgZmllbGRcclxuICAgKi9cclxuICBzdW1CeShwYXRoOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICt0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGl0ZW06IE1vZGVsKTogbnVtYmVyID0+IHN1bSArIE51bWJlcihnZXQoaXRlbSwgcGF0aCkpLCAwKS50b0ZpeGVkKDIpO1xyXG4gIH1cclxuXHJcbiAgdG9BcnJheSgpOiBNb2RlbFtdIHtcclxuICAgIHJldHVybiBbLi4udGhpcy5pdGVtc107XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaWx0ZXIgaXRlbXMgYnkgc3BlY2lmaWMgcHJvdmlkZWQgY2FsbGJhY2tcclxuICAgKi9cclxuICBmaWx0ZXIoY2FsbGJhY2s6IChpdGVtOiBNb2RlbCkgPT4gYm9vbGVhbik6IENvbGxlY3Rpb248TW9kZWw+IHtcclxuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbih0aGlzLml0ZW1zLmZpbHRlcihjYWxsYmFjaykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29ydCBjb2xsZWN0aW9uIGl0ZW1zIGJ5IHByb3ZpZGVkIGZpZWxkXHJcbiAgICovXHJcbiAgc29ydEJ5KGZpbGVkOiBzdHJpbmcgPSAnaWQnLCBpc0Rlc2M6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICBzb3J0KHRoaXMuaXRlbXMsIGZpbGVkLCBpc0Rlc2MpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpcnN0KCk6IE1vZGVsIHtcclxuICAgIHJldHVybiBmaXJzdCh0aGlzLml0ZW1zKTtcclxuICB9XHJcblxyXG4gIGdldCBsYXN0KCk6IE1vZGVsIHtcclxuICAgIHJldHVybiBsYXN0KHRoaXMuaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnlEYXRlUmFuZ2UoZnJvbTogRGF0ZSwgdG86IERhdGUsIGRhdGVGaWVsZDogc3RyaW5nID0gJ2RhdGUnKTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXHJcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBNb2RlbCk6IGJvb2xlYW4gPT4gaXRlbVtkYXRlRmllbGRdID49IGZyb20gJiYgaXRlbVtkYXRlRmllbGRdIDw9IHRvKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -33,15 +33,6 @@ export class DepreciationCollection extends Collection {
33
33
  get closeBalance() {
34
34
  return this.sumBy('currentYearForecast.closeBalance');
35
35
  }
36
- /**
37
- * Get new depreciations collections filtered by tank type
38
- */
39
- getByTankType(tankType) {
40
- if (tankType === TankTypeEnum.PROPERTY) {
41
- return new DepreciationCollection(this.items.filter((depreciation) => depreciation.isPropertyTank()));
42
- }
43
- return new DepreciationCollection(this.items.filter((depreciation) => depreciation.isWorkTank()));
44
- }
45
36
  getByPropertiesIds(ids) {
46
37
  return new DepreciationCollection(this.items.filter((depreciation) => { var _a; return ids.includes((_a = depreciation.property) === null || _a === void 0 ? void 0 : _a.id); }));
47
38
  }
@@ -77,6 +68,29 @@ export class DepreciationCollection extends Collection {
77
68
  return depreciation.depreciationCapitalProject;
78
69
  })), 'id');
79
70
  }
71
+ /**
72
+ * Get a new collection of depreciations related to vehicles
73
+ */
74
+ getVehicleDepreciations() {
75
+ return this.create(this.items.filter((depreciation) => {
76
+ return depreciation.isVehicleDepreciation();
77
+ }));
78
+ }
79
+ getByTankType(tankType) {
80
+ return this.create(this.items.filter((depreciation) => {
81
+ switch (tankType) {
82
+ case TankTypeEnum.PROPERTY:
83
+ return depreciation.isPropertyTank();
84
+ case TankTypeEnum.WORK:
85
+ return depreciation.isWorkTank();
86
+ case TankTypeEnum.SOLE:
87
+ return depreciation.isSoleTank();
88
+ // case for other tank or some extra
89
+ default:
90
+ return false;
91
+ }
92
+ }));
93
+ }
80
94
  /**
81
95
  * Create TransactionCollection from depreciation items
82
96
  */
@@ -84,4 +98,4 @@ export class DepreciationCollection extends Collection {
84
98
  return new TransactionCollection(this.items.map((item) => item.toTransaction()));
85
99
  }
86
100
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUMsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR2pFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxVQUF3QjtJQUVsRTs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBVSxFQUFFLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBRSxFQUFFO1lBQ25FLE9BQU8sR0FBRyxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUM7UUFDNUQsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQWUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBVSxFQUFFO1lBQ3pG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QUFDLEdBQUcsQ0FBQyxDQUFDLElBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUM3RCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vZGIvRW51bXMvdGFuay10eXBlLmVudW0nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBEZXByZWNpYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbic7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC91bmlxQnknO1xuaW1wb3J0IGNvbXBhY3QgZnJvbSAnbG9kYXNoL2NvbXBhY3QnO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3QgfSBmcm9tICcuLi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3QnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0gfSBmcm9tICcuLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1jYXRlZ29yeS5lbnVtJztcblxuZXhwb3J0IGNsYXNzIERlcHJlY2lhdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPERlcHJlY2lhdGlvbj4ge1xuXG4gIC8qKlxuICAgKiBHZXQgdG90YWwgYW1vdW50IG9mIGFsbCBkZXByZWNpYXRpb25zIGluIHRoZSBjb2xsZWN0aW9uXG4gICAqL1xuICBnZXQgYW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBudW1iZXIgPT4gc3VtICsgZGVwcmVjaWF0aW9uLmFtb3VudCwgMCk7XG4gIH1cblxuICBnZXQgY2xhaW1BbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHN1bSArIGRlcHJlY2lhdGlvbi5jdXJyZW50WWVhckZvcmVjYXN0LmNsYWltQW1vdW50O1xuICAgIH0sIDApO1xuICB9XG5cbiAgZ2V0Q2xhaW1BbW91bnRCeVllYXIoeWVhcjogbnVtYmVyID0gK2xvY2FsU3RvcmFnZS5nZXRJdGVtKCdmaW5hbmNpYWxZZWFyJykpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmFtb3VudCAtIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBudW1iZXIgPT4ge1xuICAgICAgcmV0dXJuIHN1bSArIGRlcHJlY2lhdGlvbi5nZXRDbG9zZUJhbGFuY2VCeVllYXIoeWVhcik7XG4gICAgfSwgMCk7XG4gIH1cblxuICBnZXRDbG9zZUJhbGFuY2VCeVllYXIoeWVhcjogbnVtYmVyID0gK2xvY2FsU3RvcmFnZS5nZXRJdGVtKCdmaW5hbmNpYWxZZWFyJykpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogbnVtYmVyID0+IHtcbiAgICAgIHJldHVybiBzdW0gKyBkZXByZWNpYXRpb24uZ2V0Q2xvc2VCYWxhbmNlQnlZZWFyKHllYXIpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgZ2V0Q3VycmVudFllYXJGb3JlY2FzdEFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogbnVtYmVyID0+IHtcbiAgICAgIHJldHVybiBzdW0gKyBkZXByZWNpYXRpb24uY3VycmVudFllYXJGb3JlY2FzdC5hbW91bnQ7XG4gICAgfSwgMCk7XG4gIH1cblxuICBnZXQgY2xvc2VCYWxhbmNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2N1cnJlbnRZZWFyRm9yZWNhc3QuY2xvc2VCYWxhbmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5ldyBkZXByZWNpYXRpb25zIGNvbGxlY3Rpb25zIGZpbHRlcmVkIGJ5IHRhbmsgdHlwZVxuICAgKi9cbiAgZ2V0QnlUYW5rVHlwZSh0YW5rVHlwZTogVGFua1R5cGVFbnVtKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgaWYgKHRhbmtUeXBlID09PSBUYW5rVHlwZUVudW0uUFJPUEVSVFkpIHtcbiAgICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiBkZXByZWNpYXRpb24uaXNQcm9wZXJ0eVRhbmsoKSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiBkZXByZWNpYXRpb24uaXNXb3JrVGFuaygpKVxuICAgICk7XG4gIH1cblxuICBnZXRCeVByb3BlcnRpZXNJZHMoaWRzOiBudW1iZXJbXSk6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gaWRzLmluY2x1ZGVzKGRlcHJlY2lhdGlvbi5wcm9wZXJ0eT8uaWQpKVxuICAgICk7XG4gIH1cblxuICBnZXRXaXRoQ2FwaXRhbFByb2plY3QoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiAhIWRlcHJlY2lhdGlvbi5kZXByZWNpYXRpb25DYXBpdGFsUHJvamVjdClcbiAgICApO1xuICB9XG5cbiAgZ2V0V2l0aG91dENhcGl0YWxQcm9qZWN0KCk6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gIWRlcHJlY2lhdGlvbi5kZXByZWNpYXRpb25DYXBpdGFsUHJvamVjdClcbiAgICApO1xuICB9XG5cbiAgZ2V0V2l0aG91dEJvcnJvd2luZ0V4cGVuc2VzKCk6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gIWRlcHJlY2lhdGlvbi5pc0JvcnJvd2luZ0V4cGVuc2UoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QnlDaGFydEFjY291bnRzQ2F0ZWdvcmllcyhjYXRlZ29yaWVzOiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtW10pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+IGNhdGVnb3JpZXMuaW5jbHVkZXMoZGVwcmVjaWF0aW9uLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkpKVxuICAgICk7XG4gIH1cblxuICBnZXRQbGFudEVxdWlwbWVudCgpOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+IGRlcHJlY2lhdGlvbi5pc1BsYW50RXF1aXBtZW50KCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldENhcGl0YWxEZXByZWNpYXRpb25zKCk6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gZGVwcmVjaWF0aW9uLmlzQ2FwaXRhbCgpKVxuICAgICk7XG4gIH1cblxuICBnZXRCb3Jyb3dpbmdFeHBlbnNlRGVwcmVjaWF0aW9ucygpOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+IGRlcHJlY2lhdGlvbi5pc0JvcnJvd2luZ0V4cGVuc2UoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0V3JpdHRlbk9mZkRlcHJlY2lhdGlvbnMoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiBkZXByZWNpYXRpb24uaXNXcml0dGVuT2ZmKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldExvd1ZhbHVlUG9vbERlcHJlY2lhdGlvbnMoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiBkZXByZWNpYXRpb24uaXNMb3dWYWx1ZVBvb2woKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q2FwaXRhbFByb2plY3RzKCk6IERlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0W10ge1xuICAgIHJldHVybiB1bmlxQnkoXG4gICAgICBjb21wYWN0KFxuICAgICAgICB0aGlzLml0ZW1zLm1hcCgoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBEZXByZWNpYXRpb25DYXBpdGFsUHJvamVjdCA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRlcHJlY2lhdGlvbi5kZXByZWNpYXRpb25DYXBpdGFsUHJvamVjdDtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICAnaWQnXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIGZyb20gZGVwcmVjaWF0aW9uIGl0ZW1zXG4gICAqL1xuICB0b1RyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5tYXAoKGl0ZW06IERlcHJlY2lhdGlvbikgPT4gaXRlbS50b1RyYW5zYWN0aW9uKCkpXG4gICAgKTtcbiAgfVxufVxuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUMsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR2pFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxVQUF3QjtJQUVsRTs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBVSxFQUFFLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBRSxFQUFFO1lBQ25FLE9BQU8sR0FBRyxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUM7UUFDNUQsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQWUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBVSxFQUFFO1lBQ3pG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STtvQkFDcEIsT0FBTyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25DLEtBQUssWUFBWSxDQUFDLElBQUk7b0JBQ3BCLE9BQU8sWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNuQyxvQ0FBb0M7Z0JBQ3BDO29CQUNFLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDWixPQUFPLElBQUkscUJBQXFCLENBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQzdELENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi9kYi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB1bmlxQnkgZnJvbSAnbG9kYXNoL3VuaXFCeSc7XG5pbXBvcnQgY29tcGFjdCBmcm9tICdsb2Rhc2gvY29tcGFjdCc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25DYXBpdGFsUHJvamVjdCB9IGZyb20gJy4uL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLWNhcGl0YWwtcHJvamVjdCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSB9IGZyb20gJy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWNhdGVnb3J5LmVudW0nO1xuXG5leHBvcnQgY2xhc3MgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248RGVwcmVjaWF0aW9uPiB7XG5cbiAgLyoqXG4gICAqIEdldCB0b3RhbCBhbW91bnQgb2YgYWxsIGRlcHJlY2lhdGlvbnMgaW4gdGhlIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldCBhbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IG51bWJlciA9PiBzdW0gKyBkZXByZWNpYXRpb24uYW1vdW50LCAwKTtcbiAgfVxuXG4gIGdldCBjbGFpbUFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gc3VtICsgZGVwcmVjaWF0aW9uLmN1cnJlbnRZZWFyRm9yZWNhc3QuY2xhaW1BbW91bnQ7XG4gICAgfSwgMCk7XG4gIH1cblxuICBnZXRDbGFpbUFtb3VudEJ5WWVhcih5ZWFyOiBudW1iZXIgPSArbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZpbmFuY2lhbFllYXInKSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYW1vdW50IC0gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IG51bWJlciA9PiB7XG4gICAgICByZXR1cm4gc3VtICsgZGVwcmVjaWF0aW9uLmdldENsb3NlQmFsYW5jZUJ5WWVhcih5ZWFyKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldENsb3NlQmFsYW5jZUJ5WWVhcih5ZWFyOiBudW1iZXIgPSArbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZpbmFuY2lhbFllYXInKSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBudW1iZXIgPT4ge1xuICAgICAgcmV0dXJuIHN1bSArIGRlcHJlY2lhdGlvbi5nZXRDbG9zZUJhbGFuY2VCeVllYXIoeWVhcik7XG4gICAgfSwgMCk7XG4gIH1cblxuICBnZXRDdXJyZW50WWVhckZvcmVjYXN0QW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBudW1iZXIgPT4ge1xuICAgICAgcmV0dXJuIHN1bSArIGRlcHJlY2lhdGlvbi5jdXJyZW50WWVhckZvcmVjYXN0LmFtb3VudDtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldCBjbG9zZUJhbGFuY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnY3VycmVudFllYXJGb3JlY2FzdC5jbG9zZUJhbGFuY2UnKTtcbiAgfVxuXG4gIGdldEJ5UHJvcGVydGllc0lkcyhpZHM6IG51bWJlcltdKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiBpZHMuaW5jbHVkZXMoZGVwcmVjaWF0aW9uLnByb3BlcnR5Py5pZCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldFdpdGhDYXBpdGFsUHJvamVjdCgpOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+ICEhZGVwcmVjaWF0aW9uLmRlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0KVxuICAgICk7XG4gIH1cblxuICBnZXRXaXRob3V0Q2FwaXRhbFByb2plY3QoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiAhZGVwcmVjaWF0aW9uLmRlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0KVxuICAgICk7XG4gIH1cblxuICBnZXRXaXRob3V0Qm9ycm93aW5nRXhwZW5zZXMoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiAhZGVwcmVjaWF0aW9uLmlzQm9ycm93aW5nRXhwZW5zZSgpKVxuICAgICk7XG4gIH1cblxuICBnZXRCeUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKGNhdGVnb3JpZXM6IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW1bXSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gY2F0ZWdvcmllcy5pbmNsdWRlcyhkZXByZWNpYXRpb24uY2hhcnRBY2NvdW50cy5jYXRlZ29yeSkpXG4gICAgKTtcbiAgfVxuXG4gIGdldFBsYW50RXF1aXBtZW50KCk6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gZGVwcmVjaWF0aW9uLmlzUGxhbnRFcXVpcG1lbnQoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q2FwaXRhbERlcHJlY2lhdGlvbnMoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiBkZXByZWNpYXRpb24uaXNDYXBpdGFsKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldEJvcnJvd2luZ0V4cGVuc2VEZXByZWNpYXRpb25zKCk6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gZGVwcmVjaWF0aW9uLmlzQm9ycm93aW5nRXhwZW5zZSgpKVxuICAgICk7XG4gIH1cblxuICBnZXRXcml0dGVuT2ZmRGVwcmVjaWF0aW9ucygpOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+IGRlcHJlY2lhdGlvbi5pc1dyaXR0ZW5PZmYoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0TG93VmFsdWVQb29sRGVwcmVjaWF0aW9ucygpOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+IGRlcHJlY2lhdGlvbi5pc0xvd1ZhbHVlUG9vbCgpKVxuICAgICk7XG4gIH1cblxuICBnZXRDYXBpdGFsUHJvamVjdHMoKTogRGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3RbXSB7XG4gICAgcmV0dXJuIHVuaXFCeShcbiAgICAgIGNvbXBhY3QoXG4gICAgICAgIHRoaXMuaXRlbXMubWFwKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IERlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0ID0+IHtcbiAgICAgICAgICByZXR1cm4gZGVwcmVjaWF0aW9uLmRlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0O1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgICdpZCdcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIG5ldyBjb2xsZWN0aW9uIG9mIGRlcHJlY2lhdGlvbnMgcmVsYXRlZCB0byB2ZWhpY2xlc1xuICAgKi9cbiAgZ2V0VmVoaWNsZURlcHJlY2lhdGlvbnMoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiB7XG4gICAgICAgIHJldHVybiBkZXByZWNpYXRpb24uaXNWZWhpY2xlRGVwcmVjaWF0aW9uKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRCeVRhbmtUeXBlKHRhbmtUeXBlOiBUYW5rVHlwZUVudW0pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgc3dpdGNoICh0YW5rVHlwZSkge1xuICAgICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlBST1BFUlRZOlxuICAgICAgICAgICAgcmV0dXJuIGRlcHJlY2lhdGlvbi5pc1Byb3BlcnR5VGFuaygpO1xuICAgICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLldPUks6XG4gICAgICAgICAgICByZXR1cm4gZGVwcmVjaWF0aW9uLmlzV29ya1RhbmsoKTtcbiAgICAgICAgICBjYXNlIFRhbmtUeXBlRW51bS5TT0xFOlxuICAgICAgICAgICAgcmV0dXJuIGRlcHJlY2lhdGlvbi5pc1NvbGVUYW5rKCk7XG4gICAgICAgICAgLy8gY2FzZSBmb3Igb3RoZXIgdGFuayBvciBzb21lIGV4dHJhXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gZnJvbSBkZXByZWNpYXRpb24gaXRlbXNcbiAgICovXG4gIHRvVHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLm1hcCgoaXRlbTogRGVwcmVjaWF0aW9uKSA9PiBpdGVtLnRvVHJhbnNhY3Rpb24oKSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { Collection } from './collection';
2
+ import { TankTypeEnum } from '../db/Enums/tank-type.enum';
2
3
  /**
3
4
  * Collection of transactions
4
5
  */
@@ -112,5 +113,31 @@ export class TransactionCollection extends Collection {
112
113
  getByAllocations(allocations) {
113
114
  return new TransactionCollection(this.items.filter((transaction) => allocations.hasTransaction(transaction)));
114
115
  }
116
+ /**
117
+ * Get transactions related to Vehicle category
118
+ */
119
+ getVehicleTransactions() {
120
+ return this.create(this.items.filter((transaction) => {
121
+ return transaction.isVehicleTransaction();
122
+ }));
123
+ }
124
+ /**
125
+ * Get new transaction collection filtered by tank type
126
+ */
127
+ getByTankType(tankType) {
128
+ return this.create(this.items.filter((transaction) => {
129
+ switch (tankType) {
130
+ case TankTypeEnum.PROPERTY:
131
+ return transaction.isPropertyTank();
132
+ case TankTypeEnum.WORK:
133
+ return transaction.isWorkTank();
134
+ case TankTypeEnum.SOLE:
135
+ return transaction.isSoleTank();
136
+ // Transaction may be not related to any tank type (personal)
137
+ default:
138
+ return false;
139
+ }
140
+ }));
141
+ }
115
142
  }
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFNMUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBdUI7SUFDaEU7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsV0FBd0IsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLENBQUMsV0FBNEM7UUFDL0QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILHNCQUFzQjtRQUNwQixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVE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QUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQ2xHLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcnkuZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzVHlwZUVudW0gfSBmcm9tICcuLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy10eXBlLmVudW0nO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdHJhbnNhY3Rpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFRyYW5zYWN0aW9uPiB7XG4gIC8qKlxuICAgKiBHZXQgdG90YWwgYW1vdW50IG9mIGFsbCB0cmFuc2FjdGlvbnMgaW4gdGhlIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldCBhbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3RoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiBzdW0gKyB0cmFuc2FjdGlvbi5nZXROZXRBbW91bnQoKSwgMCkudG9GaXhlZCgyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaWZmZXJlbmNlIGJldHdlZW4gYWxsb2NhdGVkIGFtb3VudCBhbmQgdG90YWwgYW1vdW50XG4gICAqL1xuICBnZXRVbmFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuICsodGhpcy5hbW91bnQgLSBhbGxvY2F0aW9ucy5nZXRCeVRyYW5zYWN0aW9uc0lkcyh0aGlzLmdldElkcygpKS5hbW91bnQpLnRvRml4ZWQoMik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNhc2ggcG9zaXRpb25cbiAgICogQ2FzaCBQb3NpdGlvbiA9IEluY29tZSAtIEV4cGVuc2VzXG4gICAqIENhc2ggcG9zaXRpb24gaXMgZXF1YWwgdG8gVG90YWwgQW1vdW50IGJlY2F1c2UgaW5jb21lIGlzIHBvc2l0aXZlIGFuZCBleHBlbnNlIGlzIG5lZ2F0aXZlLFxuICAgKi9cbiAgZ2V0IGNhc2hQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNsYWltQW1vdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBkYXRlIG9mIHRoZSBsYXN0IHRyYW5zYWN0aW9uXG4gICAqL1xuICBnZXRMYXN0VHJhbnNhY3Rpb25EYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShNYXRoLm1heC5hcHBseShNYXRoLCB0aGlzLml0ZW1zLm1hcCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5kYXRlKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzdW1tYXJ5IG9mIGNsYWltIGFtb3VudHNcbiAgICovXG4gIGdldCBjbGFpbUFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uY2xhaW1BbW91bnQsIDApO1xuICB9XG5cbiAgZ2V0IGdyb3NzQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuICt0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uYW1vdW50LCAwKS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgZ2V0QnlDaGFydEFjY291bnRzQ2F0ZWdvcmllcyhjYXRlZ29yaWVzOiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtW10pOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gY2F0ZWdvcmllcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLmNhdGVnb3J5KSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbnMgYnkgbW9udGhcbiAgICogQHBhcmFtIG1vbnRoSW5kZXggYnkgd2hpY2ggZGVzaXJlZCBtb250aCBzaG91bGQgYmUgdGFrZW5cbiAgICovXG4gIGdldEJ5TW9udGgobW9udGhJbmRleDogbnVtYmVyKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbih0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PlxuICAgICAgdHJhbnNhY3Rpb24uZGF0ZS5nZXRNb250aCgpID09PSBtb250aEluZGV4XG4gICAgKSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGZpbHRlcmVkIGJ5IGNoYXJ0IGFjY291bnRzIGlkXG4gICAqIEBwYXJhbSBjaGFydEFjY291bnRzSWQgY2hhcnQgYWNjb3VudHMgaWQgZm9yIGZpbHRlcmluZ1xuICAgKi9cbiAgZ2V0QnlDaGFydEFjY291bnRzSWQoY2hhcnRBY2NvdW50c0lkOiBudW1iZXIpOiBUcmFuc2FjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cy5pZCA9PT0gY2hhcnRBY2NvdW50c0lkKTtcbiAgfVxuXG4gIGdldEluY29tZVRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNJbmNvbWUoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsYWltSW5jb21lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW5jb21lVHJhbnNhY3Rpb25zKCkuY2xhaW1BbW91bnQ7XG4gIH1cblxuICBnZXRFeHBlbnNlVHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0V4cGVuc2UoKSAmJiAhdHJhbnNhY3Rpb24uaXNJbnRlcmVzdCgpKVxuICAgICk7XG4gIH1cblxuICBnZXQgY2xhaW1FeHBlbnNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpLmNsYWltQW1vdW50O1xuICB9XG5cbiAgZ2V0SW50ZXJlc3RUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzSW50ZXJlc3QoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsYWltSW50ZXJlc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbnRlcmVzdFRyYW5zYWN0aW9ucygpLmNsYWltQW1vdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIHRyYW5zYWN0aW9ucyBhbmQgcHJvcGVydGllcyBmaWx0ZXJlZCBieSBwcm9wZXJ0aWVzIGlkc1xuICAgKiBAcGFyYW0gaWRzIElkcyBvZiBwcm9wZXJ0aWVzIGZvciBmaWx0ZXJcbiAgICovXG4gIGdldEJ5UHJvcGVydGllc0lkcyhpZHM6IG51bWJlcltdKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgcmV0dXJuIGlkcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5wcm9wZXJ0eT8uaWQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgY29sbGVjdGlvbiBmaWx0ZXJlZCBieSBpbmNvbWUgc291cmNlIGlkXG4gICAqIEBwYXJhbSBpZCBpZCBvZiBpbmNvbWUgc291cmNlIGZvciBmaWx0ZXJcbiAgICovXG4gIGdldEJ5SW5jb21lU291cmNlSWQoaWQ6IG51bWJlcik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pbmNvbWVTb3VyY2U/LmlkID09PSBpZClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgY29sbGVjdGlvbiBmaWx0ZXJlZCBieSBjaGFydCBhY2NvdW50cyBjYXRlZ29yeVxuICAgKiBAcGFyYW0gY2F0ZWdvcnkgQ2hhcnQgYWNjb3VudHMgY2F0ZWdvcnkgdmFsdWVcbiAgICovXG4gIGdldEJ5Q2hhcnRBY2NvdW50c0NhdGVnb3J5KGNhdGVnb3J5OiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkgPT09IGNhdGVnb3J5KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5ldyBjb2xsZWN0aW9uIG9mIHByb3BlcnR5IHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0UHJvcGVydHlUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzUHJvcGVydHlUYW5rKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldERlYml0VHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0RlYml0KCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldENyZWRpdFRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNDcmVkaXQoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QnlBbGxvY2F0aW9ucyhhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiBhbGxvY2F0aW9ucy5oYXNUcmFuc2FjdGlvbih0cmFuc2FjdGlvbikpXG4gICAgKTtcbiAgfVxufVxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFVBQXVCO0lBQ2hFOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLFdBQXdCLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLFdBQTRDO1FBQy9ELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxXQUFXLENB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TUFBTSxDQUFDLENBQUMsV0FBd0IsRUFBVyxFQUFFLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUNsRyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUF3QixFQUFXLEVBQUU7WUFDdEQsT0FBTyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYSxDQUFDLFFBQXNCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUF3QixFQUFXLEVBQUU7WUFDdEQsUUFBUSxRQUFRLEVBQUU7Z0JBQ2hCLEtBQUssWUFBWSxDQUFDLFFBQVE7b0JBQ3hCLE9BQU8sV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLFlBQVksQ0FBQyxJQUFJO29CQUNwQixPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEMsS0FBSyxZQUFZLENBQUMsSUFBSTtvQkFDcEIsT0FBTyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xDLDZEQUE2RDtnQkFDN0Q7b0JBQ0UsT0FBTyxLQUFLLENBQUM7YUFDaEI7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uL21vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSB9IGZyb20gJy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWNhdGVnb3J5LmVudW0nO1xuaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vZGIvRW51bXMvdGFuay10eXBlLmVudW0nO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdHJhbnNhY3Rpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFRyYW5zYWN0aW9uPiB7XG4gIC8qKlxuICAgKiBHZXQgdG90YWwgYW1vdW50IG9mIGFsbCB0cmFuc2FjdGlvbnMgaW4gdGhlIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldCBhbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3RoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiBzdW0gKyB0cmFuc2FjdGlvbi5nZXROZXRBbW91bnQoKSwgMCkudG9GaXhlZCgyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaWZmZXJlbmNlIGJldHdlZW4gYWxsb2NhdGVkIGFtb3VudCBhbmQgdG90YWwgYW1vdW50XG4gICAqL1xuICBnZXRVbmFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuICsodGhpcy5hbW91bnQgLSBhbGxvY2F0aW9ucy5nZXRCeVRyYW5zYWN0aW9uc0lkcyh0aGlzLmdldElkcygpKS5hbW91bnQpLnRvRml4ZWQoMik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNhc2ggcG9zaXRpb25cbiAgICogQ2FzaCBQb3NpdGlvbiA9IEluY29tZSAtIEV4cGVuc2VzXG4gICAqIENhc2ggcG9zaXRpb24gaXMgZXF1YWwgdG8gVG90YWwgQW1vdW50IGJlY2F1c2UgaW5jb21lIGlzIHBvc2l0aXZlIGFuZCBleHBlbnNlIGlzIG5lZ2F0aXZlLFxuICAgKi9cbiAgZ2V0IGNhc2hQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNsYWltQW1vdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBkYXRlIG9mIHRoZSBsYXN0IHRyYW5zYWN0aW9uXG4gICAqL1xuICBnZXRMYXN0VHJhbnNhY3Rpb25EYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShNYXRoLm1heC5hcHBseShNYXRoLCB0aGlzLml0ZW1zLm1hcCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5kYXRlKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzdW1tYXJ5IG9mIGNsYWltIGFtb3VudHNcbiAgICovXG4gIGdldCBjbGFpbUFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uY2xhaW1BbW91bnQsIDApO1xuICB9XG5cbiAgZ2V0IGdyb3NzQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuICt0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uYW1vdW50LCAwKS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgZ2V0QnlDaGFydEFjY291bnRzQ2F0ZWdvcmllcyhjYXRlZ29yaWVzOiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtW10pOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gY2F0ZWdvcmllcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLmNhdGVnb3J5KSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbnMgYnkgbW9udGhcbiAgICogQHBhcmFtIG1vbnRoSW5kZXggYnkgd2hpY2ggZGVzaXJlZCBtb250aCBzaG91bGQgYmUgdGFrZW5cbiAgICovXG4gIGdldEJ5TW9udGgobW9udGhJbmRleDogbnVtYmVyKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbih0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PlxuICAgICAgdHJhbnNhY3Rpb24uZGF0ZS5nZXRNb250aCgpID09PSBtb250aEluZGV4XG4gICAgKSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGZpbHRlcmVkIGJ5IGNoYXJ0IGFjY291bnRzIGlkXG4gICAqIEBwYXJhbSBjaGFydEFjY291bnRzSWQgY2hhcnQgYWNjb3VudHMgaWQgZm9yIGZpbHRlcmluZ1xuICAgKi9cbiAgZ2V0QnlDaGFydEFjY291bnRzSWQoY2hhcnRBY2NvdW50c0lkOiBudW1iZXIpOiBUcmFuc2FjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cy5pZCA9PT0gY2hhcnRBY2NvdW50c0lkKTtcbiAgfVxuXG4gIGdldEluY29tZVRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNJbmNvbWUoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsYWltSW5jb21lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW5jb21lVHJhbnNhY3Rpb25zKCkuY2xhaW1BbW91bnQ7XG4gIH1cblxuICBnZXRFeHBlbnNlVHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0V4cGVuc2UoKSAmJiAhdHJhbnNhY3Rpb24uaXNJbnRlcmVzdCgpKVxuICAgICk7XG4gIH1cblxuICBnZXQgY2xhaW1FeHBlbnNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpLmNsYWltQW1vdW50O1xuICB9XG5cbiAgZ2V0SW50ZXJlc3RUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzSW50ZXJlc3QoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsYWltSW50ZXJlc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbnRlcmVzdFRyYW5zYWN0aW9ucygpLmNsYWltQW1vdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIHRyYW5zYWN0aW9ucyBhbmQgcHJvcGVydGllcyBmaWx0ZXJlZCBieSBwcm9wZXJ0aWVzIGlkc1xuICAgKiBAcGFyYW0gaWRzIElkcyBvZiBwcm9wZXJ0aWVzIGZvciBmaWx0ZXJcbiAgICovXG4gIGdldEJ5UHJvcGVydGllc0lkcyhpZHM6IG51bWJlcltdKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgcmV0dXJuIGlkcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5wcm9wZXJ0eT8uaWQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgY29sbGVjdGlvbiBmaWx0ZXJlZCBieSBpbmNvbWUgc291cmNlIGlkXG4gICAqIEBwYXJhbSBpZCBpZCBvZiBpbmNvbWUgc291cmNlIGZvciBmaWx0ZXJcbiAgICovXG4gIGdldEJ5SW5jb21lU291cmNlSWQoaWQ6IG51bWJlcik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pbmNvbWVTb3VyY2U/LmlkID09PSBpZClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgY29sbGVjdGlvbiBmaWx0ZXJlZCBieSBjaGFydCBhY2NvdW50cyBjYXRlZ29yeVxuICAgKiBAcGFyYW0gY2F0ZWdvcnkgQ2hhcnQgYWNjb3VudHMgY2F0ZWdvcnkgdmFsdWVcbiAgICovXG4gIGdldEJ5Q2hhcnRBY2NvdW50c0NhdGVnb3J5KGNhdGVnb3J5OiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkgPT09IGNhdGVnb3J5KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5ldyBjb2xsZWN0aW9uIG9mIHByb3BlcnR5IHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0UHJvcGVydHlUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzUHJvcGVydHlUYW5rKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldERlYml0VHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0RlYml0KCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldENyZWRpdFRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNDcmVkaXQoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QnlBbGxvY2F0aW9ucyhhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiBhbGxvY2F0aW9ucy5oYXNUcmFuc2FjdGlvbih0cmFuc2FjdGlvbikpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gVmVoaWNsZSBjYXRlZ29yeVxuICAgKi9cbiAgZ2V0VmVoaWNsZVRyYW5zYWN0aW9ucygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB7XG4gICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1ZlaGljbGVUcmFuc2FjdGlvbigpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgdHJhbnNhY3Rpb24gY29sbGVjdGlvbiBmaWx0ZXJlZCBieSB0YW5rIHR5cGVcbiAgICovXG4gIGdldEJ5VGFua1R5cGUodGFua1R5cGU6IFRhbmtUeXBlRW51bSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgc3dpdGNoICh0YW5rVHlwZSkge1xuICAgICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlBST1BFUlRZOlxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLmlzUHJvcGVydHlUYW5rKCk7XG4gICAgICAgICAgY2FzZSBUYW5rVHlwZUVudW0uV09SSzpcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1dvcmtUYW5rKCk7XG4gICAgICAgICAgY2FzZSBUYW5rVHlwZUVudW0uU09MRTpcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1NvbGVUYW5rKCk7XG4gICAgICAgICAgLy8gVHJhbnNhY3Rpb24gbWF5IGJlIG5vdCByZWxhdGVkIHRvIGFueSB0YW5rIHR5cGUgKHBlcnNvbmFsKVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,88 @@
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.getByDateRange(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxQzs7OztHQUlHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBRTFELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxVQUEwQjtJQUN0RTs7T0FFRztJQUNILGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLHVCQUF1QixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQXVCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUNyRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksVUFBeUIsQ0FBQztRQUU5QixNQUFNLGdCQUFnQixHQUFxQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVoRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRyxFQUFFO1lBQ2pELE1BQU0sT0FBTyxHQUFtQixnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRCw2RUFBNkU7WUFDN0UsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUMxQyxNQUFNO2FBQ1A7WUFFRCxNQUFNLFNBQVMsR0FBMkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFNUUsa0RBQWtEO1lBQ2xELE1BQU0sZUFBZSxHQUE2QixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7WUFFaEosTUFBTSxTQUFTLEdBQVcsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXpELDJEQUEyRDtZQUMzRCxJQUFJLENBQUMsVUFBVSxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFO2dCQUNuRCxVQUFVLEdBQUcsWUFBWSxDQUFDLGFBQWEsRUFBRTtvQkFDdkMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO29CQUNwQixFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUU7b0JBQ2hCLFVBQVUsRUFBRSxlQUFlLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUU7b0JBQzNELFNBQVMsRUFBRSxTQUFTO2lCQUNyQixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsT0FBdUIsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsTUFBTSxlQUFlLEdBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9DLE1BQU0sY0FBYyxHQUFXLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXBFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsZUFBZSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWMsQ0FBQyxJQUFVO1FBQy9CLDhEQUE4RDtRQUM5RCxJQUFJLEVBQUUsR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsQ0FBQztRQUVsRSxNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBRTFDLDBHQUEwRztRQUMxRyxJQUFJLEVBQUUsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFO1lBQzlCLEVBQUUsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQzNCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsQ0FBQztTQUN6RDtRQUVELE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDcEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVoaWNsZUxvZ2Jvb2sgfSBmcm9tICcuLi9tb2RlbHMvbG9nYm9vay92ZWhpY2xlLWxvZ2Jvb2snO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL21vZGVscy9maW5hbmNpYWwteWVhci9maW5hbmNpYWwteWVhcic7XG5pbXBvcnQgeyBMb2dib29rUGVyaW9kIH0gZnJvbSAnLi4vbW9kZWxzL2xvZ2Jvb2svbG9nYm9vay1wZXJpb2QnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5cbi8qKlxuICogMTIgd2Vla3MgaW4gbWlsbGlzZWNvbmRzXG4gKiBcIlRvIHdvcmsgb3V0IHlvdXIgYnVzaW5lc3MtdXNlIHBlcmNlbnRhZ2UsIHlvdSBuZWVkIHRvIGtlZXAgYSBsb2dib29rIGFuZCB0aGUgb2RvbWV0ZXIgcmVhZGluZ3MgZm9yIHRoZSBsb2dib29rIHBlcmlvZC5cbiAqIFRoZSBsb2dib29rIHBlcmlvZCBpcyBhIG1pbmltdW0gY29udGludW91cyBwZXJpb2Qgb2YgMTIgd2Vla3MuXCIgwqkgTmljb2xlIEtlbGx5XG4gKi9cbmNvbnN0IExPR0JPT0tfUEVSSU9EX0RVUkFUSU9OID0gMTIgKiA3ICogMjQgKiAzNjAwICogMTAwMDtcblxuZXhwb3J0IGNsYXNzIFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248VmVoaWNsZUxvZ2Jvb2s+IHtcbiAgLyoqXG4gICAqIENoZWNrIGlmIHdlIGNhbiBjYWxjdWxhdGUgdGhlIGJlc3QgcGVyaW9kXG4gICAqL1xuICBpc0Jlc3RQZXJpb2RFeGlzdCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPCAyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIExPR0JPT0tfUEVSSU9EX0RVUkFUSU9OIDwgKHRoaXMubGFzdC5kYXRlLmdldFRpbWUoKSAtIHRoaXMuZmlyc3QuZGF0ZS5nZXRUaW1lKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIG5vbi1wZXJzb25hbCBsb2dib29rcyAod29yay1yZWxhdGVkLCBzb2xlLXJlbGF0ZWQpLlxuICAgKi9cbiAgZ2V0QnVzaW5lc3NMb2dib29rcygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigobG9nYm9vazogVmVoaWNsZUxvZ2Jvb2spID0+IGxvZ2Jvb2suaXNCdXNpbmVzcygpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTG9nYm9vayBQZXJpb2QgaXMgdGhlIGJlc3Qgd2hlbiBpdCBoYXMgdGhlIGJpZ2dlc3QgYW1vdW50IG9mIHdvcmsga2lsb21ldGVyc1xuICAgKiBCZXN0IHBlcmlvZCBkdXJhdGlvbiBpcyBkZWZpbmVkIGFzIExPR0JPT0tfUEVSSU9EX0RVUkFUSU9OICgxMiB3ZWVrcykgYnkgdGhlIEFUT1xuICAgKi9cbiAgZ2V0QmVzdFBlcmlvZCgpOiBMb2dib29rUGVyaW9kIHtcbiAgICBpZiAoIXRoaXMuaXNCZXN0UGVyaW9kRXhpc3QoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGJlc3RQZXJpb2Q6IExvZ2Jvb2tQZXJpb2Q7XG5cbiAgICBjb25zdCBidXNpbmVzc0xvZ2Jvb2tzOiBWZWhpY2xlTG9nYm9va1tdID0gdGhpcy5nZXRCdXNpbmVzc0xvZ2Jvb2tzKCkudG9BcnJheSgpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBidXNpbmVzc0xvZ2Jvb2tzLmxlbmd0aDsgaSArKykge1xuICAgICAgY29uc3QgbG9nYm9vazogVmVoaWNsZUxvZ2Jvb2sgPSBidXNpbmVzc0xvZ2Jvb2tzW2ldO1xuXG4gICAgICAvLyBubyBzZW5zZSB0byBjaGVjayBuZXh0IGxvZ2Jvb2tzIGJlY2F1c2Ugd2UgYWxyZWFkeSBnZXQgdGhlIGVuZCBvZiB0aGUgeWVhclxuICAgICAgaWYgKGJlc3RQZXJpb2QgJiYgYmVzdFBlcmlvZC5pc0VuZE9mWWVhcigpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRlUmFuZ2U6IHtmcm9tOiBEYXRlLCB0bzogRGF0ZX0gPSB0aGlzLmdldFBlcmlvZFJhbmdlKGxvZ2Jvb2suZGF0ZSk7XG5cbiAgICAgIC8vIGdldCBsb2dib29rcyBpbmNsdWRlZCBpbiBjdXJyZW50IGxvZ2Jvb2sgcGVyaW9kXG4gICAgICBjb25zdCBsb2dib29rc0luUmFuZ2U6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiA9IHRoaXMuZ2V0QnlEYXRlUmFuZ2UobG9nYm9vay5kYXRlLCBuZXcgRGF0ZShsb2dib29rLmRhdGUuZ2V0VGltZSgpICsgTE9HQk9PS19QRVJJT0RfRFVSQVRJT04pKTtcblxuICAgICAgY29uc3Qgd29ya1VzYWdlOiBudW1iZXIgPSBsb2dib29rc0luUmFuZ2UuZ2V0V29ya1VzYWdlKCk7XG5cbiAgICAgIC8vIGNvbXBhcmUgd2l0aCBwcmV2aW91cyBiZXN0IHBlcmlvZCBhbmQgb3ZlcndyaXRlIGlmIG5lZWRzXG4gICAgICBpZiAoIWJlc3RQZXJpb2QgfHwgd29ya1VzYWdlID4gYmVzdFBlcmlvZC53b3JrVXNhZ2UpIHtcbiAgICAgICAgYmVzdFBlcmlvZCA9IHBsYWluVG9DbGFzcyhMb2dib29rUGVyaW9kLCB7XG4gICAgICAgICAgZnJvbTogZGF0ZVJhbmdlLmZyb20sXG4gICAgICAgICAgdG86IGRhdGVSYW5nZS50byxcbiAgICAgICAgICBraWxvbWV0ZXJzOiBsb2dib29rc0luUmFuZ2UuZ2V0QnVzaW5lc3NMb2dib29rcygpLmdldEtsbXMoKSxcbiAgICAgICAgICB3b3JrVXNhZ2U6IHdvcmtVc2FnZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYmVzdFBlcmlvZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdG90YWwga2lsb21ldGVycyB0cmF2ZWxlZFxuICAgKi9cbiAgZ2V0S2xtcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiBzdW0gKyBsb2dib29rLmdldEtsbXMoKSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHdvcmsgdXNhZ2UgKHBlcmNlbnQgb2YgYnVzaW5lc3MtcmVsYXRlZCBraWxvbWV0ZXJzIGZyb20gdG90YWwga2lsb21ldGVycylcbiAgICovXG4gIGdldFdvcmtVc2FnZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsS2lsb21ldGVyczogbnVtYmVyID0gdGhpcy5nZXRLbG1zKCk7XG4gICAgY29uc3Qgd29ya0tpbG9tZXRlcnM6IG51bWJlciA9IHRoaXMuZ2V0QnVzaW5lc3NMb2dib29rcygpLmdldEtsbXMoKTtcblxuICAgIHJldHVybiBNYXRoLnJvdW5kKHdvcmtLaWxvbWV0ZXJzIC8gdG90YWxLaWxvbWV0ZXJzICogMTAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgTE9HQk9PS19QRVJJT0RfRFVSQVRJT04gZGF0ZSByYW5nZSBmcm9tIHBhc3NlZCBzdGFydCBkYXRlXG4gICAqL1xuICBwcml2YXRlIGdldFBlcmlvZFJhbmdlKGZyb206IERhdGUpOiB7ZnJvbTogRGF0ZSwgdG86IERhdGV9IHtcbiAgICAvLyBzZXQgZW5kIGRhdGUgYWZ0ZXIgTE9HQk9PS19QRVJJT0RfRFVSQVRJT04gYWZ0ZXIgc3RhcnQgZGF0ZVxuICAgIGxldCB0bzogRGF0ZSA9IG5ldyBEYXRlKGZyb20uZ2V0VGltZSgpICsgTE9HQk9PS19QRVJJT0RfRFVSQVRJT04pO1xuXG4gICAgY29uc3QgZmluYW5jaWFsWWVhciA9IG5ldyBGaW5hbmNpYWxZZWFyKCk7XG5cbiAgICAvLyBzZXQgYXMgcGVyaW9kIGxhc3QgTE9HQk9PS19QRVJJT0RfRFVSQVRJT04gb2YgY3VycmVudCB5ZWFyIGlmIHBlcmlvZCBlbmQgZGF0ZSBhZnRlciBlbmQgb2YgY3VycmVudCB5ZWFyXG4gICAgaWYgKHRvID4gZmluYW5jaWFsWWVhci5lbmREYXRlKSB7XG4gICAgICB0byA9IGZpbmFuY2lhbFllYXIuZW5kRGF0ZTtcbiAgICAgIGZyb20gPSBuZXcgRGF0ZSh0by5nZXRUaW1lKCkgLSBMT0dCT09LX1BFUklPRF9EVVJBVElPTik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtmcm9tLCB0b307XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
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==
@@ -2,5 +2,7 @@ export var ChartAccountsHeadingVehicleListEnum;
2
2
  (function (ChartAccountsHeadingVehicleListEnum) {
3
3
  ChartAccountsHeadingVehicleListEnum[ChartAccountsHeadingVehicleListEnum["WORK_RELATED_CAR_EXPENSES"] = 8] = "WORK_RELATED_CAR_EXPENSES";
4
4
  ChartAccountsHeadingVehicleListEnum[ChartAccountsHeadingVehicleListEnum["DEPRECIATION_VEHICLES"] = 9] = "DEPRECIATION_VEHICLES";
5
+ ChartAccountsHeadingVehicleListEnum[ChartAccountsHeadingVehicleListEnum["KLMS"] = 60] = "KLMS";
6
+ ChartAccountsHeadingVehicleListEnum[ChartAccountsHeadingVehicleListEnum["FUEL_OIL"] = 61] = "FUEL_OIL";
5
7
  })(ChartAccountsHeadingVehicleListEnum || (ChartAccountsHeadingVehicleListEnum = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtaGVhZGluZy12ZWhpY2xlLWxpc3QuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLXZlaGljbGUtbGlzdC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG1DQUdYO0FBSEQsV0FBWSxtQ0FBbUM7SUFDOUMsdUlBQTZCLENBQUE7SUFDN0IsK0hBQXlCLENBQUE7QUFDMUIsQ0FBQyxFQUhXLG1DQUFtQyxLQUFuQyxtQ0FBbUMsUUFHOUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDaGFydEFjY291bnRzSGVhZGluZ1ZlaGljbGVMaXN0RW51bSB7XG5cdFdPUktfUkVMQVRFRF9DQVJfRVhQRU5TRVMgPSA4LFxuXHRERVBSRUNJQVRJT05fVkVISUNMRVMgPSA5LFxufVxuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtaGVhZGluZy12ZWhpY2xlLWxpc3QuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLXZlaGljbGUtbGlzdC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG1DQUtYO0FBTEQsV0FBWSxtQ0FBbUM7SUFDN0MsdUlBQTZCLENBQUE7SUFDN0IsK0hBQXlCLENBQUE7SUFDekIsOEZBQVMsQ0FBQTtJQUNULHNHQUFhLENBQUE7QUFDZixDQUFDLEVBTFcsbUNBQW1DLEtBQW5DLG1DQUFtQyxRQUs5QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENoYXJ0QWNjb3VudHNIZWFkaW5nVmVoaWNsZUxpc3RFbnVtIHtcbiAgV09SS19SRUxBVEVEX0NBUl9FWFBFTlNFUyA9IDgsXG4gIERFUFJFQ0lBVElPTl9WRUhJQ0xFUyA9IDksXG4gIEtMTVMgPSA2MCxcbiAgRlVFTF9PSUwgPSA2MSxcbn1cbiJdfQ==
@@ -7,15 +7,16 @@ export var ChartAccountsListEnum;
7
7
  ChartAccountsListEnum[ChartAccountsListEnum["BUILDING_AT_COST"] = 304] = "BUILDING_AT_COST";
8
8
  ChartAccountsListEnum[ChartAccountsListEnum["MANAGEMENT_FEES_PLATFORM_FEES"] = 656] = "MANAGEMENT_FEES_PLATFORM_FEES";
9
9
  ChartAccountsListEnum[ChartAccountsListEnum["KLMS_TRAVELLED_FOR_WORK"] = 24] = "KLMS_TRAVELLED_FOR_WORK";
10
+ ChartAccountsListEnum[ChartAccountsListEnum["KLMS_TRAVELLED"] = 683] = "KLMS_TRAVELLED";
10
11
  ChartAccountsListEnum[ChartAccountsListEnum["DIRECTOR_FEES"] = 6] = "DIRECTOR_FEES";
11
12
  ChartAccountsListEnum[ChartAccountsListEnum["SALARY_OR_WAGES"] = 2] = "SALARY_OR_WAGES";
12
13
  ChartAccountsListEnum[ChartAccountsListEnum["VEHICLES"] = 25] = "VEHICLES";
13
14
  ChartAccountsListEnum[ChartAccountsListEnum["COMMERCIAL_VEHICLES"] = 26] = "COMMERCIAL_VEHICLES";
15
+ ChartAccountsListEnum[ChartAccountsListEnum["VEHICLE_LOAN_INTEREST"] = 37] = "VEHICLE_LOAN_INTEREST";
16
+ ChartAccountsListEnum[ChartAccountsListEnum["VEHICLE_LOAN_PRINCIPAL"] = 38] = "VEHICLE_LOAN_PRINCIPAL";
14
17
  ChartAccountsListEnum[ChartAccountsListEnum["TAX_INSTALMENTS"] = 662] = "TAX_INSTALMENTS";
15
18
  ChartAccountsListEnum[ChartAccountsListEnum["INTEREST_EARNED"] = 22] = "INTEREST_EARNED";
16
19
  ChartAccountsListEnum[ChartAccountsListEnum["TRUST_INCOME"] = 567] = "TRUST_INCOME";
17
20
  ChartAccountsListEnum[ChartAccountsListEnum["TAX_OFFSETS_N_R_A_S"] = 571] = "TAX_OFFSETS_N_R_A_S";
18
- ChartAccountsListEnum[ChartAccountsListEnum["VEHICLE_LOAN_INTEREST"] = 37] = "VEHICLE_LOAN_INTEREST";
19
- ChartAccountsListEnum[ChartAccountsListEnum["VEHICLE_LOAN_PRINCIPAL"] = 38] = "VEHICLE_LOAN_PRINCIPAL";
20
21
  })(ChartAccountsListEnum || (ChartAccountsListEnum = {}));
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtbGlzdC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWxpc3QuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxxQkFrQlg7QUFsQkQsV0FBWSxxQkFBcUI7SUFDaEMsMkZBQXNCLENBQUE7SUFDdEIsK0ZBQXdCLENBQUE7SUFDeEIsNkVBQWUsQ0FBQTtJQUNmLDJFQUFjLENBQUE7SUFDZCwyRkFBc0IsQ0FBQTtJQUN0QixxSEFBbUMsQ0FBQTtJQUNuQyx3R0FBNEIsQ0FBQTtJQUM1QixtRkFBaUIsQ0FBQTtJQUNqQix1RkFBbUIsQ0FBQTtJQUNuQiwwRUFBYSxDQUFBO0lBQ2IsZ0dBQXdCLENBQUE7SUFDeEIseUZBQXFCLENBQUE7SUFDckIsd0ZBQW9CLENBQUE7SUFDcEIsbUZBQWtCLENBQUE7SUFDbEIsaUdBQXlCLENBQUE7SUFDeEIsb0dBQTBCLENBQUE7SUFDMUIsc0dBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQWxCVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBa0JoQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENoYXJ0QWNjb3VudHNMaXN0RW51bSB7XG5cdElOVEVSRVNUX09OX0xPQU4gPSAzMDIsXG5cdEJPUlJPV0lOR19FWFBFTlNFUyA9IDMxNSxcblx0RElWSURFTkRTID0gNTQyLFxuXHRUUkFOU0ZFUiA9IDYxNSxcblx0QlVJTERJTkdfQVRfQ09TVCA9IDMwNCxcblx0TUFOQUdFTUVOVF9GRUVTX1BMQVRGT1JNX0ZFRVMgPSA2NTYsXG5cdEtMTVNfVFJBVkVMTEVEX0ZPUl9XT1JLID0gMjQsXG5cdERJUkVDVE9SX0ZFRVMgPSA2LFxuXHRTQUxBUllfT1JfV0FHRVMgPSAyLFxuXHRWRUhJQ0xFUyA9IDI1LFxuXHRDT01NRVJDSUFMX1ZFSElDTEVTID0gMjYsXG5cdFRBWF9JTlNUQUxNRU5UUyA9IDY2Mixcblx0SU5URVJFU1RfRUFSTkVEID0gMjIsXG5cdFRSVVNUX0lOQ09NRSA9IDU2Nyxcblx0VEFYX09GRlNFVFNfTl9SX0FfUyA9IDU3MSxcbiAgVkVISUNMRV9MT0FOX0lOVEVSRVNUID0gMzcsXG4gIFZFSElDTEVfTE9BTl9QUklOQ0lQQUwgPSAzOCxcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtbGlzdC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWxpc3QuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxxQkFtQlg7QUFuQkQsV0FBWSxxQkFBcUI7SUFDL0IsMkZBQXNCLENBQUE7SUFDdEIsK0ZBQXdCLENBQUE7SUFDeEIsNkVBQWUsQ0FBQTtJQUNmLDJFQUFjLENBQUE7SUFDZCwyRkFBc0IsQ0FBQTtJQUN0QixxSEFBbUMsQ0FBQTtJQUNuQyx3R0FBNEIsQ0FBQTtJQUM1Qix1RkFBb0IsQ0FBQTtJQUNwQixtRkFBaUIsQ0FBQTtJQUNqQix1RkFBbUIsQ0FBQTtJQUNuQiwwRUFBYSxDQUFBO0lBQ2IsZ0dBQXdCLENBQUE7SUFDeEIsb0dBQTBCLENBQUE7SUFDMUIsc0dBQTJCLENBQUE7SUFDM0IseUZBQXFCLENBQUE7SUFDckIsd0ZBQW9CLENBQUE7SUFDcEIsbUZBQWtCLENBQUE7SUFDbEIsaUdBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQW5CVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBbUJoQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENoYXJ0QWNjb3VudHNMaXN0RW51bSB7XG4gIElOVEVSRVNUX09OX0xPQU4gPSAzMDIsXG4gIEJPUlJPV0lOR19FWFBFTlNFUyA9IDMxNSxcbiAgRElWSURFTkRTID0gNTQyLFxuICBUUkFOU0ZFUiA9IDYxNSxcbiAgQlVJTERJTkdfQVRfQ09TVCA9IDMwNCxcbiAgTUFOQUdFTUVOVF9GRUVTX1BMQVRGT1JNX0ZFRVMgPSA2NTYsXG4gIEtMTVNfVFJBVkVMTEVEX0ZPUl9XT1JLID0gMjQsXG4gIEtMTVNfVFJBVkVMTEVEID0gNjgzLFxuICBESVJFQ1RPUl9GRUVTID0gNixcbiAgU0FMQVJZX09SX1dBR0VTID0gMixcbiAgVkVISUNMRVMgPSAyNSxcbiAgQ09NTUVSQ0lBTF9WRUhJQ0xFUyA9IDI2LFxuICBWRUhJQ0xFX0xPQU5fSU5URVJFU1QgPSAzNyxcbiAgVkVISUNMRV9MT0FOX1BSSU5DSVBBTCA9IDM4LFxuICBUQVhfSU5TVEFMTUVOVFMgPSA2NjIsXG4gIElOVEVSRVNUX0VBUk5FRCA9IDIyLFxuICBUUlVTVF9JTkNPTUUgPSA1NjcsXG4gIFRBWF9PRkZTRVRTX05fUl9BX1MgPSA1NzEsXG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export class ClientIncomeTypes {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWluY29tZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvY2xpZW50LWluY29tZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8saUJBQWlCO0NBUzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGllbnREZXRhaWxzfSBmcm9tICcuL2NsaWVudC1kZXRhaWxzJztcblxuZXhwb3J0IGNsYXNzIENsaWVudEluY29tZVR5cGVzIHtcblx0c2FsYXJ5PzogYm9vbGVhbjtcblx0cmVudGFsPzogYm9vbGVhbjtcblx0c29sZVRyYWRlcj86IGJvb2xlYW47XG5cdGRpdmlkZW5kcz86IGJvb2xlYW47XG5cdG90aGVyPzogYm9vbGVhbjtcblx0aWQ/OiBudW1iZXI7XG5cdGRlbGV0ZWRBdD86IERhdGU7XG5cdGNsaWVudERldGFpbHM/OiBDbGllbnREZXRhaWxzO1xufSJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWluY29tZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvY2xpZW50LWluY29tZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8saUJBQWlCO0NBUzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGllbnREZXRhaWxzfSBmcm9tICcuL2NsaWVudC1kZXRhaWxzJztcblxuZXhwb3J0IGNsYXNzIENsaWVudEluY29tZVR5cGVzIHtcbiAgc2FsYXJ5PzogYm9vbGVhbjtcbiAgcHJvcGVydHk/OiBib29sZWFuO1xuICBzb2xlPzogYm9vbGVhbjtcbiAgZGl2aWRlbmRzPzogYm9vbGVhbjtcbiAgb3RoZXI/OiBib29sZWFuO1xuICBpZD86IG51bWJlcjtcbiAgZGVsZXRlZEF0PzogRGF0ZTtcbiAgY2xpZW50RGV0YWlscz86IENsaWVudERldGFpbHM7XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export class VehicleClaim {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1jbGFpbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvdmVoaWNsZS1jbGFpbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sWUFBWTtDQVF4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlaGljbGVDbGFpbU1ldGhvZEVudW0gfSBmcm9tICcuLi9FbnVtcy92ZWhpY2xlLWNsYWltLW1ldGhvZC5lbnVtJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuL3VzZXInO1xuXG5leHBvcnQgY2xhc3MgVmVoaWNsZUNsYWltIHtcbiAgZmluYW5jaWFsWWVhcj86IG51bWJlcjtcbiAgbWV0aG9kPzogVmVoaWNsZUNsYWltTWV0aG9kRW51bTtcbiAga2lsb21ldGVycz86IG51bWJlcjtcbiAgd29ya1VzYWdlPzogbnVtYmVyO1xuICBpc01hbnVhbD86IGJvb2xlYW47XG4gIGlkPzogbnVtYmVyO1xuICB1c2VyPzogVXNlcjtcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1jbGFpbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvdmVoaWNsZS1jbGFpbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sWUFBWTtDQVN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlaGljbGVDbGFpbU1ldGhvZEVudW0gfSBmcm9tICcuLi9FbnVtcy92ZWhpY2xlLWNsYWltLW1ldGhvZC5lbnVtJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuL3VzZXInO1xuaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vRW51bXMvdGFuay10eXBlLmVudW0nO1xuXG5leHBvcnQgY2xhc3MgVmVoaWNsZUNsYWltIHtcbiAgZmluYW5jaWFsWWVhcj86IG51bWJlcjtcbiAgbWV0aG9kPzogVmVoaWNsZUNsYWltTWV0aG9kRW51bTtcbiAga2lsb21ldGVycz86IG51bWJlcjtcbiAgd29ya1VzYWdlPzogbnVtYmVyO1xuICBpc01hbnVhbD86IGJvb2xlYW47XG4gIGlkPzogbnVtYmVyO1xuICB1c2VyPzogVXNlcjtcbiAgdGFua1R5cGU/OiBUYW5rVHlwZUVudW07XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export class Vehicle {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvdmVoaWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sT0FBTztDQUtuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXIgfSBmcm9tICcuL3VzZXInO1xuaW1wb3J0IHsgVmVoaWNsZUxvZ2Jvb2sgfSBmcm9tICcuL3ZlaGljbGUtbG9nYm9vayc7XG5cbmV4cG9ydCBjbGFzcyBWZWhpY2xlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBudW1iZXI7XG4gIHVzZXI/OiBVc2VyO1xuICBsb2dib29rPzogVmVoaWNsZUxvZ2Jvb2tbXTtcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvdmVoaWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sT0FBTztDQU1uQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXIgfSBmcm9tICcuL3VzZXInO1xuaW1wb3J0IHsgVmVoaWNsZUxvZ2Jvb2sgfSBmcm9tICcuL3ZlaGljbGUtbG9nYm9vayc7XG5pbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBWZWhpY2xlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBudW1iZXI7XG4gIHVzZXI/OiBVc2VyO1xuICBsb2dib29rPzogVmVoaWNsZUxvZ2Jvb2tbXTtcbiAgdGFua1R5cGU/OiBUYW5rVHlwZUVudW07XG59XG4iXX0=
@@ -5,8 +5,8 @@ export class ClientIncomeTypesForm extends AbstractForm {
5
5
  constructor(clientIncomeTypes) {
6
6
  super({
7
7
  salary: new FormControl(clientIncomeTypes.salary),
8
- rental: new FormControl(clientIncomeTypes.rental),
9
- soleTrader: new FormControl(clientIncomeTypes.soleTrader),
8
+ property: new FormControl(clientIncomeTypes.property),
9
+ sole: new FormControl(clientIncomeTypes.sole),
10
10
  dividends: new FormControl(clientIncomeTypes.dividends),
11
11
  other: new FormControl(clientIncomeTypes.other)
12
12
  }, atLeastOneCheckedValidator());
@@ -19,4 +19,4 @@ export class ClientIncomeTypesForm extends AbstractForm {
19
19
  return Object.assign({}, this.clientIncomeTypes, this.value);
20
20
  }
21
21
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWluY29tZS10eXBlcy5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL2NsaWVudC9jbGllbnQtaW5jb21lLXR5cGVzLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQUNyRCxZQUNVLGlCQUFvQztRQUU1QyxLQUFLLENBQUM7WUFDSixNQUFNLEVBQUUsSUFBSSxXQUFXLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1lBQ2pELE1BQU0sRUFBRSxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7WUFDakQsVUFBVSxFQUFFLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztZQUN6RCxTQUFTLEVBQUUsSUFBSSxXQUFXLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDO1lBQ3ZELEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7U0FDaEQsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUM7UUFSekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQVM5QyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdEZvcm0gfSBmcm9tICcuLi9hYnN0cmFjdC5mb3JtJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2xpZW50SW5jb21lVHlwZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xpZW50L2NsaWVudC1pbmNvbWUtdHlwZXMnO1xuaW1wb3J0IHsgYXRMZWFzdE9uZUNoZWNrZWRWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzJztcblxuZXhwb3J0IGNsYXNzIENsaWVudEluY29tZVR5cGVzRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2xpZW50SW5jb21lVHlwZXM6IENsaWVudEluY29tZVR5cGVzXG4gICkge1xuICAgIHN1cGVyKHtcbiAgICAgIHNhbGFyeTogbmV3IEZvcm1Db250cm9sKGNsaWVudEluY29tZVR5cGVzLnNhbGFyeSksXG4gICAgICByZW50YWw6IG5ldyBGb3JtQ29udHJvbChjbGllbnRJbmNvbWVUeXBlcy5yZW50YWwpLFxuICAgICAgc29sZVRyYWRlcjogbmV3IEZvcm1Db250cm9sKGNsaWVudEluY29tZVR5cGVzLnNvbGVUcmFkZXIpLFxuICAgICAgZGl2aWRlbmRzOiBuZXcgRm9ybUNvbnRyb2woY2xpZW50SW5jb21lVHlwZXMuZGl2aWRlbmRzKSxcbiAgICAgIG90aGVyOiBuZXcgRm9ybUNvbnRyb2woY2xpZW50SW5jb21lVHlwZXMub3RoZXIpXG4gICAgfSwgYXRMZWFzdE9uZUNoZWNrZWRWYWxpZGF0b3IoKSk7XG4gIH1cblxuICBzdWJtaXQoKTogb2JqZWN0IHtcbiAgICBpZiAoIXRoaXMudmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNsaWVudEluY29tZVR5cGVzLCB0aGlzLnZhbHVlKTtcbiAgfVxufVxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWluY29tZS10eXBlcy5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL2NsaWVudC9jbGllbnQtaW5jb21lLXR5cGVzLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQUNyRCxZQUNVLGlCQUFvQztRQUU1QyxLQUFLLENBQUM7WUFDSixNQUFNLEVBQUUsSUFBSSxXQUFXLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1lBQ2pELFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7WUFDckQsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztZQUM3QyxTQUFTLEVBQUUsSUFBSSxXQUFXLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDO1lBQ3ZELEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7U0FDaEQsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUM7UUFSekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQVM5QyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdEZvcm0gfSBmcm9tICcuLi9hYnN0cmFjdC5mb3JtJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2xpZW50SW5jb21lVHlwZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xpZW50L2NsaWVudC1pbmNvbWUtdHlwZXMnO1xuaW1wb3J0IHsgYXRMZWFzdE9uZUNoZWNrZWRWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzJztcblxuZXhwb3J0IGNsYXNzIENsaWVudEluY29tZVR5cGVzRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2xpZW50SW5jb21lVHlwZXM6IENsaWVudEluY29tZVR5cGVzXG4gICkge1xuICAgIHN1cGVyKHtcbiAgICAgIHNhbGFyeTogbmV3IEZvcm1Db250cm9sKGNsaWVudEluY29tZVR5cGVzLnNhbGFyeSksXG4gICAgICBwcm9wZXJ0eTogbmV3IEZvcm1Db250cm9sKGNsaWVudEluY29tZVR5cGVzLnByb3BlcnR5KSxcbiAgICAgIHNvbGU6IG5ldyBGb3JtQ29udHJvbChjbGllbnRJbmNvbWVUeXBlcy5zb2xlKSxcbiAgICAgIGRpdmlkZW5kczogbmV3IEZvcm1Db250cm9sKGNsaWVudEluY29tZVR5cGVzLmRpdmlkZW5kcyksXG4gICAgICBvdGhlcjogbmV3IEZvcm1Db250cm9sKGNsaWVudEluY29tZVR5cGVzLm90aGVyKVxuICAgIH0sIGF0TGVhc3RPbmVDaGVja2VkVmFsaWRhdG9yKCkpO1xuICB9XG5cbiAgc3VibWl0KCk6IG9iamVjdCB7XG4gICAgaWYgKCF0aGlzLnZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jbGllbnRJbmNvbWVUeXBlcywgdGhpcy52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -5,4 +5,6 @@ export * from './register/register-client.form';
5
5
  export * from './register/register-firm.form';
6
6
  export * from './user/password.form';
7
7
  export * from './user/reset-password.form';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxjQUFjLG1DQUFtQyxDQUFDO0FBRWxELGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3QuZm9ybSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2xpZW50L2NsaWVudC1pbmNvbWUtdHlwZXMuZm9ybSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbG9naW4vbG9naW4uZm9ybSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcmVnaXN0ZXIvcmVnaXN0ZXItY2xpZW50LmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlci9yZWdpc3Rlci1maXJtLmZvcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL3VzZXIvcGFzc3dvcmQuZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXIvcmVzZXQtcGFzc3dvcmQuZm9ybSc7XG5cbiJdfQ==
8
+ export * from './vehicle/vehicle.form';
9
+ export * from './vehicle/vehicle-claim.form';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxjQUFjLG1DQUFtQyxDQUFDO0FBRWxELGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0LmZvcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NsaWVudC9jbGllbnQtaW5jb21lLXR5cGVzLmZvcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xvZ2luL2xvZ2luLmZvcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyL3JlZ2lzdGVyLWNsaWVudC5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vcmVnaXN0ZXIvcmVnaXN0ZXItZmlybS5mb3JtJztcblxuZXhwb3J0ICogZnJvbSAnLi91c2VyL3Bhc3N3b3JkLmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyL3Jlc2V0LXBhc3N3b3JkLmZvcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL3ZlaGljbGUvdmVoaWNsZS5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vdmVoaWNsZS92ZWhpY2xlLWNsYWltLmZvcm0nO1xuIl19
@@ -0,0 +1,114 @@
1
+ import { AbstractForm } from '../abstract.form';
2
+ import { VehicleClaim } from '../../models/logbook/vehicle-claim';
3
+ import { FormControl, Validators } from '@angular/forms';
4
+ import { plainToClass } from 'class-transformer';
5
+ import { VehicleClaimMethodEnum } from '../../db/Enums/vehicle-claim-method.enum';
6
+ export class VehicleClaimForm extends AbstractForm {
7
+ constructor(vehicleClaim, logbooks) {
8
+ super({
9
+ method: new FormControl(vehicleClaim.method, Validators.required),
10
+ isManual: new FormControl(vehicleClaim.isManual),
11
+ kilometers: new FormControl({
12
+ value: vehicleClaim.kilometers,
13
+ disabled: !vehicleClaim.isManual
14
+ }),
15
+ workUsage: new FormControl({
16
+ value: vehicleClaim.workUsage,
17
+ disabled: !vehicleClaim.isManual
18
+ })
19
+ });
20
+ this.vehicleClaim = vehicleClaim;
21
+ this.logbooks = logbooks;
22
+ this.setIsManualState();
23
+ this.listenMethodChanges();
24
+ this.listenIsManualChanges();
25
+ }
26
+ /**
27
+ * Check if vehicle claim method changed
28
+ */
29
+ isMethodChanged() {
30
+ return this.vehicleClaim.method !== this.get('method').value;
31
+ }
32
+ /**
33
+ * Check if KLMs method selected
34
+ */
35
+ isKLMsMethod() {
36
+ return this.get('method').value === VehicleClaimMethodEnum.KMS;
37
+ }
38
+ /**
39
+ * Check if Logbook method selected
40
+ */
41
+ isLogbookMethod() {
42
+ return this.get('method').value === VehicleClaimMethodEnum.LOGBOOK;
43
+ }
44
+ /**
45
+ * Check if user selected manual calculation
46
+ */
47
+ isManual() {
48
+ return this.get('isManual').value;
49
+ }
50
+ /**
51
+ * @TODO save model, add generics and handle it in AbstractForm
52
+ */
53
+ submit() {
54
+ return plainToClass(VehicleClaim, Object.assign({}, this.vehicleClaim, this.getRawValue()));
55
+ }
56
+ setIsManualState() {
57
+ if (this.logbooks.isBestPeriodExist()) {
58
+ this.get('isManual').enable();
59
+ }
60
+ else {
61
+ this.get('isManual').disable();
62
+ this.get('isManual').setValue(true);
63
+ }
64
+ }
65
+ /**
66
+ * Handle method field value changes.
67
+ * Set work usage value depended of selected method.
68
+ */
69
+ listenMethodChanges() {
70
+ this.get('method').valueChanges.subscribe((method) => {
71
+ if (method === VehicleClaimMethodEnum.KMS) {
72
+ this.get('workUsage').setValue(0);
73
+ }
74
+ else if (method === VehicleClaimMethodEnum.LOGBOOK && !this.isManual()) {
75
+ this.get('workUsage').setValue(this.logbooks.getBestPeriod().workUsage);
76
+ }
77
+ this.setValues();
78
+ });
79
+ }
80
+ /**
81
+ * Handle isManual field value changes.
82
+ * Enable/disable fields depended of isManual value
83
+ */
84
+ listenIsManualChanges() {
85
+ this.get('isManual').valueChanges.subscribe((isManual) => {
86
+ if (isManual) {
87
+ this.get('kilometers').enable();
88
+ this.get('workUsage').enable();
89
+ }
90
+ else {
91
+ this.get('kilometers').disable();
92
+ this.get('workUsage').disable();
93
+ }
94
+ this.setValues();
95
+ });
96
+ }
97
+ /**
98
+ * Set automatic calculated values depended of current method for non-manual vehicle claim
99
+ */
100
+ setValues() {
101
+ if (this.isManual()) {
102
+ return;
103
+ }
104
+ switch (this.get('method').value) {
105
+ case VehicleClaimMethodEnum.LOGBOOK:
106
+ this.get('workUsage').setValue(this.logbooks.getBestPeriod().workUsage);
107
+ break;
108
+ case VehicleClaimMethodEnum.KMS:
109
+ const businessKms = this.logbooks.getBusinessLogbooks().getKlms();
110
+ this.get('kilometers').setValue(businessKms < this.vehicleClaim.kmsLimit ? businessKms : this.vehicleClaim.kmsLimit);
111
+ }
112
+ }
113
+ }
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1jbGFpbS5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL3ZlaGljbGUvdmVoaWNsZS1jbGFpbS5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFbEYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQVk7SUFDaEQsWUFDVSxZQUEwQixFQUMxQixRQUFrQztRQUUxQyxLQUFLLENBQUM7WUFDSixNQUFNLEVBQUUsSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2pFLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1lBQ2hELFVBQVUsRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDMUIsS0FBSyxFQUFFLFlBQVksQ0FBQyxVQUFVO2dCQUM5QixRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUTthQUNqQyxDQUFDO1lBQ0YsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUN6QixLQUFLLEVBQUUsWUFBWSxDQUFDLFNBQVM7Z0JBQzdCLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRO2FBQ2pDLENBQUM7U0FDSCxDQUFDLENBQUM7UUFkSyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQWUxQyxJQUFJ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Q25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUztRQUNmLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ25CLE9BQU87U0FDUjtRQUVELFFBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDaEMsS0FBSyxzQkFBc0IsQ0FBQyxPQUFPO2dCQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN4RSxNQUFNO1lBQ1IsS0FBSyxzQkFBc0IsQ0FBQyxHQUFHO2dCQUM3QixNQUFNLFdBQVcsR0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hIO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RGb3JtIH0gZnJvbSAnLi4vYWJzdHJhY3QuZm9ybSc7XG5pbXBvcnQgeyBWZWhpY2xlQ2xhaW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9nYm9vay92ZWhpY2xlLWNsYWltJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgVmVoaWNsZUNsYWltTWV0aG9kRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3ZlaGljbGUtY2xhaW0tbWV0aG9kLmVudW0nO1xuXG5leHBvcnQgY2xhc3MgVmVoaWNsZUNsYWltRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdmVoaWNsZUNsYWltOiBWZWhpY2xlQ2xhaW0sXG4gICAgcHJpdmF0ZSBsb2dib29rczogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uXG4gICkge1xuICAgIHN1cGVyKHtcbiAgICAgIG1ldGhvZDogbmV3IEZvcm1Db250cm9sKHZlaGljbGVDbGFpbS5tZXRob2QsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgaXNNYW51YWw6IG5ldyBGb3JtQ29udHJvbCh2ZWhpY2xlQ2xhaW0uaXNNYW51YWwpLFxuICAgICAga2lsb21ldGVyczogbmV3IEZvcm1Db250cm9sKHtcbiAgICAgICAgdmFsdWU6IHZlaGljbGVDbGFpbS5raWxvbWV0ZXJzLFxuICAgICAgICBkaXNhYmxlZDogIXZlaGljbGVDbGFpbS5pc01hbnVhbFxuICAgICAgfSksXG4gICAgICB3b3JrVXNhZ2U6IG5ldyBGb3JtQ29udHJvbCh7XG4gICAgICAgIHZhbHVlOiB2ZWhpY2xlQ2xhaW0ud29ya1VzYWdlLFxuICAgICAgICBkaXNhYmxlZDogIXZlaGljbGVDbGFpbS5pc01hbnVhbFxuICAgICAgfSlcbiAgICB9KTtcblxuICAgIHRoaXMuc2V0SXNNYW51YWxTdGF0ZSgpO1xuICAgIHRoaXMubGlzdGVuTWV0aG9kQ2hhbmdlcygpO1xuICAgIHRoaXMubGlzdGVuSXNNYW51YWxDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdmVoaWNsZSBjbGFpbSBtZXRob2QgY2hhbmdlZFxuICAgKi9cbiAgaXNNZXRob2RDaGFuZ2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZlaGljbGVDbGFpbS5tZXRob2QgIT09IHRoaXMuZ2V0KCdtZXRob2QnKS52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBLTE1zIG1ldGhvZCBzZWxlY3RlZFxuICAgKi9cbiAgaXNLTE1zTWV0aG9kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldCgnbWV0aG9kJykudmFsdWUgPT09IFZlaGljbGVDbGFpbU1ldGhvZEVudW0uS01TO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIExvZ2Jvb2sgbWV0aG9kIHNlbGVjdGVkXG4gICAqL1xuICBpc0xvZ2Jvb2tNZXRob2QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCdtZXRob2QnKS52YWx1ZSA9PT0gVmVoaWNsZUNsYWltTWV0aG9kRW51bS5MT0dCT09LO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHVzZXIgc2VsZWN0ZWQgbWFudWFsIGNhbGN1bGF0aW9uXG4gICAqL1xuICBpc01hbnVhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoJ2lzTWFudWFsJykudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gc2F2ZSBtb2RlbCwgYWRkIGdlbmVyaWNzIGFuZCBoYW5kbGUgaXQgaW4gQWJzdHJhY3RGb3JtXG4gICAqL1xuICBzdWJtaXQoKTogVmVoaWNsZUNsYWltIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKFZlaGljbGVDbGFpbSwgT2JqZWN0LmFzc2lnbih7fSwgdGhpcy52ZWhpY2xlQ2xhaW0sIHRoaXMuZ2V0UmF3VmFsdWUoKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJc01hbnVhbFN0YXRlKCkge1xuICAgIGlmICh0aGlzLmxvZ2Jvb2tzLmlzQmVzdFBlcmlvZEV4aXN0KCkpIHtcbiAgICAgIHRoaXMuZ2V0KCdpc01hbnVhbCcpLmVuYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldCgnaXNNYW51YWwnKS5kaXNhYmxlKCk7XG4gICAgICB0aGlzLmdldCgnaXNNYW51YWwnKS5zZXRWYWx1ZSh0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIG1ldGhvZCBmaWVsZCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBTZXQgd29yayB1c2FnZSB2YWx1ZSBkZXBlbmRlZCBvZiBzZWxlY3RlZCBtZXRob2QuXG4gICAqL1xuICBwcml2YXRlIGxpc3Rlbk1ldGhvZENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5nZXQoJ21ldGhvZCcpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKG1ldGhvZDogVmVoaWNsZUNsYWltTWV0aG9kRW51bSk6IHZvaWQgPT4ge1xuICAgICAgaWYgKG1ldGhvZCA9PT0gVmVoaWNsZUNsYWltTWV0aG9kRW51bS5LTVMpIHtcbiAgICAgICAgdGhpcy5nZXQoJ3dvcmtVc2FnZScpLnNldFZhbHVlKDApO1xuICAgICAgfSBlbHNlIGlmIChtZXRob2QgPT09IFZlaGljbGVDbGFpbU1ldGhvZEVudW0uTE9HQk9PSyAmJiAhdGhpcy5pc01hbnVhbCgpKSB7XG4gICAgICAgIHRoaXMuZ2V0KCd3b3JrVXNhZ2UnKS5zZXRWYWx1ZSh0aGlzLmxvZ2Jvb2tzLmdldEJlc3RQZXJpb2QoKS53b3JrVXNhZ2UpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldFZhbHVlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBpc01hbnVhbCBmaWVsZCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBFbmFibGUvZGlzYWJsZSBmaWVsZHMgZGVwZW5kZWQgb2YgaXNNYW51YWwgdmFsdWVcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuSXNNYW51YWxDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KCdpc01hbnVhbCcpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGlzTWFudWFsOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICBpZiAoaXNNYW51YWwpIHtcbiAgICAgICAgdGhpcy5nZXQoJ2tpbG9tZXRlcnMnKS5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5nZXQoJ3dvcmtVc2FnZScpLmVuYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5nZXQoJ2tpbG9tZXRlcnMnKS5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMuZ2V0KCd3b3JrVXNhZ2UnKS5kaXNhYmxlKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0VmFsdWVzKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGF1dG9tYXRpYyBjYWxjdWxhdGVkIHZhbHVlcyBkZXBlbmRlZCBvZiBjdXJyZW50IG1ldGhvZCBmb3Igbm9uLW1hbnVhbCB2ZWhpY2xlIGNsYWltXG4gICAqL1xuICBwcml2YXRlIHNldFZhbHVlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc01hbnVhbCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLmdldCgnbWV0aG9kJykudmFsdWUpIHtcbiAgICAgIGNhc2UgVmVoaWNsZUNsYWltTWV0aG9kRW51bS5MT0dCT09LOlxuICAgICAgICB0aGlzLmdldCgnd29ya1VzYWdlJykuc2V0VmFsdWUodGhpcy5sb2dib29rcy5nZXRCZXN0UGVyaW9kKCkud29ya1VzYWdlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFZlaGljbGVDbGFpbU1ldGhvZEVudW0uS01TOlxuICAgICAgICBjb25zdCBidXNpbmVzc0ttczogbnVtYmVyID0gdGhpcy5sb2dib29rcy5nZXRCdXNpbmVzc0xvZ2Jvb2tzKCkuZ2V0S2xtcygpO1xuICAgICAgICB0aGlzLmdldCgna2lsb21ldGVycycpLnNldFZhbHVlKGJ1c2luZXNzS21zIDwgdGhpcy52ZWhpY2xlQ2xhaW0ua21zTGltaXQgPyBidXNpbmVzc0ttcyA6IHRoaXMudmVoaWNsZUNsYWltLmttc0xpbWl0KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==