taxtank-core 0.10.3 → 0.10.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/bundles/taxtank-core.umd.js +1185 -979
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/collection-dictionary.js +6 -6
  4. package/esm2015/lib/collections/collection.js +8 -1
  5. package/esm2015/lib/collections/report/property/property-report-item-depreciation.collection.js +22 -0
  6. package/esm2015/lib/collections/report/property/property-report-item-transaction.collection.js +22 -0
  7. package/esm2015/lib/collections/report/property/property-report-item.collection.js +13 -0
  8. package/esm2015/lib/models/depreciation/depreciation.js +3 -3
  9. package/esm2015/lib/models/report/property/property-report-item-depreciation.js +19 -0
  10. package/esm2015/lib/models/report/property/property-report-item-transaction.js +12 -0
  11. package/esm2015/lib/models/report/property/property-report-item.js +27 -0
  12. package/esm2015/lib/services/report/property/property-transaction-report.service.js +76 -0
  13. package/esm2015/public-api.js +7 -1
  14. package/fesm2015/taxtank-core.js +1000 -830
  15. package/fesm2015/taxtank-core.js.map +1 -1
  16. package/lib/collections/collection-dictionary.d.ts +1 -1
  17. package/lib/collections/collection.d.ts +4 -0
  18. package/lib/collections/report/property/property-report-item-depreciation.collection.d.ts +12 -0
  19. package/lib/collections/report/property/property-report-item-transaction.collection.d.ts +12 -0
  20. package/lib/collections/report/property/property-report-item.collection.d.ts +9 -0
  21. package/lib/models/depreciation/depreciation.d.ts +1 -1
  22. package/lib/models/report/property/property-report-item-depreciation.d.ts +10 -0
  23. package/lib/models/report/property/property-report-item-transaction.d.ts +10 -0
  24. package/lib/models/report/property/property-report-item.d.ts +22 -0
  25. package/lib/services/report/property/property-transaction-report.service.d.ts +42 -0
  26. package/package.json +1 -1
  27. package/public-api.d.ts +6 -0
@@ -10,7 +10,7 @@ export class CollectionDictionary {
10
10
  * @param path Path to the property to be grouped (Examples: 'transaction', 'property.category')
11
11
  * @param prop Optional: Field to group by (Default 'id', Examples: 'id', 'amount', 'date')
12
12
  */
13
- constructor(collection, path = '', prop = 'id') {
13
+ constructor(collection, path = 'id') {
14
14
  /**
15
15
  * List of grouped collections
16
16
  */
@@ -21,10 +21,10 @@ export class CollectionDictionary {
21
21
  return;
22
22
  }
23
23
  // Check if the first collection item has property by path
24
- if (!has(collection.items[0], path) && path) {
24
+ if (!has(collection.items[0], path)) {
25
25
  return;
26
26
  }
27
- this.groupItems(collection, path, prop);
27
+ this.groupItems(collection, path);
28
28
  }
29
29
  /**
30
30
  * List of collections keys
@@ -62,12 +62,12 @@ export class CollectionDictionary {
62
62
  /**
63
63
  * Group collection items by passed path into items object
64
64
  */
65
- groupItems(collection, path, prop) {
65
+ groupItems(collection, path) {
66
66
  // Create empty initial object for groups
67
67
  const obj = {};
68
68
  // Group collection items
69
69
  collection.items.forEach((item) => {
70
- let key = get(item, `${path ? path + '.' : ''}${prop}`);
70
+ let key = get(item, path);
71
71
  // if object does not have property for grouping it will be grouped as 'other'
72
72
  if (key === undefined) {
73
73
  key = 'other';
@@ -83,4 +83,4 @@ export class CollectionDictionary {
83
83
  });
84
84
  }
85
85
  }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24tZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBR3JDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQjs7OztPQUlHO0lBQ0gsWUFDRSxVQUFzQixFQUN0QixPQUFlLEVBQUUsRUFDakIsT0FBZSxJQUFJO1FBbEJyQjs7V0FFRztRQUNILFVBQUssR0FBa0MsRUFBRSxDQUFDO1FBaUJ4QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsVUFBVSxDQUFDLFdBQWtELENBQUM7UUFFM0YsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ3RCLE9BQU87U0FDUjtRQUVELDBEQUEwRDtRQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzNDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLElBQUk7UUFDTixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxHQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsR0FBb0IsRUFBRSxLQUFpQjtRQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBYztRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FDMUIsT0FBTyxDQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFVLEVBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQ2xFLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLFFBQWtCLEVBQUU7UUFDbkMsT0FBTyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVSxDQUFDLFVBQXNCLEVBQUUsSUFBWSxFQUFFLElBQVk7UUFDbkUseUNBQXlDO1FBQ3pDLE1BQU0sR0FBRyxHQUFxQyxFQUFFLENBQUM7UUFFakQseUJBQXlCO1FBQ3pCLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFRLEVBQUU7WUFDOUMsSUFBSSxHQUFHLEdBQVcsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7WUFFaEUsOEVBQThFO1lBQzlFLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtnQkFDckIsR0FBRyxHQUFHLE9BQU8sQ0FBQzthQUNmO1lBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDYixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ2Y7WUFFRCxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBRUgsaUNBQWlDO1FBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFRLEVBQUU7WUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaGFzIGZyb20gJ2xvZGFzaC9oYXMnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB7IENvbGxlY3Rpb24gYXMgQmFzZUNvbGxlY3Rpb24gfSBmcm9tICcuL2NvbGxlY3Rpb24nO1xuXG4vKipcbiAqIExpc3Qgb2YgY29sbGVjdGlvbnMgZ3JvdXBlZCBieSBwYXNzZWQgcHJvcGVydHlcbiAqL1xuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25EaWN0aW9uYXJ5PENvbGxlY3Rpb24gZXh0ZW5kcyBCYXNlQ29sbGVjdGlvbjxvYmplY3Q+PiB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGdyb3VwZWQgY29sbGVjdGlvbnNcbiAgICovXG4gIGl0ZW1zOiB7IFtrZXk6IHN0cmluZ106IENvbGxlY3Rpb24gfSA9IHt9O1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBvZiBwYXNzZWQgY29sbGVjdGlvbiBmb3IgY3JlYXRpbmcgbmV3IGluc3RhbmNlc1xuICAgKi9cbiAgcHJpdmF0ZSBjb2xsZWN0aW9uQ29uc3RydWN0b3I6IG5ldyAoaXRlbXM6IG9iamVjdFtdKSA9PiBDb2xsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gY29sbGVjdGlvbiBUaGUgQ29sbGVjdGlvbiBpbnN0YW5jZSB0byBiZSBncm91cGVkXG4gICAqIEBwYXJhbSBwYXRoIFBhdGggdG8gdGhlIHByb3BlcnR5IHRvIGJlIGdyb3VwZWQgKEV4YW1wbGVzOiAndHJhbnNhY3Rpb24nLCAncHJvcGVydHkuY2F0ZWdvcnknKVxuICAgKiBAcGFyYW0gcHJvcCBPcHRpb25hbDogRmllbGQgdG8gZ3JvdXAgYnkgKERlZmF1bHQgJ2lkJywgRXhhbXBsZXM6ICdpZCcsICdhbW91bnQnLCAnZGF0ZScpXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uLFxuICAgIHBhdGg6IHN0cmluZyA9ICcnLFxuICAgIHByb3A6IHN0cmluZyA9ICdpZCdcbiAgKSB7XG4gICAgdGhpcy5jb2xsZWN0aW9uQ29uc3RydWN0b3IgPSBjb2xsZWN0aW9uLmNvbnN0cnVjdG9yIGFzIG5ldyAoaXRlbXM6IG9iamVjdFtdKSA9PiBDb2xsZWN0aW9uO1xuXG4gICAgLy8gTm90aGluZyB0byBncm91cCB3aGVuIGNvbGxlY3Rpb24gaXMgZW1wdHlcbiAgICBpZiAoIWNvbGxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGZpcnN0IGNvbGxlY3Rpb24gaXRlbSBoYXMgcHJvcGVydHkgYnkgcGF0aFxuICAgIGlmICghaGFzKGNvbGxlY3Rpb24uaXRlbXNbMF0sIHBhdGgpICYmIHBhdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmdyb3VwSXRlbXMoY29sbGVjdGlvbiwgcGF0aCwgcHJvcCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBvZiBjb2xsZWN0aW9ucyBrZXlzXG4gICAqL1xuICBnZXQga2V5cygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuaXRlbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIGJ5IGtleSBvciByZXR1cm4gZW1wdHkgY29sbGVjdGlvbiBpZiBrZXkgZG9lcyBub3QgZXhpc3RcbiAgICovXG4gIGdldChrZXk6IHN0cmluZyB8IG51bWJlcik6IENvbGxlY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zW2tleV0gPyB0aGlzLml0ZW1zW2tleV0gOiB0aGlzLmNyZWF0ZUNvbGxlY3Rpb24oW10pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBuZXcgaXRlbSBieSBrZXlcbiAgICovXG4gIGFkZChrZXk6IHN0cmluZyB8IG51bWJlciwgdmFsdWU6IENvbGxlY3Rpb24pIHtcbiAgICB0aGlzLml0ZW1zW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBKb2luIHNldmVyYWwgY29sbGVjdGlvbnMgYnkgaWRzXG4gICAqL1xuICBtZXJnZShrZXlzOiBudW1iZXJbXSk6IENvbGxlY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbGxlY3Rpb24oXG4gICAgICBmbGF0dGVuKFxuICAgICAgICBrZXlzLm1hcCgoaWQ6IG51bWJlcik6IG9iamVjdFtdID0+IHRoaXMuZ2V0KGlkLnRvU3RyaW5nKCkpLml0ZW1zKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGluc3RhbmNlIG9mIGNvbGxlY3Rpb25cbiAgICovXG4gIGNyZWF0ZUNvbGxlY3Rpb24oaXRlbXM6IG9iamVjdFtdID0gW10pOiBDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IHRoaXMuY29sbGVjdGlvbkNvbnN0cnVjdG9yKGl0ZW1zKTtcbiAgfVxuXG4gIGxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmtleXMubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyb3VwIGNvbGxlY3Rpb24gaXRlbXMgYnkgcGFzc2VkIHBhdGggaW50byBpdGVtcyBvYmplY3RcbiAgICovXG4gIHByaXZhdGUgZ3JvdXBJdGVtcyhjb2xsZWN0aW9uOiBDb2xsZWN0aW9uLCBwYXRoOiBzdHJpbmcsIHByb3A6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSBlbXB0eSBpbml0aWFsIG9iamVjdCBmb3IgZ3JvdXBzXG4gICAgY29uc3Qgb2JqOiB7IFtrZXk6IHN0cmluZ106IEFycmF5PG9iamVjdD4gfSA9IHt9O1xuXG4gICAgLy8gR3JvdXAgY29sbGVjdGlvbiBpdGVtc1xuICAgIGNvbGxlY3Rpb24uaXRlbXMuZm9yRWFjaCgoaXRlbTogb2JqZWN0KTogdm9pZCA9PiB7XG4gICAgICBsZXQga2V5OiBzdHJpbmcgPSBnZXQoaXRlbSwgYCR7cGF0aCA/IHBhdGggKyAnLicgOiAnJ30ke3Byb3B9YCk7XG5cbiAgICAgIC8vIGlmIG9iamVjdCBkb2VzIG5vdCBoYXZlIHByb3BlcnR5IGZvciBncm91cGluZyBpdCB3aWxsIGJlIGdyb3VwZWQgYXMgJ290aGVyJ1xuICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGtleSA9ICdvdGhlcic7XG4gICAgICB9XG5cbiAgICAgIGlmICghb2JqW2tleV0pIHtcbiAgICAgICAgb2JqW2tleV0gPSBbXTtcbiAgICAgIH1cblxuICAgICAgb2JqW2tleV0ucHVzaChpdGVtKTtcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBjb2xsZWN0aW9ucyBmcm9tIGdyb3Vwc1xuICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuaXRlbXNba2V5XSA9IHRoaXMuY3JlYXRlQ29sbGVjdGlvbihvYmpba2V5XSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24tZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBR3JDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQjs7OztPQUlHO0lBQ0gsWUFDRSxVQUFzQixFQUN0QixPQUFlLElBQUk7UUFqQnJCOztXQUVHO1FBQ0gsVUFBSyxHQUFrQyxFQUFFLENBQUM7UUFnQnhDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMsV0FBa0QsQ0FBQztRQUUzRiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBRUQsMERBQTBEO1FBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNuQyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLElBQUk7UUFDTixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxHQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsR0FBb0IsRUFBRSxLQUFpQjtRQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBYztRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FDMUIsT0FBTyxDQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFVLEVBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQ2xFLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLFFBQWtCLEVBQUU7UUFDbkMsT0FBTyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVSxDQUFDLFVBQXNCLEVBQUUsSUFBWTtRQUNyRCx5Q0FBeUM7UUFDekMsTUFBTSxHQUFHLEdBQXFDLEVBQUUsQ0FBQztRQUVqRCx5QkFBeUI7UUFDekIsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFZLEVBQVEsRUFBRTtZQUM5QyxJQUFJLEdBQUcsR0FBVyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRWxDLDhFQUE4RTtZQUM5RSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7Z0JBQ3JCLEdBQUcsR0FBRyxPQUFPLENBQUM7YUFDZjtZQUVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUNmO1lBRUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVILGlDQUFpQztRQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBUSxFQUFFO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGhhcyBmcm9tICdsb2Rhc2gvaGFzJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgZmxhdHRlbiBmcm9tICdsb2Rhc2gvZmxhdHRlbic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIGFzIEJhc2VDb2xsZWN0aW9uIH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcblxuLyoqXG4gKiBMaXN0IG9mIGNvbGxlY3Rpb25zIGdyb3VwZWQgYnkgcGFzc2VkIHByb3BlcnR5XG4gKi9cbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uRGljdGlvbmFyeTxDb2xsZWN0aW9uIGV4dGVuZHMgQmFzZUNvbGxlY3Rpb248b2JqZWN0Pj4ge1xuICAvKipcbiAgICogTGlzdCBvZiBncm91cGVkIGNvbGxlY3Rpb25zXG4gICAqL1xuICBpdGVtczogeyBba2V5OiBzdHJpbmddOiBDb2xsZWN0aW9uIH0gPSB7fTtcblxuICAvKipcbiAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gb2YgcGFzc2VkIGNvbGxlY3Rpb24gZm9yIGNyZWF0aW5nIG5ldyBpbnN0YW5jZXNcbiAgICovXG4gIHByaXZhdGUgY29sbGVjdGlvbkNvbnN0cnVjdG9yOiBuZXcgKGl0ZW1zOiBvYmplY3RbXSkgPT4gQ29sbGVjdGlvbjtcblxuICAvKipcbiAgICogQHBhcmFtIGNvbGxlY3Rpb24gVGhlIENvbGxlY3Rpb24gaW5zdGFuY2UgdG8gYmUgZ3JvdXBlZFxuICAgKiBAcGFyYW0gcGF0aCBQYXRoIHRvIHRoZSBwcm9wZXJ0eSB0byBiZSBncm91cGVkIChFeGFtcGxlczogJ3RyYW5zYWN0aW9uJywgJ3Byb3BlcnR5LmNhdGVnb3J5JylcbiAgICogQHBhcmFtIHByb3AgT3B0aW9uYWw6IEZpZWxkIHRvIGdyb3VwIGJ5IChEZWZhdWx0ICdpZCcsIEV4YW1wbGVzOiAnaWQnLCAnYW1vdW50JywgJ2RhdGUnKVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbixcbiAgICBwYXRoOiBzdHJpbmcgPSAnaWQnXG4gICkge1xuICAgIHRoaXMuY29sbGVjdGlvbkNvbnN0cnVjdG9yID0gY29sbGVjdGlvbi5jb25zdHJ1Y3RvciBhcyBuZXcgKGl0ZW1zOiBvYmplY3RbXSkgPT4gQ29sbGVjdGlvbjtcblxuICAgIC8vIE5vdGhpbmcgdG8gZ3JvdXAgd2hlbiBjb2xsZWN0aW9uIGlzIGVtcHR5XG4gICAgaWYgKCFjb2xsZWN0aW9uLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZSBmaXJzdCBjb2xsZWN0aW9uIGl0ZW0gaGFzIHByb3BlcnR5IGJ5IHBhdGhcbiAgICBpZiAoIWhhcyhjb2xsZWN0aW9uLml0ZW1zWzBdLCBwYXRoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBJdGVtcyhjb2xsZWN0aW9uLCBwYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbGxlY3Rpb25zIGtleXNcbiAgICovXG4gIGdldCBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5pdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbGxlY3Rpb24gYnkga2V5IG9yIHJldHVybiBlbXB0eSBjb2xsZWN0aW9uIGlmIGtleSBkb2VzIG5vdCBleGlzdFxuICAgKi9cbiAgZ2V0KGtleTogc3RyaW5nIHwgbnVtYmVyKTogQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNba2V5XSA/IHRoaXMuaXRlbXNba2V5XSA6IHRoaXMuY3JlYXRlQ29sbGVjdGlvbihbXSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG5ldyBpdGVtIGJ5IGtleVxuICAgKi9cbiAgYWRkKGtleTogc3RyaW5nIHwgbnVtYmVyLCB2YWx1ZTogQ29sbGVjdGlvbikge1xuICAgIHRoaXMuaXRlbXNba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEpvaW4gc2V2ZXJhbCBjb2xsZWN0aW9ucyBieSBpZHNcbiAgICovXG4gIG1lcmdlKGtleXM6IG51bWJlcltdKTogQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29sbGVjdGlvbihcbiAgICAgIGZsYXR0ZW4oXG4gICAgICAgIGtleXMubWFwKChpZDogbnVtYmVyKTogb2JqZWN0W10gPT4gdGhpcy5nZXQoaWQudG9TdHJpbmcoKSkuaXRlbXMpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgaW5zdGFuY2Ugb2YgY29sbGVjdGlvblxuICAgKi9cbiAgY3JlYXRlQ29sbGVjdGlvbihpdGVtczogb2JqZWN0W10gPSBbXSk6IENvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgdGhpcy5jb2xsZWN0aW9uQ29uc3RydWN0b3IoaXRlbXMpO1xuICB9XG5cbiAgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMua2V5cy5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogR3JvdXAgY29sbGVjdGlvbiBpdGVtcyBieSBwYXNzZWQgcGF0aCBpbnRvIGl0ZW1zIG9iamVjdFxuICAgKi9cbiAgcHJpdmF0ZSBncm91cEl0ZW1zKGNvbGxlY3Rpb246IENvbGxlY3Rpb24sIHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSBlbXB0eSBpbml0aWFsIG9iamVjdCBmb3IgZ3JvdXBzXG4gICAgY29uc3Qgb2JqOiB7IFtrZXk6IHN0cmluZ106IEFycmF5PG9iamVjdD4gfSA9IHt9O1xuXG4gICAgLy8gR3JvdXAgY29sbGVjdGlvbiBpdGVtc1xuICAgIGNvbGxlY3Rpb24uaXRlbXMuZm9yRWFjaCgoaXRlbTogb2JqZWN0KTogdm9pZCA9PiB7XG4gICAgICBsZXQga2V5OiBzdHJpbmcgPSBnZXQoaXRlbSwgcGF0aCk7XG5cbiAgICAgIC8vIGlmIG9iamVjdCBkb2VzIG5vdCBoYXZlIHByb3BlcnR5IGZvciBncm91cGluZyBpdCB3aWxsIGJlIGdyb3VwZWQgYXMgJ290aGVyJ1xuICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGtleSA9ICdvdGhlcic7XG4gICAgICB9XG5cbiAgICAgIGlmICghb2JqW2tleV0pIHtcbiAgICAgICAgb2JqW2tleV0gPSBbXTtcbiAgICAgIH1cblxuICAgICAgb2JqW2tleV0ucHVzaChpdGVtKTtcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBjb2xsZWN0aW9ucyBmcm9tIGdyb3Vwc1xuICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuaXRlbXNba2V5XSA9IHRoaXMuY3JlYXRlQ29sbGVjdGlvbihvYmpba2V5XSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -2,6 +2,7 @@ import { CollectionDictionary } from './collection-dictionary';
2
2
  import first from 'lodash/first';
3
3
  import last from 'lodash/last';
4
4
  import get from 'lodash/get';
5
+ import { sort } from '../functions/array';
5
6
  const DEFAULT_INDEX = 'other';
6
7
  /**
7
8
  * Base collection class. Contains common properties and methods for all collections
@@ -73,6 +74,12 @@ export class Collection {
73
74
  filter(callback) {
74
75
  return new Collection(this.items.filter(callback));
75
76
  }
77
+ /**
78
+ * Sort collection items by provided field
79
+ */
80
+ sortBy(filed = 'id', isDesc = true) {
81
+ sort(this.items, filed, isDesc);
82
+ }
76
83
  get first() {
77
84
  return first(this.items);
78
85
  }
@@ -80,4 +87,4 @@ export class Collection {
80
87
  return last(this.items);
81
88
  }
82
89
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBRTdCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQztBQUU5Qjs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBSXJCLFlBQVksUUFBaUIsRUFBRTtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQWlCLEVBQUU7UUFDeEIsT0FBTyxJQUFLLElBQUksQ0FBQyxXQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZSxFQUFFO1FBQ3ZCLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLHlDQUF5QztRQUN6QyxNQUFNLE1BQU0sR0FBNkIsRUFBRSxDQUFDO1FBRTVDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUN0QyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDZixnREFBZ0Q7UUFDaEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFXLEVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWSxFQUFFLEtBQVU7UUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxFQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFXLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVcsRUFBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFZO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxJQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBa0M7UUFDdkMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uRGljdGlvbmFyeSB9IGZyb20gJy4vY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcclxuaW1wb3J0IGZpcnN0IGZyb20gJ2xvZGFzaC9maXJzdCc7XHJcbmltcG9ydCBsYXN0IGZyb20gJ2xvZGFzaC9sYXN0JztcclxuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcclxuXHJcbmNvbnN0IERFRkFVTFRfSU5ERVggPSAnb3RoZXInO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgY29sbGVjdGlvbiBjbGFzcy4gQ29udGFpbnMgY29tbW9uIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgZm9yIGFsbCBjb2xsZWN0aW9uc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb248TW9kZWwgZXh0ZW5kcyBvYmplY3Q+IGltcGxlbWVudHMgSXRlcmFibGU8TW9kZWw+IHtcclxuICAvLyBsaXN0IG9mIGNvbGxlY3Rpb24ncyBpdGVtc1xyXG4gIGl0ZW1zOiBNb2RlbFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihpdGVtczogTW9kZWxbXSA9IFtdKSB7XHJcbiAgICB0aGlzLml0ZW1zID0gaXRlbXM7XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoaXRlbXM6IE1vZGVsW10gPSBbXSk6IHRoaXMge1xyXG4gICAgcmV0dXJuIG5ldyAodGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkpKGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIGdyb3VwQnkocGF0aDogc3RyaW5nID0gJycpOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxDb2xsZWN0aW9uPE1vZGVsPj4ge1xyXG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uRGljdGlvbmFyeSh0aGlzLCBwYXRoKTtcclxuICB9XHJcblxyXG4gIGluZGV4QnkocGF0aDogc3RyaW5nKTogb2JqZWN0IHtcclxuICAgIC8vIENyZWF0ZSBlbXB0eSBpbml0aWFsIG9iamVjdCBmb3IgZ3JvdXBzXHJcbiAgICBjb25zdCByZXN1bHQ6IHsgW2tleTogc3RyaW5nXTogTW9kZWwgfSA9IHt9O1xyXG5cclxuICAgIHRoaXMudG9BcnJheSgpLmZvckVhY2goKG1vZGVsOiBNb2RlbCkgPT4ge1xyXG4gICAgICByZXN1bHRbZ2V0KG1vZGVsLCBwYXRoLCBERUZBVUxUX0lOREVYKV0gPSBtb2RlbDtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJdGVyYXRvciB0aGF0IGFsbG93IHRvIGl0ZXJhdGUgY29sbGVjdGlvbiBpdGVtc1xyXG4gICAqL1xyXG4gIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhdG9yPE1vZGVsPiB7XHJcbiAgICAvLyAudmFsdWVzKCkgcmV0dXJucyBJdGVyYXRvciBpbnN0YW5jZSBmb3IgYXJyYXlcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLnZhbHVlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZ2V0IGNvbGxlY3Rpb24gbGVuZ3RoXHJcbiAgICovXHJcbiAgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGxpc3Qgb2YgaXRlbXMgaWRzXHJcbiAgICovXHJcbiAgZ2V0SWRzKCk6IG51bWJlcltdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaXRlbTogTW9kZWwpOiBudW1iZXIgPT4gaXRlbVsnaWQnXSk7XHJcbiAgfVxyXG5cclxuICBmaW5kQnkocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KTogTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogTW9kZWwpID0+IGdldChpdGVtLCBwYXRoKSA9PT0gdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnkocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiBnZXQoaXRlbSwgcGF0aCkgPT09IHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgc2luZ2xlIGl0ZW0gYnkgaWRcclxuICAgKi9cclxuICBnZXRCeUlkKGlkOiBudW1iZXIpOiBNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKChpdGVtOiBNb2RlbCk6IGJvb2xlYW4gPT4gaXRlbVsnaWQnXSA9PT0gaWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnlJZHMoaWRzOiBudW1iZXJbXSk6IE1vZGVsW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBNb2RlbCk6IGJvb2xlYW4gPT4gaWRzLmluY2x1ZGVzKGl0ZW1bJ2lkJ10pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0b3RhbCBzdW0gb2YgaXRlbXMgYnkgZmllbGRcclxuICAgKi9cclxuICBzdW1CeShwYXRoOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICt0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGl0ZW06IE1vZGVsKTogbnVtYmVyID0+IHN1bSArIE51bWJlcihnZXQoaXRlbSwgcGF0aCkpLCAwKS50b0ZpeGVkKDIpO1xyXG4gIH1cclxuXHJcbiAgdG9BcnJheSgpOiBNb2RlbFtdIHtcclxuICAgIHJldHVybiBbLi4udGhpcy5pdGVtc107XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaWx0ZXIgaXRlbXMgYnkgc3BlY2lmaWMgcHJvdmlkZWQgY2FsbGJhY2tcclxuICAgKi9cclxuICBmaWx0ZXIoY2FsbGJhY2s6IChpdGVtOiBNb2RlbCkgPT4gYm9vbGVhbik6IENvbGxlY3Rpb248TW9kZWw+IHtcclxuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbih0aGlzLml0ZW1zLmZpbHRlcihjYWxsYmFjaykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpcnN0KCk6IE1vZGVsIHtcclxuICAgIHJldHVybiBmaXJzdCh0aGlzLml0ZW1zKTtcclxuICB9XHJcblxyXG4gIGdldCBsYXN0KCk6IE1vZGVsIHtcclxuICAgIHJldHVybiBsYXN0KHRoaXMuaXRlbXMpO1xyXG4gIH1cclxufVxyXG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFOUI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUlyQixZQUFZLFFBQWlCLEVBQUU7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFpQixFQUFFO1FBQ3hCLE9BQU8sSUFBSyxJQUFJLENBQUMsV0FBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRTtRQUN2QixPQUFPLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQix5Q0FBeUM7UUFDekMsTUFBTSxNQUFNLEdBQTZCLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2YsZ0RBQWdEO1FBQ2hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBVyxFQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsRUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBVyxFQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFXLEVBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBWTtRQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsSUFBVyxFQUFVLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFFBQWtDO1FBQ3ZDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBZ0IsSUFBSSxFQUFFLFNBQWtCLElBQUk7UUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uRGljdGlvbmFyeSB9IGZyb20gJy4vY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcclxuaW1wb3J0IGZpcnN0IGZyb20gJ2xvZGFzaC9maXJzdCc7XHJcbmltcG9ydCBsYXN0IGZyb20gJ2xvZGFzaC9sYXN0JztcclxuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcclxuaW1wb3J0IHsgc29ydCB9IGZyb20gJy4uL2Z1bmN0aW9ucy9hcnJheSc7XHJcblxyXG5jb25zdCBERUZBVUxUX0lOREVYID0gJ290aGVyJztcclxuXHJcbi8qKlxyXG4gKiBCYXNlIGNvbGxlY3Rpb24gY2xhc3MuIENvbnRhaW5zIGNvbW1vbiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGZvciBhbGwgY29sbGVjdGlvbnNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uPE1vZGVsIGV4dGVuZHMgb2JqZWN0PiBpbXBsZW1lbnRzIEl0ZXJhYmxlPE1vZGVsPiB7XHJcbiAgLy8gbGlzdCBvZiBjb2xsZWN0aW9uJ3MgaXRlbXNcclxuICBpdGVtczogTW9kZWxbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoaXRlbXM6IE1vZGVsW10gPSBbXSkge1xyXG4gICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKGl0ZW1zOiBNb2RlbFtdID0gW10pOiB0aGlzIHtcclxuICAgIHJldHVybiBuZXcgKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KShpdGVtcyk7XHJcbiAgfVxyXG5cclxuICBncm91cEJ5KHBhdGg6IHN0cmluZyA9ICcnKTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8Q29sbGVjdGlvbjxNb2RlbD4+IHtcclxuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbkRpY3Rpb25hcnkodGhpcywgcGF0aCk7XHJcbiAgfVxyXG5cclxuICBpbmRleEJ5KHBhdGg6IHN0cmluZyk6IG9iamVjdCB7XHJcbiAgICAvLyBDcmVhdGUgZW1wdHkgaW5pdGlhbCBvYmplY3QgZm9yIGdyb3Vwc1xyXG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IE1vZGVsIH0gPSB7fTtcclxuXHJcbiAgICB0aGlzLnRvQXJyYXkoKS5mb3JFYWNoKChtb2RlbDogTW9kZWwpID0+IHtcclxuICAgICAgcmVzdWx0W2dldChtb2RlbCwgcGF0aCwgREVGQVVMVF9JTkRFWCldID0gbW9kZWw7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXRlcmF0b3IgdGhhdCBhbGxvdyB0byBpdGVyYXRlIGNvbGxlY3Rpb24gaXRlbXNcclxuICAgKi9cclxuICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYXRvcjxNb2RlbD4ge1xyXG4gICAgLy8gLnZhbHVlcygpIHJldHVybnMgSXRlcmF0b3IgaW5zdGFuY2UgZm9yIGFycmF5XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy52YWx1ZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGdldCBjb2xsZWN0aW9uIGxlbmd0aFxyXG4gICAqL1xyXG4gIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBsaXN0IG9mIGl0ZW1zIGlkc1xyXG4gICAqL1xyXG4gIGdldElkcygpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKGl0ZW06IE1vZGVsKTogbnVtYmVyID0+IGl0ZW1bJ2lkJ10pO1xyXG4gIH1cclxuXHJcbiAgZmluZEJ5KHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IE1vZGVsIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IE1vZGVsKSA9PiBnZXQoaXRlbSwgcGF0aCkgPT09IHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldEJ5KHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBNb2RlbCkgPT4gZ2V0KGl0ZW0sIHBhdGgpID09PSB2YWx1ZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHNpbmdsZSBpdGVtIGJ5IGlkXHJcbiAgICovXHJcbiAgZ2V0QnlJZChpZDogbnVtYmVyKTogTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogTW9kZWwpOiBib29sZWFuID0+IGl0ZW1bJ2lkJ10gPT09IGlkKTtcclxuICB9XHJcblxyXG4gIGdldEJ5SWRzKGlkczogbnVtYmVyW10pOiBNb2RlbFtdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbTogTW9kZWwpOiBib29sZWFuID0+IGlkcy5pbmNsdWRlcyhpdGVtWydpZCddKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdG90YWwgc3VtIG9mIGl0ZW1zIGJ5IGZpZWxkXHJcbiAgICovXHJcbiAgc3VtQnkocGF0aDogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIHJldHVybiArdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBpdGVtOiBNb2RlbCk6IG51bWJlciA9PiBzdW0gKyBOdW1iZXIoZ2V0KGl0ZW0sIHBhdGgpKSwgMCkudG9GaXhlZCgyKTtcclxuICB9XHJcblxyXG4gIHRvQXJyYXkoKTogTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gWy4uLnRoaXMuaXRlbXNdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIGl0ZW1zIGJ5IHNwZWNpZmljIHByb3ZpZGVkIGNhbGxiYWNrXHJcbiAgICovXHJcbiAgZmlsdGVyKGNhbGxiYWNrOiAoaXRlbTogTW9kZWwpID0+IGJvb2xlYW4pOiBDb2xsZWN0aW9uPE1vZGVsPiB7XHJcbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhpcy5pdGVtcy5maWx0ZXIoY2FsbGJhY2spKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvcnQgY29sbGVjdGlvbiBpdGVtcyBieSBwcm92aWRlZCBmaWVsZFxyXG4gICAqL1xyXG4gIHNvcnRCeShmaWxlZDogc3RyaW5nID0gJ2lkJywgaXNEZXNjOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgc29ydCh0aGlzLml0ZW1zLCBmaWxlZCwgaXNEZXNjKTtcclxuICB9XHJcblxyXG4gIGdldCBmaXJzdCgpOiBNb2RlbCB7XHJcbiAgICByZXR1cm4gZmlyc3QodGhpcy5pdGVtcyk7XHJcbiAgfVxyXG5cclxuICBnZXQgbGFzdCgpOiBNb2RlbCB7XHJcbiAgICByZXR1cm4gbGFzdCh0aGlzLml0ZW1zKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,22 @@
1
+ import { CollectionDictionary } from '../../collection-dictionary';
2
+ import { PropertyReportItemDepreciation } from '../../../models/report/property/property-report-item-depreciation';
3
+ import { PropertyReportItemCollection } from './property-report-item.collection';
4
+ /**
5
+ * Collection to work with depreciation-based property report items
6
+ */
7
+ export class PropertyReportItemDepreciationCollection extends PropertyReportItemCollection {
8
+ constructor(depreciations, properties, chartAccounts) {
9
+ super();
10
+ this.setItems(depreciations, properties, chartAccounts);
11
+ }
12
+ setItems(depreciations, properties, chartAccounts) {
13
+ this.items = [];
14
+ properties.items.forEach((property) => {
15
+ const depreciationsByType = new CollectionDictionary(depreciations, 'type');
16
+ depreciationsByType.keys.map((type) => {
17
+ this.items.push(new PropertyReportItemDepreciation(depreciationsByType.get(type), property, chartAccounts.getById(depreciationsByType.get(type).first.chartAccounts.id)));
18
+ });
19
+ });
20
+ }
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcmVwb3J0LWl0ZW0tZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLWRlcHJlY2lhdGlvbi5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR2pGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHdDQUF5QyxTQUFRLDRCQUE0QjtJQUN4RixZQUNFLGFBQXFDLEVBQ3JDLFVBQThCLEVBQzlCLGFBQXdDO1FBRXhDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQ3pELENBQUM7SUFFTyxRQUFRLENBQUMsYUFBcUMsRUFBRSxVQUE4QixFQUFFLGFBQXdDO1FBQzlILElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRWhCLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFO1lBQzlDLE1BQU0sbUJBQW1CLEdBQWlELElBQUksb0JBQW9CLENBQ2hHLGFBQWEsRUFDYixNQUFNLENBQ1AsQ0FBQztZQUVGLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSw4QkFBOEIsQ0FDaEQsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUM3QixRQUFRLEVBQ1IsYUFBYSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FDNUUsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMnO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IENvbGxlY3Rpb25EaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcbmltcG9ydCB7IFByb3BlcnR5UmVwb3J0SXRlbURlcHJlY2lhdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZXBvcnQvcHJvcGVydHkvcHJvcGVydHktcmVwb3J0LWl0ZW0tZGVwcmVjaWF0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5UmVwb3J0SXRlbUNvbGxlY3Rpb24gfSBmcm9tICcuL3Byb3BlcnR5LXJlcG9ydC1pdGVtLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHtQcm9wZXJ0eUNvbGxlY3Rpb259IGZyb20gJy4uLy4uL3Byb3BlcnR5L3Byb3BlcnR5LmNvbGxlY3Rpb24nO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gdG8gd29yayB3aXRoIGRlcHJlY2lhdGlvbi1iYXNlZCBwcm9wZXJ0eSByZXBvcnQgaXRlbXNcbiAqL1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5UmVwb3J0SXRlbURlcHJlY2lhdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBQcm9wZXJ0eVJlcG9ydEl0ZW1Db2xsZWN0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbixcbiAgICBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sXG4gICAgY2hhcnRBY2NvdW50czogQ29sbGVjdGlvbjxDaGFydEFjY291bnRzPlxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2V0SXRlbXMoZGVwcmVjaWF0aW9ucywgcHJvcGVydGllcywgY2hhcnRBY2NvdW50cylcbiAgfVxuXG4gIHByaXZhdGUgc2V0SXRlbXMoZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiwgcHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBjaGFydEFjY291bnRzOiBDb2xsZWN0aW9uPENoYXJ0QWNjb3VudHM+KTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcyA9IFtdO1xuXG4gICAgcHJvcGVydGllcy5pdGVtcy5mb3JFYWNoKChwcm9wZXJ0eTogUHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IGRlcHJlY2lhdGlvbnNCeVR5cGU6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PERlcHJlY2lhdGlvbkNvbGxlY3Rpb24+ID0gbmV3IENvbGxlY3Rpb25EaWN0aW9uYXJ5PERlcHJlY2lhdGlvbkNvbGxlY3Rpb24+KFxuICAgICAgICBkZXByZWNpYXRpb25zLFxuICAgICAgICAndHlwZSdcbiAgICAgICk7XG5cbiAgICAgIGRlcHJlY2lhdGlvbnNCeVR5cGUua2V5cy5tYXAoKHR5cGU6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLml0ZW1zLnB1c2gobmV3IFByb3BlcnR5UmVwb3J0SXRlbURlcHJlY2lhdGlvbihcbiAgICAgICAgICBkZXByZWNpYXRpb25zQnlUeXBlLmdldCh0eXBlKSxcbiAgICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgICBjaGFydEFjY291bnRzLmdldEJ5SWQoZGVwcmVjaWF0aW9uc0J5VHlwZS5nZXQodHlwZSkuZmlyc3QuY2hhcnRBY2NvdW50cy5pZClcbiAgICAgICAgKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,22 @@
1
+ import { CollectionDictionary } from '../../collection-dictionary';
2
+ import { PropertyReportItemTransaction } from '../../../models/report/property/property-report-item-transaction';
3
+ import { PropertyReportItemCollection } from './property-report-item.collection';
4
+ /**
5
+ * Collection to work with transaction-based property report items
6
+ */
7
+ export class PropertyReportItemTransactionCollection extends PropertyReportItemCollection {
8
+ constructor(transactions, properties, chartAccounts) {
9
+ super();
10
+ this.setItems(transactions, properties, chartAccounts);
11
+ }
12
+ setItems(transactions, properties, chartAccounts) {
13
+ this.items = [];
14
+ properties.items.forEach((property) => {
15
+ const transactionsDictionary = new CollectionDictionary(transactions.getByPropertiesIds([property.id]), 'chartAccounts.id');
16
+ transactionsDictionary.keys.map((chartAccountId) => {
17
+ this.items.push(new PropertyReportItemTransaction(transactionsDictionary.get(chartAccountId), property, chartAccounts.getById(+chartAccountId)));
18
+ });
19
+ });
20
+ }
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcmVwb3J0LWl0ZW0tdHJhbnNhY3Rpb24uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9yZXBvcnQvcHJvcGVydHkvcHJvcGVydHktcmVwb3J0LWl0ZW0tdHJhbnNhY3Rpb24uY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNqSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUdqRjs7R0FFRztBQUNILE1BQU0sT0FBTyx1Q0FBd0MsU0FBUSw0QkFBNEI7SUFDdkYsWUFDRSxZQUFtQyxFQUNuQyxVQUE4QixFQUM5QixhQUF3QztRQUV4QyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sUUFBUSxDQUFDLFlBQW1DLEVBQUUsVUFBOEIsRUFBRSxhQUF3QztRQUM1SCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUM5QyxNQUFNLHNCQUFzQixHQUFnRCxJQUFJLG9CQUFvQixDQUNsRyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDOUMsa0JBQWtCLENBQ25CLENBQUM7WUFFRixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBc0IsRUFBRSxFQUFFO2dCQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLDZCQUE2QixDQUMvQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQzFDLFFBQVEsRUFDUixhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQ3ZDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgUHJvcGVydHlSZXBvcnRJdGVtVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLXRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5UmVwb3J0SXRlbUNvbGxlY3Rpb24gfSBmcm9tICcuL3Byb3BlcnR5LXJlcG9ydC1pdGVtLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHtQcm9wZXJ0eUNvbGxlY3Rpb259IGZyb20gJy4uLy4uL3Byb3BlcnR5L3Byb3BlcnR5LmNvbGxlY3Rpb24nO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gdG8gd29yayB3aXRoIHRyYW5zYWN0aW9uLWJhc2VkIHByb3BlcnR5IHJlcG9ydCBpdGVtc1xuICovXG5leHBvcnQgY2xhc3MgUHJvcGVydHlSZXBvcnRJdGVtVHJhbnNhY3Rpb25Db2xsZWN0aW9uIGV4dGVuZHMgUHJvcGVydHlSZXBvcnRJdGVtQ29sbGVjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLFxuICAgIHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbixcbiAgICBjaGFydEFjY291bnRzOiBDb2xsZWN0aW9uPENoYXJ0QWNjb3VudHM+XG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zZXRJdGVtcyh0cmFuc2FjdGlvbnMsIHByb3BlcnRpZXMsIGNoYXJ0QWNjb3VudHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJdGVtcyh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgcHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBjaGFydEFjY291bnRzOiBDb2xsZWN0aW9uPENoYXJ0QWNjb3VudHM+KTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgIHByb3BlcnRpZXMuaXRlbXMuZm9yRWFjaCgocHJvcGVydHk6IFByb3BlcnR5KSA9PiB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbnNEaWN0aW9uYXJ5OiBDb2xsZWN0aW9uRGljdGlvbmFyeTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+ID0gbmV3IENvbGxlY3Rpb25EaWN0aW9uYXJ5PFRyYW5zYWN0aW9uQ29sbGVjdGlvbj4oXG4gICAgICAgIHRyYW5zYWN0aW9ucy5nZXRCeVByb3BlcnRpZXNJZHMoW3Byb3BlcnR5LmlkXSksXG4gICAgICAgICdjaGFydEFjY291bnRzLmlkJ1xuICAgICAgKTtcblxuICAgICAgdHJhbnNhY3Rpb25zRGljdGlvbmFyeS5rZXlzLm1hcCgoY2hhcnRBY2NvdW50SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLml0ZW1zLnB1c2gobmV3IFByb3BlcnR5UmVwb3J0SXRlbVRyYW5zYWN0aW9uKFxuICAgICAgICAgIHRyYW5zYWN0aW9uc0RpY3Rpb25hcnkuZ2V0KGNoYXJ0QWNjb3VudElkKSxcbiAgICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgICBjaGFydEFjY291bnRzLmdldEJ5SWQoK2NoYXJ0QWNjb3VudElkKVxuICAgICAgICApKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { Collection } from '../../collection';
2
+ /**
3
+ * Base collection to work with property report items
4
+ */
5
+ export class PropertyReportItemCollection extends Collection {
6
+ getIncomes() {
7
+ return this.create(this.items.filter((item) => item.isIncome()));
8
+ }
9
+ getExpenses() {
10
+ return this.create(this.items.filter((item) => item.isExpense()));
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcmVwb3J0LWl0ZW0uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9yZXBvcnQvcHJvcGVydHkvcHJvcGVydHktcmVwb3J0LWl0ZW0uY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHOUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsVUFBOEI7SUFDOUUsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDakUsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQXdCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgUHJvcGVydHlSZXBvcnRJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3JlcG9ydC9wcm9wZXJ0eS9wcm9wZXJ0eS1yZXBvcnQtaXRlbSc7XG5cbi8qKlxuICogQmFzZSBjb2xsZWN0aW9uIHRvIHdvcmsgd2l0aCBwcm9wZXJ0eSByZXBvcnQgaXRlbXNcbiAqL1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5UmVwb3J0SXRlbUNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFByb3BlcnR5UmVwb3J0SXRlbT4ge1xuICBnZXRJbmNvbWVzKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBQcm9wZXJ0eVJlcG9ydEl0ZW0pID0+IGl0ZW0uaXNJbmNvbWUoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0RXhwZW5zZXMoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW06IFByb3BlcnR5UmVwb3J0SXRlbSkgPT4gaXRlbS5pc0V4cGVuc2UoKSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -97,8 +97,8 @@ export class Depreciation extends DepreciationBase {
97
97
  /**
98
98
  * Create a new transaction from current depreciation
99
99
  */
100
- toTransaction() {
101
- return plainToClass(Transaction, Object.assign({}, this, { amount: this.currentYearForecast.amount }));
100
+ toTransaction(params = {}) {
101
+ return plainToClass(Transaction, Object.assign(params, this, { amount: this.currentYearForecast.amount }));
102
102
  }
103
103
  get claimAmount() {
104
104
  var _a;
@@ -149,4 +149,4 @@ __decorate([
149
149
  __decorate([
150
150
  Type(() => BankTransaction)
151
151
  ], Depreciation.prototype, "bankTransaction", void 0);
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjaWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0seURBQXlELENBQUM7QUFDOUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE1BQU0sT0FBTyxZQUFhLFNBQVEsZ0JBQWdCO0lBQWxEOztRQXNDRSxjQUFTLEdBQTJCLEVBQUUsQ0FBQztRQVF2QyxTQUFJLEdBQXlCLG9CQUFvQixDQUFDLGVBQWUsQ0FBQztJQTBHcEUsQ0FBQztJQXRHQyxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFD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O29CQUN4RyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BHLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7K0NBQ3FDO0FBR3ZDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQzttREFDRztBQUc3QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7cURBQ0siLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXByZWNpYXRpb24gYXMgRGVwcmVjaWF0aW9uQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9kZXByZWNpYXRpb24nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9kZXByZWNpYXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2RlcHJlY2lhdGlvbi1jYWxjdWxhdGlvbi5lbnVtJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNIZWFkaW5nVmVoaWNsZUxpc3RFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtaGVhZGluZy12ZWhpY2xlLWxpc3QuZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzTGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1saXN0LmVudW0nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3QgfSBmcm9tICcuL2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3QnO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uRm9yZWNhc3QgfSBmcm9tICcuL2RlcHJlY2lhdGlvbi1mb3JlY2FzdCc7XG5pbXBvcnQgeyBGaW5hbmNpYWxZZWFyIH0gZnJvbSAnLi4vZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cyB9IGZyb20gJy4uL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzJztcbmltcG9ydCB7IEJhbmtUcmFuc2FjdGlvbiB9IGZyb20gJy4uL2JhbmsvYmFuay10cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBJVGFuayB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFuay5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVJlY2VpcHQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlY2VpcHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElBc3NldCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXNzZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcywgVHJhbnNmb3JtLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBEZXByZWNpYXRpb24gZXh0ZW5kcyBEZXByZWNpYXRpb25CYXNlIGltcGxlbWVudHMgSVRhbmssIElSZWNlaXB0IHtcbiAgc3RhdGljIFdSSVRURU5fT0ZGX1RIUkVTSE9MRCA9IDMwMDtcbiAgc3RhdGljIExPV19WQUxVRV9QT09MX1RIUkVTSE9MRCA9IDEwMDA7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgcHVyY2hhc2VEYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGRhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgbG93VmFsdWVQb29sRGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICB3cml0ZU9mZk1hbnVhbERhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgd3JpdGVPZmZEYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IERlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0KVxuICBkZXByZWNpYXRpb25DYXBpdGFsUHJvamVjdDogRGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3Q7XG5cbiAgQFR5cGUoKCkgPT4gRGVwcmVjaWF0aW9uRm9yZWNhc3QpXG4gIEBUcmFuc2Zvcm0oKHt2YWx1ZSwgb2JqfSkgPT4ge1xuICAgIC8vIHZhbHVlID0gYXJyYXkgb2YgRGVwcmVjaWF0aW9uRm9yZWNhc3RcbiAgICAvLyBvYmogPSBwbGFpbiAod2hvbGUgRGVwcmVjaWF0aW9uIG9iamVjdClcbiAgICAvLyBTZXQgaXNMVlAgZmxhZyBmb3IgZWFjaCBEZXByZWNpYXRpb25Gb3JlY2FzdFxuICAgIC8vIEBUT0RPIHJlZmFjdG9yXG4gICAgdmFsdWUuZm9yRWFjaCgoZm9yZWNhc3Q6IERlcHJlY2lhdGlvbkZvcmVjYXN0KTogdm9pZCA9PiB7XG4gICAgICBmb3JlY2FzdC5pc0xWUCA9XG4gICAgICAgIGZvcmVjYXN0LmNsb3NlQmFsYW5jZSA8IDEwMDAgJiZcbiAgICAgICAgb2JqLmNhbGN1bGF0aW9uID09PSBEZXByZWNpYXRpb25DYWxjdWxhdGlvbkVudW0uRElNSU5JU0hJTkcgJiZcbiAgICAgICAgb2JqLnR5cGUgPT09IERlcHJlY2lhdGlvblR5cGVFbnVtLlBMQU5UX0VRVUlQTUVOVCAmJlxuICAgICAgICAhKG9iai5hbW91bnQgPiBEZXByZWNpYXRpb24uV1JJVFRFTl9PRkZfVEhSRVNIT0xEICYmIG9iai5hbW91bnQgPCBEZXByZWNpYXRpb24uTE9XX1ZBTFVFX1BPT0xfVEhSRVNIT0xEKSAmJlxuICAgICAgICAhKG9iai53cml0ZU9mZkRhdGUgJiYgbmV3IEZpbmFuY2lhbFllYXIobmV3IERhdGUob2JqLndyaXRlT2ZmRGF0ZSkpLnllYXIgPT09IG9iai5maW5hbmNpYWxZZWFyKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH0pXG4gIGZvcmVjYXN0czogRGVwcmVjaWF0aW9uRm9yZWNhc3RbXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IENoYXJ0QWNjb3VudHMpXG4gIGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHM7XG5cbiAgQFR5cGUoKCkgPT4gQmFua1RyYW5zYWN0aW9uKVxuICBiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbjtcblxuICB0eXBlOiBEZXByZWNpYXRpb25UeXBlRW51bSA9IERlcHJlY2lhdGlvblR5cGVFbnVtLlBMQU5UX0VRVUlQTUVOVDtcblxuICByZWNlaXB0OiBJQXNzZXQ7XG5cbiAgaXNDYXBpdGFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IERlcHJlY2lhdGlvblR5cGVFbnVtLkNBUElUQUxfV09SS1M7XG4gIH1cblxuICBpc0JvcnJvd2luZ0V4cGVuc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gRGVwcmVjaWF0aW9uVHlwZUVudW0uQk9SUk9XSU5HX0VYUEVOU0VTO1xuICB9XG5cbiAgaXNBc3NldCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBEZXByZWNpYXRpb25UeXBlRW51bS5QTEFOVF9FUVVJUE1FTlQ7XG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgaWYgZGVwcmVjaWF0aW9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gd3JpdHRlbiBvZmYgY2F0ZWdvcnlcbiAgICogZGV0YWlscyBpbiBwcm9qZWN0IGRvY3VtZW50YXRpb25cbiAgICogQFRPRE8gbmV3IEZpbmFuY2lhbFllYXIodGhpcy53cml0ZU9mZkRhdGUpID09PSBuZXcgRmluYW5jaWFsWWVhcigpXG4gICAqL1xuICBpc1dyaXR0ZW5PZmYoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNBc3NldCAmJiB0aGlzLndyaXRlT2ZmRGF0ZSAmJiBuZXcgRmluYW5jaWFsWWVhcih0aGlzLndyaXRlT2ZmRGF0ZSkueWVhciA9PT0gdGhpcy5maW5hbmNpYWxZZWFyO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGRlcHJlY2lhdGlvbiBpcyBQbGFudCAmIEVxdWlwbWVudFxuICAgKi9cbiAgaXNQbGFudEVxdWlwbWVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0Fzc2V0KCkgJiYgIXRoaXMuaXNXcml0dGVuT2ZmKCkgJiYgIXRoaXMuaXNMb3dWYWx1ZVBvb2woKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBpZiBkZXByZWNpYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCBpbiBsb3cgdmFsdWUgcG9vbFxuICAgKiBkZXRhaWxzIGluIHByb2plY3QgZG9jdW1lbnRhdGlvblxuICAgKiBAVE9ETyBuZXcgRmluYW5jaWFsWWVhcih0aGlzLndyaXRlT2ZmRGF0ZSkgPT09IG5ldyBGaW5hbmNpYWxZZWFyKClcbiAgICovXG4gIGlzTG93VmFsdWVQb29sKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzQXNzZXQgJiZcbiAgICAgIHRoaXMuY2FsY3VsYXRpb24gPT09IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bS5ESU1JTklTSElORyAmJlxuICAgICAgdGhpcy5hbW91bnQgPiBEZXByZWNpYXRpb24uV1JJVFRFTl9PRkZfVEhSRVNIT0xEICYmXG4gICAgICB0aGlzLmFtb3VudCA8PSBEZXByZWNpYXRpb24uTE9XX1ZBTFVFX1BPT0xfVEhSRVNIT0xEO1xuICB9XG5cbiAgaXNQcmltZUNvc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRpb24gPT09IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bS5QUklNRV9DT1NUO1xuICB9XG5cbiAgaXNEaW1pbmlzaGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGlvbiA9PT0gRGVwcmVjaWF0aW9uQ2FsY3VsYXRpb25FbnVtLkRJTUlOSVNISU5HO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGRlcHJlY2lhdGlvbiBjaGFydCBhY2NvdW50cyBoZWFkaW5nIHJlbGF0ZWQgdG8gdmVoaWNsZXMgY2F0ZWdvcnlcbiAgICovXG4gIGlzVmVoaWNsZURlcHJlY2lhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydEFjY291bnRzLmhlYWRpbmc/LmlkID09PSBDaGFydEFjY291bnRzSGVhZGluZ1ZlaGljbGVMaXN0RW51bS5ERVBSRUNJQVRJT05fVkVISUNMRVM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRlcHJlY2lhdGlvbiBwdXJjaGFzZSBkYXRlXG4gICAqL1xuICBnZXREYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmRhdGU7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gd3JvbmcgeWVhciwgdXNlIGN1cnJlbnQgZmluYW5jaWFsIHllYXIsIGNoZWNrIGV2ZXJ5d2hlcmVcbiAgICovXG4gIGdldCBjdXJyZW50WWVhckZvcmVjYXN0KCk6IERlcHJlY2lhdGlvbkZvcmVjYXN0IHtcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMuZmluZCgoZm9yZWNhc3Q6IERlcHJlY2lhdGlvbkZvcmVjYXN0KTogYm9vbGVhbiA9PiB7XG4gICAgICByZXR1cm4gZm9yZWNhc3QuZmluYW5jaWFsWWVhciA9PT0gbmV3IEZpbmFuY2lhbFllYXIoKS55ZWFyO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Rm9yZWNhc3RCeVllYXIoeWVhcjogbnVtYmVyKTogRGVwcmVjaWF0aW9uRm9yZWNhc3Qge1xuICAgIHJldHVybiB0aGlzLmZvcmVjYXN0cy5maW5kKChmb3JlY2FzdDogRGVwcmVjaWF0aW9uRm9yZWNhc3QpOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBmb3JlY2FzdC5maW5hbmNpYWxZZWFyID09PSB5ZWFyO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2xhaW1BbW91bnRCeVllYXIoeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGb3JlY2FzdEJ5WWVhcih5ZWFyKT8uY2xhaW1BbW91bnQgfHwgMDtcbiAgfVxuXG4gIGdldENsb3NlQmFsYW5jZUJ5WWVhcih5ZWFyOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEZvcmVjYXN0QnlZZWFyKHllYXIpPy5jbG9zZUJhbGFuY2UgfHwgMDtcbiAgfVxuXG4gIGlzQnVpbGRpbmdBdENvc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRBY2NvdW50cy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkJVSUxESU5HX0FUX0NPU1Q7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uIGZyb20gY3VycmVudCBkZXByZWNpYXRpb25cbiAgICovXG4gIHRvVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MoXG4gICAgICBUcmFuc2FjdGlvbixcbiAgICAgIE9iamVjdC5hc3NpZ24oe30sIHRoaXMsICB7YW1vdW50OiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3QuYW1vdW50fSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsYWltQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdD8uY2xhaW1BbW91bnQgfHwgMDtcbiAgfVxufVxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjaWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0seURBQXlELENBQUM7QUFDOUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE1BQU0sT0FBTyxZQUFhLFNBQVEsZ0JBQWdCO0lBQWxEOztRQXNDRSxjQUFTLEdBQTJCLEVBQUUsQ0FBQztRQVF2QyxTQUFJLEdBQXlCLG9CQUFvQixDQUFDLGVBQWUsQ0FBQztJQTBHcEUsQ0FBQztJQXRHQyxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFD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WUFBWSxDQUFDLHdCQUF3QixDQUFDO29CQUN4RyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BHLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7K0NBQ3FDO0FBR3ZDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQzttREFDRztBQUc3QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7cURBQ0siLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXByZWNpYXRpb24gYXMgRGVwcmVjaWF0aW9uQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9kZXByZWNpYXRpb24nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9kZXByZWNpYXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2RlcHJlY2lhdGlvbi1jYWxjdWxhdGlvbi5lbnVtJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNIZWFkaW5nVmVoaWNsZUxpc3RFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtaGVhZGluZy12ZWhpY2xlLWxpc3QuZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzTGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1saXN0LmVudW0nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3QgfSBmcm9tICcuL2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3QnO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uRm9yZWNhc3QgfSBmcm9tICcuL2RlcHJlY2lhdGlvbi1mb3JlY2FzdCc7XG5pbXBvcnQgeyBGaW5hbmNpYWxZZWFyIH0gZnJvbSAnLi4vZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cyB9IGZyb20gJy4uL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzJztcbmltcG9ydCB7IEJhbmtUcmFuc2FjdGlvbiB9IGZyb20gJy4uL2JhbmsvYmFuay10cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBJVGFuayB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFuay5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVJlY2VpcHQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlY2VpcHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElBc3NldCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXNzZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcywgVHJhbnNmb3JtLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBEZXByZWNpYXRpb24gZXh0ZW5kcyBEZXByZWNpYXRpb25CYXNlIGltcGxlbWVudHMgSVRhbmssIElSZWNlaXB0IHtcbiAgc3RhdGljIFdSSVRURU5fT0ZGX1RIUkVTSE9MRCA9IDMwMDtcbiAgc3RhdGljIExPV19WQUxVRV9QT09MX1RIUkVTSE9MRCA9IDEwMDA7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgcHVyY2hhc2VEYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGRhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgbG93VmFsdWVQb29sRGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICB3cml0ZU9mZk1hbnVhbERhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgd3JpdGVPZmZEYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IERlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0KVxuICBkZXByZWNpYXRpb25DYXBpdGFsUHJvamVjdDogRGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3Q7XG5cbiAgQFR5cGUoKCkgPT4gRGVwcmVjaWF0aW9uRm9yZWNhc3QpXG4gIEBUcmFuc2Zvcm0oKHt2YWx1ZSwgb2JqfSkgPT4ge1xuICAgIC8vIHZhbHVlID0gYXJyYXkgb2YgRGVwcmVjaWF0aW9uRm9yZWNhc3RcbiAgICAvLyBvYmogPSBwbGFpbiAod2hvbGUgRGVwcmVjaWF0aW9uIG9iamVjdClcbiAgICAvLyBTZXQgaXNMVlAgZmxhZyBmb3IgZWFjaCBEZXByZWNpYXRpb25Gb3JlY2FzdFxuICAgIC8vIEBUT0RPIHJlZmFjdG9yXG4gICAgdmFsdWUuZm9yRWFjaCgoZm9yZWNhc3Q6IERlcHJlY2lhdGlvbkZvcmVjYXN0KTogdm9pZCA9PiB7XG4gICAgICBmb3JlY2FzdC5pc0xWUCA9XG4gICAgICAgIGZvcmVjYXN0LmNsb3NlQmFsYW5jZSA8IDEwMDAgJiZcbiAgICAgICAgb2JqLmNhbGN1bGF0aW9uID09PSBEZXByZWNpYXRpb25DYWxjdWxhdGlvbkVudW0uRElNSU5JU0hJTkcgJiZcbiAgICAgICAgb2JqLnR5cGUgPT09IERlcHJlY2lhdGlvblR5cGVFbnVtLlBMQU5UX0VRVUlQTUVOVCAmJlxuICAgICAgICAhKG9iai5hbW91bnQgPiBEZXByZWNpYXRpb24uV1JJVFRFTl9PRkZfVEhSRVNIT0xEICYmIG9iai5hbW91bnQgPCBEZXByZWNpYXRpb24uTE9XX1ZBTFVFX1BPT0xfVEhSRVNIT0xEKSAmJlxuICAgICAgICAhKG9iai53cml0ZU9mZkRhdGUgJiYgbmV3IEZpbmFuY2lhbFllYXIobmV3IERhdGUob2JqLndyaXRlT2ZmRGF0ZSkpLnllYXIgPT09IG9iai5maW5hbmNpYWxZZWFyKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH0pXG4gIGZvcmVjYXN0czogRGVwcmVjaWF0aW9uRm9yZWNhc3RbXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IENoYXJ0QWNjb3VudHMpXG4gIGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHM7XG5cbiAgQFR5cGUoKCkgPT4gQmFua1RyYW5zYWN0aW9uKVxuICBiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbjtcblxuICB0eXBlOiBEZXByZWNpYXRpb25UeXBlRW51bSA9IERlcHJlY2lhdGlvblR5cGVFbnVtLlBMQU5UX0VRVUlQTUVOVDtcblxuICByZWNlaXB0OiBJQXNzZXQ7XG5cbiAgaXNDYXBpdGFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IERlcHJlY2lhdGlvblR5cGVFbnVtLkNBUElUQUxfV09SS1M7XG4gIH1cblxuICBpc0JvcnJvd2luZ0V4cGVuc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gRGVwcmVjaWF0aW9uVHlwZUVudW0uQk9SUk9XSU5HX0VYUEVOU0VTO1xuICB9XG5cbiAgaXNBc3NldCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBEZXByZWNpYXRpb25UeXBlRW51bS5QTEFOVF9FUVVJUE1FTlQ7XG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgaWYgZGVwcmVjaWF0aW9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gd3JpdHRlbiBvZmYgY2F0ZWdvcnlcbiAgICogZGV0YWlscyBpbiBwcm9qZWN0IGRvY3VtZW50YXRpb25cbiAgICogQFRPRE8gbmV3IEZpbmFuY2lhbFllYXIodGhpcy53cml0ZU9mZkRhdGUpID09PSBuZXcgRmluYW5jaWFsWWVhcigpXG4gICAqL1xuICBpc1dyaXR0ZW5PZmYoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNBc3NldCAmJiB0aGlzLndyaXRlT2ZmRGF0ZSAmJiBuZXcgRmluYW5jaWFsWWVhcih0aGlzLndyaXRlT2ZmRGF0ZSkueWVhciA9PT0gdGhpcy5maW5hbmNpYWxZZWFyO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGRlcHJlY2lhdGlvbiBpcyBQbGFudCAmIEVxdWlwbWVudFxuICAgKi9cbiAgaXNQbGFudEVxdWlwbWVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0Fzc2V0KCkgJiYgIXRoaXMuaXNXcml0dGVuT2ZmKCkgJiYgIXRoaXMuaXNMb3dWYWx1ZVBvb2woKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBpZiBkZXByZWNpYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCBpbiBsb3cgdmFsdWUgcG9vbFxuICAgKiBkZXRhaWxzIGluIHByb2plY3QgZG9jdW1lbnRhdGlvblxuICAgKiBAVE9ETyBuZXcgRmluYW5jaWFsWWVhcih0aGlzLndyaXRlT2ZmRGF0ZSkgPT09IG5ldyBGaW5hbmNpYWxZZWFyKClcbiAgICovXG4gIGlzTG93VmFsdWVQb29sKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzQXNzZXQgJiZcbiAgICAgIHRoaXMuY2FsY3VsYXRpb24gPT09IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bS5ESU1JTklTSElORyAmJlxuICAgICAgdGhpcy5hbW91bnQgPiBEZXByZWNpYXRpb24uV1JJVFRFTl9PRkZfVEhSRVNIT0xEICYmXG4gICAgICB0aGlzLmFtb3VudCA8PSBEZXByZWNpYXRpb24uTE9XX1ZBTFVFX1BPT0xfVEhSRVNIT0xEO1xuICB9XG5cbiAgaXNQcmltZUNvc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRpb24gPT09IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bS5QUklNRV9DT1NUO1xuICB9XG5cbiAgaXNEaW1pbmlzaGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGlvbiA9PT0gRGVwcmVjaWF0aW9uQ2FsY3VsYXRpb25FbnVtLkRJTUlOSVNISU5HO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGRlcHJlY2lhdGlvbiBjaGFydCBhY2NvdW50cyBoZWFkaW5nIHJlbGF0ZWQgdG8gdmVoaWNsZXMgY2F0ZWdvcnlcbiAgICovXG4gIGlzVmVoaWNsZURlcHJlY2lhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydEFjY291bnRzLmhlYWRpbmc/LmlkID09PSBDaGFydEFjY291bnRzSGVhZGluZ1ZlaGljbGVMaXN0RW51bS5ERVBSRUNJQVRJT05fVkVISUNMRVM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRlcHJlY2lhdGlvbiBwdXJjaGFzZSBkYXRlXG4gICAqL1xuICBnZXREYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmRhdGU7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gd3JvbmcgeWVhciwgdXNlIGN1cnJlbnQgZmluYW5jaWFsIHllYXIsIGNoZWNrIGV2ZXJ5d2hlcmVcbiAgICovXG4gIGdldCBjdXJyZW50WWVhckZvcmVjYXN0KCk6IERlcHJlY2lhdGlvbkZvcmVjYXN0IHtcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMuZmluZCgoZm9yZWNhc3Q6IERlcHJlY2lhdGlvbkZvcmVjYXN0KTogYm9vbGVhbiA9PiB7XG4gICAgICByZXR1cm4gZm9yZWNhc3QuZmluYW5jaWFsWWVhciA9PT0gbmV3IEZpbmFuY2lhbFllYXIoKS55ZWFyO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Rm9yZWNhc3RCeVllYXIoeWVhcjogbnVtYmVyKTogRGVwcmVjaWF0aW9uRm9yZWNhc3Qge1xuICAgIHJldHVybiB0aGlzLmZvcmVjYXN0cy5maW5kKChmb3JlY2FzdDogRGVwcmVjaWF0aW9uRm9yZWNhc3QpOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBmb3JlY2FzdC5maW5hbmNpYWxZZWFyID09PSB5ZWFyO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2xhaW1BbW91bnRCeVllYXIoeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGb3JlY2FzdEJ5WWVhcih5ZWFyKT8uY2xhaW1BbW91bnQgfHwgMDtcbiAgfVxuXG4gIGdldENsb3NlQmFsYW5jZUJ5WWVhcih5ZWFyOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEZvcmVjYXN0QnlZZWFyKHllYXIpPy5jbG9zZUJhbGFuY2UgfHwgMDtcbiAgfVxuXG4gIGlzQnVpbGRpbmdBdENvc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRBY2NvdW50cy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkJVSUxESU5HX0FUX0NPU1Q7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uIGZyb20gY3VycmVudCBkZXByZWNpYXRpb25cbiAgICovXG4gIHRvVHJhbnNhY3Rpb24ocGFyYW1zID0ge30pOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyhcbiAgICAgIFRyYW5zYWN0aW9uLFxuICAgICAgT2JqZWN0LmFzc2lnbihwYXJhbXMsIHRoaXMsICB7YW1vdW50OiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3QuYW1vdW50fSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsYWltQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdD8uY2xhaW1BbW91bnQgfHwgMDtcbiAgfVxufVxuIl19
@@ -0,0 +1,19 @@
1
+ import { PropertyReportItem } from './property-report-item';
2
+ /**
3
+ * Const with labels based on depreciation type
4
+ */
5
+ const DEPRECIATION_TYPE_LABELS = {
6
+ 1: 'Plant & Equipment',
7
+ 2: 'Building & Improvements'
8
+ };
9
+ /**
10
+ * Class with depreciation-based property transactions report entities
11
+ */
12
+ export class PropertyReportItemDepreciation extends PropertyReportItem {
13
+ constructor(depreciations, property, chartAccounts) {
14
+ super(property, chartAccounts);
15
+ this.amount = Math.abs(depreciations.getCurrentYearForecastAmount());
16
+ this.description = DEPRECIATION_TYPE_LABELS[depreciations.first.type];
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcmVwb3J0LWl0ZW0tZGVwcmVjaWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9yZXBvcnQvcHJvcGVydHkvcHJvcGVydHktcmVwb3J0LWl0ZW0tZGVwcmVjaWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSzVEOztHQUVHO0FBQ0gsTUFBTSx3QkFBd0IsR0FBOEI7SUFDMUQsQ0FBQyxFQUFFLG1CQUFtQjtJQUN0QixDQUFDLEVBQUUseUJBQXlCO0NBQzdCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxrQkFBa0I7SUFDcEUsWUFDRSxhQUFxQyxFQUNyQyxRQUFrQixFQUNsQixhQUE0QjtRQUU1QixLQUFLLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxXQUFXLEdBQUcsd0JBQXdCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN2RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9wZXJ0eVJlcG9ydEl0ZW0gfSBmcm9tICcuL3Byb3BlcnR5LXJlcG9ydC1pdGVtJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vcHJvcGVydHkvcHJvcGVydHknO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cyB9IGZyb20gJy4uLy4uL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9kZXByZWNpYXRpb24uY29sbGVjdGlvbic7XG5cbi8qKlxuICogQ29uc3Qgd2l0aCBsYWJlbHMgYmFzZWQgb24gZGVwcmVjaWF0aW9uIHR5cGVcbiAqL1xuY29uc3QgREVQUkVDSUFUSU9OX1RZUEVfTEFCRUxTOiB7IFtrZXk6IG51bWJlcl06IHN0cmluZyB9ID0ge1xuICAxOiAnUGxhbnQgJiBFcXVpcG1lbnQnLFxuICAyOiAnQnVpbGRpbmcgJiBJbXByb3ZlbWVudHMnXG59O1xuXG4vKipcbiAqIENsYXNzIHdpdGggZGVwcmVjaWF0aW9uLWJhc2VkIHByb3BlcnR5IHRyYW5zYWN0aW9ucyByZXBvcnQgZW50aXRpZXNcbiAqL1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5UmVwb3J0SXRlbURlcHJlY2lhdGlvbiBleHRlbmRzIFByb3BlcnR5UmVwb3J0SXRlbSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHNcbiAgKSB7XG4gICAgc3VwZXIocHJvcGVydHksIGNoYXJ0QWNjb3VudHMpO1xuICAgIHRoaXMuYW1vdW50ID0gTWF0aC5hYnMoZGVwcmVjaWF0aW9ucy5nZXRDdXJyZW50WWVhckZvcmVjYXN0QW1vdW50KCkpO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBERVBSRUNJQVRJT05fVFlQRV9MQUJFTFNbZGVwcmVjaWF0aW9ucy5maXJzdC50eXBlXVxuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { PropertyReportItem } from './property-report-item';
2
+ /**
3
+ * Class with transaction-based property transactions report entities
4
+ */
5
+ export class PropertyReportItemTransaction extends PropertyReportItem {
6
+ constructor(transactions, property, chartAccounts) {
7
+ super(property, chartAccounts);
8
+ this.amount = Math.abs(transactions.amount);
9
+ this.description = chartAccounts.name;
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcmVwb3J0LWl0ZW0tdHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3JlcG9ydC9wcm9wZXJ0eS9wcm9wZXJ0eS1yZXBvcnQtaXRlbS10cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUs1RDs7R0FFRztBQUNILE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxrQkFBa0I7SUFDbkUsWUFDRSxZQUFtQyxFQUNuQyxRQUFrQixFQUNsQixhQUE0QjtRQUU1QixLQUFLLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFBO0lBQ3ZDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5UmVwb3J0SXRlbSB9IGZyb20gJy4vcHJvcGVydHktcmVwb3J0LWl0ZW0nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvdHJhbnNhY3Rpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi8uLi9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cyc7XG5cbi8qKlxuICogQ2xhc3Mgd2l0aCB0cmFuc2FjdGlvbi1iYXNlZCBwcm9wZXJ0eSB0cmFuc2FjdGlvbnMgcmVwb3J0IGVudGl0aWVzXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVJlcG9ydEl0ZW1UcmFuc2FjdGlvbiBleHRlbmRzIFByb3BlcnR5UmVwb3J0SXRlbSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBjaGFydEFjY291bnRzOiBDaGFydEFjY291bnRzXG4gICkge1xuICAgIHN1cGVyKHByb3BlcnR5LCBjaGFydEFjY291bnRzKTtcbiAgICB0aGlzLmFtb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5hbW91bnQpO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBjaGFydEFjY291bnRzLm5hbWVcbiAgfVxufVxuIl19
@@ -0,0 +1,27 @@
1
+ import { CHART_ACCOUNTS_CATEGORIES } from '../../chart-accounts/chart-accounts-categories.const';
2
+ /**
3
+ * Class with property transactions report entities
4
+ */
5
+ export class PropertyReportItem {
6
+ constructor(property, chartAccounts) {
7
+ this.chartAccounts = chartAccounts;
8
+ this.propertyId = property.id;
9
+ this.claimPercent = property.claimPercent;
10
+ this.sharePercent = property.sharePercent;
11
+ this.subCode = chartAccounts.taxReturnItem.subCode;
12
+ this.description = chartAccounts.name;
13
+ }
14
+ get claimAmount() {
15
+ return +(this.amount * (this.claimPercent / 100)).toFixed(2);
16
+ }
17
+ get shareClaimAmount() {
18
+ return this.claimAmount * (this.sharePercent / 100);
19
+ }
20
+ isIncome() {
21
+ return CHART_ACCOUNTS_CATEGORIES.income.includes(this.chartAccounts.category);
22
+ }
23
+ isExpense() {
24
+ return CHART_ACCOUNTS_CATEGORIES.expense.includes(this.chartAccounts.category);
25
+ }
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcmVwb3J0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3JlcG9ydC9wcm9wZXJ0eS9wcm9wZXJ0eS1yZXBvcnQtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUVqRzs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFhN0IsWUFDRSxRQUFrQixFQUNsQixhQUE0QjtRQUU1QixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1FBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQTtJQUN2QyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8seUJBQXlCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vcHJvcGVydHkvcHJvcGVydHknO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cyB9IGZyb20gJy4uLy4uL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzJztcbmltcG9ydCB7IENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMgfSBmcm9tICcuLi8uLi9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cy1jYXRlZ29yaWVzLmNvbnN0JztcblxuLyoqXG4gKiBDbGFzcyB3aXRoIHByb3BlcnR5IHRyYW5zYWN0aW9ucyByZXBvcnQgZW50aXRpZXNcbiAqL1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5UmVwb3J0SXRlbSB7XG4gIGFtb3VudDogbnVtYmVyO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYXggcmV0dXJuIGl0ZW0gc3ViLWNvZGVcbiAgICovXG4gIHN1YkNvZGU6IHN0cmluZztcbiAgc2hhcmVQZXJjZW50OiBudW1iZXI7XG4gIGNsYWltUGVyY2VudDogbnVtYmVyO1xuICBwcm9wZXJ0eUlkOiBudW1iZXI7XG4gIGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHNcbiAgKSB7XG4gICAgdGhpcy5jaGFydEFjY291bnRzID0gY2hhcnRBY2NvdW50cztcbiAgICB0aGlzLnByb3BlcnR5SWQgPSBwcm9wZXJ0eS5pZDtcbiAgICB0aGlzLmNsYWltUGVyY2VudCA9IHByb3BlcnR5LmNsYWltUGVyY2VudDtcbiAgICB0aGlzLnNoYXJlUGVyY2VudCA9IHByb3BlcnR5LnNoYXJlUGVyY2VudDtcbiAgICB0aGlzLnN1YkNvZGUgPSBjaGFydEFjY291bnRzLnRheFJldHVybkl0ZW0uc3ViQ29kZTtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gY2hhcnRBY2NvdW50cy5uYW1lXG4gIH1cblxuICBnZXQgY2xhaW1BbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKyh0aGlzLmFtb3VudCAqICh0aGlzLmNsYWltUGVyY2VudCAvIDEwMCkpLnRvRml4ZWQoMik7XG4gIH1cblxuICBnZXQgc2hhcmVDbGFpbUFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNsYWltQW1vdW50ICogKHRoaXMuc2hhcmVQZXJjZW50IC8gMTAwKTtcbiAgfVxuXG4gIGlzSW5jb21lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmluY29tZS5pbmNsdWRlcyh0aGlzLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkpO1xuICB9XG5cbiAgaXNFeHBlbnNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmV4cGVuc2UuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,76 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { combineLatest } from 'rxjs';
3
+ import { DepreciationCollection } from '../../../collections/depreciation.collection';
4
+ import { CHART_ACCOUNTS_CATEGORIES } from '../../../models/chart-accounts/chart-accounts-categories.const';
5
+ import { Collection } from '../../../collections/collection';
6
+ import { CollectionDictionary } from '../../../collections/collection-dictionary';
7
+ import { TransactionCollection } from '../../../collections/transaction.collection';
8
+ import { map } from 'rxjs/operators';
9
+ import { PropertyCollection } from '../../../collections/property/property.collection';
10
+ import { PropertyReportItemTransactionCollection } from '../../../collections/report/property/property-report-item-transaction.collection';
11
+ import { PropertyReportItemDepreciationCollection } from '../../../collections/report/property/property-report-item-depreciation.collection';
12
+ import { PropertyReportItemCollection } from '../../../collections/report/property/property-report-item.collection';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "../../http/property/property.service";
15
+ import * as i2 from "../../http/transaction/transaction.service";
16
+ import * as i3 from "../../http/depreciation/depreciation.service";
17
+ import * as i4 from "../../http/chart-accounts/chart-accounts.service";
18
+ /**
19
+ * Service to handle Property transactions report items data (get income / expense report items, e.t.c.)
20
+ */
21
+ export class PropertyTransactionReportService {
22
+ constructor(propertyService, transactionService, depreciationService, chartAccountsService) {
23
+ this.propertyService = propertyService;
24
+ this.transactionService = transactionService;
25
+ this.depreciationService = depreciationService;
26
+ this.chartAccountsService = chartAccountsService;
27
+ }
28
+ /**
29
+ * Get collection of report items based on transactions & depreciations
30
+ */
31
+ get() {
32
+ return combineLatest([
33
+ this.propertyService.get(),
34
+ this.getTransactions(),
35
+ this.getDepreciations(),
36
+ this.chartAccountsService.getChartAccounts()
37
+ ]).pipe(map(([properties, transactions, depreciations, chartAccounts]) => {
38
+ return new CollectionDictionary(this.create(transactions, depreciations, new PropertyCollection(properties), new Collection(chartAccounts)), 'propertyId');
39
+ }));
40
+ }
41
+ create(transactions, depreciations, properties, chartAccounts) {
42
+ return new PropertyReportItemCollection([
43
+ ...new PropertyReportItemTransactionCollection(transactions, properties, chartAccounts).items,
44
+ ...new PropertyReportItemDepreciationCollection(depreciations, properties, chartAccounts).items,
45
+ ]);
46
+ }
47
+ /**
48
+ * Get collection of property transactions
49
+ */
50
+ getTransactions() {
51
+ return this.transactionService.get().pipe(map((transactions) => {
52
+ return new TransactionCollection(transactions)
53
+ .getByChartAccountsCategories(CHART_ACCOUNTS_CATEGORIES.property);
54
+ }));
55
+ }
56
+ /**
57
+ * Get list of asset & capital property depreciations
58
+ */
59
+ getDepreciations() {
60
+ return this.depreciationService.get().pipe(map((depreciations) => {
61
+ return new DepreciationCollection(depreciations)
62
+ .getByChartAccountsCategories(CHART_ACCOUNTS_CATEGORIES.property)
63
+ // we don't need borrowing expenses for this report
64
+ .getWithoutBorrowingExpenses();
65
+ }));
66
+ }
67
+ }
68
+ PropertyTransactionReportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyTransactionReportService, deps: [{ token: i1.PropertyService }, { token: i2.TransactionService }, { token: i3.DepreciationService }, { token: i4.ChartAccountsService }], target: i0.ɵɵFactoryTarget.Injectable });
69
+ PropertyTransactionReportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyTransactionReportService, providedIn: 'root' });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyTransactionReportService, decorators: [{
71
+ type: Injectable,
72
+ args: [{
73
+ providedIn: 'root'
74
+ }]
75
+ }], ctorParameters: function () { return [{ type: i1.PropertyService }, { type: i2.TransactionService }, { type: i3.DepreciationService }, { type: i4.ChartAccountsService }]; } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdHJhbnNhY3Rpb24tcmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXRyYW5zYWN0aW9uLXJlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUtqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUMzRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3ZGLE9BQU8sRUFDTCx1Q0FBdUMsRUFDeEMsTUFBTSxrRkFBa0YsQ0FBQztBQUMxRixPQUFPLEVBQ0wsd0NBQXdDLEVBQ3pDLE1BQU0sbUZBQW1GLENBQUM7QUFFM0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7Ozs7OztBQUVwSDs7R0FFRztBQUlILE1BQU0sT0FBTyxnQ0FBZ0M7SUFNM0MsWUFDVSxlQUFnQyxFQUNoQyxrQkFBc0MsRUFDdEMsbUJBQXdDLEVBQ3hDLG9CQUEwQztRQUgxQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7SUFFcEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRztRQUNELE9BQU8sYUFBYSxDQUFDO1lBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUE0QjtZQUNwRCxJQUFJLENBQUMsZUFBZSxFQUF1QztZQUMzRCxJQUFJLENBQUMsZ0JBQWdCLEVBQXdDO1lBQzdELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsRUFBaUM7U0FDNUUsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDL0QsT0FBTyxJQUFJLG9CQUFvQixDQUM3QixJQUFJLENBQUMsTUFBTSxDQUNULFlBQVksRUFDWixhQUFhLEVBQ2IsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFDbEMsSUFBSSxVQUFVLENBQUMsYUFBYSxDQUFDLENBQzlCLEVBQ0QsWUFBWSxDQUNiLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FDWixZQUFtQyxFQUNuQyxhQUFxQyxFQUNyQyxVQUE4QixFQUM5QixhQUF3QztRQUV4QyxPQUFPLElBQUksNEJBQTRCLENBQUM7WUFDdEMsR0FBRyxJQUFJLHVDQUF1QyxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUMsS0FBSztZQUM3RixHQUFHLElBQUksd0NBQXdDLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxLQUFLO1NBQ2hHLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUN2QyxHQUFHLENBQUMsQ0FBQyxZQUEyQixFQUFFLEVBQUU7WUFDbEMsT0FBTyxJQUFJLHFCQUFxQixDQUFDLFlBQVksQ0FBQztpQkFDM0MsNEJBQTRCLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQjtRQUN0QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3hDLEdBQUcsQ0FBQyxDQUFDLGFBQTZCLEVBQUUsRUFBRTtZQUNwQyxPQUFPLElBQUksc0JBQXNCLENBQUMsYUFBYSxDQUFDO2lCQUM3Qyw0QkFBNEIsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUM7Z0JBQ2pFLG1EQUFtRDtpQkFDbEQsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzs7OEhBMUVVLGdDQUFnQztrSUFBaEMsZ0NBQWdDLGNBRi9CLE1BQU07NEZBRVAsZ0NBQWdDO2tCQUg1QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvcHJvcGVydHkvcHJvcGVydHkuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMnO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcmllcy5jb25zdCc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvY29sbGVjdGlvbic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24tZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFByb3BlcnR5Q29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL3Byb3BlcnR5L3Byb3BlcnR5LmNvbGxlY3Rpb24nO1xuaW1wb3J0IHtcbiAgUHJvcGVydHlSZXBvcnRJdGVtVHJhbnNhY3Rpb25Db2xsZWN0aW9uXG59IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL3JlcG9ydC9wcm9wZXJ0eS9wcm9wZXJ0eS1yZXBvcnQtaXRlbS10cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7XG4gIFByb3BlcnR5UmVwb3J0SXRlbURlcHJlY2lhdGlvbkNvbGxlY3Rpb25cbn0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLWRlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB7IFByb3BlcnR5UmVwb3J0SXRlbUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9yZXBvcnQvcHJvcGVydHkvcHJvcGVydHktcmVwb3J0LWl0ZW0uY29sbGVjdGlvbic7XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgUHJvcGVydHkgdHJhbnNhY3Rpb25zIHJlcG9ydCBpdGVtcyBkYXRhIChnZXQgaW5jb21lIC8gZXhwZW5zZSByZXBvcnQgaXRlbXMsIGUudC5jLilcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlUcmFuc2FjdGlvblJlcG9ydFNlcnZpY2Uge1xuICBwcm9wZXJ0aWVzOiBQcm9wZXJ0eVtdO1xuICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbjtcbiAgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbjtcbiAgY2hhcnRBY2NvdW50czogQ29sbGVjdGlvbjxDaGFydEFjY291bnRzPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHByb3BlcnR5U2VydmljZTogUHJvcGVydHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkZXByZWNpYXRpb25TZXJ2aWNlOiBEZXByZWNpYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhcnRBY2NvdW50c1NlcnZpY2U6IENoYXJ0QWNjb3VudHNTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIHJlcG9ydCBpdGVtcyBiYXNlZCBvbiB0cmFuc2FjdGlvbnMgJiBkZXByZWNpYXRpb25zXG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uRGljdGlvbmFyeTxQcm9wZXJ0eVJlcG9ydEl0ZW1Db2xsZWN0aW9uPj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldCgpIGFzIE9ic2VydmFibGU8UHJvcGVydHlbXT4sXG4gICAgICB0aGlzLmdldFRyYW5zYWN0aW9ucygpIGFzIE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPixcbiAgICAgIHRoaXMuZ2V0RGVwcmVjaWF0aW9ucygpIGFzIE9ic2VydmFibGU8RGVwcmVjaWF0aW9uQ29sbGVjdGlvbj4sXG4gICAgICB0aGlzLmNoYXJ0QWNjb3VudHNTZXJ2aWNlLmdldENoYXJ0QWNjb3VudHMoKSBhcyBPYnNlcnZhYmxlPENoYXJ0QWNjb3VudHNbXT5cbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcHJvcGVydGllcywgdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zLCBjaGFydEFjY291bnRzXSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IENvbGxlY3Rpb25EaWN0aW9uYXJ5KFxuICAgICAgICAgIHRoaXMuY3JlYXRlKFxuICAgICAgICAgICAgdHJhbnNhY3Rpb25zLFxuICAgICAgICAgICAgZGVwcmVjaWF0aW9ucyxcbiAgICAgICAgICAgIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24ocHJvcGVydGllcyksXG4gICAgICAgICAgICBuZXcgQ29sbGVjdGlvbihjaGFydEFjY291bnRzKVxuICAgICAgICAgICksXG4gICAgICAgICAgJ3Byb3BlcnR5SWQnXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlKFxuICAgIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLFxuICAgIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24sXG4gICAgcHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLFxuICAgIGNoYXJ0QWNjb3VudHM6IENvbGxlY3Rpb248Q2hhcnRBY2NvdW50cz5cbiAgKTogUHJvcGVydHlSZXBvcnRJdGVtQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eVJlcG9ydEl0ZW1Db2xsZWN0aW9uKFtcbiAgICAgIC4uLm5ldyBQcm9wZXJ0eVJlcG9ydEl0ZW1UcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zLCBwcm9wZXJ0aWVzLCBjaGFydEFjY291bnRzKS5pdGVtcyxcbiAgICAgIC4uLm5ldyBQcm9wZXJ0eVJlcG9ydEl0ZW1EZXByZWNpYXRpb25Db2xsZWN0aW9uKGRlcHJlY2lhdGlvbnMsIHByb3BlcnRpZXMsIGNoYXJ0QWNjb3VudHMpLml0ZW1zLFxuICAgIF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIHByb3BlcnR5IHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRUcmFuc2FjdGlvbnMoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0KCkucGlwZShcbiAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKHRyYW5zYWN0aW9ucylcbiAgICAgICAgICAuZ2V0QnlDaGFydEFjY291bnRzQ2F0ZWdvcmllcyhDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnByb3BlcnR5KTtcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIGFzc2V0ICYgY2FwaXRhbCBwcm9wZXJ0eSBkZXByZWNpYXRpb25zXG4gICAqL1xuICBwcml2YXRlIGdldERlcHJlY2lhdGlvbnMoKTogT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZGVwcmVjaWF0aW9uU2VydmljZS5nZXQoKS5waXBlKFxuICAgICAgbWFwKChkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25bXSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oZGVwcmVjaWF0aW9ucylcbiAgICAgICAgICAuZ2V0QnlDaGFydEFjY291bnRzQ2F0ZWdvcmllcyhDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnByb3BlcnR5KVxuICAgICAgICAgIC8vIHdlIGRvbid0IG5lZWQgYm9ycm93aW5nIGV4cGVuc2VzIGZvciB0aGlzIHJlcG9ydFxuICAgICAgICAgIC5nZXRXaXRob3V0Qm9ycm93aW5nRXhwZW5zZXMoKTtcbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=