taxtank-core 0.10.6 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taxtank-core.umd.js +1723 -1351
- package/bundles/taxtank-core.umd.js.map +1 -1
- package/esm2015/lib/collections/account-setup-item.collection.js +11 -0
- package/esm2015/lib/collections/bank-transaction.collection.js +2 -2
- package/esm2015/lib/collections/collection-dictionary.js +4 -4
- package/esm2015/lib/collections/collection.js +4 -1
- package/esm2015/lib/collections/depreciation.collection.js +24 -10
- package/esm2015/lib/collections/transaction-allocation.collection.js +2 -2
- package/esm2015/lib/collections/transaction.collection.js +28 -1
- package/esm2015/lib/collections/vehicle-logbook.collection.js +88 -0
- package/esm2015/lib/collections/vehicle.collection.js +9 -0
- package/esm2015/lib/db/Enums/chart-accounts-heading-vehicle-list.enum.js +3 -1
- package/esm2015/lib/db/Enums/chart-accounts-list.enum.js +4 -3
- package/esm2015/lib/db/Enums/property/property-category-list.enum.js +2 -1
- package/esm2015/lib/db/Enums/user-status.enum.js +1 -2
- package/esm2015/lib/db/Models/client-details.js +1 -1
- package/esm2015/lib/db/Models/client-income-types.js +3 -0
- package/esm2015/lib/db/Models/vehicle-claim.js +1 -1
- package/esm2015/lib/db/Models/vehicle.js +1 -1
- package/esm2015/lib/forms/client/client-income-types.form.js +22 -0
- package/esm2015/lib/forms/index.js +4 -1
- package/esm2015/lib/forms/vehicle/vehicle-claim.form.js +114 -0
- package/esm2015/lib/forms/vehicle/vehicle.form.js +20 -0
- package/esm2015/lib/interfaces/event-listener.interface.js +1 -1
- package/esm2015/lib/interfaces/expense.interface.js +2 -0
- package/esm2015/lib/interfaces/tank.interface.js +1 -1
- package/esm2015/lib/models/account-setup/account-setup-item.js +6 -0
- package/esm2015/lib/models/account-setup/account-setup-items.const.js +44 -0
- package/esm2015/lib/models/account-setup/account-setup-items.enum.js +14 -0
- package/esm2015/lib/models/chart-accounts/chart-accounts-value.js +4 -0
- package/esm2015/lib/models/chart-accounts/chart-accounts.js +34 -1
- package/esm2015/lib/models/client/client-income-types.js +10 -0
- package/esm2015/lib/models/depreciation/depreciation.js +5 -1
- package/esm2015/lib/models/event/app-event-type.enum.js +4 -1
- package/esm2015/lib/models/export/export-data-table.js +6 -0
- package/esm2015/lib/models/logbook/logbook-period.js +8 -1
- package/esm2015/lib/models/logbook/vehicle-claim.js +63 -4
- package/esm2015/lib/models/logbook/vehicle-logbook.js +9 -3
- package/esm2015/lib/models/logbook/vehicle.js +7 -29
- package/esm2015/lib/models/pdf/pdf-config.js +2 -2
- package/esm2015/lib/models/pdf/pdf-orientation.enum.js +6 -0
- package/esm2015/lib/models/transaction/transaction.js +1 -1
- package/esm2015/lib/services/account-setup/account-setup.service.js +109 -0
- package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +6 -15
- package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +6 -15
- package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +6 -15
- package/esm2015/lib/services/http/bank/basiq/basiq.service.js +6 -15
- package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +1 -1
- package/esm2015/lib/services/http/chat/chat.service.js +8 -12
- package/esm2015/lib/services/http/chat/message/message.service.js +8 -12
- package/esm2015/lib/services/http/chat/message-document/message-document.service.js +1 -1
- package/esm2015/lib/services/http/depreciation/depreciation.service.js +6 -23
- package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +6 -14
- package/esm2015/lib/services/http/firm/client-income/client-income-types.service.js +50 -0
- package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +6 -15
- package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +6 -15
- package/esm2015/lib/services/http/income-source/income-source.service.js +6 -14
- package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +6 -15
- package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +6 -15
- package/esm2015/lib/services/http/loan/loan.service.js +6 -15
- package/esm2015/lib/services/http/property/property-document/property-document.service.js +6 -15
- package/esm2015/lib/services/http/property/property-share/property-share.service.js +6 -15
- package/esm2015/lib/services/http/property/property.service.js +6 -15
- package/esm2015/lib/services/http/rest/rest.service.js +31 -4
- package/esm2015/lib/services/http/service-notification/service-notification.service.js +8 -12
- package/esm2015/lib/services/http/subscription/subscription.service.js +1 -4
- package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +15 -16
- package/esm2015/lib/services/http/tax-review/tax-review.service.js +6 -15
- package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +1 -1
- package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +6 -15
- package/esm2015/lib/services/http/transaction/transaction.service.js +16 -25
- package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +6 -14
- package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +6 -14
- package/esm2015/lib/services/http/vehicle/messages.enum.js +13 -0
- package/esm2015/lib/services/http/vehicle/vehicle-claim.service.js +24 -0
- package/esm2015/lib/services/http/vehicle/vehicle-logbook.service.js +59 -0
- package/esm2015/lib/services/http/vehicle/vehicle.service.js +49 -213
- package/esm2015/lib/services/pdf/pdf.service.js +51 -26
- package/esm2015/lib/services/property/property-holding-costs/property-holding-costs.service.js +53 -0
- package/esm2015/lib/validators/at-least-one.validator.js +11 -0
- package/esm2015/lib/validators/index.js +2 -0
- package/esm2015/public-api.js +16 -2
- package/fesm2015/taxtank-core.js +1536 -1155
- package/fesm2015/taxtank-core.js.map +1 -1
- package/lib/collections/account-setup-item.collection.d.ts +6 -0
- package/lib/collections/collection.d.ts +1 -0
- package/lib/collections/depreciation.collection.d.ts +5 -4
- package/lib/collections/transaction.collection.d.ts +9 -0
- package/lib/collections/vehicle-logbook.collection.d.ts +30 -0
- package/lib/collections/vehicle.collection.d.ts +6 -0
- package/lib/db/Enums/chart-accounts-heading-vehicle-list.enum.d.ts +3 -1
- package/lib/db/Enums/chart-accounts-list.enum.d.ts +4 -3
- package/lib/db/Enums/property/property-category-list.enum.d.ts +2 -1
- package/lib/db/Enums/user-status.enum.d.ts +1 -2
- package/lib/db/Models/client-details.d.ts +5 -1
- package/lib/db/Models/client-income-types.d.ts +11 -0
- package/lib/db/Models/vehicle-claim.d.ts +2 -0
- package/lib/db/Models/vehicle.d.ts +2 -0
- package/lib/forms/client/client-income-types.form.d.ts +7 -0
- package/lib/forms/index.d.ts +3 -0
- package/lib/forms/vehicle/vehicle-claim.form.d.ts +43 -0
- package/lib/forms/vehicle/vehicle.form.d.ts +11 -0
- package/lib/interfaces/event-listener.interface.d.ts +1 -0
- package/lib/interfaces/expense.interface.d.ts +12 -0
- package/lib/interfaces/tank.interface.d.ts +2 -0
- package/lib/models/account-setup/account-setup-item.d.ts +9 -0
- package/lib/models/account-setup/account-setup-items.const.d.ts +7 -0
- package/lib/models/account-setup/account-setup-items.enum.d.ts +12 -0
- package/lib/models/chart-accounts/chart-accounts-value.d.ts +3 -0
- package/lib/models/chart-accounts/chart-accounts.d.ts +18 -0
- package/lib/models/client/client-income-types.d.ts +7 -0
- package/lib/models/depreciation/depreciation.d.ts +6 -2
- package/lib/models/event/app-event-type.enum.d.ts +4 -1
- package/lib/models/export/export-data-table.d.ts +9 -0
- package/lib/models/logbook/logbook-period.d.ts +4 -0
- package/lib/models/logbook/vehicle-claim.d.ts +20 -3
- package/lib/models/logbook/vehicle-logbook.d.ts +8 -2
- package/lib/models/logbook/vehicle.d.ts +5 -7
- package/lib/models/pdf/pdf-orientation.enum.d.ts +4 -0
- package/lib/models/transaction/transaction.d.ts +2 -2
- package/lib/services/account-setup/account-setup.service.d.ts +43 -0
- package/lib/services/http/bank/bank-account/bank-account.service.d.ts +2 -7
- package/lib/services/http/bank/bank-connection/bank-connection.service.d.ts +2 -7
- package/lib/services/http/bank/bank-transaction/bank-transaction.service.d.ts +3 -8
- package/lib/services/http/bank/basiq/basiq.service.d.ts +2 -7
- package/lib/services/http/chat/chat.service.d.ts +4 -7
- package/lib/services/http/chat/message/message.service.d.ts +4 -7
- package/lib/services/http/chat/message-document/message-document.service.d.ts +3 -3
- package/lib/services/http/depreciation/depreciation.service.d.ts +2 -11
- package/lib/services/http/document/document-folder/document-folder.service.d.ts +0 -6
- package/lib/services/http/firm/client-income/client-income-types.service.d.ts +18 -0
- package/lib/services/http/firm/client-movement/client-movement.service.d.ts +2 -7
- package/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.d.ts +2 -7
- package/lib/services/http/income-source/income-source.service.d.ts +0 -6
- package/lib/services/http/income-source/salary-forecast/salary-forecast.service.d.ts +1 -7
- package/lib/services/http/income-source/sole-forecast/sole-forecast.service.d.ts +2 -7
- package/lib/services/http/loan/loan.service.d.ts +2 -7
- package/lib/services/http/property/property-document/property-document.service.d.ts +3 -8
- package/lib/services/http/property/property-share/property-share.service.d.ts +2 -7
- package/lib/services/http/property/property.service.d.ts +2 -7
- package/lib/services/http/rest/rest.service.d.ts +17 -2
- package/lib/services/http/service-notification/service-notification.service.d.ts +4 -7
- package/lib/services/http/subscription/subscription.service.d.ts +0 -1
- package/lib/services/http/tax-review/tax-review-history/tax-review-history.service.d.ts +7 -7
- package/lib/services/http/tax-review/tax-review.service.d.ts +1 -7
- package/lib/services/http/tax-summary/tax-summary.service.d.ts +2 -1
- package/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.d.ts +3 -8
- package/lib/services/http/transaction/transaction.service.d.ts +4 -12
- package/lib/services/http/user/user-event-setting/user-event-setting.service.d.ts +0 -6
- package/lib/services/http/user/user-event-type/user-event-type.service.d.ts +0 -6
- package/lib/services/http/vehicle/messages.enum.d.ts +11 -0
- package/lib/services/http/vehicle/vehicle-claim.service.d.ts +13 -0
- package/lib/services/http/vehicle/vehicle-logbook.service.d.ts +22 -0
- package/lib/services/http/vehicle/vehicle.service.d.ts +17 -80
- package/lib/services/pdf/pdf.service.d.ts +16 -2
- package/lib/services/property/property-holding-costs/property-holding-costs.service.d.ts +24 -0
- package/lib/validators/at-least-one.validator.d.ts +6 -0
- package/lib/validators/index.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +15 -1
- package/esm2015/lib/collections/logbook.collection.js +0 -97
- package/lib/collections/logbook.collection.d.ts +0 -19
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Collection } from './collection';
|
|
2
|
+
export class AccountSetupItemCollection extends Collection {
|
|
3
|
+
constructor(items) {
|
|
4
|
+
super(items);
|
|
5
|
+
this.sortBy('isCompleted', false);
|
|
6
|
+
}
|
|
7
|
+
isCompleted() {
|
|
8
|
+
return this.getBy('isCompleted', true).length === this.length;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZXR1cC1pdGVtLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvYWNjb3VudC1zZXR1cC1pdGVtLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxQyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsVUFBNEI7SUFDMUUsWUFBWSxLQUF5QjtRQUNuQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDaEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjb3VudFNldHVwSXRlbSB9IGZyb20gJy4uL21vZGVscy9hY2NvdW50LXNldHVwL2FjY291bnQtc2V0dXAtaXRlbSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxBY2NvdW50U2V0dXBJdGVtPiB7XG4gIGNvbnN0cnVjdG9yKGl0ZW1zOiBBY2NvdW50U2V0dXBJdGVtW10pIHtcbiAgICBzdXBlcihpdGVtcyk7XG4gICAgdGhpcy5zb3J0QnkoJ2lzQ29tcGxldGVkJywgZmFsc2UpXG4gIH1cblxuICBpc0NvbXBsZXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRCeSgnaXNDb21wbGV0ZWQnLCB0cnVlKS5sZW5ndGggPT09IHRoaXMubGVuZ3RoO1xuICB9XG59XG4iXX0=
|
|
@@ -82,7 +82,7 @@ export class BankTransactionCollection extends Collection {
|
|
|
82
82
|
*/
|
|
83
83
|
groupByTransaction(allocations) {
|
|
84
84
|
// Group allocations by transaction id
|
|
85
|
-
const allocationsByTransactions = new CollectionDictionary(allocations, 'transaction');
|
|
85
|
+
const allocationsByTransactions = new CollectionDictionary(allocations, 'transaction.id');
|
|
86
86
|
// Init an empty dictionary we will fill below
|
|
87
87
|
const bankTransactionsByTransactions = new CollectionDictionary(new BankTransactionCollection([]));
|
|
88
88
|
// Fill dictionary with the same keys as at allocationsByTransactions
|
|
@@ -116,4 +116,4 @@ export class BankTransactionCollection extends Collection {
|
|
|
116
116
|
return new BankTransactionCollection(this.items.filter((bankTransaction) => !bankTransaction.isAllocated(allocations)));
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay10cmFuc2FjdGlvbi5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2JhbmstdHJhbnNhY3Rpb24uY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUtsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRy9EOztHQUVHO0FBQ0gsTUFBTSwwQkFBMEIsR0FBVyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUU1RDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxVQUEyQjtJQUN4RSxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLFdBQTRDO1FBQy9ELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxXQUFXLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRDs7T0FFRztJQUNILHNCQUFzQjtRQUNwQixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWdDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxrQkFBa0I7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Tyw4QkFBOEIsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxXQUE0QztRQUMzRCxPQUFPLElBQUkseUJBQXlCLENBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZ0MsRUFBVyxFQUFFLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQ2xILENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQ0FBbUMsQ0FBQyxtQkFBbUM7UUFDckUsd0dBQXdHO1FBQ3hHLE1BQU0sYUFBYSxHQUFhLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQTBCLEVBQVUsRUFBRSxXQUFDLE9BQUEsQ0FBQSxNQUFBLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLDBDQUFFLE1BQU0sS0FBSSxDQUFDLENBQUEsRUFBQSxDQUFDLENBQUM7UUFFOUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFnQyxFQUFRLEVBQUU7WUFDNUQsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDbEQsZUFBZSxDQUFDLFNBQVMsR0FBRyx3QkFBd0IsQ0FBQyxRQUFRLENBQUM7YUFDL0Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILDhCQUE4QixDQUFDLFdBQTRDO1FBQ3pFLE9BQU8sSUFBSSx5QkFBeUIsQ0FDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFnQyxFQUFXLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FDNUcsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSB9IGZyb20gJy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLW9wZXJhdGlvbi5lbnVtJztcbmltcG9ydCB7IEJhbmtUcmFuc2FjdGlvbiB9IGZyb20gJy4uL21vZGVscy9iYW5rL2JhbmstdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgTW9udGhOdW1iZXJFbnVtIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbmFuY2lhbC15ZWFyL21vbnRoLW51bWJlci5lbnVtJztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4uL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHsgQmFua0FjY291bnQgfSBmcm9tICcuLi9tb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uRGljdGlvbmFyeSB9IGZyb20gJy4vY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uY29sbGVjdGlvbic7XG5cbi8qKlxuICogTWF4aW1hbCBkZWxheSBiZXR3ZWVuIHRyYW5zZmVyIHRyYW5zYWN0aW9uc1xuICovXG5jb25zdCBUUkFOU0FDVElPTl9UUkFOU0ZFUl9ERUxBWTogbnVtYmVyID0gOTYgKiAzNjAwICogMTAwMDtcblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGJhbmsgdHJhbnNhY3Rpb25zLlxuICogSU1QT1JUQU5UOiBDcmVhdGUgdGhpcyBjb2xsZWN0aW9uIGJhc2VkIG9uIGJhbmsgdHJhbnNhY3Rpb25zIGZyb20gVHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZVxuICogQFRPRE8gZmluZCB3YXkgdG8gYWNjZXB0IGludGVyZmFjZSB3aXRoIGFsbG9jYXRpb24gaW5zdGVhZCBvZiBiYW5rVHJhbnNhY3Rpb24gdG8gcHJldmVudCB3cm9uZyB1c2FnZVxuICogYmVjYXVzZSBhbGwgYW1vdW50cyBjYWxjdWxhdGVzIHdpdGggYWxsb2NhdGVkIGFtb3VudHMgYnV0IG5vdCBmcm9tIGJhbmsgdHJhbnNhY3Rpb25zIGFtb3VudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxCYW5rVHJhbnNhY3Rpb24+IHtcbiAgZ2V0QW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2Ftb3VudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpZmZlcmVuY2UgYmV0d2VlbiB0b3RhbCBiYW5rIHRyYW5zYWN0aW9ucyBhbW91bnQgYW5kIHN1bSBvZiBhbGxvY2F0aW9ucyBmb3IgcGFzc2VkIGJhbmsgdHJhbnNhY3Rpb25zXG4gICAqL1xuICBnZXRVbmFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbikge1xuICAgIHJldHVybiArKHRoaXMuZ2V0QW1vdW50KCkgLSBhbGxvY2F0aW9ucy5nZXRCeUJhbmtUcmFuc2FjdGlvbnNJZHModGhpcy5nZXRJZHMoKSkuYW1vdW50KS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBkYXRlIG9mIHRoZSBsYXN0IHRyYW5zYWN0aW9uXG4gICAqL1xuICBnZXRMYXN0VHJhbnNhY3Rpb25EYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShNYXRoLm1heC5hcHBseShNYXRoLCB0aGlzLml0ZW1zLm1hcCgoYmFua1RyYW5zYWN0aW9uOiBCYW5rVHJhbnNhY3Rpb24pID0+IGJhbmtUcmFuc2FjdGlvbi5kYXRlKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIGNyZWRpdCB0cmFuc2FjdGlvbnNcbiAgICovXG4gIGdldCBjcmVkaXRUcmFuc2FjdGlvbnMoKTogQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKSA9PiBiYW5rVHJhbnNhY3Rpb24uaXNDcmVkaXQoKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIGRlYml0IHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0IGRlYml0VHJhbnNhY3Rpb25zKCk6IEJhbmtUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbikgPT4gYmFua1RyYW5zYWN0aW9uLmlzRGViaXQoKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBkaWZmZXJlbmNlIGJldHdlZW4gZGViaXQgYW5kIGNyZWRpdCB0cmFuc2FjdGlvbnMgYW1vdW50c1xuICAgKi9cbiAgZ2V0IGJhbGFuY2VBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbikgPT4gc3VtICsgYmFua1RyYW5zYWN0aW9uLmJhbGFuY2VBbW91bnQsIDApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIHRyYW5zYWN0aW9ucyBmb3IgcGFzc2VkIG1vbnRoXG4gICAqIEBwYXJhbSBtb250aEluZGV4IE1vbnRoIG51bWJlciBmcm9tIDAgdG8gMTFcbiAgICovXG4gIGdldFRyYW5zYWN0aW9uc0J5TW9udGgobW9udGhJbmRleDogTW9udGhOdW1iZXJFbnVtKTogQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKSA9PiBiYW5rVHJhbnNhY3Rpb24uZGF0ZS5nZXRNb250aCgpID09PSBtb250aEluZGV4KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGJ5IHByb3ZpZGVkIGJhbmsgYWNjb3VudHNcbiAgICogQHBhcmFtIGJhbmtBY2NvdW50cyBieSB3aGljaCB0cmFuc2FjdGlvbnMgc2hvdWxkIGJlIHJldHVybmVkXG4gICAqL1xuICBnZXRCeUJhbmtBY2NvdW50cyhiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pOiBCYW5rVHJhbnNhY3Rpb25bXSB7XG4gICAgY29uc3QgYmFua0FjY291bnRJZHM6IG51bWJlcltdID0gYmFua0FjY291bnRzLm1hcCgoYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiBiYW5rQWNjb3VudC5pZCk7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKChiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbikgPT4gYmFua0FjY291bnRJZHMuaW5jbHVkZXMoYmFua1RyYW5zYWN0aW9uLmJhbmtBY2NvdW50LmlkKSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGJ5IHByb3ZpZGVkIGlkcyBvZiBiYW5rIGFjY291bnRzXG4gICAqIEBwYXJhbSBpZHMgb2YgYmFuayBhY2NvdW50c1xuICAgKi9cbiAgZ2V0QnlCYW5rQWNjb3VudHNJZHMoaWRzOiBudW1iZXJbXSk6IEJhbmtUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbikgPT4gaWRzLmluY2x1ZGVzKGJhbmtUcmFuc2FjdGlvbi5iYW5rQWNjb3VudC5pZCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIEJhbmsgVHJhbnNhY3Rpb24gYXZhaWxhYmxlIGZvciB0cmFuc2ZlclxuICAgKi9cbiAgZmluZFRyYW5zZmVyKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKTogQmFua1RyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKChpdGVtOiBCYW5rVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBpdGVtLmFtb3VudCArIGJhbmtUcmFuc2FjdGlvbi5hbW91bnQgPT09IDAgJiZcbiAgICAgICAgTWF0aC5hYnMoYmFua1RyYW5zYWN0aW9uLmRhdGUuZ2V0VGltZSgpIC0gaXRlbS5kYXRlLmdldFRpbWUoKSkgPCBUUkFOU0FDVElPTl9UUkFOU0ZFUl9ERUxBWTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcm91cCBiYW5rIHRyYW5zYWN0aW9ucyBieSB0cmFuc2FjdGlvbiBpZC5cbiAgICogRWFjaCBncm91cCBpcyBiYW5rIHRyYW5zYWN0aW9uIGNvbGxlY3Rpb24gYW5kIGNvbnRhaW5zIGJhbmsgdHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gdHJhbnNhY3Rpb25zIHZpYSBhbGxvY2F0aW9uc1xuICAgKi9cbiAgZ3JvdXBCeVRyYW5zYWN0aW9uKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8QmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbj4ge1xuICAgIC8vIEdyb3VwIGFsbG9jYXRpb25zIGJ5IHRyYW5zYWN0aW9uIGlkXG4gICAgY29uc3QgYWxsb2NhdGlvbnNCeVRyYW5zYWN0aW9ucyA9IG5ldyBDb2xsZWN0aW9uRGljdGlvbmFyeShhbGxvY2F0aW9ucywgJ3RyYW5zYWN0aW9uJyk7XG4gICAgLy8gSW5pdCBhbiBlbXB0eSBkaWN0aW9uYXJ5IHdlIHdpbGwgZmlsbCBiZWxvd1xuICAgIGNvbnN0IGJhbmtUcmFuc2FjdGlvbnNCeVRyYW5zYWN0aW9uczogQ29sbGVjdGlvbkRpY3Rpb25hcnk8QmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbj4gPSBuZXcgQ29sbGVjdGlvbkRpY3Rpb25hcnkobmV3IEJhbmtUcmFuc2FjdGlvbkNvbGxlY3Rpb24oW10pKTtcblxuICAgIC8vIEZpbGwgZGljdGlvbmFyeSB3aXRoIHRoZSBzYW1lIGtleXMgYXMgYXQgYWxsb2NhdGlvbnNCeVRyYW5zYWN0aW9uc1xuICAgIGFsbG9jYXRpb25zQnlUcmFuc2FjdGlvbnMua2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgYmFua1RyYW5zYWN0aW9uc0J5VHJhbnNhY3Rpb25zLmFkZChrZXksIHRoaXMuZ2V0QnlBbGxvY2F0aW9ucyhhbGxvY2F0aW9uc0J5VHJhbnNhY3Rpb25zLmdldChrZXkpKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFua1RyYW5zYWN0aW9uc0J5VHJhbnNhY3Rpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIGJhbmsgdHJhbnNhY3Rpb25zIHJlbGF0ZWQgd2l0aCBwYXNzZWQgYWxsb2NhdGlvbnNcbiAgICovXG4gIGdldEJ5QWxsb2NhdGlvbnMoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IEJhbmtUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoYmFua1RyYW5zYWN0aW9uOiBCYW5rVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IGFsbG9jYXRpb25zLmhhc0JhbmtUcmFuc2FjdGlvbihiYW5rVHJhbnNhY3Rpb24pKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGFsbG9jYXRlIG9wZXJhdGlvbiBmb3IgYmFuayB0cmFuc2FjdGlvbnMgd2l0aCBhbW91bnRzIGVxdWFsIHRvIHNhbGFyeVxuICAgKi9cbiAgcHJlc2VsZWN0QWxsb2NhdGVPcGVyYXRpb25Gb3JTYWxhcnkoc2FsYXJ5SW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pOiB2b2lkIHtcbiAgICAvLyBpbmNvbWVTb3VyY2Uuc2FsYXJ5Rm9yZWNhc3RzWzBdIGJlY2F1c2UgZWFjaCBpbmNvbWUgc291cmNlIGhhcyBvbmx5IG9uZSBmb3JlY2FzdCBmb3IgY3VycmVudCBmaW4geWVhclxuICAgIGNvbnN0IHNhbGFyeUFtb3VudHM6IG51bWJlcltdID0gc2FsYXJ5SW5jb21lU291cmNlcy5tYXAoKGluY29tZVNvdXJjZTogSW5jb21lU291cmNlKTogbnVtYmVyID0+IGluY29tZVNvdXJjZS5zYWxhcnlGb3JlY2FzdHNbMF0/Lm5ldFBheSB8fCAwKTtcblxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoYmFua1RyYW5zYWN0aW9uOiBCYW5rVHJhbnNhY3Rpb24pOiB2b2lkID0+IHtcbiAgICAgIGlmIChzYWxhcnlBbW91bnRzLmluY2x1ZGVzKGJhbmtUcmFuc2FjdGlvbi5hbW91bnQpKSB7XG4gICAgICAgIGJhbmtUcmFuc2FjdGlvbi5vcGVyYXRpb24gPSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uQUxMT0NBVEU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbGxlY3Rpb24gb2YgdW5hbGxvY2F0ZWQgYmFua1RyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0VW5hbGxvY2F0ZWRCYW5rVHJhbnNhY3Rpb25zKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiAhYmFua1RyYW5zYWN0aW9uLmlzQWxsb2NhdGVkKGFsbG9jYXRpb25zKSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay10cmFuc2FjdGlvbi5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2JhbmstdHJhbnNhY3Rpb24uY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUtsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRy9EOztHQUVHO0FBQ0gsTUFBTSwwQkFBMEIsR0FBVyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUU1RDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxVQUEyQjtJQUN4RSxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLFdBQTRDO1FBQy9ELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxXQUFXLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRDs7T0FFRztJQUNILHNCQUFzQjtRQUNwQixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWdDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxrQkFBa0I7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QUFPLDhCQUE4QixDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLFdBQTRDO1FBQzNELE9BQU8sSUFBSSx5QkFBeUIsQ0FDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFnQyxFQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FDbEgsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILG1DQUFtQyxDQUFDLG1CQUFtQztRQUNyRSx3R0FBd0c7UUFDeEcsTUFBTSxhQUFhLEdBQWEsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBMEIsRUFBVSxFQUFFLFdBQUMsT0FBQSxDQUFBLE1BQUEsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsMENBQUUsTUFBTSxLQUFJLENBQUMsQ0FBQSxFQUFBLENBQUMsQ0FBQztRQUU5SSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQWdDLEVBQVEsRUFBRTtZQUM1RCxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNsRCxlQUFlLENBQUMsU0FBUyxHQUFHLHdCQUF3QixDQUFDLFFBQVEsQ0FBQzthQUMvRDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsOEJBQThCLENBQUMsV0FBNEM7UUFDekUsT0FBTyxJQUFJLHlCQUF5QixDQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWdDLEVBQVcsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUM1RyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgQmFua1RyYW5zYWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2JhbmsvYmFuay10cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBNb250aE51bWJlckVudW0gfSBmcm9tICcuLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvbW9udGgtbnVtYmVyLmVudW0nO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIH0gZnJvbSAnLi4vbW9kZWxzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uL21vZGVscy9iYW5rL2JhbmstYWNjb3VudCc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IENvbGxlY3Rpb25EaWN0aW9uYXJ5IH0gZnJvbSAnLi9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbi5jb2xsZWN0aW9uJztcblxuLyoqXG4gKiBNYXhpbWFsIGRlbGF5IGJldHdlZW4gdHJhbnNmZXIgdHJhbnNhY3Rpb25zXG4gKi9cbmNvbnN0IFRSQU5TQUNUSU9OX1RSQU5TRkVSX0RFTEFZOiBudW1iZXIgPSA5NiAqIDM2MDAgKiAxMDAwO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgYmFuayB0cmFuc2FjdGlvbnMuXG4gKiBJTVBPUlRBTlQ6IENyZWF0ZSB0aGlzIGNvbGxlY3Rpb24gYmFzZWQgb24gYmFuayB0cmFuc2FjdGlvbnMgZnJvbSBUcmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlXG4gKiBAVE9ETyBmaW5kIHdheSB0byBhY2NlcHQgaW50ZXJmYWNlIHdpdGggYWxsb2NhdGlvbiBpbnN0ZWFkIG9mIGJhbmtUcmFuc2FjdGlvbiB0byBwcmV2ZW50IHdyb25nIHVzYWdlXG4gKiBiZWNhdXNlIGFsbCBhbW91bnRzIGNhbGN1bGF0ZXMgd2l0aCBhbGxvY2F0ZWQgYW1vdW50cyBidXQgbm90IGZyb20gYmFuayB0cmFuc2FjdGlvbnMgYW1vdW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhbmtUcmFuc2FjdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPEJhbmtUcmFuc2FjdGlvbj4ge1xuICBnZXRBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnYW1vdW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogRGlmZmVyZW5jZSBiZXR3ZWVuIHRvdGFsIGJhbmsgdHJhbnNhY3Rpb25zIGFtb3VudCBhbmQgc3VtIG9mIGFsbG9jYXRpb25zIGZvciBwYXNzZWQgYmFuayB0cmFuc2FjdGlvbnNcbiAgICovXG4gIGdldFVuYWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKSB7XG4gICAgcmV0dXJuICsodGhpcy5nZXRBbW91bnQoKSAtIGFsbG9jYXRpb25zLmdldEJ5QmFua1RyYW5zYWN0aW9uc0lkcyh0aGlzLmdldElkcygpKS5hbW91bnQpLnRvRml4ZWQoMik7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGRhdGUgb2YgdGhlIGxhc3QgdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldExhc3RUcmFuc2FjdGlvbkRhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKE1hdGgubWF4LmFwcGx5KE1hdGgsIHRoaXMuaXRlbXMubWFwKChiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbikgPT4gYmFua1RyYW5zYWN0aW9uLmRhdGUpKSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgY3JlZGl0IHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0IGNyZWRpdFRyYW5zYWN0aW9ucygpOiBCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IEJhbmtUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoYmFua1RyYW5zYWN0aW9uOiBCYW5rVHJhbnNhY3Rpb24pID0+IGJhbmtUcmFuc2FjdGlvbi5pc0NyZWRpdCgpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgZGViaXQgdHJhbnNhY3Rpb25zXG4gICAqL1xuICBnZXQgZGViaXRUcmFuc2FjdGlvbnMoKTogQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKSA9PiBiYW5rVHJhbnNhY3Rpb24uaXNEZWJpdCgpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGRpZmZlcmVuY2UgYmV0d2VlbiBkZWJpdCBhbmQgY3JlZGl0IHRyYW5zYWN0aW9ucyBhbW91bnRzXG4gICAqL1xuICBnZXQgYmFsYW5jZUFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKSA9PiBzdW0gKyBiYW5rVHJhbnNhY3Rpb24uYmFsYW5jZUFtb3VudCwgMCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGZvciBwYXNzZWQgbW9udGhcbiAgICogQHBhcmFtIG1vbnRoSW5kZXggTW9udGggbnVtYmVyIGZyb20gMCB0byAxMVxuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25zQnlNb250aChtb250aEluZGV4OiBNb250aE51bWJlckVudW0pOiBCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IEJhbmtUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoYmFua1RyYW5zYWN0aW9uOiBCYW5rVHJhbnNhY3Rpb24pID0+IGJhbmtUcmFuc2FjdGlvbi5kYXRlLmdldE1vbnRoKCkgPT09IG1vbnRoSW5kZXgpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiB0cmFuc2FjdGlvbnMgYnkgcHJvdmlkZWQgYmFuayBhY2NvdW50c1xuICAgKiBAcGFyYW0gYmFua0FjY291bnRzIGJ5IHdoaWNoIHRyYW5zYWN0aW9ucyBzaG91bGQgYmUgcmV0dXJuZWRcbiAgICovXG4gIGdldEJ5QmFua0FjY291bnRzKGJhbmtBY2NvdW50czogQmFua0FjY291bnRbXSk6IEJhbmtUcmFuc2FjdGlvbltdIHtcbiAgICBjb25zdCBiYW5rQWNjb3VudElkczogbnVtYmVyW10gPSBiYW5rQWNjb3VudHMubWFwKChiYW5rQWNjb3VudDogQmFua0FjY291bnQpID0+IGJhbmtBY2NvdW50LmlkKTtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKSA9PiBiYW5rQWNjb3VudElkcy5pbmNsdWRlcyhiYW5rVHJhbnNhY3Rpb24uYmFua0FjY291bnQuaWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiB0cmFuc2FjdGlvbnMgYnkgcHJvdmlkZWQgaWRzIG9mIGJhbmsgYWNjb3VudHNcbiAgICogQHBhcmFtIGlkcyBvZiBiYW5rIGFjY291bnRzXG4gICAqL1xuICBnZXRCeUJhbmtBY2NvdW50c0lkcyhpZHM6IG51bWJlcltdKTogQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKSA9PiBpZHMuaW5jbHVkZXMoYmFua1RyYW5zYWN0aW9uLmJhbmtBY2NvdW50LmlkKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgQmFuayBUcmFuc2FjdGlvbiBhdmFpbGFibGUgZm9yIHRyYW5zZmVyXG4gICAqL1xuICBmaW5kVHJhbnNmZXIoYmFua1RyYW5zYWN0aW9uOiBCYW5rVHJhbnNhY3Rpb24pOiBCYW5rVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IEJhbmtUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIGl0ZW0uYW1vdW50ICsgYmFua1RyYW5zYWN0aW9uLmFtb3VudCA9PT0gMCAmJlxuICAgICAgICBNYXRoLmFicyhiYW5rVHJhbnNhY3Rpb24uZGF0ZS5nZXRUaW1lKCkgLSBpdGVtLmRhdGUuZ2V0VGltZSgpKSA8IFRSQU5TQUNUSU9OX1RSQU5TRkVSX0RFTEFZO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyb3VwIGJhbmsgdHJhbnNhY3Rpb25zIGJ5IHRyYW5zYWN0aW9uIGlkLlxuICAgKiBFYWNoIGdyb3VwIGlzIGJhbmsgdHJhbnNhY3Rpb24gY29sbGVjdGlvbiBhbmQgY29udGFpbnMgYmFuayB0cmFuc2FjdGlvbnMgcmVsYXRlZCB0byB0cmFuc2FjdGlvbnMgdmlhIGFsbG9jYXRpb25zXG4gICAqL1xuICBncm91cEJ5VHJhbnNhY3Rpb24oYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uPiB7XG4gICAgLy8gR3JvdXAgYWxsb2NhdGlvbnMgYnkgdHJhbnNhY3Rpb24gaWRcbiAgICBjb25zdCBhbGxvY2F0aW9uc0J5VHJhbnNhY3Rpb25zID0gbmV3IENvbGxlY3Rpb25EaWN0aW9uYXJ5KGFsbG9jYXRpb25zLCAndHJhbnNhY3Rpb24uaWQnKTtcbiAgICAvLyBJbml0IGFuIGVtcHR5IGRpY3Rpb25hcnkgd2Ugd2lsbCBmaWxsIGJlbG93XG4gICAgY29uc3QgYmFua1RyYW5zYWN0aW9uc0J5VHJhbnNhY3Rpb25zOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uPiA9IG5ldyBDb2xsZWN0aW9uRGljdGlvbmFyeShuZXcgQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbihbXSkpO1xuXG4gICAgLy8gRmlsbCBkaWN0aW9uYXJ5IHdpdGggdGhlIHNhbWUga2V5cyBhcyBhdCBhbGxvY2F0aW9uc0J5VHJhbnNhY3Rpb25zXG4gICAgYWxsb2NhdGlvbnNCeVRyYW5zYWN0aW9ucy5rZXlzLmZvckVhY2goKGtleTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICBiYW5rVHJhbnNhY3Rpb25zQnlUcmFuc2FjdGlvbnMuYWRkKGtleSwgdGhpcy5nZXRCeUFsbG9jYXRpb25zKGFsbG9jYXRpb25zQnlUcmFuc2FjdGlvbnMuZ2V0KGtleSkpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBiYW5rVHJhbnNhY3Rpb25zQnlUcmFuc2FjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbGxlY3Rpb24gb2YgYmFuayB0cmFuc2FjdGlvbnMgcmVsYXRlZCB3aXRoIHBhc3NlZCBhbGxvY2F0aW9uc1xuICAgKi9cbiAgZ2V0QnlBbGxvY2F0aW9ucyhhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IEJhbmtUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gYWxsb2NhdGlvbnMuaGFzQmFua1RyYW5zYWN0aW9uKGJhbmtUcmFuc2FjdGlvbikpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYWxsb2NhdGUgb3BlcmF0aW9uIGZvciBiYW5rIHRyYW5zYWN0aW9ucyB3aXRoIGFtb3VudHMgZXF1YWwgdG8gc2FsYXJ5XG4gICAqL1xuICBwcmVzZWxlY3RBbGxvY2F0ZU9wZXJhdGlvbkZvclNhbGFyeShzYWxhcnlJbmNvbWVTb3VyY2VzOiBJbmNvbWVTb3VyY2VbXSk6IHZvaWQge1xuICAgIC8vIGluY29tZVNvdXJjZS5zYWxhcnlGb3JlY2FzdHNbMF0gYmVjYXVzZSBlYWNoIGluY29tZSBzb3VyY2UgaGFzIG9ubHkgb25lIGZvcmVjYXN0IGZvciBjdXJyZW50IGZpbiB5ZWFyXG4gICAgY29uc3Qgc2FsYXJ5QW1vdW50czogbnVtYmVyW10gPSBzYWxhcnlJbmNvbWVTb3VyY2VzLm1hcCgoaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2UpOiBudW1iZXIgPT4gaW5jb21lU291cmNlLnNhbGFyeUZvcmVjYXN0c1swXT8ubmV0UGF5IHx8IDApO1xuXG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKChiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbik6IHZvaWQgPT4ge1xuICAgICAgaWYgKHNhbGFyeUFtb3VudHMuaW5jbHVkZXMoYmFua1RyYW5zYWN0aW9uLmFtb3VudCkpIHtcbiAgICAgICAgYmFua1RyYW5zYWN0aW9uLm9wZXJhdGlvbiA9IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5BTExPQ0FURTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sbGVjdGlvbiBvZiB1bmFsbG9jYXRlZCBiYW5rVHJhbnNhY3Rpb25zXG4gICAqL1xuICBnZXRVbmFsbG9jYXRlZEJhbmtUcmFuc2FjdGlvbnMoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IEJhbmtUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoYmFua1RyYW5zYWN0aW9uOiBCYW5rVHJhbnNhY3Rpb24pOiBib29sZWFuID0+ICFiYW5rVHJhbnNhY3Rpb24uaXNBbGxvY2F0ZWQoYWxsb2NhdGlvbnMpKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import has from 'lodash/has';
|
|
2
1
|
import get from 'lodash/get';
|
|
3
2
|
import flatten from 'lodash/flatten';
|
|
3
|
+
import hasIn from 'lodash/hasIn';
|
|
4
4
|
/**
|
|
5
5
|
* List of collections grouped by passed property
|
|
6
6
|
*/
|
|
@@ -20,8 +20,8 @@ export class CollectionDictionary {
|
|
|
20
20
|
if (!collection.length) {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
|
-
//
|
|
24
|
-
if (!
|
|
23
|
+
// Do nothing if provided path was not found in the 1st collection's item
|
|
24
|
+
if (!hasIn(collection.items[0], path.split('.')[0])) {
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
this.groupItems(collection, path);
|
|
@@ -83,4 +83,4 @@ export class CollectionDictionary {
|
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24tZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBR2pDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQjs7OztPQUlHO0lBQ0gsWUFDRSxVQUFzQixFQUN0QixPQUFlLElBQUk7UUFqQnJCOztXQUVHO1FBQ0gsVUFBSyxHQUFrQyxFQUFFLENBQUM7UUFnQnhDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMsV0FBa0QsQ0FBQztRQUUzRiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBRUQseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsR0FBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLEdBQW9CLEVBQUUsS0FBaUI7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQWM7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQzFCLE9BQU8sQ0FDTCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBVSxFQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUNsRSxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxRQUFrQixFQUFFO1FBQ25DLE9BQU8sSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNLLFVBQVUsQ0FBQyxVQUFzQixFQUFFLElBQVk7UUFDckQseUNBQXlDO1FBQ3pDLE1BQU0sR0FBRyxHQUFxQyxFQUFFLENBQUM7UUFFakQseUJBQXlCO1FBQ3pCLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFRLEVBQUU7WUFDOUMsSUFBSSxHQUFHLEdBQVcsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVsQyw4RUFBOEU7WUFDOUUsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO2dCQUNyQixHQUFHLEdBQUcsT0FBTyxDQUFDO2FBQ2Y7WUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDZjtZQUVELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxpQ0FBaUM7UUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQVEsRUFBRTtZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgZmxhdHRlbiBmcm9tICdsb2Rhc2gvZmxhdHRlbic7XG5pbXBvcnQgaGFzSW4gZnJvbSAnbG9kYXNoL2hhc0luJztcbmltcG9ydCB7IENvbGxlY3Rpb24gYXMgQmFzZUNvbGxlY3Rpb24gfSBmcm9tICcuL2NvbGxlY3Rpb24nO1xuXG4vKipcbiAqIExpc3Qgb2YgY29sbGVjdGlvbnMgZ3JvdXBlZCBieSBwYXNzZWQgcHJvcGVydHlcbiAqL1xuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25EaWN0aW9uYXJ5PENvbGxlY3Rpb24gZXh0ZW5kcyBCYXNlQ29sbGVjdGlvbjxvYmplY3Q+PiB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGdyb3VwZWQgY29sbGVjdGlvbnNcbiAgICovXG4gIGl0ZW1zOiB7IFtrZXk6IHN0cmluZ106IENvbGxlY3Rpb24gfSA9IHt9O1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBvZiBwYXNzZWQgY29sbGVjdGlvbiBmb3IgY3JlYXRpbmcgbmV3IGluc3RhbmNlc1xuICAgKi9cbiAgcHJpdmF0ZSBjb2xsZWN0aW9uQ29uc3RydWN0b3I6IG5ldyAoaXRlbXM6IG9iamVjdFtdKSA9PiBDb2xsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gY29sbGVjdGlvbiBUaGUgQ29sbGVjdGlvbiBpbnN0YW5jZSB0byBiZSBncm91cGVkXG4gICAqIEBwYXJhbSBwYXRoIFBhdGggdG8gdGhlIHByb3BlcnR5IHRvIGJlIGdyb3VwZWQgKEV4YW1wbGVzOiAndHJhbnNhY3Rpb24nLCAncHJvcGVydHkuY2F0ZWdvcnknKVxuICAgKiBAcGFyYW0gcHJvcCBPcHRpb25hbDogRmllbGQgdG8gZ3JvdXAgYnkgKERlZmF1bHQgJ2lkJywgRXhhbXBsZXM6ICdpZCcsICdhbW91bnQnLCAnZGF0ZScpXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uLFxuICAgIHBhdGg6IHN0cmluZyA9ICdpZCdcbiAgKSB7XG4gICAgdGhpcy5jb2xsZWN0aW9uQ29uc3RydWN0b3IgPSBjb2xsZWN0aW9uLmNvbnN0cnVjdG9yIGFzIG5ldyAoaXRlbXM6IG9iamVjdFtdKSA9PiBDb2xsZWN0aW9uO1xuXG4gICAgLy8gTm90aGluZyB0byBncm91cCB3aGVuIGNvbGxlY3Rpb24gaXMgZW1wdHlcbiAgICBpZiAoIWNvbGxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRG8gbm90aGluZyBpZiBwcm92aWRlZCBwYXRoIHdhcyBub3QgZm91bmQgaW4gdGhlIDFzdCBjb2xsZWN0aW9uJ3MgaXRlbVxuICAgIGlmICghaGFzSW4oY29sbGVjdGlvbi5pdGVtc1swXSwgcGF0aC5zcGxpdCgnLicpWzBdKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBJdGVtcyhjb2xsZWN0aW9uLCBwYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbGxlY3Rpb25zIGtleXNcbiAgICovXG4gIGdldCBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5pdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbGxlY3Rpb24gYnkga2V5IG9yIHJldHVybiBlbXB0eSBjb2xsZWN0aW9uIGlmIGtleSBkb2VzIG5vdCBleGlzdFxuICAgKi9cbiAgZ2V0KGtleTogc3RyaW5nIHwgbnVtYmVyKTogQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNba2V5XSA/IHRoaXMuaXRlbXNba2V5XSA6IHRoaXMuY3JlYXRlQ29sbGVjdGlvbihbXSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG5ldyBpdGVtIGJ5IGtleVxuICAgKi9cbiAgYWRkKGtleTogc3RyaW5nIHwgbnVtYmVyLCB2YWx1ZTogQ29sbGVjdGlvbikge1xuICAgIHRoaXMuaXRlbXNba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEpvaW4gc2V2ZXJhbCBjb2xsZWN0aW9ucyBieSBpZHNcbiAgICovXG4gIG1lcmdlKGtleXM6IG51bWJlcltdKTogQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29sbGVjdGlvbihcbiAgICAgIGZsYXR0ZW4oXG4gICAgICAgIGtleXMubWFwKChpZDogbnVtYmVyKTogb2JqZWN0W10gPT4gdGhpcy5nZXQoaWQudG9TdHJpbmcoKSkuaXRlbXMpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgaW5zdGFuY2Ugb2YgY29sbGVjdGlvblxuICAgKi9cbiAgY3JlYXRlQ29sbGVjdGlvbihpdGVtczogb2JqZWN0W10gPSBbXSk6IENvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgdGhpcy5jb2xsZWN0aW9uQ29uc3RydWN0b3IoaXRlbXMpO1xuICB9XG5cbiAgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMua2V5cy5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogR3JvdXAgY29sbGVjdGlvbiBpdGVtcyBieSBwYXNzZWQgcGF0aCBpbnRvIGl0ZW1zIG9iamVjdFxuICAgKi9cbiAgcHJpdmF0ZSBncm91cEl0ZW1zKGNvbGxlY3Rpb246IENvbGxlY3Rpb24sIHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSBlbXB0eSBpbml0aWFsIG9iamVjdCBmb3IgZ3JvdXBzXG4gICAgY29uc3Qgb2JqOiB7IFtrZXk6IHN0cmluZ106IEFycmF5PG9iamVjdD4gfSA9IHt9O1xuXG4gICAgLy8gR3JvdXAgY29sbGVjdGlvbiBpdGVtc1xuICAgIGNvbGxlY3Rpb24uaXRlbXMuZm9yRWFjaCgoaXRlbTogb2JqZWN0KTogdm9pZCA9PiB7XG4gICAgICBsZXQga2V5OiBzdHJpbmcgPSBnZXQoaXRlbSwgcGF0aCk7XG5cbiAgICAgIC8vIGlmIG9iamVjdCBkb2VzIG5vdCBoYXZlIHByb3BlcnR5IGZvciBncm91cGluZyBpdCB3aWxsIGJlIGdyb3VwZWQgYXMgJ290aGVyJ1xuICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGtleSA9ICdvdGhlcic7XG4gICAgICB9XG5cbiAgICAgIGlmICghb2JqW2tleV0pIHtcbiAgICAgICAgb2JqW2tleV0gPSBbXTtcbiAgICAgIH1cblxuICAgICAgb2JqW2tleV0ucHVzaChpdGVtKTtcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBjb2xsZWN0aW9ucyBmcm9tIGdyb3Vwc1xuICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuaXRlbXNba2V5XSA9IHRoaXMuY3JlYXRlQ29sbGVjdGlvbihvYmpba2V5XSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFOUI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUlyQixZQUFZLFFBQWlCLEVBQUU7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFpQixFQUFFO1FBQ3hCLE9BQU8sSUFBSyxJQUFJLENBQUMsV0FBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRTtRQUN2QixPQUFPLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQix5Q0FBeUM7UUFDekMsTUFBTSxNQUFNLEdBQTZCLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJ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Q0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDOUYsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25EaWN0aW9uYXJ5IH0gZnJvbSAnLi9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xyXG5pbXBvcnQgZmlyc3QgZnJvbSAnbG9kYXNoL2ZpcnN0JztcclxuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xyXG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xyXG5pbXBvcnQgeyBzb3J0IH0gZnJvbSAnLi4vZnVuY3Rpb25zL2FycmF5JztcclxuXHJcbmNvbnN0IERFRkFVTFRfSU5ERVggPSAnb3RoZXInO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgY29sbGVjdGlvbiBjbGFzcy4gQ29udGFpbnMgY29tbW9uIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgZm9yIGFsbCBjb2xsZWN0aW9uc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb248TW9kZWwgZXh0ZW5kcyBvYmplY3Q+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=
|
|
@@ -15,7 +15,7 @@ export class TransactionAllocationCollection extends Collection {
|
|
|
15
15
|
*/
|
|
16
16
|
groupByBankAccount(bankTransactions) {
|
|
17
17
|
// Group bank transactions by bank account id
|
|
18
|
-
const bankTransactionsByBankAccount = new CollectionDictionary(bankTransactions, 'bankAccount');
|
|
18
|
+
const bankTransactionsByBankAccount = new CollectionDictionary(bankTransactions, 'bankAccount.id');
|
|
19
19
|
// Create empty dictionary of transaction allocations
|
|
20
20
|
const allocationsByBankAccount = new CollectionDictionary(new TransactionAllocationCollection([]));
|
|
21
21
|
// Fill allocations dictionary with bank transactions dictionary keys and allocations related with each bank transaction collection
|
|
@@ -37,4 +37,4 @@ export class TransactionAllocationCollection extends Collection {
|
|
|
37
37
|
return !!this.items.find((allocation) => allocation.bankTransaction.id === bankTransaction.id);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYWxsb2NhdGlvbi5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSy9ELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxVQUFpQztJQUNwRixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELG9CQUFvQixDQUFDLEdBQWE7UUFDaEMsT0FBTyxJQUFJLCtCQUErQixDQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQWlDLEVBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUMzRyxDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QixDQUFDLEdBQWE7UUFDcEMsT0FBTyxJQUFJLCtCQUErQixDQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQWlDLEVBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUMvRyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsZ0JBQTJDO1FBQzVELDZDQUE2QztRQUM3QyxNQUFNLDZCQUE2QixHQUFvRCxJQUFJLG9CQUFvQixDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDcEoscURBQXFEO1FBQ3JELE1BQU0sd0JBQXdCLEdBQTBELElBQUksb0JBQW9CLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFKLG1JQUFtSTtRQUNuSSw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFRLEVBQUU7WUFDL0Qsd0JBQXdCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sd0JBQXdCLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLFdBQXdCO1FBQ3JDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBaUMsRUFBVyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pILENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLGVBQWdDO1FBQ2pELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBaUMsRUFBVyxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pJLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25BbGxvY2F0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24nO1xuaW1wb3J0IHsgQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4vYmFuay10cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IENvbGxlY3Rpb25EaWN0aW9uYXJ5IH0gZnJvbSAnLi9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQmFua1RyYW5zYWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2JhbmsvYmFuay10cmFuc2FjdGlvbic7XG5cblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFRyYW5zYWN0aW9uQWxsb2NhdGlvbj4ge1xuICBnZXQgYW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2Ftb3VudCcpO1xuICB9XG5cbiAgZ2V0QnlUcmFuc2FjdGlvbnNJZHMoaWRzOiBudW1iZXJbXSk6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChhbGxvY2F0aW9uOiBUcmFuc2FjdGlvbkFsbG9jYXRpb24pOiBib29sZWFuID0+IGlkcy5pbmNsdWRlcyhhbGxvY2F0aW9uLnRyYW5zYWN0aW9uLmlkKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QnlCYW5rVHJhbnNhY3Rpb25zSWRzKGlkczogbnVtYmVyW10pOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoYWxsb2NhdGlvbjogVHJhbnNhY3Rpb25BbGxvY2F0aW9uKTogYm9vbGVhbiA9PiBpZHMuaW5jbHVkZXMoYWxsb2NhdGlvbi5iYW5rVHJhbnNhY3Rpb24uaWQpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR3JvdXAgYWxsb2NhdGlvbnMgYnkgYmFuayBhY2NvdW50IHZpYSBiYW5rIHRyYW5zYWN0aW9ucyBjb2xsZWN0aW9uXG4gICAqL1xuICBncm91cEJ5QmFua0FjY291bnQoYmFua1RyYW5zYWN0aW9uczogQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbik6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24+IHtcbiAgICAvLyBHcm91cCBiYW5rIHRyYW5zYWN0aW9ucyBieSBiYW5rIGFjY291bnQgaWRcbiAgICBjb25zdCBiYW5rVHJhbnNhY3Rpb25zQnlCYW5rQWNjb3VudDogQ29sbGVjdGlvbkRpY3Rpb25hcnk8QmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbj4gPSBuZXcgQ29sbGVjdGlvbkRpY3Rpb25hcnkoYmFua1RyYW5zYWN0aW9ucywgJ2JhbmtBY2NvdW50LmlkJyk7XG4gICAgLy8gQ3JlYXRlIGVtcHR5IGRpY3Rpb25hcnkgb2YgdHJhbnNhY3Rpb24gYWxsb2NhdGlvbnNcbiAgICBjb25zdCBhbGxvY2F0aW9uc0J5QmFua0FjY291bnQ6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24+ID0gbmV3IENvbGxlY3Rpb25EaWN0aW9uYXJ5KG5ldyBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKFtdKSk7XG4gICAgLy8gRmlsbCBhbGxvY2F0aW9ucyBkaWN0aW9uYXJ5IHdpdGggYmFuayB0cmFuc2FjdGlvbnMgZGljdGlvbmFyeSBrZXlzIGFuZCBhbGxvY2F0aW9ucyByZWxhdGVkIHdpdGggZWFjaCBiYW5rIHRyYW5zYWN0aW9uIGNvbGxlY3Rpb25cbiAgICBiYW5rVHJhbnNhY3Rpb25zQnlCYW5rQWNjb3VudC5rZXlzLmZvckVhY2goKGtleTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICBhbGxvY2F0aW9uc0J5QmFua0FjY291bnQuYWRkKGtleSwgdGhpcy5nZXRCeUJhbmtUcmFuc2FjdGlvbnNJZHMoYmFua1RyYW5zYWN0aW9uc0J5QmFua0FjY291bnQuZ2V0KGtleSkuZ2V0SWRzKCkpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gYWxsb2NhdGlvbnNCeUJhbmtBY2NvdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrIGlmIGNvbGxlY3Rpb24gaW5jbHVkZXMgYWxsb2NhdGlvbiBvZiBwYXNzZWQgdHJhbnNhY3Rpb25cbiAgICovXG4gIGhhc1RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoYWxsb2NhdGlvbjogVHJhbnNhY3Rpb25BbGxvY2F0aW9uKTogYm9vbGVhbiA9PiBhbGxvY2F0aW9uLnRyYW5zYWN0aW9uLmlkID09PSB0cmFuc2FjdGlvbi5pZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYmFuayB0cmFuc2FjdGlvbiBpcyByZWxhdGVkIHdpdGggY3VycmVudCBhbGxvY2F0aW9uc1xuICAgKi9cbiAgaGFzQmFua1RyYW5zYWN0aW9uKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChhbGxvY2F0aW9uOiBUcmFuc2FjdGlvbkFsbG9jYXRpb24pOiBib29sZWFuID0+IGFsbG9jYXRpb24uYmFua1RyYW5zYWN0aW9uLmlkID09PSBiYW5rVHJhbnNhY3Rpb24uaWQpO1xuICB9XG59XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFNMUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBdUI7SUFDaEU7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsV0FBd0IsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLENBQUMsV0FBNEM7UUFDL0QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILHNCQUFzQjtRQUNwQixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxXQUF3QixFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLFdBQXdCLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsNEJBQTRCLENBQUMsVUFBdUM7UUFDbEUsT0FBTyxJQUFJLHFCQUFxQixDQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQXdCLEVBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUNsSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxVQUFrQjtRQUMzQixPQUFPLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUF3QixFQUFXLEVBQUUsQ0FDdkYsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxVQUFVLENBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0IsQ0FBQyxlQUF1QjtRQUMxQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBd0IsRUFBVyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUssZUFBZSxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPLElBQUkscUJBQXFCLENBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBd0IsRUFBVyxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQ2pGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDbEQsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLElBQUkscUJBQXFCLENBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBd0IsRUFBVyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQy9HLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDbkQsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUkscUJBQXFCLENBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBd0IsRUFBVyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQ25GLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQixDQUFDLEdBQWE7UUFDOUIsT0FBTyxJQUFJLHFCQUFxQixDQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQXdCLEVBQVcsRUFBRTs7WUFDdEQsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQUEsV0FBVyxDQUFDLFFBQVEsMENBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxFQUFVO1FBQzVCLE9BQU8sSUFBSSxxQkFBcUIsQ0FDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUF3QixFQUFXLEVBQUUsV0FBQyxPQUFBLENBQUEsTUFBQSxXQUFXLENBQUMsWUFBWSwwQ0FBRSxFQUFFLE1BQUssRUFBRSxDQUFBLEVBQUEsQ0FBQyxDQUM5RixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILDBCQUEwQixDQUFDLFFBQW1DO1FBQzVELE9BQU8sSUFBSSxxQkFBcUIsQ0FDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUF3QixFQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FDMUcsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILHVCQUF1QjtRQUNyQixPQUFPLElBQUkscUJBQXFCLENBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBd0IsRUFBVyxFQUFFLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQ3ZGLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxxQkFBcUIsQ0FDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUF3QixFQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDaEYsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLHFCQUFxQixDQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQXdCLEVBQVcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUNqRixDQUFDO0lBQ0osQ0FBQztJQUVELGdCQUFnQixDQUFDLFdBQTRDO1FBQzNELE9BQU8sSUFBSSxxQkFBcUIsQ0FDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUF3QixFQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQ2xHLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcnkuZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzVHlwZUVudW0gfSBmcm9tICcuLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy10eXBlLmVudW0nO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdHJhbnNhY3Rpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFRyYW5zYWN0aW9uPiB7XG4gIC8qKlxuICAgKiBHZXQgdG90YWwgYW1vdW50IG9mIGFsbCB0cmFuc2FjdGlvbnMgaW4gdGhlIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldCBhbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3RoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiBzdW0gKyB0cmFuc2FjdGlvbi5nZXROZXRBbW91bnQoKSwgMCkudG9GaXhlZCgyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaWZmZXJlbmNlIGJldHdlZW4gYWxsb2NhdGVkIGFtb3VudCBhbmQgdG90YWwgYW1vdW50XG4gICAqL1xuICBnZXRVbmFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuICsodGhpcy5hbW91bnQgLSBhbGxvY2F0aW9ucy5nZXRCeVRyYW5zYWN0aW9uc0lkcyh0aGlzLmdldElkcygpKS5hbW91bnQpLnRvRml4ZWQoMik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNhc2ggcG9zaXRpb25cbiAgICogQ2FzaCBQb3NpdGlvbiA9IEluY29tZSAtIEV4cGVuc2VzXG4gICAqIENhc2ggcG9zaXRpb24gaXMgZXF1YWwgdG8gVG90YWwgQW1vdW50IGJlY2F1c2UgaW5jb21lIGlzIHBvc2l0aXZlIGFuZCBleHBlbnNlIGlzIG5lZ2F0aXZlLFxuICAgKi9cbiAgZ2V0IGNhc2hQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNsYWltQW1vdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBkYXRlIG9mIHRoZSBsYXN0IHRyYW5zYWN0aW9uXG4gICAqL1xuICBnZXRMYXN0VHJhbnNhY3Rpb25EYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShNYXRoLm1heC5hcHBseShNYXRoLCB0aGlzLml0ZW1zLm1hcCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5kYXRlKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzdW1tYXJ5IG9mIGNsYWltIGFtb3VudHNcbiAgICovXG4gIGdldCBjbGFpbUFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uY2xhaW1BbW91bnQsIDApO1xuICB9XG5cbiAgZ2V0IGdyb3NzQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuICt0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uYW1vdW50LCAwKS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgZ2V0QnlDaGFydEFjY291bnRzQ2F0ZWdvcmllcyhjYXRlZ29yaWVzOiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtW10pOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gY2F0ZWdvcmllcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLmNhdGVnb3J5KSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbnMgYnkgbW9udGhcbiAgICogQHBhcmFtIG1vbnRoSW5kZXggYnkgd2hpY2ggZGVzaXJlZCBtb250aCBzaG91bGQgYmUgdGFrZW5cbiAgICovXG4gIGdldEJ5TW9udGgobW9udGhJbmRleDogbnVtYmVyKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbih0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PlxuICAgICAgdHJhbnNhY3Rpb24uZGF0ZS5nZXRNb250aCgpID09PSBtb250aEluZGV4XG4gICAgKSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGZpbHRlcmVkIGJ5IGNoYXJ0IGFjY291bnRzIGlkXG4gICAqIEBwYXJhbSBjaGFydEFjY291bnRzSWQgY2hhcnQgYWNjb3VudHMgaWQgZm9yIGZpbHRlcmluZ1xuICAgKi9cbiAgZ2V0QnlDaGFydEFjY291bnRzSWQoY2hhcnRBY2NvdW50c0lkOiBudW1iZXIpOiBUcmFuc2FjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cy5pZCA9PT0gY2hhcnRBY2NvdW50c0lkKTtcbiAgfVxuXG4gIGdldEluY29tZVRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNJbmNvbWUoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsYWltSW5jb21lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW5jb21lVHJhbnNhY3Rpb25zKCkuY2xhaW1BbW91bnQ7XG4gIH1cblxuICBnZXRFeHBlbnNlVHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0V4cGVuc2UoKSAmJiAhdHJhbnNhY3Rpb24uaXNJbnRlcmVzdCgpKVxuICAgICk7XG4gIH1cblxuICBnZXQgY2xhaW1FeHBlbnNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpLmNsYWltQW1vdW50O1xuICB9XG5cbiAgZ2V0SW50ZXJlc3RUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+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,
|
|
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,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtbGlzdC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWxpc3QuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxxQkFtQlg7QUFuQkQsV0FBWSxxQkFBcUI7SUFDL0IsMkZBQXNCLENBQUE7SUFDdEIsK0ZBQXdCLENBQUE7SUFDeEIsNkVBQWUsQ0FBQTtJQUNmLDJFQUFjLENBQUE7SUFDZCwyRkFBc0IsQ0FBQTtJQUN0QixxSEFBbUMsQ0FBQTtJQUNuQyx3R0FBNEIsQ0FBQTtJQUM1Qix1RkFBb0IsQ0FBQTtJQUNwQixtRkFBaUIsQ0FBQTtJQUNqQix1RkFBbUIsQ0FBQTtJQUNuQiwwRUFBYSxDQUFBO0lBQ2IsZ0dBQXdCLENBQUE7SUFDeEIsb0dBQTBCLENBQUE7SUFDMUIsc0dBQTJCLENBQUE7SUFDM0IseUZBQXFCLENBQUE7SUFDckIsd0ZBQW9CLENBQUE7SUFDcEIsbUZBQWtCLENBQUE7SUFDbEIsaUdBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQW5CVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBbUJoQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENoYXJ0QWNjb3VudHNMaXN0RW51bSB7XG4gIElOVEVSRVNUX09OX0xPQU4gPSAzMDIsXG4gIEJPUlJPV0lOR19FWFBFTlNFUyA9IDMxNSxcbiAgRElWSURFTkRTID0gNTQyLFxuICBUUkFOU0ZFUiA9IDYxNSxcbiAgQlVJTERJTkdfQVRfQ09TVCA9IDMwNCxcbiAgTUFOQUdFTUVOVF9GRUVTX1BMQVRGT1JNX0ZFRVMgPSA2NTYsXG4gIEtMTVNfVFJBVkVMTEVEX0ZPUl9XT1JLID0gMjQsXG4gIEtMTVNfVFJBVkVMTEVEID0gNjgzLFxuICBESVJFQ1RPUl9GRUVTID0gNixcbiAgU0FMQVJZX09SX1dBR0VTID0gMixcbiAgVkVISUNMRVMgPSAyNSxcbiAgQ09NTUVSQ0lBTF9WRUhJQ0xFUyA9IDI2LFxuICBWRUhJQ0xFX0xPQU5fSU5URVJFU1QgPSAzNyxcbiAgVkVISUNMRV9MT0FOX1BSSU5DSVBBTCA9IDM4LFxuICBUQVhfSU5TVEFMTUVOVFMgPSA2NjIsXG4gIElOVEVSRVNUX0VBUk5FRCA9IDIyLFxuICBUUlVTVF9JTkNPTUUgPSA1NjcsXG4gIFRBWF9PRkZTRVRTX05fUl9BX1MgPSA1NzEsXG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export var PropertyCategoryListEnum;
|
|
2
2
|
(function (PropertyCategoryListEnum) {
|
|
3
3
|
PropertyCategoryListEnum[PropertyCategoryListEnum["OWNER_OCCUPIED"] = 3] = "OWNER_OCCUPIED";
|
|
4
|
+
PropertyCategoryListEnum[PropertyCategoryListEnum["VACANT_LAND"] = 5] = "VACANT_LAND";
|
|
4
5
|
})(PropertyCategoryListEnum || (PropertyCategoryListEnum = {}));
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY2F0ZWdvcnktbGlzdC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5LWxpc3QuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx3QkFHWDtBQUhELFdBQVksd0JBQXdCO0lBQ25DLDJGQUFrQixDQUFBO0lBQ2xCLHFGQUFlLENBQUE7QUFDaEIsQ0FBQyxFQUhXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFHbkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQcm9wZXJ0eUNhdGVnb3J5TGlzdEVudW0ge1xuXHRPV05FUl9PQ0NVUElFRCA9IDMsXG5cdFZBQ0FOVF9MQU5EID0gNSxcbn0iXX0=
|