taxtank-core 0.33.34 → 0.33.36

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,14 +1,10 @@
1
1
  import { Collection } from '../collection';
2
2
  import flatten from 'lodash/flatten';
3
- import { SoleInvoiceStateEnum } from '../../db/Enums';
4
- import { CollectionDictionary } from '../collection-dictionary';
3
+ import { SoleInvoiceStateEnum, SoleInvoiceStatusesEnum } from '../../db/Enums';
5
4
  export class SoleInvoiceCollection extends Collection {
6
5
  getOverdue() {
7
6
  return this.filter((invoice) => invoice.isOverdue());
8
7
  }
9
- getPending() {
10
- return this.filter((invoice) => invoice.isPending());
11
- }
12
8
  getPaid(transactions) {
13
9
  return this.filter(invoice => invoice.grossPrice > 0
14
10
  && transactions.getAmountPerInvoice().get(invoice.id) >= invoice.grossPrice);
@@ -23,12 +19,12 @@ export class SoleInvoiceCollection extends Collection {
23
19
  return flatten(this.map(invoice => invoice.items.map(item => item.id)));
24
20
  }
25
21
  groupByState(transactions) {
22
+ const invoicesByState = this.groupBy('status');
26
23
  const unpaidInvoices = this.getUnpaid(transactions);
27
- const dictionary = new CollectionDictionary(new SoleInvoiceCollection());
28
- dictionary.add(SoleInvoiceStateEnum.PAID, this.getPaid(transactions));
29
- dictionary.add(SoleInvoiceStateEnum.OVERDUE, unpaidInvoices.getOverdue());
30
- dictionary.add(SoleInvoiceStateEnum.PENDING, unpaidInvoices.getPending());
31
- return dictionary;
24
+ invoicesByState.add(SoleInvoiceStateEnum.PAID, this.getPaid(transactions));
25
+ invoicesByState.add(SoleInvoiceStatusesEnum.OPEN, invoicesByState.get(SoleInvoiceStatusesEnum.OPEN).remove(invoicesByState.get(SoleInvoiceStateEnum.PAID).toArray()));
26
+ invoicesByState.add(SoleInvoiceStateEnum.OVERDUE, unpaidInvoices.getOverdue());
27
+ return invoicesByState;
32
28
  }
33
29
  getUnpaidAmount(transactions) {
34
30
  return this.sumBy('grossPrice') - transactions.getByInvoices(this).sumBy('grossAmount');
@@ -37,4 +33,4 @@ export class SoleInvoiceCollection extends Collection {
37
33
  return flatten(this.map(invoice => invoice.allocate(bankTransaction, amount)));
38
34
  }
39
35
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvc29sZS9zb2xlLWludm9pY2UuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxVQUF1QjtJQUNoRSxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsT0FBTyxDQUFDLFlBQW1DO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQztlQUMvQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQzVFLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLFlBQW1DO1FBQzNDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLE9BQU8sQ0FDWixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDeEQsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsWUFBbUM7UUFDOUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUkscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLFVBQVUsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN0RSxVQUFVLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUMxRSxVQUFVLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUUxRSxPQUFPLFVBQVUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsZUFBZSxDQUFDLFlBQW1DO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsUUFBUSxDQUFDLGVBQWdDLEVBQUUsTUFBZTtRQUN4RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IEJhbmtUcmFuc2FjdGlvbiwgU29sZUludm9pY2UsIFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlU3RhdGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuXG5leHBvcnQgY2xhc3MgU29sZUludm9pY2VDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxTb2xlSW52b2ljZT4ge1xuICBnZXRPdmVyZHVlKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoaW52b2ljZTogU29sZUludm9pY2UpID0+IGludm9pY2UuaXNPdmVyZHVlKCkpO1xuICB9XG5cbiAgZ2V0UGVuZGluZygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGludm9pY2U6IFNvbGVJbnZvaWNlKSA9PiBpbnZvaWNlLmlzUGVuZGluZygpKTtcbiAgfVxuXG4gIGdldFBhaWQodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoaW52b2ljZSA9PiBpbnZvaWNlLmdyb3NzUHJpY2UgPiAwXG4gICAgICAmJiB0cmFuc2FjdGlvbnMuZ2V0QW1vdW50UGVySW52b2ljZSgpLmdldChpbnZvaWNlLmlkKSA+PSBpbnZvaWNlLmdyb3NzUHJpY2VcbiAgICApO1xuICB9XG5cbiAgZ2V0VW5wYWlkKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3BlbigpLmZpbHRlcihpbnZvaWNlID0+IHRyYW5zYWN0aW9ucy5nZXRBbW91bnRQZXJJbnZvaWNlKCkuZ2V0KGludm9pY2UuaWQpIDwgaW52b2ljZS5ncm9zc1ByaWNlKTtcbiAgfVxuXG4gIGdldE9wZW4oKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChpbnZvaWNlOiBTb2xlSW52b2ljZSkgPT4gaW52b2ljZS5pc09wZW4oKSk7XG4gIH1cblxuICBnZXRJbnZvaWNlSXRlbXNJZHMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBmbGF0dGVuKFxuICAgICAgdGhpcy5tYXAoaW52b2ljZSA9PiBpbnZvaWNlLml0ZW1zLm1hcChpdGVtID0+IGl0ZW0uaWQpKVxuICAgICk7XG4gIH1cblxuICBncm91cEJ5U3RhdGUodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxTb2xlSW52b2ljZUNvbGxlY3Rpb24+IHtcbiAgICBjb25zdCB1bnBhaWRJbnZvaWNlcyA9IHRoaXMuZ2V0VW5wYWlkKHRyYW5zYWN0aW9ucyk7XG4gICAgY29uc3QgZGljdGlvbmFyeSA9IG5ldyBDb2xsZWN0aW9uRGljdGlvbmFyeShuZXcgU29sZUludm9pY2VDb2xsZWN0aW9uKCkpO1xuXG4gICAgZGljdGlvbmFyeS5hZGQoU29sZUludm9pY2VTdGF0ZUVudW0uUEFJRCwgdGhpcy5nZXRQYWlkKHRyYW5zYWN0aW9ucykpO1xuICAgIGRpY3Rpb25hcnkuYWRkKFNvbGVJbnZvaWNlU3RhdGVFbnVtLk9WRVJEVUUsIHVucGFpZEludm9pY2VzLmdldE92ZXJkdWUoKSk7XG4gICAgZGljdGlvbmFyeS5hZGQoU29sZUludm9pY2VTdGF0ZUVudW0uUEVORElORywgdW5wYWlkSW52b2ljZXMuZ2V0UGVuZGluZygpKTtcblxuICAgIHJldHVybiBkaWN0aW9uYXJ5XG4gIH1cblxuICBnZXRVbnBhaWRBbW91bnQodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdncm9zc1ByaWNlJykgLSB0cmFuc2FjdGlvbnMuZ2V0QnlJbnZvaWNlcyh0aGlzKS5zdW1CeSgnZ3Jvc3NBbW91bnQnKTtcbiAgfVxuXG4gIGFsbG9jYXRlKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uLCBhbW91bnQ/OiBudW1iZXIpOiBUcmFuc2FjdGlvbltdIHtcbiAgICByZXR1cm4gZmxhdHRlbih0aGlzLm1hcChpbnZvaWNlID0+IGludm9pY2UuYWxsb2NhdGUoYmFua1RyYW5zYWN0aW9uLCBhbW91bnQpKSk7XG4gIH1cbn1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvc29sZS9zb2xlLWludm9pY2UuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRy9FLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxVQUF1QjtJQUNoRSxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELE9BQU8sQ0FBQyxZQUFtQztRQUN6QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLENBQUM7ZUFDL0MsWUFBWSxDQUFDLG1CQUFtQixFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUM1RSxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxZQUFtQztRQUMzQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQW9CLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxPQUFPLENBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ3hELENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLFlBQW1DO1FBQzlDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVwRCxlQUFlLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDM0UsZUFBZSxDQUFDLEdBQUcsQ0FDakIsdUJBQXVCLENBQUMsSUFBSSxFQUM1QixlQUFlLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQ25ILENBQUM7UUFDRixlQUFlLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUUvRSxPQUFPLGVBQWUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsZUFBZSxDQUFDLFlBQW1DO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsUUFBUSxDQUFDLGVBQWdDLEVBQUUsTUFBZTtRQUN4RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IEJhbmtUcmFuc2FjdGlvbiwgU29sZUludm9pY2UsIFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlU3RhdGVFbnVtLCBTb2xlSW52b2ljZVN0YXR1c2VzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcbmltcG9ydCB7IENvbGxlY3Rpb25EaWN0aW9uYXJ5IH0gZnJvbSAnLi4vY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcblxuZXhwb3J0IGNsYXNzIFNvbGVJbnZvaWNlQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248U29sZUludm9pY2U+IHtcbiAgZ2V0T3ZlcmR1ZSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGludm9pY2U6IFNvbGVJbnZvaWNlKSA9PiBpbnZvaWNlLmlzT3ZlcmR1ZSgpKTtcbiAgfVxuXG4gIGdldFBhaWQodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoaW52b2ljZSA9PiBpbnZvaWNlLmdyb3NzUHJpY2UgPiAwXG4gICAgICAmJiB0cmFuc2FjdGlvbnMuZ2V0QW1vdW50UGVySW52b2ljZSgpLmdldChpbnZvaWNlLmlkKSA+PSBpbnZvaWNlLmdyb3NzUHJpY2VcbiAgICApO1xuICB9XG5cbiAgZ2V0VW5wYWlkKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3BlbigpLmZpbHRlcihpbnZvaWNlID0+IHRyYW5zYWN0aW9ucy5nZXRBbW91bnRQZXJJbnZvaWNlKCkuZ2V0KGludm9pY2UuaWQpIDwgaW52b2ljZS5ncm9zc1ByaWNlKTtcbiAgfVxuXG4gIGdldE9wZW4oKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChpbnZvaWNlOiBTb2xlSW52b2ljZSkgPT4gaW52b2ljZS5pc09wZW4oKSk7XG4gIH1cblxuICBnZXRJbnZvaWNlSXRlbXNJZHMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBmbGF0dGVuKFxuICAgICAgdGhpcy5tYXAoaW52b2ljZSA9PiBpbnZvaWNlLml0ZW1zLm1hcChpdGVtID0+IGl0ZW0uaWQpKVxuICAgICk7XG4gIH1cblxuICBncm91cEJ5U3RhdGUodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxTb2xlSW52b2ljZUNvbGxlY3Rpb24+IHtcbiAgICBjb25zdCBpbnZvaWNlc0J5U3RhdGUgPSB0aGlzLmdyb3VwQnkoJ3N0YXR1cycpO1xuICAgIGNvbnN0IHVucGFpZEludm9pY2VzID0gdGhpcy5nZXRVbnBhaWQodHJhbnNhY3Rpb25zKTtcblxuICAgIGludm9pY2VzQnlTdGF0ZS5hZGQoU29sZUludm9pY2VTdGF0ZUVudW0uUEFJRCwgdGhpcy5nZXRQYWlkKHRyYW5zYWN0aW9ucykpO1xuICAgIGludm9pY2VzQnlTdGF0ZS5hZGQoXG4gICAgICBTb2xlSW52b2ljZVN0YXR1c2VzRW51bS5PUEVOLFxuICAgICAgaW52b2ljZXNCeVN0YXRlLmdldChTb2xlSW52b2ljZVN0YXR1c2VzRW51bS5PUEVOKS5yZW1vdmUoaW52b2ljZXNCeVN0YXRlLmdldChTb2xlSW52b2ljZVN0YXRlRW51bS5QQUlEKS50b0FycmF5KCkpXG4gICAgKTtcbiAgICBpbnZvaWNlc0J5U3RhdGUuYWRkKFNvbGVJbnZvaWNlU3RhdGVFbnVtLk9WRVJEVUUsIHVucGFpZEludm9pY2VzLmdldE92ZXJkdWUoKSk7XG5cbiAgICByZXR1cm4gaW52b2ljZXNCeVN0YXRlXG4gIH1cblxuICBnZXRVbnBhaWRBbW91bnQodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdncm9zc1ByaWNlJykgLSB0cmFuc2FjdGlvbnMuZ2V0QnlJbnZvaWNlcyh0aGlzKS5zdW1CeSgnZ3Jvc3NBbW91bnQnKTtcbiAgfVxuXG4gIGFsbG9jYXRlKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uLCBhbW91bnQ/OiBudW1iZXIpOiBUcmFuc2FjdGlvbltdIHtcbiAgICByZXR1cm4gZmxhdHRlbih0aGlzLm1hcChpbnZvaWNlID0+IGludm9pY2UuYWxsb2NhdGUoYmFua1RyYW5zYWN0aW9uLCBhbW91bnQpKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,9 @@
1
1
  export var SoleInvoiceStateEnum;
2
2
  (function (SoleInvoiceStateEnum) {
3
- SoleInvoiceStateEnum[SoleInvoiceStateEnum["PAID"] = 0] = "PAID";
4
- SoleInvoiceStateEnum[SoleInvoiceStateEnum["OVERDUE"] = 1] = "OVERDUE";
5
- SoleInvoiceStateEnum[SoleInvoiceStateEnum["PENDING"] = 2] = "PENDING";
3
+ SoleInvoiceStateEnum[SoleInvoiceStateEnum["CANCELED"] = 0] = "CANCELED";
4
+ SoleInvoiceStateEnum[SoleInvoiceStateEnum["DRAFT"] = 1] = "DRAFT";
5
+ SoleInvoiceStateEnum[SoleInvoiceStateEnum["OPEN"] = 2] = "OPEN";
6
+ SoleInvoiceStateEnum[SoleInvoiceStateEnum["PAID"] = 3] = "PAID";
7
+ SoleInvoiceStateEnum[SoleInvoiceStateEnum["OVERDUE"] = 4] = "OVERDUE";
6
8
  })(SoleInvoiceStateEnum || (SoleInvoiceStateEnum = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLXN0YXRlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvc29sZS9zb2xlLWludm9pY2Utc3RhdGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxvQkFJWDtBQUpELFdBQVksb0JBQW9CO0lBQzlCLCtEQUFRLENBQUE7SUFDUixxRUFBVyxDQUFBO0lBQ1gscUVBQVcsQ0FBQTtBQUNiLENBQUMsRUFKVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBSS9CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU29sZUludm9pY2VTdGF0ZUVudW0ge1xuICBQQUlEID0gMCxcbiAgT1ZFUkRVRSA9IDEsXG4gIFBFTkRJTkcgPSAyLFxufVxuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLXN0YXRlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvc29sZS9zb2xlLWludm9pY2Utc3RhdGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxvQkFNWDtBQU5ELFdBQVksb0JBQW9CO0lBQzlCLHVFQUFZLENBQUE7SUFDWixpRUFBUyxDQUFBO0lBQ1QsK0RBQVEsQ0FBQTtJQUNSLCtEQUFRLENBQUE7SUFDUixxRUFBVyxDQUFBO0FBQ2IsQ0FBQyxFQU5XLG9CQUFvQixLQUFwQixvQkFBb0IsUUFNL0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTb2xlSW52b2ljZVN0YXRlRW51bSB7XG4gIENBTkNFTEVEID0gMCxcbiAgRFJBRlQgPSAxLFxuICBPUEVOID0gMixcbiAgUEFJRCA9IDMsXG4gIE9WRVJEVUUgPSA0LFxufVxuIl19
@@ -5,11 +5,11 @@ export class SoleInvoiceItemForm extends AbstractForm {
5
5
  constructor(item) {
6
6
  super({
7
7
  description: new UntypedFormControl(item.description, [Validators.required, Validators.maxLength(SoleInvoiceItemForm.maxDescriptionLength)]),
8
- quantity: new UntypedFormControl(item.quantity, [Validators.required, Validators.min(1)]),
8
+ quantity: new UntypedFormControl(item.quantity, [Validators.required]),
9
9
  price: new UntypedFormControl(item.price, Validators.required),
10
10
  isGST: new UntypedFormControl({ value: item.isGST || false, disabled: !item.chartAccounts?.isGST }),
11
11
  chartAccounts: new UntypedFormControl(item.chartAccounts, Validators.required),
12
12
  }, item);
13
13
  }
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLWl0ZW0uZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy9zb2xlL3NvbGUtaW52b2ljZS1pdGVtLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsWUFBNkI7YUFDN0QseUJBQW9CLEdBQUcsR0FBRyxDQUFDO0lBRWxDLFlBQVksSUFBcUI7UUFDL0IsS0FBSyxDQUFDO1lBQ0osV0FBVyxFQUFFLElBQUksa0JBQWtCLENBQ2pDLElBQUksQ0FBQyxXQUFXLEVBQ2hCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FDdEY7WUFDRCxRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekYsS0FBSyxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzlELEtBQUssRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbkcsYUFBYSxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQy9FLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RGb3JtIH0gZnJvbSAnLi4vYWJzdHJhY3QuZm9ybSc7XG5pbXBvcnQgeyBTb2xlSW52b2ljZUl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY2xhc3MgU29sZUludm9pY2VJdGVtRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxTb2xlSW52b2ljZUl0ZW0+IHtcbiAgc3RhdGljIG1heERlc2NyaXB0aW9uTGVuZ3RoID0gMjU1O1xuXG4gIGNvbnN0cnVjdG9yKGl0ZW06IFNvbGVJbnZvaWNlSXRlbSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxuICAgICAgICBpdGVtLmRlc2NyaXB0aW9uLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoU29sZUludm9pY2VJdGVtRm9ybS5tYXhEZXNjcmlwdGlvbkxlbmd0aCldXG4gICAgICApLFxuICAgICAgcXVhbnRpdHk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woaXRlbS5xdWFudGl0eSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDEpXSksXG4gICAgICBwcmljZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChpdGVtLnByaWNlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGlzR1NUOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6IGl0ZW0uaXNHU1QgfHwgZmFsc2UsIGRpc2FibGVkOiAhaXRlbS5jaGFydEFjY291bnRzPy5pc0dTVCB9KSxcbiAgICAgIGNoYXJ0QWNjb3VudHM6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woaXRlbS5jaGFydEFjY291bnRzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICB9LCBpdGVtKTtcbiAgfVxufVxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLWl0ZW0uZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy9zb2xlL3NvbGUtaW52b2ljZS1pdGVtLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsWUFBNkI7YUFDN0QseUJBQW9CLEdBQUcsR0FBRyxDQUFDO0lBRWxDLFlBQVksSUFBcUI7UUFDL0IsS0FBSyxDQUFDO1lBQ0osV0FBVyxFQUFFLElBQUksa0JBQWtCLENBQ2pDLElBQUksQ0FBQyxXQUFXLEVBQ2hCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FDdEY7WUFDRCxRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RFLEtBQUssRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM5RCxLQUFLLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ25HLGFBQWEsRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUMvRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgU29sZUludm9pY2VJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGNsYXNzIFNvbGVJbnZvaWNlSXRlbUZvcm0gZXh0ZW5kcyBBYnN0cmFjdEZvcm08U29sZUludm9pY2VJdGVtPiB7XG4gIHN0YXRpYyBtYXhEZXNjcmlwdGlvbkxlbmd0aCA9IDI1NTtcblxuICBjb25zdHJ1Y3RvcihpdGVtOiBTb2xlSW52b2ljZUl0ZW0pIHtcbiAgICBzdXBlcih7XG4gICAgICBkZXNjcmlwdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcbiAgICAgICAgaXRlbS5kZXNjcmlwdGlvbixcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKFNvbGVJbnZvaWNlSXRlbUZvcm0ubWF4RGVzY3JpcHRpb25MZW5ndGgpXVxuICAgICAgKSxcbiAgICAgIHF1YW50aXR5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGl0ZW0ucXVhbnRpdHksIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICBwcmljZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChpdGVtLnByaWNlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGlzR1NUOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6IGl0ZW0uaXNHU1QgfHwgZmFsc2UsIGRpc2FibGVkOiAhaXRlbS5jaGFydEFjY291bnRzPy5pc0dTVCB9KSxcbiAgICAgIGNoYXJ0QWNjb3VudHM6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woaXRlbS5jaGFydEFjY291bnRzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICB9LCBpdGVtKTtcbiAgfVxufVxuIl19
@@ -46,9 +46,6 @@ export class SoleInvoice extends SoleInvoiceBase {
46
46
  isOpen() {
47
47
  return this.status === SoleInvoiceStatusesEnum.OPEN;
48
48
  }
49
- isPending() {
50
- return this.isOpen() && this.dateTo > new Date(Date.now() - (60 * 60 * 24 * 1000));
51
- }
52
49
  /**
53
50
  * overdue next day after dateTo
54
51
  */
@@ -139,4 +136,4 @@ __decorate([
139
136
  __decorate([
140
137
  Type(() => BankAccount)
141
138
  ], SoleInvoice.prototype, "bankAccount", void 0);
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zb2xlL3NvbGUtaW52b2ljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsSUFBSSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBbUIsTUFBTSxTQUFTLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlCQUF5QixFQUF5QixNQUFNLG1CQUFtQixDQUFDO0FBRXJGLE9BQU8sRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdwRSxNQUFNLE9BQU8sV0FBWSxTQUFRLGVBQWU7SUFBaEQ7O1FBd0JFLFdBQU0sR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUM7UUFDdkMsWUFBTyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQztJQTZIMUMsQ0FBQzthQXJKUSxpQkFBWSxHQUFHLENBQUMsQUFBSixDQUFLO0lBMEJ4Qjs7T0FFRztJQUNILElBQUksZUFBZTtRQUNqQixPQUFPLElBQUkseUJBQXlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FF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QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7NkNBQ0Y7QUFHZjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0o7QUFHYjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7NkNBQ0Y7QUFHdkI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDOzBDQUNIO0FBR3pCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQzswQ0FDTDtBQUduQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7Z0RBQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb2xlSW52b2ljZSBhcyBTb2xlSW52b2ljZUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvc29sZS9zb2xlLWludm9pY2UnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXInO1xuaW1wb3J0IHsgU29sZUJ1c2luZXNzIH0gZnJvbSAnLi9zb2xlLWJ1c2luZXNzJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlSXRlbSB9IGZyb20gJy4vc29sZS1pbnZvaWNlLWl0ZW0nO1xuaW1wb3J0IHsgU29sZUNvbnRhY3QgfSBmcm9tICcuL3NvbGUtY29udGFjdCc7XG5pbXBvcnQgeyBUeXBlLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTb2xlSW52b2ljZVN0YXR1c2VzRW51bSwgU29sZUludm9pY2VUYXhUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcbmltcG9ydCB7IEJhbmtBY2NvdW50LCBCYW5rVHJhbnNhY3Rpb24gfSBmcm9tICcuLi9iYW5rJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlSXRlbUNvbGxlY3Rpb24sIFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCBjZWlsIGZyb20gJ2xvZGFzaC9jZWlsJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbkFsbG9jYXRpb24gfSBmcm9tICcuLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgcm91bmQgZnJvbSAnbG9kYXNoL3JvdW5kJztcblxuZXhwb3J0IGNsYXNzIFNvbGVJbnZvaWNlIGV4dGVuZHMgU29sZUludm9pY2VCYXNlIHtcbiAgc3RhdGljIG51bWJlckxlbmd0aCA9IDQ7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZUZyb206IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZVRvOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFVzZXIpXG4gIHVzZXI6IFVzZXI7XG5cbiAgQFR5cGUoKCkgPT4gU29sZUJ1c2luZXNzKVxuICBidXNpbmVzczogU29sZUJ1c2luZXNzO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVJbnZvaWNlSXRlbSlcbiAgaXRlbXM6IFNvbGVJbnZvaWNlSXRlbVtdO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVDb250YWN0KVxuICBwYXllcjogU29sZUNvbnRhY3Q7XG5cbiAgQFR5cGUoKCkgPT4gQmFua0FjY291bnQpXG4gIGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudDtcblxuICBzdGF0dXMgPSBTb2xlSW52b2ljZVN0YXR1c2VzRW51bS5EUkFGVDtcbiAgdGF4VHlwZSA9IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0uTk9fVEFYO1xuXG4gIC8qKlxuICAgKiBHZXQgaXRlbXMgYXJyYXkgYXMgY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0IGl0ZW1zQ29sbGVjdGlvbigpOiBTb2xlSW52b2ljZUl0ZW1Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFNvbGVJbnZvaWNlSXRlbUNvbGxlY3Rpb24odGhpcy5pdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogdG90YWwgd2l0aG91dCBHU1RcbiAgICovXG4gIGdldCBuZXRQcmljZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zQ29sbGVjdGlvbi5nZXRUb3RhbFByaWNlKHRoaXMudGF4VHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogdG90YWwgKyBHU1RcbiAgICovXG4gIGdldCBncm9zc1ByaWNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNDb2xsZWN0aW9uLmdldFRvdGFsUHJpY2UodGhpcy50YXhUeXBlLCB0cnVlKTtcbiAgfVxuXG4gIGdldCBnc3RBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ncm9zc1ByaWNlIC0gdGhpcy5uZXRQcmljZTtcbiAgfVxuXG4gIGlzRHJhZnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTb2xlSW52b2ljZVN0YXR1c2VzRW51bS5EUkFGVDtcbiAgfVxuXG4gIGlzQ2FuY2VsbGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uQ0FOQ0VMRUQ7XG4gIH1cblxuICBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTb2xlSW52b2ljZVN0YXR1c2VzRW51bS5PUEVOO1xuICB9XG5cbiAgaXNQZW5kaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzT3BlbigpICYmIHRoaXMuZGF0ZVRvID4gbmV3IERhdGUoRGF0ZS5ub3coKSAtICg2MCAqIDYwICogMjQgKiAxMDAwKSk7XG4gIH1cblxuICAvKipcbiAgICogb3ZlcmR1ZSBuZXh0IGRheSBhZnRlciBkYXRlVG9cbiAgICovXG4gIGlzT3ZlcmR1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc09wZW4oKSAmJiB0aGlzLmRhdGVUbyA8IG5ldyBEYXRlKERhdGUubm93KCkgLSAoNjAgKiA2MCAqIDI0ICogMTAwMCkpO1xuICB9XG5cbiAgZ2V0VW5wYWlkQW1vdW50KHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ncm9zc1ByaWNlIC0gdHJhbnNhY3Rpb25zLmZpbHRlckJ5KCdpbnZvaWNlSXRlbS5pZCcsIHRoaXMuaXRlbXNDb2xsZWN0aW9uLmdldElkcygpKS5zdW1CeSgnZ3Jvc3NBbW91bnQnKTtcbiAgfVxuXG4gIGlzRWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEcmFmdCgpIHx8IHRoaXMuaXNPcGVuKCk7XG4gIH1cblxuICAvKipcbiAgICogR1NUIGlzIG5vdCBhdmFpbGFibGUgZm9yIGludm9pY2VzIHdpdGhvdXQgdGF4ZXNcbiAgICovXG4gIGlzTm9UYXgoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGF4VHlwZSA9PT0gU29sZUludm9pY2VUYXhUeXBlRW51bS5OT19UQVg7XG4gIH1cblxuICAvKipcbiAgICogR1NUIGFtb3VudCBpcyBub3QgaW5jbHVkZWQgaW4gaXRlbXMgcHJpY2VzIGZvciBpbnZvaWNlcyB3aXRoIHRheCBleGNsdXNpdmUsXG4gICAqIHdlIHNob3VsZCBhZGQgR1NUIGFtb3VudCBhZGRpdGlvbmFseSB0byBzdWJ0b3RhbCBwcmljZSB0byBnZXQgdG90YWwgcHJpY2VcbiAgICovXG4gIGlzVGF4RXhjbHVzaXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRheFR5cGUgPT09IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0uVEFYX0VYQ0xVU0lWRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHU1QgYW1vdW50IGFscmVhZHkgaW5jbHVkZWQgaW4gaXRlbXMgcHJpY2VzIGZvciBpbnZvaWNlcyB3aXRoIHRheCBpbmNsdXNpdmUsXG4gICAqIHdlIHNob3VsZCBzdWJ0cmFjdCBHU1QgYW1vdW50IGZyb20gdG90YWwgcHJpY2UgdG8gZ2V0IHN1YnRvdGFsIHByaWNlXG4gICAqL1xuICBpc1RheEluY2x1c2l2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YXhUeXBlID09PSBTb2xlSW52b2ljZVRheFR5cGVFbnVtLlRBWF9JTkNMVVNJVkU7XG4gIH1cblxuICBnZXROdW1iZXIoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMubnVtYmVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gJ04nICsgU3RyaW5nKHRoaXMubnVtYmVyKS5wYWRTdGFydChTb2xlSW52b2ljZS5udW1iZXJMZW5ndGgsICcwJyk7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgaW52b2ljZS0ke3RoaXMuZ2V0TnVtYmVyKCl9LnBkZmA7XG4gIH1cblxuICAvKipcbiAgICogYWxsb2NhdGUgaW52b2ljZSB0byBiYW5rVHJhbnNhY3Rpb24gPSBjcmVhdGUgdHJhbnNhY3Rpb25zL2FsbG9jYXRpb25zIGZvciBzcGVjaWZpYyBhbW91bnQgb3IgZnVsbFxuICAgKi9cbiAgYWxsb2NhdGUoYmFua1RyYW5zYWN0aW9uOiBCYW5rVHJhbnNhY3Rpb24sIGFtb3VudD86IG51bWJlcik6IFRyYW5zYWN0aW9uW10ge1xuICAgIC8vIFBlcmNlbnQgb2YgYWxsb2NhdGlvbjogV2hlbiBhbW91bnQgaXMgbGVzcyB0aGFuIGludm9pY2UgdW5hbGxvY2F0ZWQgYW1vdW50IHRoZW4gd2UgaGF2ZSB0byBhbGxvY2F0ZSBpdHMgaXRlbXMgcHJvcG9ydGlhbmFsbHlcbiAgICBjb25zdCBhbGxvY2F0aW9uQ29lZmZpY2llbnQ6IG51bWJlciA9IGFtb3VudCA/IGFtb3VudCAvIHRoaXMuZ3Jvc3NQcmljZSA6IDE7XG5cbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKGl0ZW06IFNvbGVJbnZvaWNlSXRlbSkgPT4ge1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSBwbGFpblRvQ2xhc3MoVHJhbnNhY3Rpb24sIGl0ZW0udG9UcmFuc2FjdGlvbigpKTtcbiAgICAgIHRyYW5zYWN0aW9uLmRhdGUgPSBiYW5rVHJhbnNhY3Rpb24uZGF0ZTtcbiAgICAgIHRyYW5zYWN0aW9uLmFtb3VudCA9IGl0ZW0uZ2V0VG90YWxQcmljZSh0aGlzLnRheFR5cGUpICogYWxsb2NhdGlvbkNvZWZmaWNpZW50O1xuICAgICAgdHJhbnNhY3Rpb24uYWxsb2NhdGlvbnMgPSBbcGxhaW5Ub0NsYXNzKFRyYW5zYWN0aW9uQWxsb2NhdGlvbiwge1xuICAgICAgICBhbW91bnQ6IGl0ZW0uZ2V0VG90YWxQcmljZSh0aGlzLnRheFR5cGUsIHRydWUpICogYWxsb2NhdGlvbkNvZWZmaWNpZW50LFxuICAgICAgICBiYW5rVHJhbnNhY3Rpb246IGJhbmtUcmFuc2FjdGlvbixcbiAgICAgIH0pXTtcblxuICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uO1xuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlVHJhbnNhY3Rpb25zKGRhdGU6IERhdGUsIGFtb3VudDogbnVtYmVyKTogVHJhbnNhY3Rpb25bXSB7XG4gICAgLy8gUGVyY2VudCBvZiBhbGxvY2F0aW9uOiBXaGVuIGFtb3VudCBpcyBsZXNzIHRoYW4gaW52b2ljZSB1bmFsbG9jYXRlZCBhbW91bnQgdGhlbiB3ZSBoYXZlIHRvIGFsbG9jYXRlIGl0cyBpdGVtcyBwcm9wb3J0aWFuYWxseVxuICAgIGNvbnN0IGFsbG9jYXRpb25Db2VmZmljaWVudDogbnVtYmVyID0gYW1vdW50ID8gYW1vdW50IC8gdGhpcy5ncm9zc1ByaWNlIDogMTtcblxuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaXRlbTogU29sZUludm9pY2VJdGVtKSA9PiB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHBsYWluVG9DbGFzcyhUcmFuc2FjdGlvbiwgaXRlbS50b1RyYW5zYWN0aW9uKCkpO1xuICAgICAgdHJhbnNhY3Rpb24uZGF0ZSA9IGRhdGU7XG4gICAgICB0cmFuc2FjdGlvbi5hbW91bnQgPSBpdGVtLmdldFRvdGFsUHJpY2UodGhpcy50YXhUeXBlKSAqIGFsbG9jYXRpb25Db2VmZmljaWVudDtcblxuICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zb2xlL3NvbGUtaW52b2ljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsSUFBSSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBbUIsTUFBTSxTQUFTLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlCQUF5QixFQUF5QixNQUFNLG1CQUFtQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxNQUFNLE9BQU8sV0FBWSxTQUFRLGVBQWU7SUFBaEQ7O1FBd0JFLFdBQU0sR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUM7UUFDdkMsWUFBTyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQztJQXlIMUMsQ0FBQzthQWpKUSxpQkFBWSxHQUFHLENBQUMsQUFBSixDQUFLO0lBMEJ4Qjs7T0FFRztJQUNILElBQUksZUFBZTtRQUNqQixPQUFPLElBQUkseUJBQXlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FF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QUFZLENBQUM7NkNBQ0Y7QUFHdkI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDOzBDQUNIO0FBR3pCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQzswQ0FDTDtBQUduQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7Z0RBQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb2xlSW52b2ljZSBhcyBTb2xlSW52b2ljZUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvc29sZS9zb2xlLWludm9pY2UnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXInO1xuaW1wb3J0IHsgU29sZUJ1c2luZXNzIH0gZnJvbSAnLi9zb2xlLWJ1c2luZXNzJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlSXRlbSB9IGZyb20gJy4vc29sZS1pbnZvaWNlLWl0ZW0nO1xuaW1wb3J0IHsgU29sZUNvbnRhY3QgfSBmcm9tICcuL3NvbGUtY29udGFjdCc7XG5pbXBvcnQgeyBUeXBlLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTb2xlSW52b2ljZVN0YXR1c2VzRW51bSwgU29sZUludm9pY2VUYXhUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcbmltcG9ydCB7IEJhbmtBY2NvdW50LCBCYW5rVHJhbnNhY3Rpb24gfSBmcm9tICcuLi9iYW5rJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlSXRlbUNvbGxlY3Rpb24sIFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbkFsbG9jYXRpb24gfSBmcm9tICcuLi90cmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBTb2xlSW52b2ljZSBleHRlbmRzIFNvbGVJbnZvaWNlQmFzZSB7XG4gIHN0YXRpYyBudW1iZXJMZW5ndGggPSA0O1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGRhdGVGcm9tOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGRhdGVUbzogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBVc2VyKVxuICB1c2VyOiBVc2VyO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVCdXNpbmVzcylcbiAgYnVzaW5lc3M6IFNvbGVCdXNpbmVzcztcblxuICBAVHlwZSgoKSA9PiBTb2xlSW52b2ljZUl0ZW0pXG4gIGl0ZW1zOiBTb2xlSW52b2ljZUl0ZW1bXTtcblxuICBAVHlwZSgoKSA9PiBTb2xlQ29udGFjdClcbiAgcGF5ZXI6IFNvbGVDb250YWN0O1xuXG4gIEBUeXBlKCgpID0+IEJhbmtBY2NvdW50KVxuICBiYW5rQWNjb3VudDogQmFua0FjY291bnQ7XG5cbiAgc3RhdHVzID0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uRFJBRlQ7XG4gIHRheFR5cGUgPSBTb2xlSW52b2ljZVRheFR5cGVFbnVtLk5PX1RBWDtcblxuICAvKipcbiAgICogR2V0IGl0ZW1zIGFycmF5IGFzIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldCBpdGVtc0NvbGxlY3Rpb24oKTogU29sZUludm9pY2VJdGVtQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBTb2xlSW52b2ljZUl0ZW1Db2xsZWN0aW9uKHRoaXMuaXRlbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRvdGFsIHdpdGhvdXQgR1NUXG4gICAqL1xuICBnZXQgbmV0UHJpY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc0NvbGxlY3Rpb24uZ2V0VG90YWxQcmljZSh0aGlzLnRheFR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRvdGFsICsgR1NUXG4gICAqL1xuICBnZXQgZ3Jvc3NQcmljZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zQ29sbGVjdGlvbi5nZXRUb3RhbFByaWNlKHRoaXMudGF4VHlwZSwgdHJ1ZSk7XG4gIH1cblxuICBnZXQgZ3N0QW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ3Jvc3NQcmljZSAtIHRoaXMubmV0UHJpY2U7XG4gIH1cblxuICBpc0RyYWZ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uRFJBRlQ7XG4gIH1cblxuICBpc0NhbmNlbGxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNvbGVJbnZvaWNlU3RhdHVzZXNFbnVtLkNBTkNFTEVEO1xuICB9XG5cbiAgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uT1BFTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBvdmVyZHVlIG5leHQgZGF5IGFmdGVyIGRhdGVUb1xuICAgKi9cbiAgaXNPdmVyZHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzT3BlbigpICYmIHRoaXMuZGF0ZVRvIDwgbmV3IERhdGUoRGF0ZS5ub3coKSAtICg2MCAqIDYwICogMjQgKiAxMDAwKSk7XG4gIH1cblxuICBnZXRVbnBhaWRBbW91bnQodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdyb3NzUHJpY2UgLSB0cmFuc2FjdGlvbnMuZmlsdGVyQnkoJ2ludm9pY2VJdGVtLmlkJywgdGhpcy5pdGVtc0NvbGxlY3Rpb24uZ2V0SWRzKCkpLnN1bUJ5KCdncm9zc0Ftb3VudCcpO1xuICB9XG5cbiAgaXNFZGl0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0RyYWZ0KCkgfHwgdGhpcy5pc09wZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHU1QgaXMgbm90IGF2YWlsYWJsZSBmb3IgaW52b2ljZXMgd2l0aG91dCB0YXhlc1xuICAgKi9cbiAgaXNOb1RheCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YXhUeXBlID09PSBTb2xlSW52b2ljZVRheFR5cGVFbnVtLk5PX1RBWDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHU1QgYW1vdW50IGlzIG5vdCBpbmNsdWRlZCBpbiBpdGVtcyBwcmljZXMgZm9yIGludm9pY2VzIHdpdGggdGF4IGV4Y2x1c2l2ZSxcbiAgICogd2Ugc2hvdWxkIGFkZCBHU1QgYW1vdW50IGFkZGl0aW9uYWx5IHRvIHN1YnRvdGFsIHByaWNlIHRvIGdldCB0b3RhbCBwcmljZVxuICAgKi9cbiAgaXNUYXhFeGNsdXNpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGF4VHlwZSA9PT0gU29sZUludm9pY2VUYXhUeXBlRW51bS5UQVhfRVhDTFVTSVZFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdTVCBhbW91bnQgYWxyZWFkeSBpbmNsdWRlZCBpbiBpdGVtcyBwcmljZXMgZm9yIGludm9pY2VzIHdpdGggdGF4IGluY2x1c2l2ZSxcbiAgICogd2Ugc2hvdWxkIHN1YnRyYWN0IEdTVCBhbW91bnQgZnJvbSB0b3RhbCBwcmljZSB0byBnZXQgc3VidG90YWwgcHJpY2VcbiAgICovXG4gIGlzVGF4SW5jbHVzaXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRheFR5cGUgPT09IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0uVEFYX0lOQ0xVU0lWRTtcbiAgfVxuXG4gIGdldE51bWJlcigpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5udW1iZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAnTicgKyBTdHJpbmcodGhpcy5udW1iZXIpLnBhZFN0YXJ0KFNvbGVJbnZvaWNlLm51bWJlckxlbmd0aCwgJzAnKTtcbiAgfVxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBpbnZvaWNlLSR7dGhpcy5nZXROdW1iZXIoKX0ucGRmYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBhbGxvY2F0ZSBpbnZvaWNlIHRvIGJhbmtUcmFuc2FjdGlvbiA9IGNyZWF0ZSB0cmFuc2FjdGlvbnMvYWxsb2NhdGlvbnMgZm9yIHNwZWNpZmljIGFtb3VudCBvciBmdWxsXG4gICAqL1xuICBhbGxvY2F0ZShiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbiwgYW1vdW50PzogbnVtYmVyKTogVHJhbnNhY3Rpb25bXSB7XG4gICAgLy8gUGVyY2VudCBvZiBhbGxvY2F0aW9uOiBXaGVuIGFtb3VudCBpcyBsZXNzIHRoYW4gaW52b2ljZSB1bmFsbG9jYXRlZCBhbW91bnQgdGhlbiB3ZSBoYXZlIHRvIGFsbG9jYXRlIGl0cyBpdGVtcyBwcm9wb3J0aWFuYWxseVxuICAgIGNvbnN0IGFsbG9jYXRpb25Db2VmZmljaWVudDogbnVtYmVyID0gYW1vdW50ID8gYW1vdW50IC8gdGhpcy5ncm9zc1ByaWNlIDogMTtcblxuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaXRlbTogU29sZUludm9pY2VJdGVtKSA9PiB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHBsYWluVG9DbGFzcyhUcmFuc2FjdGlvbiwgaXRlbS50b1RyYW5zYWN0aW9uKCkpO1xuICAgICAgdHJhbnNhY3Rpb24uZGF0ZSA9IGJhbmtUcmFuc2FjdGlvbi5kYXRlO1xuICAgICAgdHJhbnNhY3Rpb24uYW1vdW50ID0gaXRlbS5nZXRUb3RhbFByaWNlKHRoaXMudGF4VHlwZSkgKiBhbGxvY2F0aW9uQ29lZmZpY2llbnQ7XG4gICAgICB0cmFuc2FjdGlvbi5hbGxvY2F0aW9ucyA9IFtwbGFpblRvQ2xhc3MoVHJhbnNhY3Rpb25BbGxvY2F0aW9uLCB7XG4gICAgICAgIGFtb3VudDogaXRlbS5nZXRUb3RhbFByaWNlKHRoaXMudGF4VHlwZSwgdHJ1ZSkgKiBhbGxvY2F0aW9uQ29lZmZpY2llbnQsXG4gICAgICAgIGJhbmtUcmFuc2FjdGlvbjogYmFua1RyYW5zYWN0aW9uLFxuICAgICAgfSldO1xuXG4gICAgICByZXR1cm4gdHJhbnNhY3Rpb247XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVUcmFuc2FjdGlvbnMoZGF0ZTogRGF0ZSwgYW1vdW50OiBudW1iZXIpOiBUcmFuc2FjdGlvbltdIHtcbiAgICAvLyBQZXJjZW50IG9mIGFsbG9jYXRpb246IFdoZW4gYW1vdW50IGlzIGxlc3MgdGhhbiBpbnZvaWNlIHVuYWxsb2NhdGVkIGFtb3VudCB0aGVuIHdlIGhhdmUgdG8gYWxsb2NhdGUgaXRzIGl0ZW1zIHByb3BvcnRpYW5hbGx5XG4gICAgY29uc3QgYWxsb2NhdGlvbkNvZWZmaWNpZW50OiBudW1iZXIgPSBhbW91bnQgPyBhbW91bnQgLyB0aGlzLmdyb3NzUHJpY2UgOiAxO1xuXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKChpdGVtOiBTb2xlSW52b2ljZUl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gcGxhaW5Ub0NsYXNzKFRyYW5zYWN0aW9uLCBpdGVtLnRvVHJhbnNhY3Rpb24oKSk7XG4gICAgICB0cmFuc2FjdGlvbi5kYXRlID0gZGF0ZTtcbiAgICAgIHRyYW5zYWN0aW9uLmFtb3VudCA9IGl0ZW0uZ2V0VG90YWxQcmljZSh0aGlzLnRheFR5cGUpICogYWxsb2NhdGlvbkNvZWZmaWNpZW50O1xuXG4gICAgICByZXR1cm4gdHJhbnNhY3Rpb247XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1576,9 +1576,11 @@ var SoleDepreciationMethodEnum;
1576
1576
 
1577
1577
  var SoleInvoiceStateEnum;
1578
1578
  (function (SoleInvoiceStateEnum) {
1579
- SoleInvoiceStateEnum[SoleInvoiceStateEnum["PAID"] = 0] = "PAID";
1580
- SoleInvoiceStateEnum[SoleInvoiceStateEnum["OVERDUE"] = 1] = "OVERDUE";
1581
- SoleInvoiceStateEnum[SoleInvoiceStateEnum["PENDING"] = 2] = "PENDING";
1579
+ SoleInvoiceStateEnum[SoleInvoiceStateEnum["CANCELED"] = 0] = "CANCELED";
1580
+ SoleInvoiceStateEnum[SoleInvoiceStateEnum["DRAFT"] = 1] = "DRAFT";
1581
+ SoleInvoiceStateEnum[SoleInvoiceStateEnum["OPEN"] = 2] = "OPEN";
1582
+ SoleInvoiceStateEnum[SoleInvoiceStateEnum["PAID"] = 3] = "PAID";
1583
+ SoleInvoiceStateEnum[SoleInvoiceStateEnum["OVERDUE"] = 4] = "OVERDUE";
1582
1584
  })(SoleInvoiceStateEnum || (SoleInvoiceStateEnum = {}));
1583
1585
 
1584
1586
  var SoleInvoiceStatusesEnum;
@@ -5039,9 +5041,6 @@ class SoleInvoice extends SoleInvoice$1 {
5039
5041
  isOpen() {
5040
5042
  return this.status === SoleInvoiceStatusesEnum.OPEN;
5041
5043
  }
5042
- isPending() {
5043
- return this.isOpen() && this.dateTo > new Date(Date.now() - (60 * 60 * 24 * 1000));
5044
- }
5045
5044
  /**
5046
5045
  * overdue next day after dateTo
5047
5046
  */
@@ -8434,9 +8433,6 @@ class SoleInvoiceCollection extends Collection {
8434
8433
  getOverdue() {
8435
8434
  return this.filter((invoice) => invoice.isOverdue());
8436
8435
  }
8437
- getPending() {
8438
- return this.filter((invoice) => invoice.isPending());
8439
- }
8440
8436
  getPaid(transactions) {
8441
8437
  return this.filter(invoice => invoice.grossPrice > 0
8442
8438
  && transactions.getAmountPerInvoice().get(invoice.id) >= invoice.grossPrice);
@@ -8451,12 +8447,12 @@ class SoleInvoiceCollection extends Collection {
8451
8447
  return flatten(this.map(invoice => invoice.items.map(item => item.id)));
8452
8448
  }
8453
8449
  groupByState(transactions) {
8450
+ const invoicesByState = this.groupBy('status');
8454
8451
  const unpaidInvoices = this.getUnpaid(transactions);
8455
- const dictionary = new CollectionDictionary(new SoleInvoiceCollection());
8456
- dictionary.add(SoleInvoiceStateEnum.PAID, this.getPaid(transactions));
8457
- dictionary.add(SoleInvoiceStateEnum.OVERDUE, unpaidInvoices.getOverdue());
8458
- dictionary.add(SoleInvoiceStateEnum.PENDING, unpaidInvoices.getPending());
8459
- return dictionary;
8452
+ invoicesByState.add(SoleInvoiceStateEnum.PAID, this.getPaid(transactions));
8453
+ invoicesByState.add(SoleInvoiceStatusesEnum.OPEN, invoicesByState.get(SoleInvoiceStatusesEnum.OPEN).remove(invoicesByState.get(SoleInvoiceStateEnum.PAID).toArray()));
8454
+ invoicesByState.add(SoleInvoiceStateEnum.OVERDUE, unpaidInvoices.getOverdue());
8455
+ return invoicesByState;
8460
8456
  }
8461
8457
  getUnpaidAmount(transactions) {
8462
8458
  return this.sumBy('grossPrice') - transactions.getByInvoices(this).sumBy('grossAmount');
@@ -21576,7 +21572,7 @@ class SoleInvoiceItemForm extends AbstractForm {
21576
21572
  constructor(item) {
21577
21573
  super({
21578
21574
  description: new UntypedFormControl(item.description, [Validators.required, Validators.maxLength(SoleInvoiceItemForm.maxDescriptionLength)]),
21579
- quantity: new UntypedFormControl(item.quantity, [Validators.required, Validators.min(1)]),
21575
+ quantity: new UntypedFormControl(item.quantity, [Validators.required]),
21580
21576
  price: new UntypedFormControl(item.price, Validators.required),
21581
21577
  isGST: new UntypedFormControl({ value: item.isGST || false, disabled: !item.chartAccounts?.isGST }),
21582
21578
  chartAccounts: new UntypedFormControl(item.chartAccounts, Validators.required),