taxtank-core 0.33.44 → 0.33.46

Sign up to get free protection for your applications and to get access to all the features.
@@ -36,8 +36,8 @@ export class TransactionService extends RestService {
36
36
  this.listenPropertyForecastUpdate();
37
37
  this.listenNotifications();
38
38
  }
39
- fetch(path = this.apiUrl, cache = true) {
40
- return super.fetch(path, cache).pipe(map(transactions => {
39
+ get(path = this.apiUrl) {
40
+ return super.get(path).pipe(map(transactions => {
41
41
  transactions.forEach((transaction) => {
42
42
  transaction.transactions = transactions
43
43
  // get list of child transactions
@@ -259,4 +259,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
259
259
  type: Inject,
260
260
  args: ['environment']
261
261
  }] }] });
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFRLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLFlBQVksRUFFRSxhQUFhLEVBQzNCLFdBQVcsRUFDWCxZQUFZLEVBQ2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFJdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBRTdEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQXlDO0lBTS9FLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCO1FBRWpELEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUpULFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQVJu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Q0FBQyxvQkFBaUM7UUFDdEQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQzNHLE1BQU0sTUFBTSxHQUFHO2dCQUNiLHFCQUFxQixDQUFDLHNCQUFzQjtnQkFDNUMscUJBQXFCLENBQUMsMkJBQTJCO2dCQUNqRCxxQkFBcUIsQ0FBQyxvQkFBb0I7YUFDM0MsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNuRSw4Q0FBOEM7Z0JBQzlDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN0QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7YUFDVDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E3U1Usa0JBQWtCLGtGQVNuQixhQUFhO21IQVRaLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UsIHNvcnQgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Qtb2xkLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXBwRXZlbnQsXG4gIEFwcEV2ZW50VHlwZUVudW0sXG4gIERlcHJlY2lhdGlvbixcbiAgRmluYW5jaWFsWWVhcixcbiAgTm90aWZpY2F0aW9uLCBQcm9wZXJ0eVNoYXJlLFxuICBUcmFuc2FjdGlvbixcbiAgVmVoaWNsZUNsYWltXG59IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudCc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVXNlckV2ZW50VHlwZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgdHJhbnNhY3Rpb25zIGJ1c2luZXNzIGxvZ2ljXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFRyYW5zYWN0aW9uQmFzZSwgVHJhbnNhY3Rpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICAvLyB1cmwgcGFydCBmb3IgVHJhbnNhY3Rpb24gQVBJXG4gIHVybCA9ICd0cmFuc2FjdGlvbnMnO1xuICBtb2RlbENsYXNzID0gVHJhbnNhY3Rpb247XG4gIHRyYW5zYWN0aW9uRGVsZXRlZDogRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb24+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSxcbiAgKSB7XG4gICAgc3VwZXIoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGV2ZW50cyBmcm9tIEV2ZW50IERpc3BhdGNoZXIgc2VydmljZXNcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24yKFByb3BlcnR5U2hhcmUuZ2V0RXZlbnROYW1lKCdwdXQnKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaENhY2hlKCkpO1xuICAgIHRoaXMubGlzdGVuRGVwcmVjaWF0aW9uQ2hhbmdlKCk7XG4gICAgdGhpcy5saXN0ZW5WZWhpY2xlQ2xhaW1DaGFuZ2VzKCk7XG4gICAgdGhpcy5saXN0ZW5Qcm9wZXJ0eUZvcmVjYXN0VXBkYXRlKCk7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmV0Y2gocGF0aCA9IHRoaXMuYXBpVXJsLCBjYWNoZSA9IHRydWUpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gc3VwZXIuZmV0Y2gocGF0aCwgY2FjaGUpLnBpcGUoXG4gICAgICBtYXAodHJhbnNhY3Rpb25zID0+IHtcbiAgICAgICAgdHJhbnNhY3Rpb25zLmZvckVhY2goKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQgPT4ge1xuICAgICAgICAgIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucyA9IHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgLy8gZ2V0IGxpc3Qgb2YgY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICAuZmlsdGVyKCh0OiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdC5wYXJlbnRUcmFuc2FjdGlvbiAmJiB0LnBhcmVudFRyYW5zYWN0aW9uLmlkID09PSB0cmFuc2FjdGlvbi5pZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0cmFuc2FjdGlvbnM7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldEN1cnJlbnRZZWFyKCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiBzdXBlci5nZXQoKS5waXBlKFxuICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zKS5maWx0ZXJCeUZpbmFuY2lhbFllYXIoJ2RhdGUnKS50b0FycmF5KCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgc2luZ2xlIG5ldyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gbW9kZWwgTmV3IFRyYW5zYWN0aW9uIGluc3RhbmNlIGZvciBzYXZpbmdcbiAgICovXG4gIGFkZChtb2RlbDogVHJhbnNhY3Rpb24pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uPiB7XG4gICAgLy8gd2UgZG9uJ3QgaGF2ZSBQT1NUIEFQSSBlbmRwb2ludCBmb3Igc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAgcmV0dXJuIHRoaXMuYWRkQmF0Y2goW21vZGVsXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG5ld1RyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uID0+IHtcbiAgICAgICAgICAvLyBAVE9ETyBhbGV4XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uPihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX0NSRUFURUQsIG5ld1RyYW5zYWN0aW9uc1swXSlcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIG5ld1RyYW5zYWN0aW9uc1swXTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHRyYW5zYWN0aW9ucyByZWxhdGVkIHdpdGggcHJvcGVydHlcbiAgICovXG4gIGdldEJ5UHJvcGVydHlJZChwcm9wZXJ0eUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50WWVhcigpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHRyYW5zYWN0aW9ucy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24ucHJvcGVydHk/LmlkID09PSBwcm9wZXJ0eUlkKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIHdpdGggdGFuayB0eXBlICdXb3JrJ1xuICAgKi9cbiAgZ2V0V29ya1RyYW5zYWN0aW9ucygpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50WWVhcigpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHRyYW5zYWN0aW9ucy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNXb3JrVGFuaygpKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgcHJvcGVydHkgaG9sZGluZyBjb3N0cyAodHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gdmFjYW50IGxhbmQgcHJvcGVydHkpXG4gICAqL1xuICBnZXRQcm9wZXJ0eUhvbGRpbmdDb3N0cyhwcm9wZXJ0eUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0aWVzLyR7cHJvcGVydHlJZH0vaG9sZGluZy1jb3N0c2AsIGZhbHNlKTtcbiAgfVxuXG4gIGdldFdpdGhvdXRUYXhGcmVlUHJvcGVydHkoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2goYCR7dGhpcy5hcGlVcmx9P2V4Y2x1ZGVUYXhGcmVlUHJvcGVydHlDYXRlZ29yaWVzYCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIHRheGFibGUgdHJhbnNhY3Rpb25zIHdpdGggdGFuayB0eXBlICdXb3JrJ1xuICAgKi9cbiAgZ2V0VGF4YWJsZVdvcmtUcmFuc2FjdGlvbnMoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0V29ya1RyYW5zYWN0aW9ucygpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHRyYW5zYWN0aW9ucy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gISF0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLnRheFJldHVybkl0ZW0pKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGQgbXVsdGlwbGUgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbnMgTGlzdCBvZiBuZXcgVHJhbnNhY3Rpb24gaW5zdGFuY2VzIGZvciBzYXZpbmdcbiAgICovXG4gIGFkZEJhdGNoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHRyYW5zYWN0aW9ucyA9IF8uY2xvbmVEZWVwKHRyYW5zYWN0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKHRyYW5zYWN0aW9ucykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogVHJhbnNhY3Rpb25CYXNlW10pID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRlZFRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogVHJhbnNhY3Rpb25CYXNlKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuXG4gICAgICAgICAgdHJhbnNhY3Rpb25zLmZvckVhY2goKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgLy8gQFRPRE8gVmlrdG9yOiBpbXBsZW1lbnQgQVBJIGZvciBzYXZpbmcgb2YgbmVzdGVkIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgLy8gYWRkIGNoaWxkIHRyYW5zYWN0aW9ucyBpZiBleGlzdFxuICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmZvckVhY2goKGNoaWxkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgY2hpbGRUcmFuc2FjdGlvbi5wYXJlbnRUcmFuc2FjdGlvbiA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh7IGlkOiBhZGRlZFRyYW5zYWN0aW9uc1tpbmRleF0uaWQgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLmFkZEJhdGNoKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucykuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGFkZCB0cmFuc2ZlciB0cmFuc2FjdGlvbiB0byBjYWNoZVxuICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLm9wZXJhdGlvbiA9PT0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLlRSQU5TRkVSKSB7XG4gICAgICAgICAgICAgIGFkZGVkVHJhbnNhY3Rpb25zLnB1c2goYWRkZWRUcmFuc2FjdGlvbnNbMF0udHJhbnNmZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUucHVzaCguLi5hZGRlZFRyYW5zYWN0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uW10+KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05TX0NSRUFURUQsIGFkZGVkVHJhbnNhY3Rpb25zKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gYWRkZWRUcmFuc2FjdGlvbnM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBleGlzdGluZyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gVHJhbnNhY3Rpb24gaW5zdGFuY2UgZm9yIHVwZGF0aW5nXG4gICAqL1xuICB1cGRhdGUodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7dHJhbnNhY3Rpb24uaWR9YCwgY2xhc3NUb1BsYWluKHRyYW5zYWN0aW9uKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcbiAgICAgICAgICAvLyBAVE9ETyBWaWt0b3I6IGltcGxlbWVudCBBUEkgZm9yIHNhdmluZyBvZiBuZXN0ZWQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGFkZCBwYXJlbnQgdHJhbnNhY3Rpb24gdG8gY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZm9yRWFjaCgoY2hpbGRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgY2hpbGRUcmFuc2FjdGlvbi5wYXJlbnRUcmFuc2FjdGlvbiA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh7IGlkOiB1cGRhdGVkVHJhbnNhY3Rpb24uaWQgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIHNlcGFyYXRlIGNoaWxkIHRyYW5zYWN0aW9ucyBieSBpZCBleGlzdGluZyB0byBkZWZpbmUgYWRkIG9yIHVwZGF0ZSBhY3Rpb24uXG4gICAgICAgICAgICBjb25zdCBjaGlsZFRyYW5zYWN0aW9uc1RvVXBkYXRlOiBUcmFuc2FjdGlvbltdID0gdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmZpbHRlcigodDogVHJhbnNhY3Rpb24pID0+IHQuaWQpO1xuICAgICAgICAgICAgY29uc3QgY2hpbGRUcmFuc2FjdGlvbnNUb0FkZDogVHJhbnNhY3Rpb25bXSA9IHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5maWx0ZXIoKHQ6IFRyYW5zYWN0aW9uKSA9PiAhdC5pZCk7XG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSBjaGlsZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIGlmIChjaGlsZFRyYW5zYWN0aW9uc1RvVXBkYXRlLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUJhdGNoKGNoaWxkVHJhbnNhY3Rpb25zVG9VcGRhdGUpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBhZGQgY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICBpZiAoY2hpbGRUcmFuc2FjdGlvbnNUb0FkZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRCYXRjaChjaGlsZFRyYW5zYWN0aW9uc1RvQWRkKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnJlcGxhY2VJbkNhY2hlKHVwZGF0ZWRUcmFuc2FjdGlvbik7XG5cbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFRyYW5zYWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB1cGRhdGUgbXVsdGlwbGUgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbnMgbGlzdCBvZiB0cmFuc2FjdGlvbnMgZm9yIHVwZGF0aW5nXG4gICAqL1xuICB1cGRhdGVCYXRjaCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbih0cmFuc2FjdGlvbnMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IFRyYW5zYWN0aW9uQmFzZVtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogVHJhbnNhY3Rpb25CYXNlKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuXG4gICAgICAgICAgdXBkYXRlZFRyYW5zYWN0aW9ucy5mb3JFYWNoKCh1cGRhdGVkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHVwZGF0ZWRUcmFuc2FjdGlvbik7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRUcmFuc2FjdGlvbnM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZGVsZXRlQmF0Y2gobW9kZWxzOiBUcmFuc2FjdGlvbltdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlbGV0ZUJhdGNoKG1vZGVscykucGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChcbiAgICAgICAgICBuZXcgQXBwRXZlbnQ8VHJhbnNhY3Rpb24+KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fREVMRVRFRCwgbW9kZWxzWzBdKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSB0cmFuc2FjdGlvbiBhbmQgcmVsYXRlZCB0cmFuc2FjdGlvbnNcbiAgICogQHBhcmFtIG1vZGVsXG4gICAqL1xuICBkZWxldGUobW9kZWw6IFRyYW5zYWN0aW9uKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHttb2RlbC5pZH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGUuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIC8vIHdoZW4gZGVsZXRlIHRyYW5zZmVyIHdlIGRlbGV0ZSBhY3R1YWxseSAyIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgaWYgKG1vZGVsLmlzVHJhbnNmZXIpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWRzOiBudW1iZXJbXSA9IFttb2RlbC5pZF07XG5cbiAgICAgICAgICAgICAgLy8gZ2V0IGlkIG9mIHJlbGF0ZWQgdHJhbnNmZXIgdHJhbnNhY3Rpb25cbiAgICAgICAgICAgICAgaWYgKG1vZGVsLnRyYW5zZmVyKSB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCB0YWtlIGlkIGlmIHdlIGRlbGV0ZSBzb3VyY2UgdHJhbnNhY3Rpb25cbiAgICAgICAgICAgICAgICBpZHMucHVzaChtb2RlbC50cmFuc2Zlci5pZCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZmluZCBzb3VyY2UgdHJhbnNhY3Rpb24gaWQgaWYgd2UgZGVsZXRlIGRlc3RpbmF0aW9uIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICAgICAgaWRzLnB1c2godGhpcy5jYWNoZS5maW5kKCh0OiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdC50cmFuc2Zlci5pZCA9PT0gbW9kZWwuaWQpLmlkKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiAhaWRzLmluY2x1ZGVzKHRyYW5zYWN0aW9uLmlkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLmlkICE9PSBtb2RlbC5pZCAmJiB0cmFuc2FjdGlvbi5wYXJlbnRUcmFuc2FjdGlvbj8uaWQgIT09IG1vZGVsLmlkO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uPihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX0RFTEVURUQsIG1vZGVsKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkRlbGV0ZWQuZW1pdChtb2RlbCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIGV2ZW50IHJlbGF0ZWQgdG8gRGVwcmVjaWF0aW9uIGNoYW5naW5nXG4gICAqL1xuICBwcml2YXRlIGxpc3RlbkRlcHJlY2lhdGlvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICAvLyBAVE9ETyByZXNldCBjYWNoZSBvbmx5IHdoZW4gcmVxdWlyZWQgKGRlcHJlY2lhdGlvbiBoYXMgdHJhbnNhY3Rpb24pXG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uMiguLi5EZXByZWNpYXRpb24uZ2V0RXZlbnROYW1lcygncG9zdCcsICdkZWxldGUnKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblZlaGljbGVDbGFpbUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uMiguLi5WZWhpY2xlQ2xhaW0uZ2V0RXZlbnROYW1lcygncG9zdCcsICdwdXQnKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaENhY2hlKCkpO1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbXG4gICAgICBBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfQ0xBSU1fREVUQUlMU19VUERBVEVEXG4gICAgXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBwcm9wZXJ0eSBmb3JlY2FzdCBpbmNsdWRlcyBjbGFpbVBlcmNlbnQgd2hpY2ggYWZmZWN0cyBwcm9wZXJ0eSByZWxhdGVkIGV4cGVuc2VzXG4gICAqIEBUT0RPIEFsZXggbW92ZSB0byBmb3JlY2FzdCBhcGkgaW5zdGVhZCBvZiBwcm9wZXJ0eVxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Qcm9wZXJ0eUZvcmVjYXN0VXBkYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9VUERBVEVEXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VJbkNhY2hlKHRyYW5zYWN0aW9uVG9SZXBsYWNlOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgdHJhbnNhY3Rpb25Ub1JlcGxhY2UpO1xuICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50cyA9IFtcbiAgICAgICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLklOVk9JQ0VfQVVUT19BTExPQ0FURUQsXG4gICAgICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5JTlZPSUNFX0FVVE9fUEFSVF9BTExPQ0FURUQsXG4gICAgICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5SVUxFU19BVVRPX0FMTE9DQVRFRFxuICAgICAgXTtcblxuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIGV2ZW50cy5pbmNsdWRlcyhub3RpZmljYXRpb24uZXZlbnRUeXBlKSkge1xuICAgICAgICAvLyBAVE9ETyBUVC0zODI2IG1vdmUgdG8gdW5pZmllZCBtZXJjdXJlIGV2ZW50XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgICAgIH0sIDMwMDApXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDRSxhQUFhLEVBQzNCLFdBQVcsRUFDWCxZQUFZLEVBQ2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFJdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBRTdEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQXlDO0lBTS9FLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCO1FBRWpELEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUpULFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQVJu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QUksQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQzNHLE1BQU0sTUFBTSxHQUFHO2dCQUNiLHFCQUFxQixDQUFDLHNCQUFzQjtnQkFDNUMscUJBQXFCLENBQUMsMkJBQTJCO2dCQUNqRCxxQkFBcUIsQ0FBQyxvQkFBb0I7YUFDM0MsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNuRSw4Q0FBOEM7Z0JBQzlDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN0QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7YUFDVDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E3U1Usa0JBQWtCLGtGQVNuQixhQUFhO21IQVRaLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Qtb2xkLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXBwRXZlbnQsXG4gIEFwcEV2ZW50VHlwZUVudW0sXG4gIERlcHJlY2lhdGlvbixcbiAgTm90aWZpY2F0aW9uLCBQcm9wZXJ0eVNoYXJlLFxuICBUcmFuc2FjdGlvbixcbiAgVmVoaWNsZUNsYWltXG59IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudCc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVXNlckV2ZW50VHlwZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgdHJhbnNhY3Rpb25zIGJ1c2luZXNzIGxvZ2ljXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFRyYW5zYWN0aW9uQmFzZSwgVHJhbnNhY3Rpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICAvLyB1cmwgcGFydCBmb3IgVHJhbnNhY3Rpb24gQVBJXG4gIHVybCA9ICd0cmFuc2FjdGlvbnMnO1xuICBtb2RlbENsYXNzID0gVHJhbnNhY3Rpb247XG4gIHRyYW5zYWN0aW9uRGVsZXRlZDogRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb24+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSxcbiAgKSB7XG4gICAgc3VwZXIoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGV2ZW50cyBmcm9tIEV2ZW50IERpc3BhdGNoZXIgc2VydmljZXNcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24yKFByb3BlcnR5U2hhcmUuZ2V0RXZlbnROYW1lKCdwdXQnKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaENhY2hlKCkpO1xuICAgIHRoaXMubGlzdGVuRGVwcmVjaWF0aW9uQ2hhbmdlKCk7XG4gICAgdGhpcy5saXN0ZW5WZWhpY2xlQ2xhaW1DaGFuZ2VzKCk7XG4gICAgdGhpcy5saXN0ZW5Qcm9wZXJ0eUZvcmVjYXN0VXBkYXRlKCk7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gIH1cblxuICBnZXQocGF0aCA9IHRoaXMuYXBpVXJsKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHN1cGVyLmdldChwYXRoKS5waXBlKFxuICAgICAgbWFwKHRyYW5zYWN0aW9ucyA9PiB7XG4gICAgICAgIHRyYW5zYWN0aW9ucy5mb3JFYWNoKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkID0+IHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMgPSB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIC8vIGdldCBsaXN0IG9mIGNoaWxkIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgLmZpbHRlcigodDogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHQucGFyZW50VHJhbnNhY3Rpb24gJiYgdC5wYXJlbnRUcmFuc2FjdGlvbi5pZCA9PT0gdHJhbnNhY3Rpb24uaWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb25zO1xuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRDdXJyZW50WWVhcigpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KCkucGlwZShcbiAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSA9PiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKHRyYW5zYWN0aW9ucykuZmlsdGVyQnlGaW5hbmNpYWxZZWFyKCdkYXRlJykudG9BcnJheSgpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHNpbmdsZSBuZXcgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIG1vZGVsIE5ldyBUcmFuc2FjdGlvbiBpbnN0YW5jZSBmb3Igc2F2aW5nXG4gICAqL1xuICBhZGQobW9kZWw6IFRyYW5zYWN0aW9uKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbj4ge1xuICAgIC8vIHdlIGRvbid0IGhhdmUgUE9TVCBBUEkgZW5kcG9pbnQgZm9yIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgIHJldHVybiB0aGlzLmFkZEJhdGNoKFttb2RlbF0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdUcmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbiA9PiB7XG4gICAgICAgICAgLy8gQFRPRE8gYWxleFxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChcbiAgICAgICAgICAgIG5ldyBBcHBFdmVudDxUcmFuc2FjdGlvbj4oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9DUkVBVEVELCBuZXdUcmFuc2FjdGlvbnNbMF0pXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBuZXdUcmFuc2FjdGlvbnNbMF07XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0cmFuc2FjdGlvbnMgcmVsYXRlZCB3aXRoIHByb3BlcnR5XG4gICAqL1xuICBnZXRCeVByb3BlcnR5SWQocHJvcGVydHlJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q3VycmVudFllYXIoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSA9PiB0cmFuc2FjdGlvbnMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLnByb3BlcnR5Py5pZCA9PT0gcHJvcGVydHlJZCkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIHRyYW5zYWN0aW9ucyB3aXRoIHRhbmsgdHlwZSAnV29yaydcbiAgICovXG4gIGdldFdvcmtUcmFuc2FjdGlvbnMoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q3VycmVudFllYXIoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSA9PiB0cmFuc2FjdGlvbnMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzV29ya1RhbmsoKSkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIHByb3BlcnR5IGhvbGRpbmcgY29zdHMgKHRyYW5zYWN0aW9ucyByZWxhdGVkIHRvIHZhY2FudCBsYW5kIHByb3BlcnR5KVxuICAgKi9cbiAgZ2V0UHJvcGVydHlIb2xkaW5nQ29zdHMocHJvcGVydHlJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2goYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vcHJvcGVydGllcy8ke3Byb3BlcnR5SWR9L2hvbGRpbmctY29zdHNgLCBmYWxzZSk7XG4gIH1cblxuICBnZXRXaXRob3V0VGF4RnJlZVByb3BlcnR5KCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmZldGNoKGAke3RoaXMuYXBpVXJsfT9leGNsdWRlVGF4RnJlZVByb3BlcnR5Q2F0ZWdvcmllc2AsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiB0YXhhYmxlIHRyYW5zYWN0aW9ucyB3aXRoIHRhbmsgdHlwZSAnV29yaydcbiAgICovXG4gIGdldFRheGFibGVXb3JrVHJhbnNhY3Rpb25zKCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldFdvcmtUcmFuc2FjdGlvbnMoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSA9PiB0cmFuc2FjdGlvbnMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+ICEhdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cy50YXhSZXR1cm5JdGVtKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogYWRkIG11bHRpcGxlIHRyYW5zYWN0aW9uc1xuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25zIExpc3Qgb2YgbmV3IFRyYW5zYWN0aW9uIGluc3RhbmNlcyBmb3Igc2F2aW5nXG4gICAqL1xuICBhZGRCYXRjaCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICB0cmFuc2FjdGlvbnMgPSBfLmNsb25lRGVlcCh0cmFuc2FjdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbih0cmFuc2FjdGlvbnMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IFRyYW5zYWN0aW9uQmFzZVtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWRkZWRUcmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IFRyYW5zYWN0aW9uQmFzZSkgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcblxuICAgICAgICAgIHRyYW5zYWN0aW9ucy5mb3JFYWNoKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIC8vIEBUT0RPIFZpa3RvcjogaW1wbGVtZW50IEFQSSBmb3Igc2F2aW5nIG9mIG5lc3RlZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIC8vIGFkZCBjaGlsZCB0cmFuc2FjdGlvbnMgaWYgZXhpc3RcbiAgICAgICAgICAgIGlmICh0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5mb3JFYWNoKChjaGlsZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGNoaWxkVHJhbnNhY3Rpb24ucGFyZW50VHJhbnNhY3Rpb24gPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoeyBpZDogYWRkZWRUcmFuc2FjdGlvbnNbaW5kZXhdLmlkIH0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5hZGRCYXRjaCh0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBhZGQgdHJhbnNmZXIgdHJhbnNhY3Rpb24gdG8gY2FjaGVcbiAgICAgICAgICAgIGlmICh0cmFuc2FjdGlvbi5vcGVyYXRpb24gPT09IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5UUkFOU0ZFUikge1xuICAgICAgICAgICAgICBhZGRlZFRyYW5zYWN0aW9ucy5wdXNoKGFkZGVkVHJhbnNhY3Rpb25zWzBdLnRyYW5zZmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnB1c2goLi4uYWRkZWRUcmFuc2FjdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChcbiAgICAgICAgICAgIG5ldyBBcHBFdmVudDxUcmFuc2FjdGlvbltdPihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OU19DUkVBVEVELCBhZGRlZFRyYW5zYWN0aW9ucylcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIGFkZGVkVHJhbnNhY3Rpb25zO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB1cGRhdGUgZXhpc3RpbmcgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIFRyYW5zYWN0aW9uIGluc3RhbmNlIGZvciB1cGRhdGluZ1xuICAgKi9cbiAgdXBkYXRlKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IE9ic2VydmFibGU8VHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke3RyYW5zYWN0aW9uLmlkfWAsIGNsYXNzVG9QbGFpbih0cmFuc2FjdGlvbikpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogVHJhbnNhY3Rpb25CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShyZXNwb25zZSk7XG4gICAgICAgICAgLy8gQFRPRE8gVmlrdG9yOiBpbXBsZW1lbnQgQVBJIGZvciBzYXZpbmcgb2YgbmVzdGVkIHRyYW5zYWN0aW9uc1xuICAgICAgICAgIGlmICh0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBhZGQgcGFyZW50IHRyYW5zYWN0aW9uIHRvIGNoaWxkIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmZvckVhY2goKGNoaWxkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIGNoaWxkVHJhbnNhY3Rpb24ucGFyZW50VHJhbnNhY3Rpb24gPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoeyBpZDogdXBkYXRlZFRyYW5zYWN0aW9uLmlkIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBzZXBhcmF0ZSBjaGlsZCB0cmFuc2FjdGlvbnMgYnkgaWQgZXhpc3RpbmcgdG8gZGVmaW5lIGFkZCBvciB1cGRhdGUgYWN0aW9uLlxuICAgICAgICAgICAgY29uc3QgY2hpbGRUcmFuc2FjdGlvbnNUb1VwZGF0ZTogVHJhbnNhY3Rpb25bXSA9IHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5maWx0ZXIoKHQ6IFRyYW5zYWN0aW9uKSA9PiB0LmlkKTtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkVHJhbnNhY3Rpb25zVG9BZGQ6IFRyYW5zYWN0aW9uW10gPSB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZmlsdGVyKCh0OiBUcmFuc2FjdGlvbikgPT4gIXQuaWQpO1xuXG4gICAgICAgICAgICAvLyB1cGRhdGUgY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICBpZiAoY2hpbGRUcmFuc2FjdGlvbnNUb1VwZGF0ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVCYXRjaChjaGlsZFRyYW5zYWN0aW9uc1RvVXBkYXRlKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYWRkIGNoaWxkIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgaWYgKGNoaWxkVHJhbnNhY3Rpb25zVG9BZGQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuYWRkQmF0Y2goY2hpbGRUcmFuc2FjdGlvbnNUb0FkZCkuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5yZXBsYWNlSW5DYWNoZSh1cGRhdGVkVHJhbnNhY3Rpb24pO1xuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRUcmFuc2FjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogdXBkYXRlIG11bHRpcGxlIHRyYW5zYWN0aW9uc1xuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25zIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGZvciB1cGRhdGluZ1xuICAgKi9cbiAgdXBkYXRlQmF0Y2godHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBjbGFzc1RvUGxhaW4odHJhbnNhY3Rpb25zKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkJhc2VbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRUcmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IFRyYW5zYWN0aW9uQmFzZSkgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcblxuICAgICAgICAgIHVwZGF0ZWRUcmFuc2FjdGlvbnMuZm9yRWFjaCgodXBkYXRlZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCB1cGRhdGVkVHJhbnNhY3Rpb24pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIHJldHVybiB1cGRhdGVkVHJhbnNhY3Rpb25zO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGRlbGV0ZUJhdGNoKG1vZGVsczogVHJhbnNhY3Rpb25bXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBzdXBlci5kZWxldGVCYXRjaChtb2RlbHMpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2goXG4gICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uPihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX0RFTEVURUQsIG1vZGVsc1swXSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGUgdHJhbnNhY3Rpb24gYW5kIHJlbGF0ZWQgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSBtb2RlbFxuICAgKi9cbiAgZGVsZXRlKG1vZGVsOiBUcmFuc2FjdGlvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7bW9kZWwuaWR9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICAvLyB3aGVuIGRlbGV0ZSB0cmFuc2ZlciB3ZSBkZWxldGUgYWN0dWFsbHkgMiB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIGlmIChtb2RlbC5pc1RyYW5zZmVyKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkczogbnVtYmVyW10gPSBbbW9kZWwuaWRdO1xuXG4gICAgICAgICAgICAgIC8vIGdldCBpZCBvZiByZWxhdGVkIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICAgIGlmIChtb2RlbC50cmFuc2Zlcikge1xuICAgICAgICAgICAgICAgIC8vIGp1c3QgdGFrZSBpZCBpZiB3ZSBkZWxldGUgc291cmNlIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICAgICAgaWRzLnB1c2gobW9kZWwudHJhbnNmZXIuaWQpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGZpbmQgc291cmNlIHRyYW5zYWN0aW9uIGlkIGlmIHdlIGRlbGV0ZSBkZXN0aW5hdGlvbiB0cmFuc2FjdGlvblxuICAgICAgICAgICAgICAgIGlkcy5wdXNoKHRoaXMuY2FjaGUuZmluZCgodDogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHQudHJhbnNmZXIuaWQgPT09IG1vZGVsLmlkKS5pZCk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gIWlkcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5pZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pZCAhPT0gbW9kZWwuaWQgJiYgdHJhbnNhY3Rpb24ucGFyZW50VHJhbnNhY3Rpb24/LmlkICE9PSBtb2RlbC5pZDtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChcbiAgICAgICAgICAgIG5ldyBBcHBFdmVudDxUcmFuc2FjdGlvbj4oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9ERUxFVEVELCBtb2RlbClcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25EZWxldGVkLmVtaXQobW9kZWwpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRXZlbnREaXNwYXRjaGVyU2VydmljZSBldmVudCByZWxhdGVkIHRvIERlcHJlY2lhdGlvbiBjaGFuZ2luZ1xuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5EZXByZWNpYXRpb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgLy8gQFRPRE8gcmVzZXQgY2FjaGUgb25seSB3aGVuIHJlcXVpcmVkIChkZXByZWNpYXRpb24gaGFzIHRyYW5zYWN0aW9uKVxuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIoLi4uRGVwcmVjaWF0aW9uLmdldEV2ZW50TmFtZXMoJ3Bvc3QnLCAnZGVsZXRlJykpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5WZWhpY2xlQ2xhaW1DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIoLi4uVmVoaWNsZUNsYWltLmdldEV2ZW50TmFtZXMoJ3Bvc3QnLCAncHV0JykpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZnJlc2hDYWNoZSgpKTtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oW1xuICAgICAgQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX0RFVEFJTFNfVVBEQVRFRFxuICAgIF0pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogcHJvcGVydHkgZm9yZWNhc3QgaW5jbHVkZXMgY2xhaW1QZXJjZW50IHdoaWNoIGFmZmVjdHMgcHJvcGVydHkgcmVsYXRlZCBleHBlbnNlc1xuICAgKiBAVE9ETyBBbGV4IG1vdmUgdG8gZm9yZWNhc3QgYXBpIGluc3RlYWQgb2YgcHJvcGVydHlcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuUHJvcGVydHlGb3JlY2FzdFVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oW0FwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfVVBEQVRFRF0pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlSW5DYWNoZSh0cmFuc2FjdGlvblRvUmVwbGFjZTogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHRyYW5zYWN0aW9uVG9SZXBsYWNlKTtcbiAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk5vdGlmaWNhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uTk9USUZJQ0FUSU9OX0FEREVEKS5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCBldmVudHMgPSBbXG4gICAgICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5JTlZPSUNFX0FVVE9fQUxMT0NBVEVELFxuICAgICAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uSU5WT0lDRV9BVVRPX1BBUlRfQUxMT0NBVEVELFxuICAgICAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uUlVMRVNfQVVUT19BTExPQ0FURURcbiAgICAgIF07XG5cbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCAmJiBldmVudHMuaW5jbHVkZXMobm90aWZpY2F0aW9uLmV2ZW50VHlwZSkpIHtcbiAgICAgICAgLy8gQFRPRE8gVFQtMzgyNiBtb3ZlIHRvIHVuaWZpZWQgbWVyY3VyZSBldmVudFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgICAgICB9LCAzMDAwKVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -9,8 +9,8 @@ const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.
9
9
  export class XlsxService {
10
10
  constructor() {
11
11
  this.getFileName = (name) => {
12
- let sheetName = name || "ExportResult";
13
- let fileName = `${sheetName}`;
12
+ const sheetName = name || 'ExportResult';
13
+ const fileName = `${sheetName}`;
14
14
  return {
15
15
  sheetName,
16
16
  fileName
@@ -39,16 +39,15 @@ export class XlsxService {
39
39
  // add caption for the current table
40
40
  xlsx.utils.sheet_add_aoa(worksheet, [[data.caption?.innerText]], { origin: -1 });
41
41
  // Prepare to add table data to the worksheet, processing each cell
42
- const rows = Array.from(data.rows).map((row) => {
43
- return Array.from(row.cells).map((cell) => {
44
- let cellValue = cell.innerText;
45
- // Convert currency strings like "$0.00" to numbers
46
- if (/^-?\$/.test(cellValue)) {
47
- cellValue = parseFloat(cellValue.replace('$', ''));
48
- }
49
- return cellValue;
50
- });
51
- });
42
+ const rows = Array.from(data.rows).map((row) => Array.from(row.cells).map((cell) => {
43
+ const cellValue = cell.innerText;
44
+ // Convert currency strings like "$0.00" to numbers
45
+ if (/^-?\$/.test(cellValue)) {
46
+ // @TODO vik fix
47
+ // cellValue = parseFloat(cellValue.replace('$', ''));
48
+ }
49
+ return cellValue;
50
+ }));
52
51
  // Add the processed table data to the worksheet
53
52
  xlsx.utils.sheet_add_aoa(worksheet, rows, { origin: -1 });
54
53
  // set empty row after current table
@@ -70,7 +69,7 @@ export class XlsxService {
70
69
  };
71
70
  const exportData = exportableCollection.export(params);
72
71
  const exportAoa = exportableCollection.getBodyAoa(exportData);
73
- let { sheetName, fileName } = this.getFileName(name);
72
+ const { sheetName, fileName } = this.getFileName(name);
74
73
  xlsx.utils.sheet_add_aoa(worksheet, [exportData.header], { origin: -1 });
75
74
  // add table table data to the worksheet
76
75
  xlsx.utils.sheet_add_aoa(worksheet, exportAoa, { origin: -1 });
@@ -92,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
92
91
  providedIn: 'root'
93
92
  }]
94
93
  }] });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGxzeC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL3hsc3gveGxzeC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7O0FBSXhDLE1BQU0sVUFBVSxHQUFXLGlGQUFpRixDQUFBO0FBTTVHOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFQeEI7UUFzREUsZ0JBQVcsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1lBQzdCLElBQUksU0FBUyxHQUFHLElBQUksSUFBSSxjQUFjLENBQUM7WUFDdkMsSUFBSSxRQUFRLEdBQUcsR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUM5QixPQUFPO2dCQUNMLFNBQVM7Z0JBQ1QsUUFBUTthQUNULENBQUM7UUFDSixDQUFDLENBQUM7S0FnQ0g7SUFyRkM7O09BRUc7SUFDSCxZQUFZLENBQUMsTUFBb0MsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7UUFDaEYsTUFBTSxTQUFTLEdBQWEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRSxNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsTUFBb0MsRUFBRSxLQUFjO1FBQzdFLHNCQUFzQjtRQUN0QixNQUFNLFFBQVEsR0FBa0IsSUFBSSxDQUFDLEtB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Q0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sU0FBUyxHQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUV0RixNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDOytHQXJGVSxXQUFXO21IQUFYLFdBQVcsY0FOVixNQUFNOzs0RkFNUCxXQUFXO2tCQVB2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIHhsc3ggZnJvbSAneGxzeCc7XG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBFeHBvcnRhYmxlQ29sbGVjdGlvbiB9IGZyb20gXCIuLi8uLi9jb2xsZWN0aW9uc1wiO1xuaW1wb3J0IHsgRXhwb3J0RGF0YVRhYmxlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWRhdGEtdGFibGVcIjtcblxuY29uc3QgRVhDRUxfVFlQRTogc3RyaW5nID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG4vKipcbiAqIFNlcnZpY2UgdG8gd29yayB3aXRoIFhMU1ggKGdlbmVyYXRlLCBkb3dubG9hZCwgZS50LmMuKVxuICovXG5leHBvcnQgY2xhc3MgWGxzeFNlcnZpY2Uge1xuICAvKipcbiAgICogRXhwb3J0IGZpbGUgZm9ybSBwcm92aWRlZCBIVE1MIHRhYmxlc1xuICAgKi9cbiAgZXhwb3J0VGFibGVzKHRhYmxlczogTm9kZUxpc3RPZjxIVE1MVGFibGVFbGVtZW50PiwgdGl0bGU6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGV4Y2VsRmlsZTogQmxvYlBhcnQgPSB0aGlzLmdlbmVyYXRlRnJvbVRhYmxlcyh0YWJsZXMsIHRpdGxlKTtcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2V4Y2VsRmlsZV0sIHtcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcbiAgICB9KTtcblxuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgYCR7ZmlsZU5hbWV9Lnhsc3hgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVGcm9tVGFibGVzKHRhYmxlczogTm9kZUxpc3RPZjxIVE1MVGFibGVFbGVtZW50PiwgdGl0bGU/OiBzdHJpbmcpOiBCbG9iUGFydCB7XG4gICAgLy8gY3JlYXRlIG5ldyB3b3JrYm9va1xuICAgIGNvbnN0IHdvcmtib29rOiB4bHN4LldvcmtCb29rID0geGxzeC51dGlscy5ib29rX25ldygpO1xuICAgIC8vIGNyZWF0ZSBlbXB0eSB3b3Jrc2hlZXRcbiAgICBjb25zdCB3b3Jrc2hlZXQ6IHhsc3guV29ya1NoZWV0ID0ge1xuICAgICAgU2hlZXROYW1lczogW10sXG4gICAgICBTaGVldHM6IHt9XG4gICAgfTtcblxuICAgIHRhYmxlcy5mb3JFYWNoKChkYXRhOiBIVE1MVGFibGVFbGVtZW50KSA9PiB7XG4gICAgICAvLyBhZGQgY2FwdGlvbiBmb3IgdGhlIGN1cnJlbnQgdGFibGVcbiAgICAgIHhsc3gudXRpbHMuc2hlZXRfYWRkX2FvYSh3b3Jrc2hlZXQsIFtbZGF0YS5jYXB0aW9uPy5pbm5lclRleHRdXSwge29yaWdpbjogLTF9KTtcbiAgICAgIC8vIFByZXBhcmUgdG8gYWRkIHRhYmxlIGRhdGEgdG8gdGhlIHdvcmtzaGVldCwgcHJvY2Vzc2luZyBlYWNoIGNlbGxcbiAgICAgIGNvbnN0IHJvd3MgPSBBcnJheS5mcm9tKGRhdGEucm93cykubWFwKChyb3c6IEhUTUxUYWJsZVJvd0VsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20ocm93LmNlbGxzKS5tYXAoKGNlbGw6IEhUTUxUYWJsZUNlbGxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgbGV0IGNlbGxWYWx1ZTogc3RyaW5nIHwgbnVtYmVyID0gY2VsbC5pbm5lclRleHQ7XG4gICAgICAgICAgLy8gQ29udmVydCBjdXJyZW5jeSBzdHJpbmdzIGxpa2UgXCIkMC4wMFwiIHRvIG51bWJlcnNcbiAgICAgICAgICBpZiAoL14tP1xcJC8udGVzdChjZWxsVmFsdWUpKSB7XG4gICAgICAgICAgICBjZWxsVmFsdWUgPSBwYXJzZUZsb2F0KGNlbGxWYWx1ZS5yZXBsYWNlKCckJywgJycpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY2VsbFZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgLy8gQWRkIHRoZSBwcm9jZXNzZWQgdGFibGUgZGF0YSB0byB0aGUgd29ya3NoZWV0XG4gICAgICB4bHN4LnV0aWxzLnNoZWV0X2FkZF9hb2Eod29ya3NoZWV0LCByb3dzLCB7b3JpZ2luOiAtMX0pO1xuICAgICAgLy8gc2V0IGVtcHR5IHJvdyBhZnRlciBjdXJyZW50IHRhYmxlXG4gICAgICB4bHN4LnV0aWxzLnNoZWV0X2FkZF9hb2Eod29ya3NoZWV0LCBbXSwge29yaWdpbjogLTF9KTtcbiAgICB9KTtcblxuICAgIHhsc3gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod29ya2Jvb2ssIHdvcmtzaGVldCk7XG4gICAgcmV0dXJuIHhsc3gud3JpdGUod29ya2Jvb2ssIHsgYm9va1R5cGU6ICd4bHN4JywgdHlwZTogJ2FycmF5JyB9KTtcbiAgfVxuXG4gIGdldEZpbGVOYW1lID0gKG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGxldCBzaGVldE5hbWUgPSBuYW1lIHx8IFwiRXhwb3J0UmVzdWx0XCI7XG4gICAgbGV0IGZpbGVOYW1lID0gYCR7c2hlZXROYW1lfWA7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNoZWV0TmFtZSxcbiAgICAgIGZpbGVOYW1lXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogQFRPRE8gdmlrL2FydGVtIHdvcmsgd2l0aCBFeHBvcnREYXRhVGFibGUgaW5zdGVhZCBvZiBFeHBvcnRhYmxlQ29sbGVjdGlvblxuICAgKiBAVE9ETyB2aWsvYXJ0ZW0gd2h5IHNvIG11Y2ggY29kZT8gaGVyZSBpcyA2IHJvd3Mgc29sdXRpb24gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjQ5Mzk5OTQvaG93LXRvLWV4cG9ydC1hcnJheS1vZi1vYmplY3RzLXRvLWFuLWV4Y2VsLWluLWFuZ3VsYXItOFxuICAgKi9cbiAgZXhwb3J0QXJyYXlUb0V4Y2VsKGV4cG9ydGFibGVDb2xsZWN0aW9uOiBFeHBvcnRhYmxlQ29sbGVjdGlvbjxhbnk+LCBuYW1lPzogc3RyaW5nLCBwYXJhbXM/IDogYW55KSB7XG4gICAgY29uc3Qgd29ya2Jvb2s6IHhsc3guV29ya0Jvb2sgPSB4bHN4LnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgLy8gY3JlYXRlIGVtcHR5IHdvcmtzaGVldFxuICAgIGNvbnN0IHdvcmtzaGVldDogeGxzeC5Xb3JrU2hlZXQgPSB7XG4gICAgICBTaGVldE5hbWVzOiBbXSxcbiAgICAgIFNoZWV0czoge31cbiAgICB9O1xuXG4gICAgY29uc3QgZXhwb3J0RGF0YTogRXhwb3J0RGF0YVRhYmxlID0gZXhwb3J0YWJsZUNvbGxlY3Rpb24uZXhwb3J0KHBhcmFtcylcbiAgICBjb25zdCBleHBvcnRBb2EgPSBleHBvcnRhYmxlQ29sbGVjdGlvbi5nZXRCb2R5QW9hKGV4cG9ydERhdGEpO1xuICAgIGxldCB7IHNoZWV0TmFtZSwgZmlsZU5hbWUgfSA9IHRoaXMuZ2V0RmlsZU5hbWUobmFtZSk7XG5cbiAgICB4bHN4LnV0aWxzLnNoZWV0X2FkZF9hb2Eod29ya3NoZWV0LCBbZXhwb3J0RGF0YS5oZWFkZXJdLCB7b3JpZ2luOiAtMX0pO1xuICAgIC8vIGFkZCB0YWJsZSB0YWJsZSBkYXRhIHRvIHRoZSB3b3Jrc2hlZXRcbiAgICB4bHN4LnV0aWxzLnNoZWV0X2FkZF9hb2Eod29ya3NoZWV0LCBleHBvcnRBb2EsIHtvcmlnaW46IC0xfSk7XG4gICAgLy8gc2V0IGVtcHR5IHJvdyBhZnRlciBjdXJyZW50IHRhYmxlXG4gICAgeGxzeC51dGlscy5zaGVldF9hZGRfYW9hKHdvcmtzaGVldCwgW10sIHtvcmlnaW46IC0xfSk7XG5cbiAgICB4bHN4LnV0aWxzLmJvb2tfYXBwZW5kX3NoZWV0KHdvcmtib29rLCB3b3Jrc2hlZXQpO1xuICAgIGNvbnN0IGV4Y2VsRmlsZTogQmxvYlBhcnQgPSB4bHN4LndyaXRlKHdvcmtib29rLCB7IGJvb2tUeXBlOiAneGxzeCcsIHR5cGU6ICdhcnJheScgfSk7XG5cbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2V4Y2VsRmlsZV0sIHtcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcbiAgICB9KTtcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGAke2ZpbGVOYW1lfS54bHN4YCk7XG4gIH1cbn1cbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGxzeC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL3hsc3gveGxzeC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7O0FBSXhDLE1BQU0sVUFBVSxHQUFXLGlGQUFpRixDQUFBO0FBTTVHOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFQeEI7UUFxREUsZ0JBQVcsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1lBQzdCLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxjQUFjLENBQUM7WUFDekMsTUFBTSxRQUFRLEdBQUcsR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxPQUFPO2dCQUNMLFNBQVM7Z0JBQ1QsUUFBUTthQUNULENBQUM7UUFDSixDQUFDLENBQUM7S0FnQ0g7SUFwRkM7O09BRUc7SUFDSCxZQUFZLENBQUMsTUFBb0MsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7UUFDaEYsTUFBTSxTQUFTLEdBQWEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRSxNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsTUFBb0MsRUFBRSxLQUFjO1FBQzdFLHNCQUFzQjtRQUN0QixNQUFNLFFBQVEsR0FBa0IsSUFBSSxDQUFDLEtB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QUUsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sU0FBUyxHQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUV0RixNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDOytHQXBGVSxXQUFXO21IQUFYLFdBQVcsY0FOVixNQUFNOzs0RkFNUCxXQUFXO2tCQVB2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIHhsc3ggZnJvbSAneGxzeCc7XG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBFeHBvcnRhYmxlQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEV4cG9ydERhdGFUYWJsZSB9IGZyb20gJy4uLy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWRhdGEtdGFibGUnO1xuXG5jb25zdCBFWENFTF9UWVBFOiBzdHJpbmcgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCdcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5cbi8qKlxuICogU2VydmljZSB0byB3b3JrIHdpdGggWExTWCAoZ2VuZXJhdGUsIGRvd25sb2FkLCBlLnQuYy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBYbHN4U2VydmljZSB7XG4gIC8qKlxuICAgKiBFeHBvcnQgZmlsZSBmb3JtIHByb3ZpZGVkIEhUTUwgdGFibGVzXG4gICAqL1xuICBleHBvcnRUYWJsZXModGFibGVzOiBOb2RlTGlzdE9mPEhUTUxUYWJsZUVsZW1lbnQ+LCB0aXRsZTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZXhjZWxGaWxlOiBCbG9iUGFydCA9IHRoaXMuZ2VuZXJhdGVGcm9tVGFibGVzKHRhYmxlcywgdGl0bGUpO1xuICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbZXhjZWxGaWxlXSwge1xuICAgICAgdHlwZTogRVhDRUxfVFlQRVxuICAgIH0pO1xuXG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBgJHtmaWxlTmFtZX0ueGxzeGApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUZyb21UYWJsZXModGFibGVzOiBOb2RlTGlzdE9mPEhUTUxUYWJsZUVsZW1lbnQ+LCB0aXRsZT86IHN0cmluZyk6IEJsb2JQYXJ0IHtcbiAgICAvLyBjcmVhdGUgbmV3IHdvcmtib29rXG4gICAgY29uc3Qgd29ya2Jvb2s6IHhsc3guV29ya0Jvb2sgPSB4bHN4LnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgLy8gY3JlYXRlIGVtcHR5IHdvcmtzaGVldFxuICAgIGNvbnN0IHdvcmtzaGVldDogeGxzeC5Xb3JrU2hlZXQgPSB7XG4gICAgICBTaGVldE5hbWVzOiBbXSxcbiAgICAgIFNoZWV0czoge31cbiAgICB9O1xuXG4gICAgdGFibGVzLmZvckVhY2goKGRhdGE6IEhUTUxUYWJsZUVsZW1lbnQpID0+IHtcbiAgICAgIC8vIGFkZCBjYXB0aW9uIGZvciB0aGUgY3VycmVudCB0YWJsZVxuICAgICAgeGxzeC51dGlscy5zaGVldF9hZGRfYW9hKHdvcmtzaGVldCwgW1tkYXRhLmNhcHRpb24/LmlubmVyVGV4dF1dLCB7IG9yaWdpbjogLTEgfSk7XG4gICAgICAvLyBQcmVwYXJlIHRvIGFkZCB0YWJsZSBkYXRhIHRvIHRoZSB3b3Jrc2hlZXQsIHByb2Nlc3NpbmcgZWFjaCBjZWxsXG4gICAgICBjb25zdCByb3dzID0gQXJyYXkuZnJvbShkYXRhLnJvd3MpLm1hcCgocm93OiBIVE1MVGFibGVSb3dFbGVtZW50KSA9PiBBcnJheS5mcm9tKHJvdy5jZWxscykubWFwKChjZWxsOiBIVE1MVGFibGVDZWxsRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBjZWxsVmFsdWU6IHN0cmluZyB8IG51bWJlciA9IGNlbGwuaW5uZXJUZXh0O1xuICAgICAgICAvLyBDb252ZXJ0IGN1cnJlbmN5IHN0cmluZ3MgbGlrZSBcIiQwLjAwXCIgdG8gbnVtYmVyc1xuICAgICAgICBpZiAoL14tP1xcJC8udGVzdChjZWxsVmFsdWUpKSB7XG4gICAgICAgICAgLy8gQFRPRE8gdmlrIGZpeFxuICAgICAgICAgIC8vIGNlbGxWYWx1ZSA9IHBhcnNlRmxvYXQoY2VsbFZhbHVlLnJlcGxhY2UoJyQnLCAnJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNlbGxWYWx1ZTtcbiAgICAgIH0pKTtcbiAgICAgIC8vIEFkZCB0aGUgcHJvY2Vzc2VkIHRhYmxlIGRhdGEgdG8gdGhlIHdvcmtzaGVldFxuICAgICAgeGxzeC51dGlscy5zaGVldF9hZGRfYW9hKHdvcmtzaGVldCwgcm93cywgeyBvcmlnaW46IC0xIH0pO1xuICAgICAgLy8gc2V0IGVtcHR5IHJvdyBhZnRlciBjdXJyZW50IHRhYmxlXG4gICAgICB4bHN4LnV0aWxzLnNoZWV0X2FkZF9hb2Eod29ya3NoZWV0LCBbXSwgeyBvcmlnaW46IC0xIH0pO1xuICAgIH0pO1xuXG4gICAgeGxzeC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3b3JrYm9vaywgd29ya3NoZWV0KTtcbiAgICByZXR1cm4geGxzeC53cml0ZSh3b3JrYm9vaywgeyBib29rVHlwZTogJ3hsc3gnLCB0eXBlOiAnYXJyYXknIH0pO1xuICB9XG5cbiAgZ2V0RmlsZU5hbWUgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgc2hlZXROYW1lID0gbmFtZSB8fCAnRXhwb3J0UmVzdWx0JztcbiAgICBjb25zdCBmaWxlTmFtZSA9IGAke3NoZWV0TmFtZX1gO1xuICAgIHJldHVybiB7XG4gICAgICBzaGVldE5hbWUsXG4gICAgICBmaWxlTmFtZVxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpay9hcnRlbSB3b3JrIHdpdGggRXhwb3J0RGF0YVRhYmxlIGluc3RlYWQgb2YgRXhwb3J0YWJsZUNvbGxlY3Rpb25cbiAgICogQFRPRE8gdmlrL2FydGVtIHdoeSBzbyBtdWNoIGNvZGU/IGhlcmUgaXMgNiByb3dzIHNvbHV0aW9uIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzY0OTM5OTk0L2hvdy10by1leHBvcnQtYXJyYXktb2Ytb2JqZWN0cy10by1hbi1leGNlbC1pbi1hbmd1bGFyLThcbiAgICovXG4gIGV4cG9ydEFycmF5VG9FeGNlbChleHBvcnRhYmxlQ29sbGVjdGlvbjogRXhwb3J0YWJsZUNvbGxlY3Rpb248YW55PiwgbmFtZT86IHN0cmluZywgcGFyYW1zPyA6IGFueSkge1xuICAgIGNvbnN0IHdvcmtib29rOiB4bHN4LldvcmtCb29rID0geGxzeC51dGlscy5ib29rX25ldygpO1xuICAgIC8vIGNyZWF0ZSBlbXB0eSB3b3Jrc2hlZXRcbiAgICBjb25zdCB3b3Jrc2hlZXQ6IHhsc3guV29ya1NoZWV0ID0ge1xuICAgICAgU2hlZXROYW1lczogW10sXG4gICAgICBTaGVldHM6IHt9XG4gICAgfTtcblxuICAgIGNvbnN0IGV4cG9ydERhdGE6IEV4cG9ydERhdGFUYWJsZSA9IGV4cG9ydGFibGVDb2xsZWN0aW9uLmV4cG9ydChwYXJhbXMpXG4gICAgY29uc3QgZXhwb3J0QW9hID0gZXhwb3J0YWJsZUNvbGxlY3Rpb24uZ2V0Qm9keUFvYShleHBvcnREYXRhKTtcbiAgICBjb25zdCB7IHNoZWV0TmFtZSwgZmlsZU5hbWUgfSA9IHRoaXMuZ2V0RmlsZU5hbWUobmFtZSk7XG5cbiAgICB4bHN4LnV0aWxzLnNoZWV0X2FkZF9hb2Eod29ya3NoZWV0LCBbZXhwb3J0RGF0YS5oZWFkZXJdLCB7IG9yaWdpbjogLTEgfSk7XG4gICAgLy8gYWRkIHRhYmxlIHRhYmxlIGRhdGEgdG8gdGhlIHdvcmtzaGVldFxuICAgIHhsc3gudXRpbHMuc2hlZXRfYWRkX2FvYSh3b3Jrc2hlZXQsIGV4cG9ydEFvYSwgeyBvcmlnaW46IC0xIH0pO1xuICAgIC8vIHNldCBlbXB0eSByb3cgYWZ0ZXIgY3VycmVudCB0YWJsZVxuICAgIHhsc3gudXRpbHMuc2hlZXRfYWRkX2FvYSh3b3Jrc2hlZXQsIFtdLCB7IG9yaWdpbjogLTEgfSk7XG5cbiAgICB4bHN4LnV0aWxzLmJvb2tfYXBwZW5kX3NoZWV0KHdvcmtib29rLCB3b3Jrc2hlZXQpO1xuICAgIGNvbnN0IGV4Y2VsRmlsZTogQmxvYlBhcnQgPSB4bHN4LndyaXRlKHdvcmtib29rLCB7IGJvb2tUeXBlOiAneGxzeCcsIHR5cGU6ICdhcnJheScgfSk7XG5cbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2V4Y2VsRmlsZV0sIHtcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcbiAgICB9KTtcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGAke2ZpbGVOYW1lfS54bHN4YCk7XG4gIH1cbn1cbiJdfQ==
@@ -6800,6 +6800,9 @@ class TransactionCollection extends TransactionBaseCollection {
6800
6800
  * we use depreciations as expense transactions a lot
6801
6801
  */
6802
6802
  constructor(transactions = [], depreciations = []) {
6803
+ if (depreciations.length) {
6804
+ transactions = transactions.filter(transaction => !CHART_ACCOUNTS_CATEGORIES.depreciation.includes(transaction.chartAccounts.category));
6805
+ }
6803
6806
  super([...transactions, ...depreciations.map((depreciation) => depreciation.toTransaction())]);
6804
6807
  }
6805
6808
  getSoleTransactions() {
@@ -7384,7 +7387,7 @@ class MyTaxBusinessLosses {
7384
7387
  this.logbookExpensesAmount = Math.abs(transactions.getVehicleTransactions().sumBy('claimAmount')) +
7385
7388
  depreciations.getVehicleDepreciations().sumBy('claimAmount');
7386
7389
  this.otherExpensesAmount = Math.abs(transactions
7387
- .filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.OTHER_EXPENSES)
7390
+ .filterBy('chartAccounts.taxReturnItem.id', TaxReturnItemEnum.ALL_OTHER_EXPENSES)
7388
7391
  .sumBy('claimAmount'));
7389
7392
  this.totalNonPrimaryProductionExpensesAmount = Math.abs(transactions
7390
7393
  .filterBy('chartAccounts.category', [ChartAccountsCategoryEnum.SOLE_EXPENSE])
@@ -7402,8 +7405,7 @@ class MyTaxBusinessLosses {
7402
7405
  this.deductionsForGeneralSmallBusinessPoolAmount = depreciations
7403
7406
  .getSBPDepreciations()
7404
7407
  .sumBy('claimAmount');
7405
- this.currentYearNetNonPrimaryIncomeOrLossesAmount = new TransactionCollection(transactions.toArray(), depreciations.toArray())
7406
- .getBusinessClaimAmount();
7408
+ this.currentYearNetNonPrimaryIncomeOrLossesAmount = taxSummary.sole.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.BUSINESS_INCOME_OR_LOSS], TaxSummarySectionEnum.SOLE_TANK);
7407
7409
  this.priorYearsNonPrimaryLossesAmount = businessLosses.sumBy('openBalance');
7408
7410
  this.netNonPrimaryIncomeOrLossesAmount = this.currentYearNetNonPrimaryIncomeOrLossesAmount -
7409
7411
  this.priorYearsNonPrimaryLossesAmount;
@@ -15260,8 +15262,8 @@ class TransactionService extends RestService {
15260
15262
  this.listenPropertyForecastUpdate();
15261
15263
  this.listenNotifications();
15262
15264
  }
15263
- fetch(path = this.apiUrl, cache = true) {
15264
- return super.fetch(path, cache).pipe(map(transactions => {
15265
+ get(path = this.apiUrl) {
15266
+ return super.get(path).pipe(map(transactions => {
15265
15267
  transactions.forEach((transaction) => {
15266
15268
  transaction.transactions = transactions
15267
15269
  // get list of child transactions
@@ -19431,8 +19433,8 @@ const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.
19431
19433
  class XlsxService {
19432
19434
  constructor() {
19433
19435
  this.getFileName = (name) => {
19434
- let sheetName = name || "ExportResult";
19435
- let fileName = `${sheetName}`;
19436
+ const sheetName = name || 'ExportResult';
19437
+ const fileName = `${sheetName}`;
19436
19438
  return {
19437
19439
  sheetName,
19438
19440
  fileName
@@ -19461,16 +19463,15 @@ class XlsxService {
19461
19463
  // add caption for the current table
19462
19464
  xlsx.utils.sheet_add_aoa(worksheet, [[data.caption?.innerText]], { origin: -1 });
19463
19465
  // Prepare to add table data to the worksheet, processing each cell
19464
- const rows = Array.from(data.rows).map((row) => {
19465
- return Array.from(row.cells).map((cell) => {
19466
- let cellValue = cell.innerText;
19467
- // Convert currency strings like "$0.00" to numbers
19468
- if (/^-?\$/.test(cellValue)) {
19469
- cellValue = parseFloat(cellValue.replace('$', ''));
19470
- }
19471
- return cellValue;
19472
- });
19473
- });
19466
+ const rows = Array.from(data.rows).map((row) => Array.from(row.cells).map((cell) => {
19467
+ const cellValue = cell.innerText;
19468
+ // Convert currency strings like "$0.00" to numbers
19469
+ if (/^-?\$/.test(cellValue)) {
19470
+ // @TODO vik fix
19471
+ // cellValue = parseFloat(cellValue.replace('$', ''));
19472
+ }
19473
+ return cellValue;
19474
+ }));
19474
19475
  // Add the processed table data to the worksheet
19475
19476
  xlsx.utils.sheet_add_aoa(worksheet, rows, { origin: -1 });
19476
19477
  // set empty row after current table
@@ -19492,7 +19493,7 @@ class XlsxService {
19492
19493
  };
19493
19494
  const exportData = exportableCollection.export(params);
19494
19495
  const exportAoa = exportableCollection.getBodyAoa(exportData);
19495
- let { sheetName, fileName } = this.getFileName(name);
19496
+ const { sheetName, fileName } = this.getFileName(name);
19496
19497
  xlsx.utils.sheet_add_aoa(worksheet, [exportData.header], { origin: -1 });
19497
19498
  // add table table data to the worksheet
19498
19499
  xlsx.utils.sheet_add_aoa(worksheet, exportAoa, { origin: -1 });
@@ -23385,7 +23386,9 @@ class AllocationRuleTransactionForm extends AbstractForm {
23385
23386
  listenTankTypeChanges() {
23386
23387
  this.get('tankType').valueChanges.subscribe(() => {
23387
23388
  this.get('chartAccounts').reset();
23388
- this.childTransactionsArray.reset();
23389
+ this.get('property').reset();
23390
+ this.get('business').reset();
23391
+ this.childTransactionsArray.clear();
23389
23392
  });
23390
23393
  }
23391
23394
  /**
@@ -23430,20 +23433,19 @@ class AllocationRuleTransactionForm extends AbstractForm {
23430
23433
  * @TODO move aux methods like isSplittable/isTaxFieldHidden/etc (used in view with ngIf) to properties to improve perf
23431
23434
  */
23432
23435
  class AllocationRuleForm extends AbstractForm {
23433
- constructor(
23434
- // rule is required because we have to keep bank account relation
23435
- rule,
23436
- // Flag to enable transaction GST field
23437
- isGST) {
23436
+ constructor(rule, rules, isGST) {
23438
23437
  super({
23439
- type: new UntypedFormControl(rule.type, Validators.required),
23440
- name: new UntypedFormControl(rule.name, Validators.required),
23441
- conditionOperator: new UntypedFormControl(rule.conditionOperator, Validators.required),
23442
- conditions: new UntypedFormArray((rule.conditions || [plainToClass(AllocationRuleCondition, {})])
23438
+ type: new FormControl(rule.type, Validators.required),
23439
+ name: new FormControl(rule.name, [
23440
+ Validators.required,
23441
+ RxwebValidators.noneOf({ matchValues: rules.remove([rule]).mapBy('name') })
23442
+ ]),
23443
+ conditionOperator: new FormControl(rule.conditionOperator, Validators.required),
23444
+ conditions: new FormArray((rule.conditions || [plainToClass(AllocationRuleCondition, {})])
23443
23445
  .map((condition) => new AllocationRuleConditionForm(condition))),
23444
23446
  transaction: new AllocationRuleTransactionForm(rule.transaction || plainToClass(AllocationRuleTransaction, {}), isGST),
23445
- transferBankAccount: new UntypedFormControl(rule.transferBankAccount, Validators.required),
23446
- autoAllocate: new UntypedFormControl(rule.autoAllocate || false, Validators.required),
23447
+ transferBankAccount: new FormControl(rule.transferBankAccount, Validators.required),
23448
+ autoAllocate: new FormControl(rule.autoAllocate || false, Validators.required),
23447
23449
  }, rule);
23448
23450
  this.isGST = isGST;
23449
23451
  this.listenEvents();