taxtank-core 0.33.70 → 0.33.72

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.
@@ -11,4 +11,4 @@ export class ObservableModel extends AbstractModel {
11
11
  return methods.map((method) => this.getEventName(method));
12
12
  }
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvb2JzZXJ2YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixlQUFnQixTQUFRLGFBQWE7SUFNekQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFrQjtRQUNwQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLE9BQXFCO1FBQzNDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3RNZXRob2QgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBYnN0cmFjdE1vZGVsIH0gZnJvbSAnLi9hYnN0cmFjdC1tb2RlbCc7XG5cbi8qKlxuICogQFRPRE8gbW92ZSBmcm9tIGRiIGZvbGRlciB3aGVuIHJlZmFjdG9yZWQgYmFzZSBtb2RlbHNcbiAqIE1vZGVsLCB3aGljaCBjaGlsZHJlbiBzaG91bGQgYmUgbGlzdGVuZWQgdmlhIGV2ZW50IGRpc3BhdGNoZXIgc2VydmljZSBpc2luZyBhdXRvbWF0aWMgZXZlbnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPYnNlcnZhYmxlTW9kZWwgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgLyoqXG4gICAqIHJlcXVpcmVkLCBiZWNhdXNlIGNsYXNzJ3MgbmFtZSBpcyBtaW5pZmllZCBpbiBwcm9kXG4gICAqL1xuICBzdGF0aWMgY2xhc3NOYW1lOiBzdHJpbmc7XG5cbiAgc3RhdGljIGdldEV2ZW50TmFtZShtZXRob2Q6IFJlc3RNZXRob2QpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNsYXNzTmFtZX1fJHttZXRob2R9YDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRFdmVudE5hbWVzKC4uLm1ldGhvZHM6IFJlc3RNZXRob2RbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gbWV0aG9kcy5tYXAoKG1ldGhvZCkgPT4gdGhpcy5nZXRFdmVudE5hbWUobWV0aG9kKSk7XG4gIH1cbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvb2JzZXJ2YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixlQUFnQixTQUFRLGFBQWE7SUFPekQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFrQjtRQUNwQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLE9BQXFCO1FBQzNDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3RNZXRob2QgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBYnN0cmFjdE1vZGVsIH0gZnJvbSAnLi9hYnN0cmFjdC1tb2RlbCc7XG5cbi8qKlxuICogQFRPRE8gbW92ZSBmcm9tIGRiIGZvbGRlciB3aGVuIHJlZmFjdG9yZWQgYmFzZSBtb2RlbHNcbiAqIE1vZGVsLCB3aGljaCBjaGlsZHJlbiBzaG91bGQgYmUgbGlzdGVuZWQgdmlhIGV2ZW50IGRpc3BhdGNoZXIgc2VydmljZSBpc2luZyBhdXRvbWF0aWMgZXZlbnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPYnNlcnZhYmxlTW9kZWwgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgLyoqXG4gICAqIEBUT0RPIGFic3RyYWN0IG1ldGhvZD9cbiAgICogcmVxdWlyZWQsIGJlY2F1c2UgY2xhc3MncyBuYW1lIGlzIG1pbmlmaWVkIGluIHByb2RcbiAgICovXG4gIHN0YXRpYyBjbGFzc05hbWU6IHN0cmluZztcblxuICBzdGF0aWMgZ2V0RXZlbnROYW1lKG1ldGhvZDogUmVzdE1ldGhvZCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuY2xhc3NOYW1lfV8ke21ldGhvZH1gO1xuICB9XG5cbiAgc3RhdGljIGdldEV2ZW50TmFtZXMoLi4ubWV0aG9kczogUmVzdE1ldGhvZFtdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBtZXRob2RzLm1hcCgobWV0aG9kKSA9PiB0aGlzLmdldEV2ZW50TmFtZShtZXRob2QpKTtcbiAgfVxufVxuIl19
@@ -3,10 +3,10 @@ import { Expose, Transform, Type, plainToClass } from 'class-transformer';
3
3
  import { User } from '../user';
4
4
  import { HoldingType } from './holding-type';
5
5
  import { AppFile } from '../file';
6
- import { AbstractModel } from '../../db/Models';
6
+ import { ObservableModel } from '../../db/Models';
7
7
  import { FinancialYear } from '../financial-year';
8
8
  import { HoldingTradeTypeEnum, HoldingTypeCategoryEnum } from '../../db/Enums';
9
- export class HoldingTrade extends AbstractModel {
9
+ export class HoldingTrade extends ObservableModel {
10
10
  constructor() {
11
11
  super(...arguments);
12
12
  this.isTaxFree = false;
@@ -14,6 +14,7 @@ export class HoldingTrade extends AbstractModel {
14
14
  this.price = 0;
15
15
  this.type = HoldingTradeTypeEnum.BUY;
16
16
  }
17
+ static { this.className = 'HoldingTrade'; }
17
18
  isPurchase() {
18
19
  return this.type === HoldingTradeTypeEnum.BUY;
19
20
  }
@@ -86,4 +87,4 @@ __decorate([
86
87
  }, { toClassOnly: true }),
87
88
  Expose({ toClassOnly: true })
88
89
  ], HoldingTrade.prototype, "category", void 0);
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLXRyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9FLE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTtJQUEvQzs7UUFDRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFYixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRVYsU0FBSSxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztJQTBGbEMsQ0FBQztJQXhFQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxRQUFRLEdBQVcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUVuRCxPQUFPLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNwRixDQUFDO0lBdUJELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBdEZDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTjtBQUdYO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTjtBQU1YO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztpREFDQztBQUd6QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7MENBQ047QUE2RGlCO0lBZjlCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtRQUNyQixNQUFNLFdBQVcsR0FBZ0IsWUFBWSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDM0UsSUFBSSxXQUFXLEVBQUU7WUFDZixPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFBO1NBQzNEO1FBQ0QsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE9BQU87Z0JBQ0wsdUJBQXVCLENBQUMsV0FBVztnQkFDbkMsdUJBQXVCLENBQUMsY0FBYztnQkFDdEMsdUJBQXVCLENBQUMsYUFBYTtnQkFDckMsdUJBQXVCLENBQUMsS0FBSzthQUM5QixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztTQUNoRDtRQUNELE9BQU8sdUJBQXVCLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4QixNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7OENBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwb3NlLCBUcmFuc2Zvcm0sIFR5cGUsIHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi91c2VyJztcbmltcG9ydCB7IEhvbGRpbmdUeXBlIH0gZnJvbSAnLi9ob2xkaW5nLXR5cGUnO1xuaW1wb3J0IHsgQXBwRmlsZSB9IGZyb20gJy4uL2ZpbGUnO1xuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCB9IGZyb20gJy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBGaW5hbmNpYWxZZWFyIH0gZnJvbSAnLi4vZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlVHlwZUVudW0sIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZ1RyYWRlIGV4dGVuZHMgQWJzdHJhY3RNb2RlbCB7XG4gIGlzVGF4RnJlZSA9IGZhbHNlO1xuICBxdWFudGl0eSA9IDA7XG4gIG93bmVyc2hpcFBlcmNlbnQ/OiBudW1iZXI7XG4gIHByaWNlID0gMDtcbiAgZmVlOiBudW1iZXI7XG4gIHR5cGUgPSBIb2xkaW5nVHJhZGVUeXBlRW51bS5CVVk7XG4gIGV4dGVybmFsSWQ/OiBudW1iZXI7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBVc2VyKVxuICB1c2VyOiBVc2VyO1xuXG4gIC8qKlxuICAgKiBAVE9ETyB2aWsgNDUyMSByZW5hbWUgdG8gaG9sZGluZ1xuICAgKi9cbiAgQFR5cGUoKCkgPT4gSG9sZGluZ1R5cGUpXG4gIGhvbGRpbmdUeXBlOiBIb2xkaW5nVHlwZTtcblxuICBAVHlwZSgoKSA9PiBBcHBGaWxlKVxuICBmaWxlOiBBcHBGaWxlO1xuXG4gIGlzUHVyY2hhc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSG9sZGluZ1RyYWRlVHlwZUVudW0uQlVZO1xuICB9XG5cbiAgZ2V0IHR5cGVMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzUHVyY2hhc2UoKSA/ICdCdXknIDogJ1NlbGwnO1xuICB9XG5cbiAgZ2V0IHNpZ24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1B1cmNoYXNlKCkgPyAnJyA6ICctJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdG90YWwgcHVyY2hhc2luZyBwcmljZVxuICAgKi9cbiAgZ2V0IHRvdGFsKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucHJpY2UgKiB0aGlzLnF1YW50aXR5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpayByZW1vdmVcbiAgICovXG4gIGdldCBtYXJrZXRWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnF1YW50aXR5ICogdGhpcy5ob2xkaW5nVHlwZS5wcmljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcGVyY2VudCBkaWZmZXJlbmNlIGJldHdlZW4gY3VycmVudCBhbmQgYnV5IHByaWNlXG4gICAqIEBUT0RPIHZpay9hbGV4IG5vIG5lZWQgdG8gcGFzcyBob2xkaW5nVHlwZSwgc2hvdWxkIGNvbWUgZnJvbSBiYWNrZW5kXG4gICAqL1xuICBnZXQgZ3Jvd3RoQ29lZmZpY2llbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ob2xkaW5nVHlwZS5wcmljZSAvIHRoaXMucHJpY2UgLSAxO1xuICB9XG5cbiAgaGVsZE1vcmVZZWFyKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHllYXJUaW1lOiBudW1iZXIgPSAxMDAwICogNjAgKiA2MCAqIDI0ICogMzY1O1xuXG4gICAgcmV0dXJuIChuZXcgRmluYW5jaWFsWWVhcigpLnN0YXJ0RGF0ZS5nZXRUaW1lKCkgLSB0aGlzLmRhdGUuZ2V0VGltZSgpKSA+IHllYXJUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIEFydGVtL0FsZXggbG9va3MgYmFkLCBjb21lIHVwIHdpdGggYSBiZXR0ZXIgc29sdXRpb25cbiAgICogZ2V0IGN1cnJlbnQgY2F0ZWdvcnksIGluIGhvbGRpbmcgd2UgYXJlIGludGVyZXN0ZWQgaW4gMyBtYWluIGNhdGVnb3JpZXM6IHN0b2NrL2NyeXB0by9vdGhlclxuICAgKi9cbiAgQFRyYW5zZm9ybSgoeyBvYmogfSkgPT4ge1xuICAgIGNvbnN0IGhvbGRpbmdUeXBlOiBIb2xkaW5nVHlwZSA9IHBsYWluVG9DbGFzcyhIb2xkaW5nVHlwZSwgb2JqLmhvbGRpbmdUeXBlKVxuICAgIGlmIChob2xkaW5nVHlwZSkge1xuICAgICAgcmV0dXJuIGhvbGRpbmdUeXBlLmlzT3RoZXIoKSA/IG51bGwgOiBob2xkaW5nVHlwZS5jYXRlZ29yeVxuICAgIH1cbiAgICBpZiAob2JqLmNhdGVnb3J5KSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5DT0xMRUNUSUJMRSxcbiAgICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfU1RPQ0ssXG4gICAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlVOTElTVEVEX1VOSVQsXG4gICAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLk9USEVSXG4gICAgICBdLmluY2x1ZGVzKG9iai5jYXRlZ29yeSkgPyBudWxsIDogb2JqLmNhdGVnb3J5O1xuICAgIH1cbiAgICByZXR1cm4gSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uU1RPQ0s7XG4gIH0sIHsgdG9DbGFzc09ubHk6IHRydWUgfSlcbiAgQEV4cG9zZSh7IHRvQ2xhc3NPbmx5OiB0cnVlIH0pIGNhdGVnb3J5OiBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bTtcblxuICBnZXQgY2F0ZWdvcnlMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhvbGRpbmdUeXBlLmNhdGVnb3J5TGFiZWw7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhvbGRpbmdUeXBlLm5hbWU7XG4gIH1cblxuICBnZXQgdGlja2VyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaG9sZGluZ1R5cGUudGlja2VyO1xuICB9XG59XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLXRyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9FLE1BQU0sT0FBTyxZQUFhLFNBQVEsZUFBZTtJQUFqRDs7UUFFRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFYixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRVYsU0FBSSxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztJQTBGbEMsQ0FBQzthQWhHUSxjQUFTLEdBQUcsY0FBYyxBQUFqQixDQUFrQjtJQXdCbEMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FBQyxHQUFHLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sUUFBUSxHQUFXLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFFbkQsT0FBTyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDcEYsQ0FBQztJQXVCRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ2pDLENBQUM7O0FBckZEO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTjtBQUdYO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTjtBQU1YO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztpREFDQztBQUd6QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7MENBQ047QUE2RGlCO0lBZjlCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtRQUNyQixNQUFNLFdBQVcsR0FBZ0IsWUFBWSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDM0UsSUFBSSxXQUFXLEVBQUU7WUFDZixPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFBO1NBQzNEO1FBQ0QsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE9BQU87Z0JBQ0wsdUJBQXVCLENBQUMsV0FBVztnQkFDbkMsdUJBQXVCLENBQUMsY0FBYztnQkFDdEMsdUJBQXVCLENBQUMsYUFBYTtnQkFDckMsdUJBQXVCLENBQUMsS0FBSzthQUM5QixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztTQUNoRDtRQUNELE9BQU8sdUJBQXVCLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4QixNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7OENBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwb3NlLCBUcmFuc2Zvcm0sIFR5cGUsIHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi91c2VyJztcbmltcG9ydCB7IEhvbGRpbmdUeXBlIH0gZnJvbSAnLi9ob2xkaW5nLXR5cGUnO1xuaW1wb3J0IHsgQXBwRmlsZSB9IGZyb20gJy4uL2ZpbGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9maW5hbmNpYWwteWVhcic7XG5pbXBvcnQgeyBIb2xkaW5nVHJhZGVUeXBlRW51bSwgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XG5cbmV4cG9ydCBjbGFzcyBIb2xkaW5nVHJhZGUgZXh0ZW5kcyBPYnNlcnZhYmxlTW9kZWwge1xuICBzdGF0aWMgY2xhc3NOYW1lID0gJ0hvbGRpbmdUcmFkZSc7XG4gIGlzVGF4RnJlZSA9IGZhbHNlO1xuICBxdWFudGl0eSA9IDA7XG4gIG93bmVyc2hpcFBlcmNlbnQ/OiBudW1iZXI7XG4gIHByaWNlID0gMDtcbiAgZmVlOiBudW1iZXI7XG4gIHR5cGUgPSBIb2xkaW5nVHJhZGVUeXBlRW51bS5CVVk7XG4gIGV4dGVybmFsSWQ/OiBudW1iZXI7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBVc2VyKVxuICB1c2VyOiBVc2VyO1xuXG4gIC8qKlxuICAgKiBAVE9ETyB2aWsgNDUyMSByZW5hbWUgdG8gaG9sZGluZ1xuICAgKi9cbiAgQFR5cGUoKCkgPT4gSG9sZGluZ1R5cGUpXG4gIGhvbGRpbmdUeXBlOiBIb2xkaW5nVHlwZTtcblxuICBAVHlwZSgoKSA9PiBBcHBGaWxlKVxuICBmaWxlOiBBcHBGaWxlO1xuXG4gIGlzUHVyY2hhc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSG9sZGluZ1RyYWRlVHlwZUVudW0uQlVZO1xuICB9XG5cbiAgZ2V0IHR5cGVMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzUHVyY2hhc2UoKSA/ICdCdXknIDogJ1NlbGwnO1xuICB9XG5cbiAgZ2V0IHNpZ24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1B1cmNoYXNlKCkgPyAnJyA6ICctJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdG90YWwgcHVyY2hhc2luZyBwcmljZVxuICAgKi9cbiAgZ2V0IHRvdGFsKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucHJpY2UgKiB0aGlzLnF1YW50aXR5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpayByZW1vdmVcbiAgICovXG4gIGdldCBtYXJrZXRWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnF1YW50aXR5ICogdGhpcy5ob2xkaW5nVHlwZS5wcmljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcGVyY2VudCBkaWZmZXJlbmNlIGJldHdlZW4gY3VycmVudCBhbmQgYnV5IHByaWNlXG4gICAqIEBUT0RPIHZpay9hbGV4IG5vIG5lZWQgdG8gcGFzcyBob2xkaW5nVHlwZSwgc2hvdWxkIGNvbWUgZnJvbSBiYWNrZW5kXG4gICAqL1xuICBnZXQgZ3Jvd3RoQ29lZmZpY2llbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ob2xkaW5nVHlwZS5wcmljZSAvIHRoaXMucHJpY2UgLSAxO1xuICB9XG5cbiAgaGVsZE1vcmVZZWFyKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHllYXJUaW1lOiBudW1iZXIgPSAxMDAwICogNjAgKiA2MCAqIDI0ICogMzY1O1xuXG4gICAgcmV0dXJuIChuZXcgRmluYW5jaWFsWWVhcigpLnN0YXJ0RGF0ZS5nZXRUaW1lKCkgLSB0aGlzLmRhdGUuZ2V0VGltZSgpKSA+IHllYXJUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIEFydGVtL0FsZXggbG9va3MgYmFkLCBjb21lIHVwIHdpdGggYSBiZXR0ZXIgc29sdXRpb25cbiAgICogZ2V0IGN1cnJlbnQgY2F0ZWdvcnksIGluIGhvbGRpbmcgd2UgYXJlIGludGVyZXN0ZWQgaW4gMyBtYWluIGNhdGVnb3JpZXM6IHN0b2NrL2NyeXB0by9vdGhlclxuICAgKi9cbiAgQFRyYW5zZm9ybSgoeyBvYmogfSkgPT4ge1xuICAgIGNvbnN0IGhvbGRpbmdUeXBlOiBIb2xkaW5nVHlwZSA9IHBsYWluVG9DbGFzcyhIb2xkaW5nVHlwZSwgb2JqLmhvbGRpbmdUeXBlKVxuICAgIGlmIChob2xkaW5nVHlwZSkge1xuICAgICAgcmV0dXJuIGhvbGRpbmdUeXBlLmlzT3RoZXIoKSA/IG51bGwgOiBob2xkaW5nVHlwZS5jYXRlZ29yeVxuICAgIH1cbiAgICBpZiAob2JqLmNhdGVnb3J5KSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5DT0xMRUNUSUJMRSxcbiAgICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfU1RPQ0ssXG4gICAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlVOTElTVEVEX1VOSVQsXG4gICAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLk9USEVSXG4gICAgICBdLmluY2x1ZGVzKG9iai5jYXRlZ29yeSkgPyBudWxsIDogb2JqLmNhdGVnb3J5O1xuICAgIH1cbiAgICByZXR1cm4gSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uU1RPQ0s7XG4gIH0sIHsgdG9DbGFzc09ubHk6IHRydWUgfSlcbiAgQEV4cG9zZSh7IHRvQ2xhc3NPbmx5OiB0cnVlIH0pIGNhdGVnb3J5OiBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bTtcblxuICBnZXQgY2F0ZWdvcnlMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhvbGRpbmdUeXBlLmNhdGVnb3J5TGFiZWw7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhvbGRpbmdUeXBlLm5hbWU7XG4gIH1cblxuICBnZXQgdGlja2VyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaG9sZGluZ1R5cGUudGlja2VyO1xuICB9XG59XG4iXX0=
@@ -79,7 +79,7 @@ export class PropertyEquityChartData {
79
79
  items.forEach((item) => {
80
80
  // increase item values with property actual forecasts for item year
81
81
  item.marketValue = this.properties.items.reduce((sum, property) => sum + this.getMarketValueForPropertyByYear(property, item.year), 0);
82
- item.loanBalance = Math.abs(this.properties.items.reduce((sum, property) => sum + this.getLoanBalanceForPropertyByYear(property, item.year), 0));
82
+ item.loanBalance = Math.abs(this.properties.items.reduce((sum, property) => sum + this.getLoanBalanceByYear(property, item.year), 0));
83
83
  });
84
84
  }
85
85
  /**
@@ -104,9 +104,8 @@ export class PropertyEquityChartData {
104
104
  this.list
105
105
  .filter((item) => item.year > this.currentYear)
106
106
  .forEach((item) => {
107
- const propertyBankAccounts = this.bankAccounts.getByPropertyId(property.id);
108
107
  // increase loan balance amount for handling equity position item
109
- item.loanBalance += this.getLoanBalanceByYear(property, item.year, propertyBankAccounts, this.loans.getByBankAccountsIds(propertyBankAccounts.getIds()));
108
+ item.loanBalance += this.getLoanBalanceByYear(property, item.year);
110
109
  // increase market value amount for handling equity position item
111
110
  item.marketValue += forecastedMarketValue;
112
111
  // increase current market value forecast for the next cycle iteration
@@ -118,26 +117,25 @@ export class PropertyEquityChartData {
118
117
  * Get property loan balance by financial year
119
118
  * @param property Property instance for filter
120
119
  * @param year Financial year number
121
- * @param bankAccounts List of bank accounts
122
- * @param loans List of loans
123
120
  * @private
124
121
  */
125
- getLoanBalanceByYear(property, year, bankAccounts, loans) {
126
- const offset = bankAccounts.filterBy('type', BankAccountTypeEnum.OFFSET).getPropertyBalanceAmount(property.id);
127
- return bankAccounts.items.reduce((totalSum, bankAccount) => totalSum + (bankAccount.getPropertyPercentage(property.id) * (loans.getByBankAccountId(bankAccount.id)?.getLastPaymentByYear(year)?.totalOwed || 0)), 0) - offset;
128
- }
129
- getMarketValueForPropertyByYear(property, year) {
122
+ getLoanBalanceByYear(property, year) {
130
123
  if (new FinancialYear(property.contractDate).year > year) {
131
124
  return 0;
132
125
  }
133
- return (property.getForecastByYear(year) || first(property.forecasts)).marketValue;
126
+ const bankAccounts = this.bankAccounts.getByPropertyId(property.id);
127
+ const loans = this.loans.getByBankAccountsIds(bankAccounts.getIds());
128
+ const offset = bankAccounts.filterBy('type', BankAccountTypeEnum.OFFSET).getPropertyBalanceAmount(property.id);
129
+ if (year > this.currentYear) {
130
+ return bankAccounts.items.reduce((totalSum, bankAccount) => totalSum + (bankAccount.getPropertyPercentage(property.id) * (loans.getByBankAccountId(bankAccount.id)?.getLastPaymentByYear(year)?.totalOwed || 0)), 0) - offset;
131
+ }
132
+ return ((property.getForecastByYear(year) || first(property.forecasts)).marketValue) - offset;
134
133
  }
135
- getLoanBalanceForPropertyByYear(property, year) {
134
+ getMarketValueForPropertyByYear(property, year) {
136
135
  if (new FinancialYear(property.contractDate).year > year) {
137
136
  return 0;
138
137
  }
139
- // @TODO remove after tests `|| this.bankAccounts.getPropertyBalanceAmount(property.id)`
140
- return property.getForecastByYear(year)?.loanBalance;
138
+ return (property.getForecastByYear(year) || first(property.forecasts)).marketValue;
141
139
  }
142
140
  /**
143
141
  * Check if loan balance is 0 and set it as null (to not to draw point on the chart)
@@ -160,4 +158,4 @@ export class PropertyEquityChartData {
160
158
  });
161
159
  }
162
160
  }
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZXF1aXR5LWNoYXJ0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWVxdWl0eS1jaGFydC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU92RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsbUNBQW1DO0FBQ25DLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUUxQjs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsWUFDVSxVQUE4QixFQUM5QixVQUF1QyxFQUN2QyxZQUFtQyxFQUNuQyxLQUFxQixFQUNyQixZQUFrQjtRQUpsQixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUM5QixlQUFVLEdBQVYsVUFBVSxDQUE2QjtRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFDbkMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQU07UUFFMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFl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QUFDLENBQUM7U0FDVjtRQUVELE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNyRixDQUFDO0lBRUQsK0JBQStCLENBQUMsUUFBa0IsRUFBRSxJQUFZO1FBQzlELElBQUksSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUU7WUFDeEQsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUVELHdGQUF3RjtRQUN4RixPQUFPLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBNkIsRUFBRSxFQUFFO1lBQ2xELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUE2QixFQUFFLEVBQUU7WUFDbEQsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaXJzdCBmcm9tICdsb2Rhc2gvZmlyc3QnO1xuaW1wb3J0IHsgUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0gfSBmcm9tICcuL3Byb3BlcnR5LWVxdWl0eS1jaGFydC1pdGVtJztcbmltcG9ydCB7XG4gIEJhbmtBY2NvdW50Q29sbGVjdGlvbixcbiAgTG9hbkNvbGxlY3Rpb24sXG4gIFByb3BlcnR5Q29sbGVjdGlvbixcbiAgUHJvcGVydHlWYWx1YXRpb25Db2xsZWN0aW9uXG59IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9maW5hbmNpYWwteWVhcic7XG5pbXBvcnQgeyBQcm9wZXJ0eUVxdWl0eUNoYXJ0VHlwZUVudW0gfSBmcm9tICcuL3Byb3BlcnR5LWVxdWl0eS1jaGFydC10eXBlLmVudW0nO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuL3Byb3BlcnR5JztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vYmFuayc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuXG4vLyBjb3VudCBvZiB5ZWFycyBmb3IgZnV0dXJlIHZhbHVlc1xuY29uc3QgRk9SRUNBU1RfWUVBUlMgPSAyNTtcblxuLyoqXG4gKiBjbGFzcyBjb250YWluIGFjdHVhbCBhbmQgZm9yZWNhc3RlZCBtYXJrZXQgdmFsdWVzIGFuZCBsb2FuIGJhbGFuY2VzIGZvciBwYXNzZWQgcHJvcGVydGllc1xuICogWCBheGlzIC0geWVhcnMgZnJvbSB0aGUgZmlyc3QgYWN0dWFsIGRhdGEgeWVhciB0byB0aGUgbGFzdCBmb3JlY2FzdGVkIHllYXJcbiAqIFkgYXhpcyAtIGFtb3VudHMgb2YgbWFya2V0IHZhbHVlcywgbG9hbiBiYWxhbmNlc1xuICogQWxzbyBvbiBob3ZlciBhcHBlYXIgZXF1aXR5IHBvc2l0aW9ucyBwb2ludFxuICovXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFcXVpdHlDaGFydERhdGEge1xuICAvLyBsaXN0IG9mIGVxdWl0eSBwb3NpdGlvbnMgZm9yIGFsbCB5ZWFycyByYW5nZVxuICBsaXN0OiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbVtdO1xuICAvLyBjdXJyZW50IGZpbmFuY2lhbCB5ZWFyXG4gIGN1cnJlbnRZZWFyOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSB2YWx1YXRpb25zOiBQcm9wZXJ0eVZhbHVhdGlvbkNvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbixcbiAgICBwcml2YXRlIGxvYW5zOiBMb2FuQ29sbGVjdGlvbixcbiAgICBwcml2YXRlIHJlZ2lzdGVyRGF0ZTogRGF0ZVxuICApIHtcbiAgICB0aGlzLmJhbmtBY2NvdW50cyA9IGJhbmtBY2NvdW50cy5nZXRMb2FuQW5kT2Zmc2V0QWNjb3VudHMoKTtcbiAgICB0aGlzLmN1cnJlbnRZZWFyID0gbmV3IEZpbmFuY2lhbFllYXIobmV3IERhdGUoKSkueWVhcjtcbiAgICB0aGlzLmluaXRJdGVtcygpO1xuICAgIHRoaXMuYnVpbGRIaXN0b3J5SXRlbXMoKTtcbiAgICB0aGlzLmJ1aWxkQWN0dWFsSXRlbSgpO1xuICAgIHRoaXMuYnVpbGRGb3JlY2FzdGVkSXRlbXMoKTtcbiAgICB0aGlzLmNoZWNrWmVyb0xvYW5CYWxhbmNlKCk7XG4gICAgdGhpcy5jaGVja1plcm9NYXJrZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBpdGVtcyBsaXN0IGluIGNoYXJ0IHNlcmllcyBmb3JtYXRcbiAgICogQHBhcmFtIHR5cGVcbiAgICovXG4gIGdldENoYXJ0U2VyaWVzKHR5cGU6IFByb3BlcnR5RXF1aXR5Q2hhcnRUeXBlRW51bSk6IG51bWJlcltdW10ge1xuICAgIHJldHVybiB0aGlzLmxpc3QubWFwKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4gaXRlbS5nZXRTZXJpZSh0eXBlKSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHByZXBhcmVkIGNoYXJ0IGRhdGFcbiAgICovXG4gIGdldENoYXJ0RGF0YSgpOiBvYmplY3RbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdtYXJrZXRWYWx1ZScsXG4gICAgICAgIG5hbWU6ICdNYXJrZXQgVmFsdWUnLFxuICAgICAgICBzZXJpZXM6IHRoaXMuZ2V0Q2hhcnRTZXJpZXMoUHJvcGVydHlFcXVpdHlDaGFydFR5cGVFbnVtLk1BUktFVF9WQUxVRSksXG4gICAgICAgIC8vIGRpc3BsYXkgZnV0dXJlIG1hcmtldCB2YWx1ZSB3aXRoIGRhc2ggbGluZSBhbmQgcGFzdCBtYXJrZXQgdmFsdWUgd2l0aCBzb2xpZCBsaW5lXG4gICAgICAgIHpvbmVzOiBbe1xuICAgICAgICAgIC8vIGxpbmUgc3R5bGUgYWZ0ZXIgY3VycmVudCBjYWxlbmRhciB5ZWFyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuY3VycmVudFllYXIsXG4gICAgICAgICAgZGFzaFN0eWxlOiAnU29saWQnXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAvLyBkZWZhdWx0IGxpbmUgc3R5bGVcbiAgICAgICAgICBkYXNoU3R5bGU6ICdEYXNoJ1xuICAgICAgICB9XVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaWQgdXNlZCB0byBhZGQvcmVtb3ZlIHNlcmllIHRvIGNoYXJ0XG4gICAgICAgIGlkOiAnbG9hbkJhbGFuY2UnLFxuICAgICAgICBuYW1lOiAnTG9hbiBCYWxhbmNlJyxcbiAgICAgICAgc2VyaWVzOiB0aGlzLmdldENoYXJ0U2VyaWVzKFByb3BlcnR5RXF1aXR5Q2hhcnRUeXBlRW51bS5MT0FOX0JBTEFOQ0UpXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjcmVhdGUgZW1wdHkgZXF1aXR5IHBvc2l0aW9uIGl0ZW0gZm9yIGVhY2ggeWVhciBpbiBjb2xsZWN0aW9uXG4gICAqL1xuICBwcml2YXRlIGluaXRJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3QgPSBbXTtcbiAgICBmb3IgKGxldCB5ZWFyOiBudW1iZXIgPSBuZXcgRmluYW5jaWFsWWVhcih0aGlzLnJlZ2lzdGVyRGF0ZSkueWVhciAtIDE7IHllYXIgPD0gKHRoaXMuY3VycmVudFllYXIgKyBGT1JFQ0FTVF9ZRUFSUyk7IHllYXIrKykge1xuICAgICAgdGhpcy5saXN0LnB1c2gobmV3IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKHllYXIpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogY29sbGVjdCBlcXVpdHkgcG9zaXRpb24gaXRlbXMgd2l0aCBwYXN0IHZhbHVlcyBmcm9tIHByb3BlcnRpZXMgZm9yZWNhc3RzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkSGlzdG9yeUl0ZW1zKCk6IHZvaWQge1xuICAgIC8vIGdldCBpdGVtcyBmb3IgcGFzdCBhbmQgY3VycmVudCB5ZWFyc1xuICAgIGNvbnN0IGl0ZW1zOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbVtdID0gdGhpcy5saXN0LmZpbHRlcigoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IGl0ZW0ueWVhciA8PSB0aGlzLmN1cnJlbnRZZWFyKTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4ge1xuICAgICAgLy8gaW5jcmVhc2UgaXRlbSB2YWx1ZXMgd2l0aCBwcm9wZXJ0eSBhY3R1YWwgZm9yZWNhc3RzIGZvciBpdGVtIHllYXJcbiAgICAgIGl0ZW0ubWFya2V0VmFsdWUgPSB0aGlzLnByb3BlcnRpZXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgcHJvcGVydHk6IFByb3BlcnR5KTogbnVtYmVyID0+IHN1bSArIHRoaXMuZ2V0TWFya2V0VmFsdWVGb3JQcm9wZXJ0eUJ5WWVhcihwcm9wZXJ0eSwgaXRlbS55ZWFyKSwgMCk7XG5cbiAgICAgIGl0ZW0ubG9hbkJhbGFuY2UgPSBNYXRoLmFicyh0aGlzLnByb3BlcnRpZXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgcHJvcGVydHk6IFByb3BlcnR5KTogbnVtYmVyID0+IHN1bSArIHRoaXMuZ2V0TG9hbkJhbGFuY2VGb3JQcm9wZXJ0eUJ5WWVhcihwcm9wZXJ0eSwgaXRlbS55ZWFyKSwgMCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHJlbW92ZSwgdGhlcmUgaXMgbm8gZGlmZmVyZW5jZSBiZXR3ZWVuIGFjdHVhbCBhbmQgaGlzdG9yeSBjYWxjdWxhdGlvbnNcbiAgICogc2V0IGFjdHVhbCB5ZWFyJ3MgcmVhbCBkYXRhXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkQWN0dWFsSXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSA9IHRoaXMubGlzdC5maW5kKChpOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4gaS55ZWFyID09PSB0aGlzLmN1cnJlbnRZZWFyKTtcbiAgICBpdGVtLm1hcmtldFZhbHVlID0gdGhpcy52YWx1YXRpb25zLmdldE1hcmtldFZhbHVlKG5ldyBEYXRlKCkpO1xuICAgIGl0ZW0ubG9hbkJhbGFuY2UgPSB0aGlzLnByb3BlcnRpZXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgcHJvcGVydHk6IFByb3BlcnR5KTogbnVtYmVyID0+IHN1bSArIE1hdGguYWJzKHRoaXMuYmFua0FjY291bnRzLmdldFByb3BlcnR5QmFsYW5jZUFtb3VudChwcm9wZXJ0eS5pZCkpLCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb2xsZWN0IGVxdWl0eSBwb3NpdGlvbiBpdGVtcyB3aXRoIGZvcmVjYXN0ZWQgKGZ1dHVyZSkgY2FsY3VsYXRlZCB2YWx1ZXNcbiAgICovXG4gIHByaXZhdGUgYnVpbGRGb3JlY2FzdGVkSXRlbXMoKTogdm9pZCB7XG4gICAgLy8gY2FsY3VsYXRlIGZ1dHVyZSB2YWx1ZXMgZm9yIGFsbCBwcm9wZXJ0aWVzIHNlcGFyYXRlbHlcbiAgICB0aGlzLnByb3BlcnRpZXMuaXRlbXMuZm9yRWFjaCgocHJvcGVydHk6IFByb3BlcnR5KSA9PiB7XG4gICAgICBjb25zdCBtYXJrZXRWYWx1ZSA9IHRoaXMudmFsdWF0aW9ucy5maWx0ZXJCeSgncHJvcGVydHkuaWQnLCBwcm9wZXJ0eS5pZCkuZ2V0TWFya2V0VmFsdWUobmV3IERhdGUoKSk7XG4gICAgICBsZXQgZm9yZWNhc3RlZE1hcmtldFZhbHVlOiBudW1iZXIgPSAocHJvcGVydHkuZ3Jvd3RoUGVyY2VudCAvIDEwMCkgKiBtYXJrZXRWYWx1ZSArIG1hcmtldFZhbHVlO1xuXG4gICAgICAvLyBjYWxjdWxhdGUgZnV0dXJlIHZhbHVlcyBmb3IgZWFjaCBmdXR1cmUgeWVhciBmb3IgY3VycmVudCBoYW5kbGluZyBwcm9wZXJ0eVxuICAgICAgdGhpcy5saXN0XG4gICAgICAgIC5maWx0ZXIoKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiBpdGVtLnllYXIgPiB0aGlzLmN1cnJlbnRZZWFyKVxuICAgICAgICAuZm9yRWFjaCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eUJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uID0gdGhpcy5iYW5rQWNjb3VudHMuZ2V0QnlQcm9wZXJ0eUlkKHByb3BlcnR5LmlkKTtcbiAgICAgICAgICAvLyBpbmNyZWFzZSBsb2FuIGJhbGFuY2UgYW1vdW50IGZvciBoYW5kbGluZyBlcXVpdHkgcG9zaXRpb24gaXRlbVxuICAgICAgICAgIGl0ZW0ubG9hbkJhbGFuY2UgKz0gdGhpcy5nZXRMb2FuQmFsYW5jZUJ5WWVhcihwcm9wZXJ0eSwgaXRlbS55ZWFyLCBwcm9wZXJ0eUJhbmtBY2NvdW50cywgdGhpcy5sb2Fucy5nZXRCeUJhbmtBY2NvdW50c0lkcyhwcm9wZXJ0eUJhbmtBY2NvdW50cy5nZXRJZHMoKSkpO1xuXG4gICAgICAgICAgLy8gaW5jcmVhc2UgbWFya2V0IHZhbHVlIGFtb3VudCBmb3IgaGFuZGxpbmcgZXF1aXR5IHBvc2l0aW9uIGl0ZW1cbiAgICAgICAgICBpdGVtLm1hcmtldFZhbHVlICs9IGZvcmVjYXN0ZWRNYXJrZXRWYWx1ZTtcblxuICAgICAgICAgIC8vIGluY3JlYXNlIGN1cnJlbnQgbWFya2V0IHZhbHVlIGZvcmVjYXN0IGZvciB0aGUgbmV4dCBjeWNsZSBpdGVyYXRpb25cbiAgICAgICAgICBmb3JlY2FzdGVkTWFya2V0VmFsdWUgKz0gZm9yZWNhc3RlZE1hcmtldFZhbHVlICogKHByb3BlcnR5Lmdyb3d0aFBlcmNlbnQgLyAxMDApO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcHJvcGVydHkgbG9hbiBiYWxhbmNlIGJ5IGZpbmFuY2lhbCB5ZWFyXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSBQcm9wZXJ0eSBpbnN0YW5jZSBmb3IgZmlsdGVyXG4gICAqIEBwYXJhbSB5ZWFyIEZpbmFuY2lhbCB5ZWFyIG51bWJlclxuICAgKiBAcGFyYW0gYmFua0FjY291bnRzIExpc3Qgb2YgYmFuayBhY2NvdW50c1xuICAgKiBAcGFyYW0gbG9hbnMgTGlzdCBvZiBsb2Fuc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRMb2FuQmFsYW5jZUJ5WWVhcihwcm9wZXJ0eTogUHJvcGVydHksIHllYXI6IG51bWJlciwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gYmFua0FjY291bnRzLmZpbHRlckJ5KCd0eXBlJywgQmFua0FjY291bnRUeXBlRW51bS5PRkZTRVQpLmdldFByb3BlcnR5QmFsYW5jZUFtb3VudChwcm9wZXJ0eS5pZCk7XG5cbiAgICByZXR1cm4gYmFua0FjY291bnRzLml0ZW1zLnJlZHVjZSgodG90YWxTdW06IG51bWJlciwgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiB0b3RhbFN1bSArIChiYW5rQWNjb3VudC5nZXRQcm9wZXJ0eVBlcmNlbnRhZ2UocHJvcGVydHkuaWQpICogKGxvYW5zLmdldEJ5QmFua0FjY291bnRJZChiYW5rQWNjb3VudC5pZCk/LmdldExhc3RQYXltZW50QnlZZWFyKHllYXIpPy50b3RhbE93ZWQgfHwgMCkpLCAwKSAtIG9mZnNldDtcbiAgfVxuXG4gIGdldE1hcmtldFZhbHVlRm9yUHJvcGVydHlCeVllYXIocHJvcGVydHk6IFByb3BlcnR5LCB5ZWFyOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChuZXcgRmluYW5jaWFsWWVhcihwcm9wZXJ0eS5jb250cmFjdERhdGUpLnllYXIgPiB5ZWFyKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHByb3BlcnR5LmdldEZvcmVjYXN0QnlZZWFyKHllYXIpIHx8IGZpcnN0KHByb3BlcnR5LmZvcmVjYXN0cykpLm1hcmtldFZhbHVlO1xuICB9XG5cbiAgZ2V0TG9hbkJhbGFuY2VGb3JQcm9wZXJ0eUJ5WWVhcihwcm9wZXJ0eTogUHJvcGVydHksIHllYXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKG5ldyBGaW5hbmNpYWxZZWFyKHByb3BlcnR5LmNvbnRyYWN0RGF0ZSkueWVhciA+IHllYXIpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIC8vIEBUT0RPIHJlbW92ZSBhZnRlciB0ZXN0cyBgfHwgdGhpcy5iYW5rQWNjb3VudHMuZ2V0UHJvcGVydHlCYWxhbmNlQW1vdW50KHByb3BlcnR5LmlkKWBcbiAgICByZXR1cm4gcHJvcGVydHkuZ2V0Rm9yZWNhc3RCeVllYXIoeWVhcik/LmxvYW5CYWxhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGxvYW4gYmFsYW5jZSBpcyAwIGFuZCBzZXQgaXQgYXMgbnVsbCAodG8gbm90IHRvIGRyYXcgcG9pbnQgb24gdGhlIGNoYXJ0KVxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja1plcm9Mb2FuQmFsYW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3QuZm9yRWFjaCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLmxvYW5CYWxhbmNlID09PSAwKSB7XG4gICAgICAgIGl0ZW0ubG9hbkJhbGFuY2UgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIG1hcmtldCB2YWx1ZSBpcyAwIGFuZCBzZXQgaXQgYXMgbnVsbCAodG8gbm90IHRvIGRyYXcgcG9pbnQgb24gdGhlIGNoYXJ0KVxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja1plcm9NYXJrZXRWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3QuZm9yRWFjaCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLm1hcmtldFZhbHVlID09PSAwKSB7XG4gICAgICAgIGl0ZW0ubWFya2V0VmFsdWUgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZXF1aXR5LWNoYXJ0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWVxdWl0eS1jaGFydC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU92RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsbUNBQW1DO0FBQ25DLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUUxQjs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsWUFDVSxVQUE4QixFQUM5QixVQUF1QyxFQUN2QyxZQUFtQyxFQUNuQyxLQUFxQixFQUNyQixZQUFrQjtRQUpsQixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUM5QixlQUFVLEdBQVYsVUFBVSxDQUE2QjtRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFDbkMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQU07UUFFMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLElBQWlDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUE2QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLE9BQU87WUFDTDtnQkFDRSxFQUFFLEVBQUUsYUFBYTtnQkFDakIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLFlBQVksQ0FBQztnQkFDckUsbUZBQW1GO2dCQUNuRixLQUFLLEVBQUUsQ0FBQzt3QkFDTix5Q0FBeUM7d0JBQ3pDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVzt3QkFDdkIsU0FBUyxFQUFFLE9BQU87cUJBQ25CLEVBQUU7d0JBQ0QscUJBQXFCO3dCQUNyQixTQUFTLEVBQUUsTUFBTTtxQkFDbEIsQ0FBQzthQUNIO1lBQ0Q7Z0JBQ0UsdUNBQXVDO2dCQUN2QyxFQUFFLEVBQUUsYUFBYTtnQkFDakIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLFlBQVksQ0FBQzthQUN0RTtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxTQUFTO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixLQUFLLElBQUksSUFBSSxHQUFXLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDMUgsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssaUJBQWlCO1FBQ3ZCLHVDQUF1QztRQUN2QyxNQUFNLEtBQUssR0FBOEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUE2QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1SCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBNkIsRUFBRSxFQUFFO1lBQzlDLG9FQUFvRTtZQUNwRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxRQUFrQixFQUFVLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFakssSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxRQUFrQixFQUFVLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsSyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZUFBZTtRQUNyQixNQUFNLElBQUksR0FBNEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxRQUFrQixFQUFVLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNLLENBQUM7SUFFRDs7T0FFRztJQUNLLG9CQUFvQjtRQUMxQix3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFO1lBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNwRyxJQUFJLHFCQUFxQixHQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBRS9GLDZFQUE2RTtZQUM3RSxJQUFJLENBQUMsSUFBSTtpQkFDTixNQUFNLENBQUMsQ0FBQyxJQUE2QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7aUJBQ3ZFLE9BQU8sQ0FBQyxDQUFDLElBQTZCLEVBQUUsRUFBRTtnQkFDekMsaUVBQWlFO2dCQUNqRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUVuRSxpRUFBaUU7Z0JBQ2pFLElBQUksQ0FBQyxXQUFXLElBQUkscUJBQXFCLENBQUM7Z0JBRTFDLHNFQUFzRTtnQkFDdEUscUJBQXFCLElBQUkscUJBQXFCLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ2xGLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxvQkFBb0IsQ0FBQyxRQUFrQixFQUFFLElBQVk7UUFDM0QsSUFBSSxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRTtZQUN4RCxPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDckUsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9HLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDM0IsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWdCLEVBQUUsV0FBd0IsRUFBRSxFQUFFLENBQUMsUUFBUSxHQUFHLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQ3BQO1FBRUQsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDaEcsQ0FBQztJQUVELCtCQUErQixDQUFDLFFBQWtCLEVBQUUsSUFBWTtRQUM5RCxJQUFJLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFO1lBQ3hELE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDckYsQ0FBQztJQUVEOztPQUVHO0lBQ0ssb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBNkIsRUFBRSxFQUFFO1lBQ2xELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUE2QixFQUFFLEVBQUU7WUFDbEQsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaXJzdCBmcm9tICdsb2Rhc2gvZmlyc3QnO1xuaW1wb3J0IHsgUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0gfSBmcm9tICcuL3Byb3BlcnR5LWVxdWl0eS1jaGFydC1pdGVtJztcbmltcG9ydCB7XG4gIEJhbmtBY2NvdW50Q29sbGVjdGlvbixcbiAgTG9hbkNvbGxlY3Rpb24sXG4gIFByb3BlcnR5Q29sbGVjdGlvbixcbiAgUHJvcGVydHlWYWx1YXRpb25Db2xsZWN0aW9uXG59IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9maW5hbmNpYWwteWVhcic7XG5pbXBvcnQgeyBQcm9wZXJ0eUVxdWl0eUNoYXJ0VHlwZUVudW0gfSBmcm9tICcuL3Byb3BlcnR5LWVxdWl0eS1jaGFydC10eXBlLmVudW0nO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuL3Byb3BlcnR5JztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vYmFuayc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuXG4vLyBjb3VudCBvZiB5ZWFycyBmb3IgZnV0dXJlIHZhbHVlc1xuY29uc3QgRk9SRUNBU1RfWUVBUlMgPSAyNTtcblxuLyoqXG4gKiBjbGFzcyBjb250YWluIGFjdHVhbCBhbmQgZm9yZWNhc3RlZCBtYXJrZXQgdmFsdWVzIGFuZCBsb2FuIGJhbGFuY2VzIGZvciBwYXNzZWQgcHJvcGVydGllc1xuICogWCBheGlzIC0geWVhcnMgZnJvbSB0aGUgZmlyc3QgYWN0dWFsIGRhdGEgeWVhciB0byB0aGUgbGFzdCBmb3JlY2FzdGVkIHllYXJcbiAqIFkgYXhpcyAtIGFtb3VudHMgb2YgbWFya2V0IHZhbHVlcywgbG9hbiBiYWxhbmNlc1xuICogQWxzbyBvbiBob3ZlciBhcHBlYXIgZXF1aXR5IHBvc2l0aW9ucyBwb2ludFxuICovXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFcXVpdHlDaGFydERhdGEge1xuICAvLyBsaXN0IG9mIGVxdWl0eSBwb3NpdGlvbnMgZm9yIGFsbCB5ZWFycyByYW5nZVxuICBsaXN0OiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbVtdO1xuICAvLyBjdXJyZW50IGZpbmFuY2lhbCB5ZWFyXG4gIGN1cnJlbnRZZWFyOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSB2YWx1YXRpb25zOiBQcm9wZXJ0eVZhbHVhdGlvbkNvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbixcbiAgICBwcml2YXRlIGxvYW5zOiBMb2FuQ29sbGVjdGlvbixcbiAgICBwcml2YXRlIHJlZ2lzdGVyRGF0ZTogRGF0ZVxuICApIHtcbiAgICB0aGlzLmJhbmtBY2NvdW50cyA9IGJhbmtBY2NvdW50cy5nZXRMb2FuQW5kT2Zmc2V0QWNjb3VudHMoKTtcbiAgICB0aGlzLmN1cnJlbnRZZWFyID0gbmV3IEZpbmFuY2lhbFllYXIobmV3IERhdGUoKSkueWVhcjtcbiAgICB0aGlzLmluaXRJdGVtcygpO1xuICAgIHRoaXMuYnVpbGRIaXN0b3J5SXRlbXMoKTtcbiAgICB0aGlzLmJ1aWxkQWN0dWFsSXRlbSgpO1xuICAgIHRoaXMuYnVpbGRGb3JlY2FzdGVkSXRlbXMoKTtcbiAgICB0aGlzLmNoZWNrWmVyb0xvYW5CYWxhbmNlKCk7XG4gICAgdGhpcy5jaGVja1plcm9NYXJrZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBpdGVtcyBsaXN0IGluIGNoYXJ0IHNlcmllcyBmb3JtYXRcbiAgICogQHBhcmFtIHR5cGVcbiAgICovXG4gIGdldENoYXJ0U2VyaWVzKHR5cGU6IFByb3BlcnR5RXF1aXR5Q2hhcnRUeXBlRW51bSk6IG51bWJlcltdW10ge1xuICAgIHJldHVybiB0aGlzLmxpc3QubWFwKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4gaXRlbS5nZXRTZXJpZSh0eXBlKSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHByZXBhcmVkIGNoYXJ0IGRhdGFcbiAgICovXG4gIGdldENoYXJ0RGF0YSgpOiBvYmplY3RbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdtYXJrZXRWYWx1ZScsXG4gICAgICAgIG5hbWU6ICdNYXJrZXQgVmFsdWUnLFxuICAgICAgICBzZXJpZXM6IHRoaXMuZ2V0Q2hhcnRTZXJpZXMoUHJvcGVydHlFcXVpdHlDaGFydFR5cGVFbnVtLk1BUktFVF9WQUxVRSksXG4gICAgICAgIC8vIGRpc3BsYXkgZnV0dXJlIG1hcmtldCB2YWx1ZSB3aXRoIGRhc2ggbGluZSBhbmQgcGFzdCBtYXJrZXQgdmFsdWUgd2l0aCBzb2xpZCBsaW5lXG4gICAgICAgIHpvbmVzOiBbe1xuICAgICAgICAgIC8vIGxpbmUgc3R5bGUgYWZ0ZXIgY3VycmVudCBjYWxlbmRhciB5ZWFyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuY3VycmVudFllYXIsXG4gICAgICAgICAgZGFzaFN0eWxlOiAnU29saWQnXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAvLyBkZWZhdWx0IGxpbmUgc3R5bGVcbiAgICAgICAgICBkYXNoU3R5bGU6ICdEYXNoJ1xuICAgICAgICB9XVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaWQgdXNlZCB0byBhZGQvcmVtb3ZlIHNlcmllIHRvIGNoYXJ0XG4gICAgICAgIGlkOiAnbG9hbkJhbGFuY2UnLFxuICAgICAgICBuYW1lOiAnTG9hbiBCYWxhbmNlJyxcbiAgICAgICAgc2VyaWVzOiB0aGlzLmdldENoYXJ0U2VyaWVzKFByb3BlcnR5RXF1aXR5Q2hhcnRUeXBlRW51bS5MT0FOX0JBTEFOQ0UpXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjcmVhdGUgZW1wdHkgZXF1aXR5IHBvc2l0aW9uIGl0ZW0gZm9yIGVhY2ggeWVhciBpbiBjb2xsZWN0aW9uXG4gICAqL1xuICBwcml2YXRlIGluaXRJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3QgPSBbXTtcbiAgICBmb3IgKGxldCB5ZWFyOiBudW1iZXIgPSBuZXcgRmluYW5jaWFsWWVhcih0aGlzLnJlZ2lzdGVyRGF0ZSkueWVhciAtIDE7IHllYXIgPD0gKHRoaXMuY3VycmVudFllYXIgKyBGT1JFQ0FTVF9ZRUFSUyk7IHllYXIrKykge1xuICAgICAgdGhpcy5saXN0LnB1c2gobmV3IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKHllYXIpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogY29sbGVjdCBlcXVpdHkgcG9zaXRpb24gaXRlbXMgd2l0aCBwYXN0IHZhbHVlcyBmcm9tIHByb3BlcnRpZXMgZm9yZWNhc3RzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkSGlzdG9yeUl0ZW1zKCk6IHZvaWQge1xuICAgIC8vIGdldCBpdGVtcyBmb3IgcGFzdCBhbmQgY3VycmVudCB5ZWFyc1xuICAgIGNvbnN0IGl0ZW1zOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbVtdID0gdGhpcy5saXN0LmZpbHRlcigoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IGl0ZW0ueWVhciA8PSB0aGlzLmN1cnJlbnRZZWFyKTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4ge1xuICAgICAgLy8gaW5jcmVhc2UgaXRlbSB2YWx1ZXMgd2l0aCBwcm9wZXJ0eSBhY3R1YWwgZm9yZWNhc3RzIGZvciBpdGVtIHllYXJcbiAgICAgIGl0ZW0ubWFya2V0VmFsdWUgPSB0aGlzLnByb3BlcnRpZXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgcHJvcGVydHk6IFByb3BlcnR5KTogbnVtYmVyID0+IHN1bSArIHRoaXMuZ2V0TWFya2V0VmFsdWVGb3JQcm9wZXJ0eUJ5WWVhcihwcm9wZXJ0eSwgaXRlbS55ZWFyKSwgMCk7XG5cbiAgICAgIGl0ZW0ubG9hbkJhbGFuY2UgPSBNYXRoLmFicyh0aGlzLnByb3BlcnRpZXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgcHJvcGVydHk6IFByb3BlcnR5KTogbnVtYmVyID0+IHN1bSArIHRoaXMuZ2V0TG9hbkJhbGFuY2VCeVllYXIocHJvcGVydHksIGl0ZW0ueWVhciksIDApKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyByZW1vdmUsIHRoZXJlIGlzIG5vIGRpZmZlcmVuY2UgYmV0d2VlbiBhY3R1YWwgYW5kIGhpc3RvcnkgY2FsY3VsYXRpb25zXG4gICAqIHNldCBhY3R1YWwgeWVhcidzIHJlYWwgZGF0YVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEFjdHVhbEl0ZW0oKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0gPSB0aGlzLmxpc3QuZmluZCgoaTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IGkueWVhciA9PT0gdGhpcy5jdXJyZW50WWVhcik7XG4gICAgaXRlbS5tYXJrZXRWYWx1ZSA9IHRoaXMudmFsdWF0aW9ucy5nZXRNYXJrZXRWYWx1ZShuZXcgRGF0ZSgpKTtcbiAgICBpdGVtLmxvYW5CYWxhbmNlID0gdGhpcy5wcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiBzdW0gKyBNYXRoLmFicyh0aGlzLmJhbmtBY2NvdW50cy5nZXRQcm9wZXJ0eUJhbGFuY2VBbW91bnQocHJvcGVydHkuaWQpKSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogY29sbGVjdCBlcXVpdHkgcG9zaXRpb24gaXRlbXMgd2l0aCBmb3JlY2FzdGVkIChmdXR1cmUpIGNhbGN1bGF0ZWQgdmFsdWVzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkRm9yZWNhc3RlZEl0ZW1zKCk6IHZvaWQge1xuICAgIC8vIGNhbGN1bGF0ZSBmdXR1cmUgdmFsdWVzIGZvciBhbGwgcHJvcGVydGllcyBzZXBhcmF0ZWx5XG4gICAgdGhpcy5wcm9wZXJ0aWVzLml0ZW1zLmZvckVhY2goKHByb3BlcnR5OiBQcm9wZXJ0eSkgPT4ge1xuICAgICAgY29uc3QgbWFya2V0VmFsdWUgPSB0aGlzLnZhbHVhdGlvbnMuZmlsdGVyQnkoJ3Byb3BlcnR5LmlkJywgcHJvcGVydHkuaWQpLmdldE1hcmtldFZhbHVlKG5ldyBEYXRlKCkpO1xuICAgICAgbGV0IGZvcmVjYXN0ZWRNYXJrZXRWYWx1ZTogbnVtYmVyID0gKHByb3BlcnR5Lmdyb3d0aFBlcmNlbnQgLyAxMDApICogbWFya2V0VmFsdWUgKyBtYXJrZXRWYWx1ZTtcblxuICAgICAgLy8gY2FsY3VsYXRlIGZ1dHVyZSB2YWx1ZXMgZm9yIGVhY2ggZnV0dXJlIHllYXIgZm9yIGN1cnJlbnQgaGFuZGxpbmcgcHJvcGVydHlcbiAgICAgIHRoaXMubGlzdFxuICAgICAgICAuZmlsdGVyKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4gaXRlbS55ZWFyID4gdGhpcy5jdXJyZW50WWVhcilcbiAgICAgICAgLmZvckVhY2goKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiB7XG4gICAgICAgICAgLy8gaW5jcmVhc2UgbG9hbiBiYWxhbmNlIGFtb3VudCBmb3IgaGFuZGxpbmcgZXF1aXR5IHBvc2l0aW9uIGl0ZW1cbiAgICAgICAgICBpdGVtLmxvYW5CYWxhbmNlICs9IHRoaXMuZ2V0TG9hbkJhbGFuY2VCeVllYXIocHJvcGVydHksIGl0ZW0ueWVhcik7XG5cbiAgICAgICAgICAvLyBpbmNyZWFzZSBtYXJrZXQgdmFsdWUgYW1vdW50IGZvciBoYW5kbGluZyBlcXVpdHkgcG9zaXRpb24gaXRlbVxuICAgICAgICAgIGl0ZW0ubWFya2V0VmFsdWUgKz0gZm9yZWNhc3RlZE1hcmtldFZhbHVlO1xuXG4gICAgICAgICAgLy8gaW5jcmVhc2UgY3VycmVudCBtYXJrZXQgdmFsdWUgZm9yZWNhc3QgZm9yIHRoZSBuZXh0IGN5Y2xlIGl0ZXJhdGlvblxuICAgICAgICAgIGZvcmVjYXN0ZWRNYXJrZXRWYWx1ZSArPSBmb3JlY2FzdGVkTWFya2V0VmFsdWUgKiAocHJvcGVydHkuZ3Jvd3RoUGVyY2VudCAvIDEwMCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwcm9wZXJ0eSBsb2FuIGJhbGFuY2UgYnkgZmluYW5jaWFsIHllYXJcbiAgICogQHBhcmFtIHByb3BlcnR5IFByb3BlcnR5IGluc3RhbmNlIGZvciBmaWx0ZXJcbiAgICogQHBhcmFtIHllYXIgRmluYW5jaWFsIHllYXIgbnVtYmVyXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGdldExvYW5CYWxhbmNlQnlZZWFyKHByb3BlcnR5OiBQcm9wZXJ0eSwgeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAobmV3IEZpbmFuY2lhbFllYXIocHJvcGVydHkuY29udHJhY3REYXRlKS55ZWFyID4geWVhcikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3QgYmFua0FjY291bnRzID0gdGhpcy5iYW5rQWNjb3VudHMuZ2V0QnlQcm9wZXJ0eUlkKHByb3BlcnR5LmlkKTtcbiAgICBjb25zdCBsb2FucyA9IHRoaXMubG9hbnMuZ2V0QnlCYW5rQWNjb3VudHNJZHMoYmFua0FjY291bnRzLmdldElkcygpKTtcbiAgICBjb25zdCBvZmZzZXQgPSBiYW5rQWNjb3VudHMuZmlsdGVyQnkoJ3R5cGUnLCBCYW5rQWNjb3VudFR5cGVFbnVtLk9GRlNFVCkuZ2V0UHJvcGVydHlCYWxhbmNlQW1vdW50KHByb3BlcnR5LmlkKTtcblxuICAgIGlmICh5ZWFyID4gdGhpcy5jdXJyZW50WWVhcikge1xuICAgICAgcmV0dXJuIGJhbmtBY2NvdW50cy5pdGVtcy5yZWR1Y2UoKHRvdGFsU3VtOiBudW1iZXIsIGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCkgPT4gdG90YWxTdW0gKyAoYmFua0FjY291bnQuZ2V0UHJvcGVydHlQZXJjZW50YWdlKHByb3BlcnR5LmlkKSAqIChsb2Fucy5nZXRCeUJhbmtBY2NvdW50SWQoYmFua0FjY291bnQuaWQpPy5nZXRMYXN0UGF5bWVudEJ5WWVhcih5ZWFyKT8udG90YWxPd2VkIHx8IDApKSwgMCkgLSBvZmZzZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuICgocHJvcGVydHkuZ2V0Rm9yZWNhc3RCeVllYXIoeWVhcikgfHwgZmlyc3QocHJvcGVydHkuZm9yZWNhc3RzKSkubWFya2V0VmFsdWUpIC0gb2Zmc2V0O1xuICB9XG5cbiAgZ2V0TWFya2V0VmFsdWVGb3JQcm9wZXJ0eUJ5WWVhcihwcm9wZXJ0eTogUHJvcGVydHksIHllYXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKG5ldyBGaW5hbmNpYWxZZWFyKHByb3BlcnR5LmNvbnRyYWN0RGF0ZSkueWVhciA+IHllYXIpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAocHJvcGVydHkuZ2V0Rm9yZWNhc3RCeVllYXIoeWVhcikgfHwgZmlyc3QocHJvcGVydHkuZm9yZWNhc3RzKSkubWFya2V0VmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbG9hbiBiYWxhbmNlIGlzIDAgYW5kIHNldCBpdCBhcyBudWxsICh0byBub3QgdG8gZHJhdyBwb2ludCBvbiB0aGUgY2hhcnQpXG4gICAqL1xuICBwcml2YXRlIGNoZWNrWmVyb0xvYW5CYWxhbmNlKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdC5mb3JFYWNoKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ubG9hbkJhbGFuY2UgPT09IDApIHtcbiAgICAgICAgaXRlbS5sb2FuQmFsYW5jZSA9IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbWFya2V0IHZhbHVlIGlzIDAgYW5kIHNldCBpdCBhcyBudWxsICh0byBub3QgdG8gZHJhdyBwb2ludCBvbiB0aGUgY2hhcnQpXG4gICAqL1xuICBwcml2YXRlIGNoZWNrWmVyb01hcmtldFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdC5mb3JFYWNoKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ubWFya2V0VmFsdWUgPT09IDApIHtcbiAgICAgICAgaXRlbS5tYXJrZXRWYWx1ZSA9IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -11,8 +11,8 @@ export class DataService {
11
11
  createModelInstance(model) {
12
12
  return plainToClass(this.modelClass, model);
13
13
  }
14
- createCollectionInstance(collectionClass, items) {
15
- return new collectionClass(items);
14
+ createCollectionInstance(collectionClass, data) {
15
+ return new collectionClass(data.map((item) => this.createModelInstance(item)));
16
16
  }
17
17
  /**
18
18
  * never return cache directly to prevent update
@@ -30,7 +30,7 @@ export class DataService {
30
30
  * @TODO vik any[] because of problems with base models extending abstractModel
31
31
  */
32
32
  setCache(data) {
33
- this.cache = this.createCollectionInstance(this.collectionClass, data.map((item) => this.createModelInstance(item)));
33
+ this.cache = this.createCollectionInstance(this.collectionClass, data);
34
34
  }
35
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
36
36
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataService, providedIn: 'root' }); }
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
41
41
  providedIn: 'root'
42
42
  }]
43
43
  }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2RhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7O0FBS2pDLE1BQU0sT0FBZ0IsV0FBVztJQWtCL0I7Ozs7T0FJRztJQUNPLG1CQUFtQixDQUFDLEtBQWE7UUFDekMsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsd0JBQXdCLENBQUMsZUFBd0QsRUFBRSxLQUFjO1FBQ3pHLE9BQU8sSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVEsQ0FBQyxJQUFXO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUN4QyxJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDbkQsQ0FBQztJQUNKLENBQUM7K0dBckRtQixXQUFXO21IQUFYLFdBQVcsY0FGbkIsTUFBTTs7NEZBRUUsV0FBVztrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCB9IGZyb20gJy4uL2RiL01vZGVscyc7XG5pbXBvcnQgY2xvbmUgZnJvbSAnbG9kYXNoL2Nsb25lJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YVNlcnZpY2U8QmFzZU1vZGVsLCBNb2RlbCBleHRlbmRzIEFic3RyYWN0TW9kZWwsIENvbGxlY3Rpb25Nb2RlbCBleHRlbmRzIENvbGxlY3Rpb248TW9kZWw+PiB7XG4gIGRhdGE6IEJhc2VNb2RlbFtdO1xuXG4gIC8qKlxuICAgKiBNb2RlbCBjbGFzcyBmb3IgaW5zdGFuY2VzIGNyZWF0aW5nXG4gICAqL1xuICBhYnN0cmFjdCBtb2RlbENsYXNzO1xuXG4gIC8qKlxuICAgKiBDb2xsZWN0aW9uIE1vZGVsIGNsYXNzIGZvciBpbnN0YW5jZXMgY3JlYXRpbmdcbiAgICovXG4gIGFic3RyYWN0IGNvbGxlY3Rpb25DbGFzcztcblxuICAvKipcbiAgICogQ2FjaGVkIGFycmF5IG9mIHNlcnZpY2UgY2xhc3MgaW5zdGFuY2VzXG4gICAqL1xuICBwcm90ZWN0ZWQgY2FjaGU6IENvbGxlY3Rpb25Nb2RlbDtcblxuICAvKipcbiAgICogQFRPRE8gdXNlIGV4Y2x1ZGVFeHRyYW5lb3VzVmFsdWVzIHdoZW4gYWxsIG1vZGVscyByZWZhY3RvcmVkIChleHBvc2VkIGFsbCBuZWVkZWQgcHJvcGVydGllcylcbiAgICogQ3JlYXRlIG5ldyBpbnN0YW5jZSBvZiBjbGFzc1xuICAgKiBAcGFyYW0gbW9kZWwgU2luZ2xlIG9iamVjdCBvciBhcnJheSBmcm9tIHdoaWNoIHdpbGwgYmUgY3JlYXRlZCBtb2RlbCBpbnN0YW5jZShzKVxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZU1vZGVsSW5zdGFuY2UobW9kZWw6IG9iamVjdCk6IE1vZGVsIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKHRoaXMubW9kZWxDbGFzcywgbW9kZWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUNvbGxlY3Rpb25JbnN0YW5jZShjb2xsZWN0aW9uQ2xhc3M6IG5ldyAoaXRlbXM6IE1vZGVsW10pID0+IENvbGxlY3Rpb25Nb2RlbCwgaXRlbXM6IE1vZGVsW10pOiBDb2xsZWN0aW9uTW9kZWwge1xuICAgIHJldHVybiBuZXcgY29sbGVjdGlvbkNsYXNzKGl0ZW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBuZXZlciByZXR1cm4gY2FjaGUgZGlyZWN0bHkgdG8gcHJldmVudCB1cGRhdGVcbiAgICovXG4gIGdldENhY2hlKCk6IENvbGxlY3Rpb25Nb2RlbCB7XG4gICAgcmV0dXJuIGNsb25lKHRoaXMuY2FjaGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIG5ldmVyIHJldHVybiBjYWNoZSBkaXJlY3RseSB0byBwcmV2ZW50IHVwZGF0ZVxuICAgKi9cbiAgZ2V0Q2FjaGVGaXJzdCgpOiBNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2FjaGUoKT8uZmlyc3Q7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gdmlrIGFueVtdIGJlY2F1c2Ugb2YgcHJvYmxlbXMgd2l0aCBiYXNlIG1vZGVscyBleHRlbmRpbmcgYWJzdHJhY3RNb2RlbFxuICAgKi9cbiAgc2V0Q2FjaGUoZGF0YTogYW55W10pOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlID0gdGhpcy5jcmVhdGVDb2xsZWN0aW9uSW5zdGFuY2UoXG4gICAgICB0aGlzLmNvbGxlY3Rpb25DbGFzcyxcbiAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpXG4gICAgKTtcbiAgfVxufVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2RhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7O0FBS2pDLE1BQU0sT0FBZ0IsV0FBVztJQWtCL0I7Ozs7T0FJRztJQUNPLG1CQUFtQixDQUFDLEtBQWE7UUFDekMsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsd0JBQXdCLENBQUMsZUFBd0QsRUFBRSxJQUFXO1FBQ3RHLE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLElBQVc7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDOytHQWxEbUIsV0FBVzttSEFBWCxXQUFXLGNBRm5CLE1BQU07OzRGQUVFLFdBQVc7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEFic3RyYWN0TW9kZWwgfSBmcm9tICcuLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IGNsb25lIGZyb20gJ2xvZGFzaC9jbG9uZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsLCBDb2xsZWN0aW9uTW9kZWwgZXh0ZW5kcyBDb2xsZWN0aW9uPE1vZGVsPj4ge1xuICBkYXRhOiBCYXNlTW9kZWxbXTtcblxuICAvKipcbiAgICogTW9kZWwgY2xhc3MgZm9yIGluc3RhbmNlcyBjcmVhdGluZ1xuICAgKi9cbiAgYWJzdHJhY3QgbW9kZWxDbGFzcztcblxuICAvKipcbiAgICogQ29sbGVjdGlvbiBNb2RlbCBjbGFzcyBmb3IgaW5zdGFuY2VzIGNyZWF0aW5nXG4gICAqL1xuICBhYnN0cmFjdCBjb2xsZWN0aW9uQ2xhc3M7XG5cbiAgLyoqXG4gICAqIENhY2hlZCBhcnJheSBvZiBzZXJ2aWNlIGNsYXNzIGluc3RhbmNlc1xuICAgKi9cbiAgcHJvdGVjdGVkIGNhY2hlOiBDb2xsZWN0aW9uTW9kZWw7XG5cbiAgLyoqXG4gICAqIEBUT0RPIHVzZSBleGNsdWRlRXh0cmFuZW91c1ZhbHVlcyB3aGVuIGFsbCBtb2RlbHMgcmVmYWN0b3JlZCAoZXhwb3NlZCBhbGwgbmVlZGVkIHByb3BlcnRpZXMpXG4gICAqIENyZWF0ZSBuZXcgaW5zdGFuY2Ugb2YgY2xhc3NcbiAgICogQHBhcmFtIG1vZGVsIFNpbmdsZSBvYmplY3Qgb3IgYXJyYXkgZnJvbSB3aGljaCB3aWxsIGJlIGNyZWF0ZWQgbW9kZWwgaW5zdGFuY2UocylcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVNb2RlbEluc3RhbmNlKG1vZGVsOiBvYmplY3QpOiBNb2RlbCB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyh0aGlzLm1vZGVsQ2xhc3MsIG1vZGVsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVDb2xsZWN0aW9uSW5zdGFuY2UoY29sbGVjdGlvbkNsYXNzOiBuZXcgKGl0ZW1zOiBNb2RlbFtdKSA9PiBDb2xsZWN0aW9uTW9kZWwsIGRhdGE6IGFueVtdKTogQ29sbGVjdGlvbk1vZGVsIHtcbiAgICByZXR1cm4gbmV3IGNvbGxlY3Rpb25DbGFzcyhkYXRhLm1hcCgoaXRlbSkgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKSk7XG4gIH1cblxuICAvKipcbiAgICogbmV2ZXIgcmV0dXJuIGNhY2hlIGRpcmVjdGx5IHRvIHByZXZlbnQgdXBkYXRlXG4gICAqL1xuICBnZXRDYWNoZSgpOiBDb2xsZWN0aW9uTW9kZWwge1xuICAgIHJldHVybiBjbG9uZSh0aGlzLmNhY2hlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBuZXZlciByZXR1cm4gY2FjaGUgZGlyZWN0bHkgdG8gcHJldmVudCB1cGRhdGVcbiAgICovXG4gIGdldENhY2hlRmlyc3QoKTogTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmdldENhY2hlKCk/LmZpcnN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpayBhbnlbXSBiZWNhdXNlIG9mIHByb2JsZW1zIHdpdGggYmFzZSBtb2RlbHMgZXh0ZW5kaW5nIGFic3RyYWN0TW9kZWxcbiAgICovXG4gIHNldENhY2hlKGRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZSA9IHRoaXMuY3JlYXRlQ29sbGVjdGlvbkluc3RhbmNlKHRoaXMuY29sbGVjdGlvbkNsYXNzLCBkYXRhKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,5 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
2
  import { catchError, map } from 'rxjs/operators';
3
- import { plainToClass } from 'class-transformer';
4
3
  import { RestService } from '../../rest';
5
4
  import { AppEventTypeEnum, BankConnection } from '../../../../models';
6
5
  import { throwError as observableThrowError } from 'rxjs';
@@ -30,10 +29,8 @@ export class BankConnectionService extends RestService {
30
29
  * POST endpoint is using for create and for update.
31
30
  */
32
31
  post(bankConnection) {
33
- return this.http.post(this.apiUrl, bankConnection)
34
- .pipe(map((response) => {
35
- const result = plainToClass(BankConnection, response);
36
- // @TODO test if `!bankConnection.id &&` doesn't break anything
32
+ return super.post(bankConnection)
33
+ .pipe(map((result) => {
37
34
  if (result.isBasiq()) {
38
35
  switch (true) {
39
36
  case result.isLoginSuccess():
@@ -91,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
91
88
  type: Inject,
92
89
  args: ['environment']
93
90
  }] }] });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1jb25uZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstY29ubmVjdGlvbi9iYW5rLWNvbm5lY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFHcEYsT0FBTyxFQUFFLFVBQVUsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBRXZGOzs7R0FHRztBQUlILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxXQUEyRTtJQU1wSCxZQUE2QyxXQUFnQjtRQUMzRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFEd0IsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFMN0QsZUFBVSxHQUEwQixjQUFjLENBQUM7UUFDbkQsb0JBQWUsR0FBc0IsVUFBVSxDQUFDO1FBQ2hELGdCQUFXLEdBQUcsa0JBQWtCLENBQUM7UUFDakMsb0JBQWUsR0FBaUIsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEs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QkFBcUIsY0FGcEIsTUFBTTs7NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT2MsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYW5rQ29ubmVjdGlvbiBhcyBCYW5rQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgUmVzdE1ldGhvZCwgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0JztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0sIEJhbmtDb25uZWN0aW9uLCBOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uTWVzc2FnZXNFbnVtIH0gZnJvbSAnLi9iYW5rLWNvbm5lY3Rpb24tbWVzc2FnZXMuZW51bSc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdHlwZS5lbnVtJztcblxuLyoqXG4gKiBCYW5rQ29ubmVjdGlvbiBtZWFucyB1c2VyIGFjY291bnQgYXQgc3BlY2lmaWMgYmFuayAodXN1YWxseSBlYWNoIHVzZXIgaGFzIG9ubHkgb25lIGF0IHRoZSBzYW1lIGJhbmspXG4gKiBzZXJ2aWNlIGhhbmRsZXMgQmFua0Nvbm5lY3Rpb24gbWFuYWdlbWVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYW5rQ29ubmVjdGlvblNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxCYW5rQ29ubmVjdGlvbkJhc2UsIEJhbmtDb25uZWN0aW9uLCBDb2xsZWN0aW9uPEJhbmtDb25uZWN0aW9uPj4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBCYW5rQ29ubmVjdGlvbiA9IEJhbmtDb25uZWN0aW9uO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBDb2xsZWN0aW9uID0gQ29sbGVjdGlvbjtcbiAgZW5kcG9pbnRVcmkgPSAnYmFuay1jb25uZWN0aW9ucyc7XG4gIGRpc2FibGVkTWV0aG9kczogUmVzdE1ldGhvZFtdID0gWydwb3N0QmF0Y2gnLCAncHV0QmF0Y2gnLCAnZGVsZXRlJywgJ2RlbGV0ZUJhdGNoJ107XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSkge1xuICAgIHN1cGVyKGVudmlyb25tZW50KTtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgbGlzdGVuRXZlbnRzKCkge1xuICAgIHRoaXMubGlzdGVuTm90aWZpY2F0aW9ucygpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRoZXJlIGlzIG5vIHB1dCBCYW5rQ29ubmVjdGlvbiBtZXRob2QsIHdlIGhhdmUgdG8gcG9zdCB0byB1cGRhdGVcbiAgICogUE9TVCBlbmRwb2ludCBpcyB1c2luZyBmb3IgY3JlYXRlIGFuZCBmb3IgdXBkYXRlLlxuICAgKi9cbiAgcG9zdChiYW5rQ29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pOiBPYnNlcnZhYmxlPEJhbmtDb25uZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuYXBpVXJsLCBiYW5rQ29ubmVjdGlvbilcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYW5rQ29ubmVjdGlvbkJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBwbGFpblRvQ2xhc3MoQmFua0Nvbm5lY3Rpb24sIHJlc3BvbnNlKTtcblxuICAgICAgICAgIC8vIEBUT0RPIHRlc3QgaWYgYCFiYW5rQ29ubmVjdGlvbi5pZCAmJmAgZG9lc24ndCBicmVhayBhbnl0aGluZ1xuICAgICAgICAgIGlmIChyZXN1bHQuaXNCYXNpcSgpKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICAgICAgY2FzZSByZXN1bHQuaXNMb2dpblN1Y2Nlc3MoKTpcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKEJhbmtDb25uZWN0aW9uTWVzc2FnZXNFbnVtLkxPR0lOX1NVQ0NFU1MpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIHJlc3VsdC5pc0FjY291bnRzUmV0cmlldmVkKCk6XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2VzcyhCYW5rQ29ubmVjdGlvbk1lc3NhZ2VzRW51bS5BQ0NPVU5UU19SRVRSSUVWRUQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAvLyBTaG93IGVycm9yIHdoZW4gdXNlciBwcm92aWRlZCB3cm9uZyBsb2dpbiBkYXRhXG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcihCYW5rQ29ubmVjdGlvbk1lc3NhZ2VzRW51bS5JTlZBTElEX0NSRURFTlRJQUxTKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTaG93IGVycm9yIHdoZW4gdXNlciBwcm92aWRlZCBhbm90aGVyIGxvZ2luIChub3QgbG9naW4gaGUgdXNlZCBiZWZvcmUpXG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcihCYW5rQ29ubmVjdGlvbk1lc3NhZ2VzRW51bS5XUk9OR19MT0dJTl9EQVRBKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA1MDApIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmVycm9yKEJhbmtDb25uZWN0aW9uTWVzc2FnZXNFbnVtLlRFTVBPUkFSWV9VTkFWQUlMQUJMRSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG9ic2VydmFibGVUaHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIGFjdGl2YXRlKGJhbmtDb25uZWN0aW9uOiBCYW5rQ29ubmVjdGlvbik6IE9ic2VydmFibGU8QmFua0Nvbm5lY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5wdXQoYmFua0Nvbm5lY3Rpb24sIGAke3RoaXMuYXBpVXJsfS8ke2JhbmtDb25uZWN0aW9uLmlkfS9hY3RpdmF0ZWApO1xuICB9XG5cbiAgZGVhY3RpdmF0ZShiYW5rQ29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pOiBPYnNlcnZhYmxlPEJhbmtDb25uZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMucHV0KGJhbmtDb25uZWN0aW9uLCBgJHt0aGlzLmFwaVVybH0vJHtiYW5rQ29ubmVjdGlvbi5pZH0vZGVhY3RpdmF0ZWApO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikgPT4ge1xuICAgICAgY29uc3QgZXZlbnRzID0gW1xuICAgICAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uQkFTSVFfTkVXX0FDQ09VTlRTLFxuICAgICAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uQkFTSVFfRklSU1RfSU1QT1JUX0NPTVBMRVRFLFxuICAgICAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uQkFTSVFfQVVUSE9SSVpBVElPTl9GQUlMLFxuICAgICAgXTtcblxuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIGV2ZW50cy5pbmNsdWRlcyhub3RpZmljYXRpb24uZXZlbnRUeXBlKSkge1xuICAgICAgICAvLyBAVE9ETyBUVC0zODI2IG1vdmUgdG8gdW5pZmllZCBtZXJjdXJlIGV2ZW50XG4gICAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1jb25uZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstY29ubmVjdGlvbi9iYW5rLWNvbm5lY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pELE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBZ0IsTUFBTSxvQkFBb0IsQ0FBQztBQUdwRixPQUFPLEVBQUUsVUFBVSxJQUFJLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7QUFFdkY7OztHQUdHO0FBSUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQTJFO0lBTXBILFlBQTZDLFdBQWdCO1FBQzNELEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUR3QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUw3RCxlQUFVLEdBQTBCLGNBQWMsQ0FBQztRQUNuRCxvQkFBZSxHQUFzQixVQUFVLENBQUM7UUFDaEQsZ0JBQVcsR0FBRyxrQkFBa0IsQ0FBQztRQUNqQyxvQkFBZSxHQUFpQixDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBSWpGLElBQUksQ0FBQyxZQUFZLEVB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dGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uIGFzIEJhbmtDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBSZXN0TWV0aG9kLCBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QnO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSwgQmFua0Nvbm5lY3Rpb24sIE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyB0aHJvd0Vycm9yIGFzIG9ic2VydmFibGVUaHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQmFua0Nvbm5lY3Rpb25NZXNzYWdlc0VudW0gfSBmcm9tICcuL2JhbmstY29ubmVjdGlvbi1tZXNzYWdlcy5lbnVtJztcbmltcG9ydCB7IFVzZXJFdmVudFR5cGVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL0VudW1zL3VzZXItZXZlbnQtdHlwZS10eXBlLmVudW0nO1xuXG4vKipcbiAqIEJhbmtDb25uZWN0aW9uIG1lYW5zIHVzZXIgYWNjb3VudCBhdCBzcGVjaWZpYyBiYW5rICh1c3VhbGx5IGVhY2ggdXNlciBoYXMgb25seSBvbmUgYXQgdGhlIHNhbWUgYmFuaylcbiAqIHNlcnZpY2UgaGFuZGxlcyBCYW5rQ29ubmVjdGlvbiBtYW5hZ2VtZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhbmtDb25uZWN0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtDb25uZWN0aW9uQmFzZSwgQmFua0Nvbm5lY3Rpb24sIENvbGxlY3Rpb248QmFua0Nvbm5lY3Rpb24+PiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgbW9kZWxDbGFzczogdHlwZW9mIEJhbmtDb25uZWN0aW9uID0gQmFua0Nvbm5lY3Rpb247XG4gIGNvbGxlY3Rpb25DbGFzczogdHlwZW9mIENvbGxlY3Rpb24gPSBDb2xsZWN0aW9uO1xuICBlbmRwb2ludFVyaSA9ICdiYW5rLWNvbm5lY3Rpb25zJztcbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbJ3Bvc3RCYXRjaCcsICdwdXRCYXRjaCcsICdkZWxldGUnLCAnZGVsZXRlQmF0Y2gnXTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICBsaXN0ZW5FdmVudHMoKSB7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gIH1cblxuICAvKipcbiAgICogdGhlcmUgaXMgbm8gcHV0IEJhbmtDb25uZWN0aW9uIG1ldGhvZCwgd2UgaGF2ZSB0byBwb3N0IHRvIHVwZGF0ZVxuICAgKiBQT1NUIGVuZHBvaW50IGlzIHVzaW5nIGZvciBjcmVhdGUgYW5kIGZvciB1cGRhdGUuXG4gICAqL1xuICBwb3N0KGJhbmtDb25uZWN0aW9uOiBCYW5rQ29ubmVjdGlvbik6IE9ic2VydmFibGU8QmFua0Nvbm5lY3Rpb24+IHtcbiAgICByZXR1cm4gc3VwZXIucG9zdChiYW5rQ29ubmVjdGlvbilcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3VsdDogQmFua0Nvbm5lY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LmlzQmFzaXEoKSkge1xuICAgICAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICAgIGNhc2UgcmVzdWx0LmlzTG9naW5TdWNjZXNzKCk6XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2VzcyhCYW5rQ29ubmVjdGlvbk1lc3NhZ2VzRW51bS5MT0dJTl9TVUNDRVNTKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSByZXN1bHQuaXNBY2NvdW50c1JldHJpZXZlZCgpOlxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3MoQmFua0Nvbm5lY3Rpb25NZXNzYWdlc0VudW0uQUNDT1VOVFNfUkVUUklFVkVEKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgLy8gU2hvdyBlcnJvciB3aGVuIHVzZXIgcHJvdmlkZWQgd3JvbmcgbG9naW4gZGF0YVxuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoQmFua0Nvbm5lY3Rpb25NZXNzYWdlc0VudW0uSU5WQUxJRF9DUkVERU5USUFMUyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gU2hvdyBlcnJvciB3aGVuIHVzZXIgcHJvdmlkZWQgYW5vdGhlciBsb2dpbiAobm90IGxvZ2luIGhlIHVzZWQgYmVmb3JlKVxuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoQmFua0Nvbm5lY3Rpb25NZXNzYWdlc0VudW0uV1JPTkdfTE9HSU5fREFUQSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcihCYW5rQ29ubmVjdGlvbk1lc3NhZ2VzRW51bS5URU1QT1JBUllfVU5BVkFJTEFCTEUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApXG4gIH1cblxuICBhY3RpdmF0ZShiYW5rQ29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pOiBPYnNlcnZhYmxlPEJhbmtDb25uZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMucHV0KGJhbmtDb25uZWN0aW9uLCBgJHt0aGlzLmFwaVVybH0vJHtiYW5rQ29ubmVjdGlvbi5pZH0vYWN0aXZhdGVgKTtcbiAgfVxuXG4gIGRlYWN0aXZhdGUoYmFua0Nvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKTogT2JzZXJ2YWJsZTxCYW5rQ29ubmVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLnB1dChiYW5rQ29ubmVjdGlvbiwgYCR7dGhpcy5hcGlVcmx9LyR7YmFua0Nvbm5lY3Rpb24uaWR9L2RlYWN0aXZhdGVgKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50cyA9IFtcbiAgICAgICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLkJBU0lRX05FV19BQ0NPVU5UUyxcbiAgICAgICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLkJBU0lRX0ZJUlNUX0lNUE9SVF9DT01QTEVURSxcbiAgICAgICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLkJBU0lRX0FVVEhPUklaQVRJT05fRkFJTCxcbiAgICAgIF07XG5cbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCAmJiBldmVudHMuaW5jbHVkZXMobm90aWZpY2F0aW9uLmV2ZW50VHlwZSkpIHtcbiAgICAgICAgLy8gQFRPRE8gVFQtMzgyNiBtb3ZlIHRvIHVuaWZpZWQgbWVyY3VyZSBldmVudFxuICAgICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { AppEventTypeEnum, HoldingSale, HoldingTrade } from '../../../models';
2
+ import { AppEventTypeEnum, HoldingTrade } from '../../../models';
3
3
  import { RestService } from '../rest';
4
4
  import { HoldingTradeCollection } from '../../../collections';
5
5
  import { UserRolesEnum } from 'taxtank-core/common';
@@ -19,8 +19,7 @@ export class HoldingTradeService extends RestService {
19
19
  this.listenNotifications();
20
20
  }
21
21
  listenEvents() {
22
- this.listenCSE(HoldingSale, this.refreshCache, ['post', 'put', 'delete']);
23
- this.listenCSE(HoldingTradeImport, this.refreshCache, ['post', 'put', 'delete']);
22
+ this.listenCSE(HoldingTradeImport, this.refreshCache, ['post', 'delete']);
24
23
  }
25
24
  listenNotifications() {
26
25
  this.eventDispatcherService.on(AppEventTypeEnum.NOTIFICATION_ADDED).subscribe((notification) => {
@@ -41,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
41
40
  type: Inject,
42
41
  args: ['environment']
43
42
  }] }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvaG9sZGluZy9ob2xkaW5nLXRyYWRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDNUYsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBS3BGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUE4RDtJQU9yRyxZQUE2QyxXQUFnQjtRQUMzRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFEd0IsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFON0QsZUFBVSxHQUF3QixZQUFZLENBQUM7UUFDL0Msb0JBQWUsR0FBa0Msc0JBQXNCLENBQUM7UUFDeEUsZ0JBQVcsR0FBRyxnQkFBZ0IsQ0FBQztRQUMvQixvQkFBZSxHQUFpQixDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDekUsVUFBSyxHQUFHLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBSW5DLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQTBCLEVBQVEsRUFBRTtZQUNqSCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsU0FBUyxLQUFLLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFO2dCQUM5RixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBeEJVLG1CQUFtQixrQkFPVixhQUFhO21IQVB0QixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBUWMsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIb2xkaW5nVHJhZGUgYXMgSG9sZGluZ0Jhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSwgSG9sZGluZ1NhbGUsIEhvbGRpbmdUcmFkZSwgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFJlc3RNZXRob2QsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgeyBIb2xkaW5nVHJhZGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFVzZXJSb2xlc0VudW0gfSBmcm9tICd0YXh0YW5rLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZUltcG9ydCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSG9sZGluZ1RyYWRlU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEhvbGRpbmdCYXNlLCBIb2xkaW5nVHJhZGUsIEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBtb2RlbENsYXNzOiB0eXBlb2YgSG9sZGluZ1RyYWRlID0gSG9sZGluZ1RyYWRlO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBIb2xkaW5nVHJhZGVDb2xsZWN0aW9uID0gSG9sZGluZ1RyYWRlQ29sbGVjdGlvbjtcbiAgZW5kcG9pbnRVcmkgPSAnaG9sZGluZy10cmFkZXMnO1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsncG9zdEJhdGNoJywgJ3B1dEJhdGNoJywgJ2RlbGV0ZUJhdGNoJ107XG4gIHJvbGVzID0gW1VzZXJSb2xlc0VudW0uSE9MRElOR19UQU5LXTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gIH1cblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5DU0UoSG9sZGluZ1NhbGUsIHRoaXMucmVmcmVzaENhY2hlLCBbJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZSddKTtcbiAgICB0aGlzLmxpc3RlbkNTRShIb2xkaW5nVHJhZGVJbXBvcnQsIHRoaXMucmVmcmVzaENhY2hlLCBbJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZSddKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pOiB2b2lkID0+IHtcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCAmJiBub3RpZmljYXRpb24uZXZlbnRUeXBlID09PSBVc2VyRXZlbnRUeXBlVHlwZUVudW0uU0hBUkVTSUdIVF9JTVBPUlQpIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoQ2FjaGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvaG9sZGluZy9ob2xkaW5nLXRyYWRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFlLFlBQVksRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFLcEYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQThEO0lBT3JHLFlBQTZDLFdBQWdCO1FBQzNELEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUR3QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQU43RCxlQUFVLEdBQXdCLFlBQVksQ0FBQztRQUMvQyxvQkFBZSxHQUFrQyxzQkFBc0IsQ0FBQztRQUN4RSxnQkFBVyxHQUFHLGdCQUFnQixDQUFDO1FBQy9CLG9CQUFlLEdBQWlCLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN6RSxVQUFLLEdBQUcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFJbkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBMEIsRUFBUSxFQUFFO1lBQ2pILElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxTQUFTLEtBQUsscUJBQXFCLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzlGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F2QlUsbUJBQW1CLGtCQU9WLGFBQWE7bUhBUHRCLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRYyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZSBhcyBIb2xkaW5nQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtLCBIb2xkaW5nU2FsZSwgSG9sZGluZ1RyYWRlLCBOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVzdE1ldGhvZCwgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0JztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJ3RheHRhbmstY29yZS9jb21tb24nO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlSW1wb3J0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFVzZXJFdmVudFR5cGVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3VzZXItZXZlbnQtdHlwZS10eXBlLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIb2xkaW5nVHJhZGVTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8SG9sZGluZ0Jhc2UsIEhvbGRpbmdUcmFkZSwgSG9sZGluZ1RyYWRlQ29sbGVjdGlvbj4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBIb2xkaW5nVHJhZGUgPSBIb2xkaW5nVHJhZGU7XG4gIGNvbGxlY3Rpb25DbGFzczogdHlwZW9mIEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24gPSBIb2xkaW5nVHJhZGVDb2xsZWN0aW9uO1xuICBlbmRwb2ludFVyaSA9ICdob2xkaW5nLXRyYWRlcyc7XG4gIGRpc2FibGVkTWV0aG9kczogUmVzdE1ldGhvZFtdID0gWydwb3N0QmF0Y2gnLCAncHV0QmF0Y2gnLCAnZGVsZXRlQmF0Y2gnXTtcbiAgcm9sZXMgPSBbVXNlclJvbGVzRW51bS5IT0xESU5HX1RBTktdO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnkpIHtcbiAgICBzdXBlcihlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgICB0aGlzLmxpc3Rlbk5vdGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbkNTRShIb2xkaW5nVHJhZGVJbXBvcnQsIHRoaXMucmVmcmVzaENhY2hlLCBbJ3Bvc3QnLCAnZGVsZXRlJ10pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVUeXBlRW51bS5TSEFSRVNJR0hUX0lNUE9SVCkge1xuICAgICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,8 +1,9 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { BankTransaction, HoldingType } from '../../../models';
2
+ import { AppEventTypeEnum, HoldingTrade, HoldingTradeImport, HoldingType } from '../../../models';
3
3
  import { RestService } from '../rest';
4
4
  import { HoldingTypeCollection } from '../../../collections';
5
5
  import { UserRolesEnum } from 'taxtank-core/common';
6
+ import { UserEventTypeTypeEnum } from '../../../db/Enums/user-event-type-type.enum';
6
7
  import * as i0 from "@angular/core";
7
8
  export class HoldingTypeService extends RestService {
8
9
  constructor(environment) {
@@ -13,17 +14,23 @@ export class HoldingTypeService extends RestService {
13
14
  this.endpointUri = 'holding-types';
14
15
  this.disabledMethods = ['postBatch', 'putBatch', 'deleteBatch'];
15
16
  this.roles = [UserRolesEnum.HOLDING_TANK];
16
- // this.listenEvents();
17
+ this.listenEvents();
18
+ this.listenNotifications();
19
+ }
20
+ search(query, category = null) {
21
+ query = query.toLowerCase().trim();
22
+ return this.fetch(`${this.apiUrl}/search`, false, { params: { query, category } });
17
23
  }
18
- // search(searchQuery: string, category: HoldingTypeCategoryEnum = null): Observable<HoldingType[]> {
19
- // searchQuery = searchQuery.toLowerCase().trim();
20
- //
21
- // return this.http.get(`${this.apiUrl}`, { params: { searchQuery, category } }).pipe(
22
- // map((userBase: UserBase) => this.createModelInstance(userBase))
23
- // );
24
- // }
25
24
  listenEvents() {
26
- this.listenCSE(BankTransaction, (trade) => this.hasInCache(trade.holdingType.id) ? this.updateCache([trade.holdingType], 'post') : '', ['post']);
25
+ this.listenCSE(HoldingTrade, (trade) => this.hasInCache(trade.holdingType.id) ? this.updateCache([trade.holdingType], 'post') : '', ['post']);
26
+ this.listenCSE(HoldingTradeImport, this.refreshCache, ['post']);
27
+ }
28
+ listenNotifications() {
29
+ this.eventDispatcherService.on(AppEventTypeEnum.NOTIFICATION_ADDED).subscribe((notification) => {
30
+ if (!notification.isRead && notification.eventType === UserEventTypeTypeEnum.SHARESIGHT_IMPORT) {
31
+ this.refreshCache();
32
+ }
33
+ });
27
34
  }
28
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HoldingTypeService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
36
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HoldingTypeService, providedIn: 'root' }); }
@@ -37,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
37
44
  type: Inject,
38
45
  args: ['environment']
39
46
  }] }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10eXBlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9ob2xkaW5nL2hvbGRpbmctdHlwZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLEVBQWdCLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdFLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQVFwRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBZ0U7SUFPdEcsWUFBNkMsV0FBZ0I7UUFDM0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRHdCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTjdELGVBQVUsR0FBdUIsV0FBVyxDQUFDO1FBQzdDLG9CQUFlLEdBQWlDLHFCQUFxQixDQUFDO1FBQ3RFLGdCQUFXLEdBQUcsZUFBZSxDQUFDO1FBQzlCLG9CQUFlLEdBQWlCLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN6RSxVQUFLLEdBQUcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFJbkMsdUJBQXVCO0lBQ3pCLENBQUM7SUFFRCxxR0FBcUc7SUFDckcsb0RBQW9EO0lBQ3BELEVBQUU7SUFDRix3RkFBd0Y7SUFDeEYsc0VBQXNFO0lBQ3RFLE9BQU87SUFDUCxJQUFJO0lBRUosWUFBWTtRQUNWLElBQUksQ0FBQyxTQUFTLENBQ1osZUFBZSxFQUNmLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ25ILENBQUMsTUFBTSxDQUFDLENBQ1QsQ0FBQztJQUNKLENBQUM7K0dBMUJVLGtCQUFrQixrQkFPVCxhQUFhO21IQVB0QixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBUWMsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIb2xkaW5nVHlwZSBhcyBIb2xkaW5nVHlwZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgQmFua1RyYW5zYWN0aW9uLCBIb2xkaW5nVHJhZGUsIEhvbGRpbmdUeXBlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFJlc3RNZXRob2QsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgeyBIb2xkaW5nVHlwZUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJ3RheHRhbmstY29yZS9jb21tb24nO1xuaW1wb3J0IHsgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0gfSBmcm9tICcuLi8uLi8uLi9kYi9FbnVtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhvbGRpbmdUeXBlU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEhvbGRpbmdUeXBlQmFzZSwgSG9sZGluZ1R5cGUsIEhvbGRpbmdUeXBlQ29sbGVjdGlvbj4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBIb2xkaW5nVHlwZSA9IEhvbGRpbmdUeXBlO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBIb2xkaW5nVHlwZUNvbGxlY3Rpb24gPSBIb2xkaW5nVHlwZUNvbGxlY3Rpb247XG4gIGVuZHBvaW50VXJpID0gJ2hvbGRpbmctdHlwZXMnO1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsncG9zdEJhdGNoJywgJ3B1dEJhdGNoJywgJ2RlbGV0ZUJhdGNoJ107XG4gIHJvbGVzID0gW1VzZXJSb2xlc0VudW0uSE9MRElOR19UQU5LXTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoZW52aXJvbm1lbnQpO1xuICAgIC8vIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvLyBzZWFyY2goc2VhcmNoUXVlcnk6IHN0cmluZywgY2F0ZWdvcnk6IEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtID0gbnVsbCk6IE9ic2VydmFibGU8SG9sZGluZ1R5cGVbXT4ge1xuICAvLyAgIHNlYXJjaFF1ZXJ5ID0gc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gIC8vXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hcGlVcmx9YCwgeyBwYXJhbXM6IHsgc2VhcmNoUXVlcnksIGNhdGVnb3J5IH0gfSkucGlwZShcbiAgLy8gICAgIG1hcCgodXNlckJhc2U6IFVzZXJCYXNlKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UodXNlckJhc2UpKVxuICAvLyAgICk7XG4gIC8vIH1cblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5DU0UoXG4gICAgICBCYW5rVHJhbnNhY3Rpb24sXG4gICAgICAodHJhZGU6IEhvbGRpbmdUcmFkZSkgPT4gdGhpcy5oYXNJbkNhY2hlKHRyYWRlLmhvbGRpbmdUeXBlLmlkKSA/IHRoaXMudXBkYXRlQ2FjaGUoW3RyYWRlLmhvbGRpbmdUeXBlXSwgJ3Bvc3QnKSA6ICcnLFxuICAgICAgWydwb3N0J11cbiAgICApO1xuICB9XG59XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10eXBlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9ob2xkaW5nL2hvbGRpbmctdHlwZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFnQixNQUFNLGlCQUFpQixDQUFDO0FBQ2hILE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUtwRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBZ0U7SUFPdEcsWUFBNkMsV0FBZ0I7UUFDM0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRHdCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTjdELGVBQVUsR0FBdUIsV0FBVyxDQUFDO1FBQzdDLG9CQUFlLEdBQWlDLHFCQUFxQixDQUFDO1FBQ3RFLGdCQUFXLEdBQUcsZUFBZSxDQUFDO1FBQzlCLG9CQUFlLEdBQWlCLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN6RSxVQUFLLEdBQUcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFJbkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYSxFQUFFLFdBQW9DLElBQUk7UUFDNUQsS0FBSyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVuQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxTQUFTLENBQ1osWUFBWSxFQUNaLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ25ILENBQUMsTUFBTSxDQUFDLENBQ1QsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBMEIsRUFBUSxFQUFFO1lBQ2pILElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxTQUFTLEtBQUsscUJBQXFCLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzlGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FsQ1Usa0JBQWtCLGtCQU9ULGFBQWE7bUhBUHRCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRYyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhvbGRpbmdUeXBlIGFzIEhvbGRpbmdUeXBlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtLCBIb2xkaW5nVHJhZGUsIEhvbGRpbmdUcmFkZUltcG9ydCwgSG9sZGluZ1R5cGUsIE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kLCBSZXN0U2VydmljZSB9IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0IHsgSG9sZGluZ1R5cGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFVzZXJSb2xlc0VudW0gfSBmcm9tICd0YXh0YW5rLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVXNlckV2ZW50VHlwZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLXR5cGUuZW51bSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhvbGRpbmdUeXBlU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEhvbGRpbmdUeXBlQmFzZSwgSG9sZGluZ1R5cGUsIEhvbGRpbmdUeXBlQ29sbGVjdGlvbj4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBIb2xkaW5nVHlwZSA9IEhvbGRpbmdUeXBlO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBIb2xkaW5nVHlwZUNvbGxlY3Rpb24gPSBIb2xkaW5nVHlwZUNvbGxlY3Rpb247XG4gIGVuZHBvaW50VXJpID0gJ2hvbGRpbmctdHlwZXMnO1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsncG9zdEJhdGNoJywgJ3B1dEJhdGNoJywgJ2RlbGV0ZUJhdGNoJ107XG4gIHJvbGVzID0gW1VzZXJSb2xlc0VudW0uSE9MRElOR19UQU5LXTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gIH1cblxuICBzZWFyY2gocXVlcnk6IHN0cmluZywgY2F0ZWdvcnk6IEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtID0gbnVsbCk6IE9ic2VydmFibGU8SG9sZGluZ1R5cGVDb2xsZWN0aW9uPiB7XG4gICAgcXVlcnkgPSBxdWVyeS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcblxuICAgIHJldHVybiB0aGlzLmZldGNoKGAke3RoaXMuYXBpVXJsfS9zZWFyY2hgLCBmYWxzZSwgeyBwYXJhbXM6IHsgcXVlcnksIGNhdGVnb3J5IH0gfSk7XG4gIH1cblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5DU0UoXG4gICAgICBIb2xkaW5nVHJhZGUsXG4gICAgICAodHJhZGU6IEhvbGRpbmdUcmFkZSkgPT4gdGhpcy5oYXNJbkNhY2hlKHRyYWRlLmhvbGRpbmdUeXBlLmlkKSA/IHRoaXMudXBkYXRlQ2FjaGUoW3RyYWRlLmhvbGRpbmdUeXBlXSwgJ3Bvc3QnKSA6ICcnLFxuICAgICAgWydwb3N0J11cbiAgICApO1xuICAgIHRoaXMubGlzdGVuQ1NFKEhvbGRpbmdUcmFkZUltcG9ydCwgdGhpcy5yZWZyZXNoQ2FjaGUsIFsncG9zdCddKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pOiB2b2lkID0+IHtcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCAmJiBub3RpZmljYXRpb24uZXZlbnRUeXBlID09PSBVc2VyRXZlbnRUeXBlVHlwZUVudW0uU0hBUkVTSUdIVF9JTVBPUlQpIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoQ2FjaGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19