@piserve-tech/form-submission 1.3.197 → 1.3.198

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.
@@ -33,6 +33,7 @@ export class AggregateFunctionComponent {
33
33
  this.result = update.result;
34
34
  this.question.answer = String(this.result);
35
35
  this.answerChange.emit(this.question.answer);
36
+ this.validationService.clearInvalid(this.question.id);
36
37
  }
37
38
  else {
38
39
  this.result = 0;
@@ -124,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
124
125
  }], rowId: [{
125
126
  type: Input
126
127
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlLWZ1bmN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvYWdncmVnYXRlLWZ1bmN0aW9uL2FnZ3JlZ2F0ZS1mdW5jdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2FnZ3JlZ2F0ZS1mdW5jdGlvbi9hZ2dyZWdhdGUtZnVuY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFXekcsTUFBTSxPQUFPLDBCQUEwQjtJQWdCcEMsWUFDYSxpQkFBb0MsRUFDcEMsT0FBOEIsRUFDOUIsZ0JBQTJDLEVBQzNDLEdBQXNCO1FBSHRCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUMzQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQW5CM0IsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVqRCxXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFDdkIsY0FBUyxHQUFTLEVBQUUsQ0FB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LElBQUksU0FBUztRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDaEQ7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7K0dBeEhVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDZLQ1h2Qyx5MUdBOEZBOzs0RkRuRmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHdCQUF3QjtxTkFLekIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmFsaWRhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEVsZW1lbnRUcmFja2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VsZW1lbnQtdHJhY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWdncmVnYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hZ2dyZWdhdGUtZnVuY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWdncmVnYXRlLWZ1bmN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWdncmVnYXRlLWZ1bmN0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlRnVuY3Rpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBxdWVzdGlvbjogYW55ID0ge307XG4gIEBJbnB1dCgpIGluTGluZTogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgYW5zd2VyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIHJvd0lkOiBhbnkgO1xuICBhbnN3ZXI6IHN0cmluZyA9ICcnO1xuICBjb3VudDogbnVtYmVyID0gMDtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgdmFsaWRhdGlvbkZhaWxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgZWxlbWVudElkOiBzdHJpbmc9Jyc7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICByZXN1bHQ6bnVtYmVyPTA7XG4gICAgXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhY2tlcjogRWxlbWVudFRyYWNrZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFnZ3JlZ2F0ZVNlcnZpY2U6QWdncmVnYXRpb25GdW5jdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICAgKSAgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52YWx1ZUFzc2lnbmVkKCk7XG4gICAgdGhpcy5hZ2dyZWdhdGVTZXJ2aWNlLnNldEFnZ3JlZ2F0ZUZpZWxkKHRoaXMucm93SWQsdGhpcy5xdWVzdGlvbi5pZCx0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFnZ3JlZ2F0ZUZ1bmN0aW9uLmFnZ3JlZ2F0ZU9wZXJhdGlvbix0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFnZ3JlZ2F0ZUZ1bmN0aW9uLmZvcm11bGEpO1xuICAgIFxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5hZ2dyZWdhdGVTZXJ2aWNlLmFnZ3JlZ2F0ZUZpZWxkUmVzdWx0cyQuc3Vic2NyaWJlKHVwZGF0ZSA9PiB7XG4gICAgICBpZiAodXBkYXRlICYmIHVwZGF0ZS5pZCA9PT0gYCR7dGhpcy5yb3dJZH06JHt0aGlzLnF1ZXN0aW9uLmlkfWApIHsgLy8gaW5jbHVkZSByb3dJZFxuICAgICAgICBpZih1cGRhdGUuZXZhbHVhdGVkKXtcbiAgICAgICAgICB0aGlzLnJlc3VsdCA9IHVwZGF0ZS5yZXN1bHQ7XG4gICAgICAgICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPSBTdHJpbmcodGhpcy5yZXN1bHQpO1xuICAgICAgICAgIHRoaXMuYW5zd2VyQ2hhbmdlLmVtaXQodGhpcy5xdWVzdGlvbi5hbnN3ZXIpO1xuICAgICAgICB9IGVsc2V7XG4gICAgICAgICAgdGhpcy5yZXN1bHQgPSAwO1xuICAgICAgICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyID0gJyc7XG4gICAgICAgICAgdGhpcy5hbnN3ZXJDaGFuZ2UuZW1pdCh0aGlzLnF1ZXN0aW9uLmFuc3dlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBcblxuICB2YWx1ZUFzc2lnbmVkKCkge1xuICAgIHRoaXMuY291bnQgPSB0aGlzLnF1ZXN0aW9uPy5jb3VudDtcbiAgICB0aGlzLnJlcXVpcmVkID0gdGhpcy5xdWVzdGlvbj8ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbj8uaGludDtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudD8uYXBwZWFyYW5jZT8ucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgaWYgKFxuICAgICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgIT09IG51bGwgJiZcbiAgICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICgodHlwZW9mIHRoaXMucXVlc3Rpb24uYW5zd2VyID09PSAnc3RyaW5nJyAmJlxuICAgICAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlci50cmltKCkgIT09ICcnKSB8fFxuICAgICAgICAoQXJyYXkuaXNBcnJheSh0aGlzLnF1ZXN0aW9uLmFuc3dlcikgJiZcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlci5sZW5ndGggPiAwKSB8fFxuICAgICAgICAodHlwZW9mIHRoaXMucXVlc3Rpb24uYW5zd2VyID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMucXVlc3Rpb24uYW5zd2VyKS5sZW5ndGggPiAwKSlcbiAgICApIHtcbiAgICAgIHRoaXMucmVzdWx0ID0gdGhpcy5xdWVzdGlvbi5hbnN3ZXI7XG4gICAgfVxuICB9XG4gXG5cbiAgY2xlYXJBbnN3ZXJzUmVjdXJzaXZlbHkobG9naWM6IGFueSkge1xuICAgIGlmICghbG9naWMgfHwgIWxvZ2ljLnJvd3MpIHJldHVybjtcbiAgXG4gICAgbG9naWMucm93cy5mb3JFYWNoKChyb3c6IGFueSkgPT4ge1xuICAgICAgcm93LmdyaWQuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBpdGVtLmVsZW1lbnQ7XG4gIFxuICAgICAgICBpZiAoaXRlbS5lbnRpdHlUeXBlID09PSAnUVVFU1RJT04nICYmIGVsZW1lbnQpIHtcbiAgICAgICAgICAvLyBDbGVhciBhbnN3ZXIgaWYgcHJlc2VudFxuICAgICAgICAgIGlmICgnYW5zd2VyJyBpbiBlbGVtZW50KSB7XG4gICAgICAgICAgICBlbGVtZW50LmFuc3dlciA9ICcnO1xuICAgICAgICAgIH1cbiAgXG4gICAgICAgICAgLy8gUmVjdXJzaXZlbHkgY2xlYXIgY2hpbGRMb2dpY3MgaWYgYW55XG4gICAgICAgICAgaWYgKGVsZW1lbnQuY2hpbGRMb2dpY3MgJiYgZWxlbWVudC5jaGlsZExvZ2ljcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBlbGVtZW50LmNoaWxkTG9naWNzLmZvckVhY2goKGNoaWxkTG9naWM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNsZWFyQW5zd2Vyc1JlY3Vyc2l2ZWx5KGNoaWxkTG9naWMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gIFxuICAgICAgICBpZiAoaXRlbS5lbnRpdHlUeXBlID09PSAnU1VCRk9STScgJiYgZWxlbWVudCAmJiBlbGVtZW50LnJvd3MpIHtcbiAgICAgICAgICAvLyBTVUJGT1JNIGNvbnRhaW5zIGl0cyBvd24gcm93cyBzdHJ1Y3R1cmUgbGlrZSBhIGZvcm1cbiAgICAgICAgICB0aGlzLmNsZWFyQW5zd2Vyc1JlY3Vyc2l2ZWx5KHsgcm93czogZWxlbWVudC5yb3dzIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZVZhbGlkYXRpb24oaXNWYWxpZDogYm9vbGVhbiwgbWVzc2FnZTogc3RyaW5nID0gJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnKSB7XG4gICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuY2xlYXJJbnZhbGlkKHRoaXMucXVlc3Rpb24uaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLnNldEludmFsaWQodGhpcy5xdWVzdGlvbi5pZCwgbWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldEVycm9yTWVzc2FnZSh0aGlzLnF1ZXN0aW9uLmlkKTtcbiAgfVxuXG4gIGdldCBlcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKHRoaXMucXVlc3Rpb24uaWQpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZWxlbWVudElkID0gYHF1ZXN0aW9uLSR7dGhpcy5xdWVzdGlvbi5pZH1gO1xuICAgIHRoaXMudHJhY2tlci5yZWdpc3RlckVsZW1lbnQodGhpcy5lbGVtZW50SWQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuZWxlbWVudElkKSB7XG4gICAgICB0aGlzLnRyYWNrZXIudW5yZWdpc3RlckVsZW1lbnQodGhpcy5lbGVtZW50SWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIFtuZ0NsYXNzXT1cInsgJ21iLTQnOiAhaW5MaW5lIH1cIlxuICBjbGFzcz1cInB4LTNcIlxuICBbaWRdPVwiJ3F1ZXN0aW9uLScgKyBxdWVzdGlvbi5pZFwiXG4gIFthdHRyLm5hbWVdPVwicXVlc3Rpb24udGVzdEVsZW1lbnROYW1lXCJcbj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXIgbWItMlwiICpuZ0lmPVwiIWluTGluZVwiPlxuICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvbk51bWJlclwiIFtpbm5lckhUTUxdPVwicXVlc3Rpb24ucXVlc3Rpb25OdW1iZXJcIj48L2Rpdj5cbiAgICA8c3BhbiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uTnVtYmVyXCIgY2xhc3M9XCJzcGFjZVwiPjwvc3Bhbj4gPGxhYmVsPnt7IHF1ZXN0aW9uLnF1ZXN0aW9uIH19PC9sYWJlbFxuICAgID4mbmJzcDtcbiAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzdmctd3JhcHBlciBtYi0yIGhpbnRJY29uXCJcbiAgICAgIFthdHRyLmRhdGEtdGl0bGVdPVwiaGludFwiXG4gICAgICAqbmdJZj1cImhpbnRcIlxuICAgID5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJoaW50U3ZnXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAzMCAzMFwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGQ9XCJNMTUgMjYuMjVWMjYuMjVDOC43ODYyNSAyNi4yNSAzLjc1IDIxLjIxMzggMy43NSAxNVYxNUMzLjc1IDguNzg2MjUgOC43ODYyNSAzLjc1IDE1IDMuNzVWMy43NUMyMS4yMTM4IDMuNzUgMjYuMjUgOC43ODYyNSAyNi4yNSAxNVYxNUMyNi4yNSAyMS4yMTM4IDIxLjIxMzggMjYuMjUgMTUgMjYuMjVaXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE1IDE2LjU2MjNWMTYuMjQ5OEMxNSAxNS4yMjg1IDE1LjYzMTIgMTQuNjc0OCAxNi4yNjM3IDE0LjI0OThDMTYuODgxMiAxMy44MzM1IDE3LjUgMTMuMjkxIDE3LjUgMTIuMjkxQzE3LjUgMTAuOTA5OCAxNi4zODEzIDkuNzkxMDIgMTUgOS43OTEwMkMxMy42MTg3IDkuNzkxMDIgMTIuNSAxMC45MDk4IDEyLjUgMTIuMjkxXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE0Ljk5ODggMjBDMTQuODI2MyAyMCAxNC42ODYzIDIwLjE0IDE0LjY4NzUgMjAuMzEyNUMxNC42ODc1IDIwLjQ4NSAxNC44Mjc1IDIwLjYyNSAxNSAyMC42MjVDMTUuMTcyNSAyMC42MjUgMTUuMzEyNSAyMC40ODUgMTUuMzEyNSAyMC4zMTI1QzE1LjMxMjUgMjAuMTQgMTUuMTcyNSAyMCAxNC45OTg4IDIwXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGlucHV0XG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIG1iLTIgaGVpZ2h0XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFsobmdNb2RlbCldPVwicmVzdWx0XCJcbiAgICByZWFkb25seVxuICAgIFtjbGFzcy5pbnZhbGlkLXF1ZXN0aW9uXT1cImlzSW52YWxpZCAmJiAoIWluTGluZSB8fCAhcmVzdWx0KVwiXG4gICAgW2lkXT1cInF1ZXN0aW9uLmlkXCJcbiAgLz5cbiAgPGRpdiAqbmdJZj1cImlzSW52YWxpZCAmJiAoIWluTGluZSB8fCAhcmVzdWx0KVwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInZhbGlkYXRpb25GYWlsZWQgJiYgIWlzSW52YWxpZFwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInZhbGlkYXRpb25TdmdcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyLjAwMSAxNi43NUMxMi4xMzkgMTYuNzUgMTIuMjUxIDE2LjYzOCAxMi4yNSAxNi41QzEyLjI1IDE2LjM2MiAxMi4xMzggMTYuMjUgMTIgMTYuMjVDMTEuODYyIDE2LjI1IDExLjc1IDE2LjM2MiAxMS43NSAxNi41QzExLjc1IDE2LjYzOCAxMS44NjIgMTYuNzUgMTIuMDAxIDE2Ljc1XCJcbiAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk0xMiAyMUM3LjAyOSAyMSAzIDE2Ljk3MSAzIDEyQzMgNy4wMjkgNy4wMjkgMyAxMiAzQzE2Ljk3MSAzIDIxIDcuMDI5IDIxIDEyQzIxIDE2Ljk3MSAxNi45NzEgMjEgMTIgMjFaXCJcbiAgICAgICAgZmlsbD1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2U9XCIjRkYwMDAwXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyIDEyLjc1TDEyIDcuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxNlwiIHI9XCIxXCIgZmlsbD1cIndoaXRlXCIgLz5cbiAgICA8L3N2Zz5cbiAgICB7eyB2YWxpZGF0aW9uTWVzc2FnZSB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlLWZ1bmN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvYWdncmVnYXRlLWZ1bmN0aW9uL2FnZ3JlZ2F0ZS1mdW5jdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2FnZ3JlZ2F0ZS1mdW5jdGlvbi9hZ2dyZWdhdGUtZnVuY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFXekcsTUFBTSxPQUFPLDBCQUEwQjtJQWdCcEMsWUFDYSxpQkFBb0MsRUFDcEMsT0FBOEIsRUFDOUIsZ0JBQTJDLEVBQzNDLEdBQXNCO1FBSHRCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUMzQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQW5CM0IsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVqRCxXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFDdkIsY0FBUyxHQUFTLEVBQUUsQ0FB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LENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxnRUFBZ0U7U0FDakU7SUFDSCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNoRDtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQzsrR0F6SFUsMEJBQTBCO21HQUExQiwwQkFBMEIsNktDWHZDLHkxR0E4RkE7OzRGRG5GYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usd0JBQXdCO3FOQUt6QixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNFLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxlbWVudFRyYWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWxlbWVudC10cmFja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWdncmVnYXRpb25GdW5jdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hZ2dyZWdhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFnZ3JlZ2F0ZS1mdW5jdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZ2dyZWdhdGUtZnVuY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZ2dyZWdhdGUtZnVuY3Rpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBZ2dyZWdhdGVGdW5jdGlvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgaW5MaW5lOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBhbnN3ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgcm93SWQ6IGFueSA7XG4gIGFuc3dlcjogc3RyaW5nID0gJyc7XG4gIGNvdW50OiBudW1iZXIgPSAwO1xuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBoaW50OiBzdHJpbmcgPSAnJztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuICB2YWxpZGF0aW9uRmFpbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBlbGVtZW50SWQ6IHN0cmluZz0nJztcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHJlc3VsdDpudW1iZXI9MDtcbiAgICBcbiAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFja2VyOiBFbGVtZW50VHJhY2tlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWdncmVnYXRlU2VydmljZTpBZ2dyZWdhdGlvbkZ1bmN0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgICApICB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZhbHVlQXNzaWduZWQoKTtcbiAgICB0aGlzLmFnZ3JlZ2F0ZVNlcnZpY2Uuc2V0QWdncmVnYXRlRmllbGQodGhpcy5yb3dJZCx0aGlzLnF1ZXN0aW9uLmlkLHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYWdncmVnYXRlRnVuY3Rpb24uYWdncmVnYXRlT3BlcmF0aW9uLHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYWdncmVnYXRlRnVuY3Rpb24uZm9ybXVsYSk7XG4gICAgXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmFnZ3JlZ2F0ZVNlcnZpY2UuYWdncmVnYXRlRmllbGRSZXN1bHRzJC5zdWJzY3JpYmUodXBkYXRlID0+IHtcbiAgICAgIGlmICh1cGRhdGUgJiYgdXBkYXRlLmlkID09PSBgJHt0aGlzLnJvd0lkfToke3RoaXMucXVlc3Rpb24uaWR9YCkgeyAvLyBpbmNsdWRlIHJvd0lkXG4gICAgICAgIGlmKHVwZGF0ZS5ldmFsdWF0ZWQpe1xuICAgICAgICAgIHRoaXMucmVzdWx0ID0gdXBkYXRlLnJlc3VsdDtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlciA9IFN0cmluZyh0aGlzLnJlc3VsdCk7XG4gICAgICAgICAgdGhpcy5hbnN3ZXJDaGFuZ2UuZW1pdCh0aGlzLnF1ZXN0aW9uLmFuc3dlcik7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5jbGVhckludmFsaWQodGhpcy5xdWVzdGlvbi5pZCk7XG4gICAgICAgIH0gZWxzZXtcbiAgICAgICAgICB0aGlzLnJlc3VsdCA9IDA7XG4gICAgICAgICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPSAnJztcbiAgICAgICAgICB0aGlzLmFuc3dlckNoYW5nZS5lbWl0KHRoaXMucXVlc3Rpb24uYW5zd2VyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIFxuXG4gIHZhbHVlQXNzaWduZWQoKSB7XG4gICAgdGhpcy5jb3VudCA9IHRoaXMucXVlc3Rpb24/LmNvdW50O1xuICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLnF1ZXN0aW9uPy5yZXF1aXJlZDtcbiAgICB0aGlzLmhpbnQgPSB0aGlzLnF1ZXN0aW9uPy5oaW50O1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Py5hcHBlYXJhbmNlPy5wbGFjZWhvbGRlciB8fCAnJztcbiAgICBpZiAoXG4gICAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlciAhPT0gbnVsbCAmJlxuICAgICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKCh0eXBlb2YgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPT09ICdzdHJpbmcnICYmXG4gICAgICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyLnRyaW0oKSAhPT0gJycpIHx8XG4gICAgICAgIChBcnJheS5pc0FycmF5KHRoaXMucXVlc3Rpb24uYW5zd2VyKSAmJlxuICAgICAgICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyLmxlbmd0aCA+IDApIHx8XG4gICAgICAgICh0eXBlb2YgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgT2JqZWN0LmtleXModGhpcy5xdWVzdGlvbi5hbnN3ZXIpLmxlbmd0aCA+IDApKVxuICAgICkge1xuICAgICAgdGhpcy5yZXN1bHQgPSB0aGlzLnF1ZXN0aW9uLmFuc3dlcjtcbiAgICB9XG4gIH1cbiBcblxuICBjbGVhckFuc3dlcnNSZWN1cnNpdmVseShsb2dpYzogYW55KSB7XG4gICAgaWYgKCFsb2dpYyB8fCAhbG9naWMucm93cykgcmV0dXJuO1xuICBcbiAgICBsb2dpYy5yb3dzLmZvckVhY2goKHJvdzogYW55KSA9PiB7XG4gICAgICByb3cuZ3JpZC5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGl0ZW0uZWxlbWVudDtcbiAgXG4gICAgICAgIGlmIChpdGVtLmVudGl0eVR5cGUgPT09ICdRVUVTVElPTicgJiYgZWxlbWVudCkge1xuICAgICAgICAgIC8vIENsZWFyIGFuc3dlciBpZiBwcmVzZW50XG4gICAgICAgICAgaWYgKCdhbnN3ZXInIGluIGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuYW5zd2VyID0gJyc7XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAvLyBSZWN1cnNpdmVseSBjbGVhciBjaGlsZExvZ2ljcyBpZiBhbnlcbiAgICAgICAgICBpZiAoZWxlbWVudC5jaGlsZExvZ2ljcyAmJiBlbGVtZW50LmNoaWxkTG9naWNzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGVsZW1lbnQuY2hpbGRMb2dpY3MuZm9yRWFjaCgoY2hpbGRMb2dpYzogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJBbnN3ZXJzUmVjdXJzaXZlbHkoY2hpbGRMb2dpYyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgXG4gICAgICAgIGlmIChpdGVtLmVudGl0eVR5cGUgPT09ICdTVUJGT1JNJyAmJiBlbGVtZW50ICYmIGVsZW1lbnQucm93cykge1xuICAgICAgICAgIC8vIFNVQkZPUk0gY29udGFpbnMgaXRzIG93biByb3dzIHN0cnVjdHVyZSBsaWtlIGEgZm9ybVxuICAgICAgICAgIHRoaXMuY2xlYXJBbnN3ZXJzUmVjdXJzaXZlbHkoeyByb3dzOiBlbGVtZW50LnJvd3MgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlVmFsaWRhdGlvbihpc1ZhbGlkOiBib29sZWFuLCBtZXNzYWdlOiBzdHJpbmcgPSAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcpIHtcbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5jbGVhckludmFsaWQodGhpcy5xdWVzdGlvbi5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRoaXMudmFsaWRhdGlvblNlcnZpY2Uuc2V0SW52YWxpZCh0aGlzLnF1ZXN0aW9uLmlkLCBtZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKHRoaXMucXVlc3Rpb24uaWQpO1xuICB9XG5cbiAgZ2V0IGVycm9yTWVzc2FnZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UodGhpcy5xdWVzdGlvbi5pZCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5lbGVtZW50SWQgPSBgcXVlc3Rpb24tJHt0aGlzLnF1ZXN0aW9uLmlkfWA7XG4gICAgdGhpcy50cmFja2VyLnJlZ2lzdGVyRWxlbWVudCh0aGlzLmVsZW1lbnRJZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5lbGVtZW50SWQpIHtcbiAgICAgIHRoaXMudHJhY2tlci51bnJlZ2lzdGVyRWxlbWVudCh0aGlzLmVsZW1lbnRJZCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwieyAnbWItNCc6ICFpbkxpbmUgfVwiXG4gIGNsYXNzPVwicHgtM1wiXG4gIFtpZF09XCIncXVlc3Rpb24tJyArIHF1ZXN0aW9uLmlkXCJcbiAgW2F0dHIubmFtZV09XCJxdWVzdGlvbi50ZXN0RWxlbWVudE5hbWVcIlxuPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlciBtYi0yXCIgKm5nSWY9XCIhaW5MaW5lXCI+XG4gICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uTnVtYmVyXCIgW2lubmVySFRNTF09XCJxdWVzdGlvbi5xdWVzdGlvbk51bWJlclwiPjwvZGl2PlxuICAgIDxzcGFuICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25OdW1iZXJcIiBjbGFzcz1cInNwYWNlXCI+PC9zcGFuPiA8bGFiZWw+e3sgcXVlc3Rpb24ucXVlc3Rpb24gfX08L2xhYmVsXG4gICAgPiZuYnNwO1xuICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXJcIiAqbmdJZj1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInN2Zy13cmFwcGVyIG1iLTIgaGludEljb25cIlxuICAgICAgW2F0dHIuZGF0YS10aXRsZV09XCJoaW50XCJcbiAgICAgICpuZ0lmPVwiaGludFwiXG4gICAgPlxuICAgICAgPHN2Z1xuICAgICAgICBjbGFzcz1cImhpbnRTdmdcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDMwIDMwXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICA+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgZD1cIk0xNSAyNi4yNVYyNi4yNUM4Ljc4NjI1IDI2LjI1IDMuNzUgMjEuMjEzOCAzLjc1IDE1VjE1QzMuNzUgOC43ODYyNSA4Ljc4NjI1IDMuNzUgMTUgMy43NVYzLjc1QzIxLjIxMzggMy43NSAyNi4yNSA4Ljc4NjI1IDI2LjI1IDE1VjE1QzI2LjI1IDIxLjIxMzggMjEuMjEzOCAyNi4yNSAxNSAyNi4yNVpcIlxuICAgICAgICAgIHN0cm9rZT1cIiMzMjMyMzJcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMTUgMTYuNTYyM1YxNi4yNDk4QzE1IDE1LjIyODUgMTUuNjMxMiAxNC42NzQ4IDE2LjI2MzcgMTQuMjQ5OEMxNi44ODEyIDEzLjgzMzUgMTcuNSAxMy4yOTEgMTcuNSAxMi4yOTFDMTcuNSAxMC45MDk4IDE2LjM4MTMgOS43OTEwMiAxNSA5Ljc5MTAyQzEzLjYxODcgOS43OTEwMiAxMi41IDEwLjkwOTggMTIuNSAxMi4yOTFcIlxuICAgICAgICAgIHN0cm9rZT1cIiMzMjMyMzJcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMTQuOTk4OCAyMEMxNC44MjYzIDIwIDE0LjY4NjMgMjAuMTQgMTQuNjg3NSAyMC4zMTI1QzE0LjY4NzUgMjAuNDg1IDE0LjgyNzUgMjAuNjI1IDE1IDIwLjYyNUMxNS4xNzI1IDIwLjYyNSAxNS4zMTI1IDIwLjQ4NSAxNS4zMTI1IDIwLjMxMjVDMTUuMzEyNSAyMC4xNCAxNS4xNzI1IDIwIDE0Ljk5ODggMjBcIlxuICAgICAgICAgIHN0cm9rZT1cIiMzMjMyMzJcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8aW5wdXRcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbWItMiBoZWlnaHRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgWyhuZ01vZGVsKV09XCJyZXN1bHRcIlxuICAgIHJlYWRvbmx5XG4gICAgW2NsYXNzLmludmFsaWQtcXVlc3Rpb25dPVwiaXNJbnZhbGlkICYmICghaW5MaW5lIHx8ICFyZXN1bHQpXCJcbiAgICBbaWRdPVwicXVlc3Rpb24uaWRcIlxuICAvPlxuICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkICYmICghaW5MaW5lIHx8ICFyZXN1bHQpXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XG4gICAge3sgZXJyb3JNZXNzYWdlIH19XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwidmFsaWRhdGlvbkZhaWxlZCAmJiAhaXNJbnZhbGlkXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwidmFsaWRhdGlvblN2Z1wiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIuMDAxIDE2Ljc1QzEyLjEzOSAxNi43NSAxMi4yNTEgMTYuNjM4IDEyLjI1IDE2LjVDMTIuMjUgMTYuMzYyIDEyLjEzOCAxNi4yNSAxMiAxNi4yNUMxMS44NjIgMTYuMjUgMTEuNzUgMTYuMzYyIDExLjc1IDE2LjVDMTEuNzUgMTYuNjM4IDExLjg2MiAxNi43NSAxMi4wMDEgMTYuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEyIDIxQzcuMDI5IDIxIDMgMTYuOTcxIDMgMTJDMyA3LjAyOSA3LjAyOSAzIDEyIDNDMTYuOTcxIDMgMjEgNy4wMjkgMjEgMTJDMjEgMTYuOTcxIDE2Ljk3MSAyMSAxMiAyMVpcIlxuICAgICAgICBmaWxsPVwiI0ZGMDAwMFwiXG4gICAgICAgIHN0cm9rZT1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIgMTIuNzVMMTIgNy43NVwiXG4gICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjE2XCIgcj1cIjFcIiBmaWxsPVwid2hpdGVcIiAvPlxuICAgIDwvc3ZnPlxuICAgIHt7IHZhbGlkYXRpb25NZXNzYWdlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -67,10 +67,9 @@ export class AggregationFunctionService {
67
67
  const values = [];
68
68
  for (const uuid of uuidList) {
69
69
  const field = rowNumberFields.get(uuid);
70
- if (!field || field.answer === undefined || field.answer === null || String(field.answer).trim() === '') {
71
- return null;
72
- }
73
- values.push(Number(field.answer));
70
+ const val = field?.answer;
71
+ // If the field doesn't exist or value is invalid, push 0 as default
72
+ values.push(val !== undefined && val !== null && String(val).trim() !== '' ? Number(val) : 0);
74
73
  }
75
74
  let result = 0;
76
75
  switch (operation) {
@@ -114,6 +113,7 @@ export class AggregationFunctionService {
114
113
  clearAll() {
115
114
  this.aggregateFieldsMap.clear();
116
115
  this.numberFieldsMap.clear();
116
+ this.aggregateFieldResultsSubject.next(null);
117
117
  }
118
118
  ngOnDestroy() {
119
119
  this.clearAll();
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
127
127
  providedIn: 'root',
128
128
  }]
129
129
  }], ctorParameters: function () { return []; } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3NlcnZpY2VzL2FnZ3JlZ2F0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLDBCQUEwQjtJQVNyQztRQVBBLHNEQUFzRDtRQUNoRCx1QkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBNEYsQ0FBQztRQUN6SCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUF1RCxDQUFDO1FBRS9FLGlDQUE0QixHQUFHLElBQUksZUFBZSxDQUEwRCxJQUFJLENBQUMsQ0FBQztRQUMxSCwyQkFBc0IsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFM0QsQ0FBQztJQUVoQjs7T0FFRztJQUNILGlCQUFpQixDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsU0FBaUIsRUFBRSxPQUFlO1FBQ2xGLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztTQUMvQztRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsTUFBYztRQUMzRCxJQUFJLENBQUMsSUFBSSxD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RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQWdncmVnYXRpb25GdW5jdGlvblNlcnZpY2Uge1xuXG4gIC8vIE5ldyBzdHJ1Y3R1cmU6IHsgW3Jvd0lkXTogTWFwPGZpZWxkSWQsIGZpZWxkRGF0YT4gfVxucHJpdmF0ZSBhZ2dyZWdhdGVGaWVsZHNNYXAgPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgeyBpZDogc3RyaW5nOyBvcGVyYXRpb246IHN0cmluZzsgZm9ybXVsYTogc3RyaW5nOyByZXN1bHQ/OiBudW1iZXIgfT4+KCk7XG5wcml2YXRlIG51bWJlckZpZWxkc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCB7IGlkOiBzdHJpbmc7IGFuc3dlcjogbnVtYmVyIH0+PigpO1xuXG4gIHByaXZhdGUgYWdncmVnYXRlRmllbGRSZXN1bHRzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBpZDogc3RyaW5nOyByZXN1bHQ6IG51bWJlcixldmFsdWF0ZWQ6Ym9vbGVhbiB9IHwgbnVsbD4obnVsbCk7XG4gIGFnZ3JlZ2F0ZUZpZWxkUmVzdWx0cyQgPSB0aGlzLmFnZ3JlZ2F0ZUZpZWxkUmVzdWx0c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8qKlxuICAgKiBTdG9yZSBvciB1cGRhdGUgYW4gYWdncmVnYXRlIGZpZWxkIGluIHRoZSBtYXBcbiAgICovXG4gIHNldEFnZ3JlZ2F0ZUZpZWxkKHJvd0lkOiBzdHJpbmcsIGZpZWxkSWQ6IHN0cmluZywgb3BlcmF0aW9uOiBzdHJpbmcsIGZvcm11bGE6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hZ2dyZWdhdGVGaWVsZHNNYXAuaGFzKHJvd0lkKSkge1xuICAgICAgdGhpcy5hZ2dyZWdhdGVGaWVsZHNNYXAuc2V0KHJvd0lkLCBuZXcgTWFwKCkpO1xuICAgIH1cbiAgICB0aGlzLmFnZ3JlZ2F0ZUZpZWxkc01hcC5nZXQocm93SWQpIS5zZXQoZmllbGRJZCwgeyBpZDogZmllbGRJZCwgb3BlcmF0aW9uLCBmb3JtdWxhIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlIG9yIHVwZGF0ZSBhIG51bWJlciBmaWVsZCBpbiB0aGUgbWFwXG4gICAqL1xuICBzZXROdW1iZXJGaWVsZChyb3dJZDogc3RyaW5nLCBmaWVsZElkOiBzdHJpbmcsIGFuc3dlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm51bWJlckZpZWxkc01hcC5oYXMocm93SWQpKSB7XG4gICAgICB0aGlzLm51bWJlckZpZWxkc01hcC5zZXQocm93SWQsIG5ldyBNYXAoKSk7XG4gICAgfVxuICAgIHRoaXMubnVtYmVyRmllbGRzTWFwLmdldChyb3dJZCkhLnNldChmaWVsZElkLCB7IGlkOiBmaWVsZElkLCBhbnN3ZXIgfSk7XG4gICAgdGhpcy5jaGVja0FuZEV2YWx1YXRlRm9ybXVsYXMocm93SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0QWdncmVnYXRlUmVzdWx0KGlkOiBzdHJpbmcsIHJlc3VsdDogbnVtYmVyLGV2YWx1YXRlZDpib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5hZ2dyZWdhdGVGaWVsZFJlc3VsdHNTdWJqZWN0Lm5leHQoeyBpZCwgcmVzdWx0LGV2YWx1YXRlZCB9KTtcbiAgfVxuXG5cbiAgZXZhbHVhdGVDdXN0b21Gb3JtdWxhKHJvd0lkOiBzdHJpbmcsIGZvcm11bGE6IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xuICAgIFxuICAgIGNvbnN0IHJvd051bWJlckZpZWxkcyA9IHRoaXMubnVtYmVyRmllbGRzTWFwLmdldChyb3dJZCk7XG4gICAgaWYgKCFmb3JtdWxhIHx8ICFyb3dOdW1iZXJGaWVsZHMpIHJldHVybiBudWxsO1xuICBcbiAgICBjb25zdCB1dWlkUmVnZXggPSAvWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzEtNV1bMC05YS1mQS1GXXszfS1bODlhYkFCXVswLTlhLWZBLUZdezN9LVswLTlhLWZBLUZdezEyfS9nOy9bMC05YS1mQS1GXFwtXXszNn0vZztcbiAgICBjb25zdCB1dWlkTWF0Y2hlcyA9IGZvcm11bGEubWF0Y2godXVpZFJlZ2V4KSB8fCBbXTtcbiAgXG4gICAgY29uc3QgYWxsSGF2ZUFuc3dlcnMgPSB1dWlkTWF0Y2hlcy5ldmVyeSh1dWlkID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkID0gcm93TnVtYmVyRmllbGRzLmdldCh1dWlkKTtcbiAgICAgIHJldHVybiBmaWVsZCAhPT0gdW5kZWZpbmVkICYmIFxuICAgICAgICAgICAgIGZpZWxkLmFuc3dlciAhPT0gdW5kZWZpbmVkICYmIFxuICAgICAgICAgICAgIGZpZWxkLmFuc3dlciAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgIFN0cmluZyhmaWVsZC5hbnN3ZXIpLnRyaW0oKSAhPT0gJyc7XG4gICAgfSk7XG4gIFxuICAgIGlmICghYWxsSGF2ZUFuc3dlcnMpIHJldHVybiBudWxsO1xuICBcbiAgICBjb25zdCByZXBsYWNlZEZvcm11bGEgPSBmb3JtdWxhLnJlcGxhY2UodXVpZFJlZ2V4LCAobWF0Y2gpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkID0gcm93TnVtYmVyRmllbGRzLmdldChtYXRjaCk7XG4gICAgICByZXR1cm4gZmllbGQ/LmFuc3dlcj8udG9TdHJpbmcoKSB8fCAnMCc7XG4gICAgfSk7XG4gIFxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmV3IEZ1bmN0aW9uKGByZXR1cm4gJHtyZXBsYWNlZEZvcm11bGF9O2ApKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV2YWx1YXRpbmcgZm9ybXVsYTonLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgXG4gIGV2YWx1YXRlUHJlZGVmaW5lZE9wZXJhdGlvbihyb3dJZDogc3RyaW5nLCBvcGVyYXRpb246IHN0cmluZywgZm9ybXVsYTogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3Qgcm93TnVtYmVyRmllbGRzID0gdGhpcy5udW1iZXJGaWVsZHNNYXAuZ2V0KHJvd0lkKTtcbiAgICBpZiAoIXJvd051bWJlckZpZWxkcykgcmV0dXJuIG51bGw7XG4gIFxuICAgIGNvbnN0IHV1aWRMaXN0ID0gZm9ybXVsYS5zcGxpdCgnLCcpLm1hcChpZCA9PiBpZC50cmltKCkpO1xuICAgIGNvbnN0IHZhbHVlczogbnVtYmVyW10gPSBbXTtcbiAgXG4gICAgZm9yIChjb25zdCB1dWlkIG9mIHV1aWRMaXN0KSB7XG4gICAgICBjb25zdCBmaWVsZCA9IHJvd051bWJlckZpZWxkcy5nZXQodXVpZCk7XG4gICAgICBpZiAoIWZpZWxkIHx8IGZpZWxkLmFuc3dlciA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkLmFuc3dlciA9PT0gbnVsbCB8fCBTdHJpbmcoZmllbGQuYW5zd2VyKS50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgdmFsdWVzLnB1c2goTnVtYmVyKGZpZWxkLmFuc3dlcikpO1xuICAgIH1cbiAgXG4gICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICAgIGNhc2UgJ1NVTSc6XG4gICAgICAgIHJlc3VsdCA9IHZhbHVlcy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwsIDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1NVQlRSQUNUSU9OJzpcbiAgICAgICAgcmVzdWx0ID0gdmFsdWVzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYyAtIHZhbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTVVMVElQTElDQVRJT04nOlxuICAgICAgICByZXN1bHQgPSB2YWx1ZXMucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjICogdmFsLCAxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLndhcm4oYFVuc3VwcG9ydGVkIG9wZXJhdGlvbjogJHtvcGVyYXRpb259YCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGNoZWNrQW5kRXZhbHVhdGVGb3JtdWxhcyhyb3dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYWdncmVnYXRlRmllbGRzID0gdGhpcy5hZ2dyZWdhdGVGaWVsZHNNYXAuZ2V0KHJvd0lkKTtcbiAgICBpZiAoIWFnZ3JlZ2F0ZUZpZWxkcykgcmV0dXJuO1xuICBcbiAgICBhZ2dyZWdhdGVGaWVsZHMuZm9yRWFjaCgoYWdncmVnYXRlRmllbGQsIGlkKSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgXG4gICAgICBpZiAoYWdncmVnYXRlRmllbGQub3BlcmF0aW9uID09PSAnQ1VTVE9NJykge1xuICAgICAgICByZXN1bHQgPSB0aGlzLmV2YWx1YXRlQ3VzdG9tRm9ybXVsYShyb3dJZCwgYWdncmVnYXRlRmllbGQuZm9ybXVsYSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB0aGlzLmV2YWx1YXRlUHJlZGVmaW5lZE9wZXJhdGlvbihyb3dJZCwgYWdncmVnYXRlRmllbGQub3BlcmF0aW9uLCBhZ2dyZWdhdGVGaWVsZC5mb3JtdWxhKTtcbiAgICAgIH1cbiAgXG4gICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICAgIGFnZ3JlZ2F0ZUZpZWxkLnJlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVGaWVsZHNNYXAuZ2V0KHJvd0lkKSEuc2V0KGlkLCBhZ2dyZWdhdGVGaWVsZCk7XG4gICAgICAgIHRoaXMuZW1pdEFnZ3JlZ2F0ZVJlc3VsdChgJHtyb3dJZH06JHtpZH1gLCByZXN1bHQsdHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVtaXRBZ2dyZWdhdGVSZXN1bHQoYCR7cm93SWR9OiR7aWR9YCwgMCxmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmFnZ3JlZ2F0ZUZpZWxkc01hcC5jbGVhcigpO1xuICAgIHRoaXMubnVtYmVyRmllbGRzTWFwLmNsZWFyKCk7XG4gIH1cbiAgXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJBbGwoKTtcbiAgfVxufSJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3NlcnZpY2VzL2FnZ3JlZ2F0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLDBCQUEwQjtJQVNyQztRQVBBLHNEQUFzRDtRQUNoRCx1QkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBNEYsQ0FBQztRQUN6SCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUF1RCxDQUFDO1FBRS9FLGlDQUE0QixHQUFHLElBQUksZUFBZSxDQUEwRCxJQUFJLENBQUMsQ0FBQztRQUMxSCwyQkFBc0IsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFM0QsQ0FBQztJQUVoQjs7T0FFRztJQUNILGlCQUFpQixDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsU0FBaUIsRUFBRSxPQUFlO1FBQ2xGLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztTQUMvQztRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsTUFBYztRQUMzRCxJQUFJLENBQUMsSUFBSSxD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QUFDOytHQXJJVSwwQkFBMEI7bUhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQWdncmVnYXRpb25GdW5jdGlvblNlcnZpY2Uge1xuXG4gIC8vIE5ldyBzdHJ1Y3R1cmU6IHsgW3Jvd0lkXTogTWFwPGZpZWxkSWQsIGZpZWxkRGF0YT4gfVxucHJpdmF0ZSBhZ2dyZWdhdGVGaWVsZHNNYXAgPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgeyBpZDogc3RyaW5nOyBvcGVyYXRpb246IHN0cmluZzsgZm9ybXVsYTogc3RyaW5nOyByZXN1bHQ/OiBudW1iZXIgfT4+KCk7XG5wcml2YXRlIG51bWJlckZpZWxkc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCB7IGlkOiBzdHJpbmc7IGFuc3dlcjogbnVtYmVyIH0+PigpO1xuXG4gIHByaXZhdGUgYWdncmVnYXRlRmllbGRSZXN1bHRzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBpZDogc3RyaW5nOyByZXN1bHQ6IG51bWJlcixldmFsdWF0ZWQ6Ym9vbGVhbiB9IHwgbnVsbD4obnVsbCk7XG4gIGFnZ3JlZ2F0ZUZpZWxkUmVzdWx0cyQgPSB0aGlzLmFnZ3JlZ2F0ZUZpZWxkUmVzdWx0c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8qKlxuICAgKiBTdG9yZSBvciB1cGRhdGUgYW4gYWdncmVnYXRlIGZpZWxkIGluIHRoZSBtYXBcbiAgICovXG4gIHNldEFnZ3JlZ2F0ZUZpZWxkKHJvd0lkOiBzdHJpbmcsIGZpZWxkSWQ6IHN0cmluZywgb3BlcmF0aW9uOiBzdHJpbmcsIGZvcm11bGE6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hZ2dyZWdhdGVGaWVsZHNNYXAuaGFzKHJvd0lkKSkge1xuICAgICAgdGhpcy5hZ2dyZWdhdGVGaWVsZHNNYXAuc2V0KHJvd0lkLCBuZXcgTWFwKCkpO1xuICAgIH1cbiAgICB0aGlzLmFnZ3JlZ2F0ZUZpZWxkc01hcC5nZXQocm93SWQpIS5zZXQoZmllbGRJZCwgeyBpZDogZmllbGRJZCwgb3BlcmF0aW9uLCBmb3JtdWxhIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlIG9yIHVwZGF0ZSBhIG51bWJlciBmaWVsZCBpbiB0aGUgbWFwXG4gICAqL1xuICBzZXROdW1iZXJGaWVsZChyb3dJZDogc3RyaW5nLCBmaWVsZElkOiBzdHJpbmcsIGFuc3dlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm51bWJlckZpZWxkc01hcC5oYXMocm93SWQpKSB7XG4gICAgICB0aGlzLm51bWJlckZpZWxkc01hcC5zZXQocm93SWQsIG5ldyBNYXAoKSk7XG4gICAgfVxuICAgIHRoaXMubnVtYmVyRmllbGRzTWFwLmdldChyb3dJZCkhLnNldChmaWVsZElkLCB7IGlkOiBmaWVsZElkLCBhbnN3ZXIgfSk7XG4gICAgdGhpcy5jaGVja0FuZEV2YWx1YXRlRm9ybXVsYXMocm93SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0QWdncmVnYXRlUmVzdWx0KGlkOiBzdHJpbmcsIHJlc3VsdDogbnVtYmVyLGV2YWx1YXRlZDpib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5hZ2dyZWdhdGVGaWVsZFJlc3VsdHNTdWJqZWN0Lm5leHQoeyBpZCwgcmVzdWx0LGV2YWx1YXRlZCB9KTtcbiAgfVxuXG5cbiAgZXZhbHVhdGVDdXN0b21Gb3JtdWxhKHJvd0lkOiBzdHJpbmcsIGZvcm11bGE6IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xuICAgIFxuICAgIGNvbnN0IHJvd051bWJlckZpZWxkcyA9IHRoaXMubnVtYmVyRmllbGRzTWFwLmdldChyb3dJZCk7XG4gICAgaWYgKCFmb3JtdWxhIHx8ICFyb3dOdW1iZXJGaWVsZHMpIHJldHVybiBudWxsO1xuICBcbiAgICBjb25zdCB1dWlkUmVnZXggPSAvWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzEtNV1bMC05YS1mQS1GXXszfS1bODlhYkFCXVswLTlhLWZBLUZdezN9LVswLTlhLWZBLUZdezEyfS9nOy9bMC05YS1mQS1GXFwtXXszNn0vZztcbiAgICBjb25zdCB1dWlkTWF0Y2hlcyA9IGZvcm11bGEubWF0Y2godXVpZFJlZ2V4KSB8fCBbXTtcbiAgXG4gICAgY29uc3QgYWxsSGF2ZUFuc3dlcnMgPSB1dWlkTWF0Y2hlcy5ldmVyeSh1dWlkID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkID0gcm93TnVtYmVyRmllbGRzLmdldCh1dWlkKTtcbiAgICAgIHJldHVybiBmaWVsZCAhPT0gdW5kZWZpbmVkICYmIFxuICAgICAgICAgICAgIGZpZWxkLmFuc3dlciAhPT0gdW5kZWZpbmVkICYmIFxuICAgICAgICAgICAgIGZpZWxkLmFuc3dlciAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgIFN0cmluZyhmaWVsZC5hbnN3ZXIpLnRyaW0oKSAhPT0gJyc7XG4gICAgfSk7XG4gIFxuICAgIGlmICghYWxsSGF2ZUFuc3dlcnMpIHJldHVybiBudWxsO1xuICBcbiAgICBjb25zdCByZXBsYWNlZEZvcm11bGEgPSBmb3JtdWxhLnJlcGxhY2UodXVpZFJlZ2V4LCAobWF0Y2gpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkID0gcm93TnVtYmVyRmllbGRzLmdldChtYXRjaCk7XG4gICAgICByZXR1cm4gZmllbGQ/LmFuc3dlcj8udG9TdHJpbmcoKSB8fCAnMCc7XG4gICAgfSk7XG4gIFxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmV3IEZ1bmN0aW9uKGByZXR1cm4gJHtyZXBsYWNlZEZvcm11bGF9O2ApKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV2YWx1YXRpbmcgZm9ybXVsYTonLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgXG4gIGV2YWx1YXRlUHJlZGVmaW5lZE9wZXJhdGlvbihyb3dJZDogc3RyaW5nLCBvcGVyYXRpb246IHN0cmluZywgZm9ybXVsYTogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3Qgcm93TnVtYmVyRmllbGRzID0gdGhpcy5udW1iZXJGaWVsZHNNYXAuZ2V0KHJvd0lkKTtcbiAgICBpZiAoIXJvd051bWJlckZpZWxkcykgcmV0dXJuIG51bGw7XG4gIFxuICAgIGNvbnN0IHV1aWRMaXN0ID0gZm9ybXVsYS5zcGxpdCgnLCcpLm1hcChpZCA9PiBpZC50cmltKCkpO1xuICAgIGNvbnN0IHZhbHVlczogbnVtYmVyW10gPSBbXTtcbiAgXG4gICAgZm9yIChjb25zdCB1dWlkIG9mIHV1aWRMaXN0KSB7XG4gICAgICBjb25zdCBmaWVsZCA9IHJvd051bWJlckZpZWxkcy5nZXQodXVpZCk7XG4gICAgICBjb25zdCB2YWwgPSBmaWVsZD8uYW5zd2VyO1xuICBcbiAgICAgIC8vIElmIHRoZSBmaWVsZCBkb2Vzbid0IGV4aXN0IG9yIHZhbHVlIGlzIGludmFsaWQsIHB1c2ggMCBhcyBkZWZhdWx0XG4gICAgICB2YWx1ZXMucHVzaCh2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwgJiYgU3RyaW5nKHZhbCkudHJpbSgpICE9PSAnJyA/IE51bWJlcih2YWwpIDogMCk7XG4gICAgfVxuICBcbiAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICBzd2l0Y2ggKG9wZXJhdGlvbikge1xuICAgICAgY2FzZSAnU1VNJzpcbiAgICAgICAgcmVzdWx0ID0gdmFsdWVzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYyArIHZhbCwgMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnU1VCVFJBQ1RJT04nOlxuICAgICAgICByZXN1bHQgPSB2YWx1ZXMucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjIC0gdmFsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdNVUxUSVBMSUNBVElPTic6XG4gICAgICAgIHJlc3VsdCA9IHZhbHVlcy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKiB2YWwsIDEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgb3BlcmF0aW9uOiAke29wZXJhdGlvbn1gKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICBcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgY2hlY2tBbmRFdmFsdWF0ZUZvcm11bGFzKHJvd0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBhZ2dyZWdhdGVGaWVsZHMgPSB0aGlzLmFnZ3JlZ2F0ZUZpZWxkc01hcC5nZXQocm93SWQpO1xuICAgIGlmICghYWdncmVnYXRlRmllbGRzKSByZXR1cm47XG4gIFxuICAgIGFnZ3JlZ2F0ZUZpZWxkcy5mb3JFYWNoKChhZ2dyZWdhdGVGaWVsZCwgaWQpID0+IHtcbiAgICAgIGxldCByZXN1bHQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBcbiAgICAgIGlmIChhZ2dyZWdhdGVGaWVsZC5vcGVyYXRpb24gPT09ICdDVVNUT00nKSB7XG4gICAgICAgIHJlc3VsdCA9IHRoaXMuZXZhbHVhdGVDdXN0b21Gb3JtdWxhKHJvd0lkLCBhZ2dyZWdhdGVGaWVsZC5mb3JtdWxhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IHRoaXMuZXZhbHVhdGVQcmVkZWZpbmVkT3BlcmF0aW9uKHJvd0lkLCBhZ2dyZWdhdGVGaWVsZC5vcGVyYXRpb24sIGFnZ3JlZ2F0ZUZpZWxkLmZvcm11bGEpO1xuICAgICAgfVxuICBcbiAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICAgICAgYWdncmVnYXRlRmllbGQucmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZUZpZWxkc01hcC5nZXQocm93SWQpIS5zZXQoaWQsIGFnZ3JlZ2F0ZUZpZWxkKTtcbiAgICAgICAgdGhpcy5lbWl0QWdncmVnYXRlUmVzdWx0KGAke3Jvd0lkfToke2lkfWAsIHJlc3VsdCx0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZW1pdEFnZ3JlZ2F0ZVJlc3VsdChgJHtyb3dJZH06JHtpZH1gLCAwLGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuYWdncmVnYXRlRmllbGRzTWFwLmNsZWFyKCk7XG4gICAgdGhpcy5udW1iZXJGaWVsZHNNYXAuY2xlYXIoKTtcbiAgICB0aGlzLmFnZ3JlZ2F0ZUZpZWxkUmVzdWx0c1N1YmplY3QubmV4dChudWxsKTtcbiAgfVxuICBcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckFsbCgpO1xuICB9XG59Il19
@@ -2775,10 +2775,9 @@ class AggregationFunctionService {
2775
2775
  const values = [];
2776
2776
  for (const uuid of uuidList) {
2777
2777
  const field = rowNumberFields.get(uuid);
2778
- if (!field || field.answer === undefined || field.answer === null || String(field.answer).trim() === '') {
2779
- return null;
2780
- }
2781
- values.push(Number(field.answer));
2778
+ const val = field?.answer;
2779
+ // If the field doesn't exist or value is invalid, push 0 as default
2780
+ values.push(val !== undefined && val !== null && String(val).trim() !== '' ? Number(val) : 0);
2782
2781
  }
2783
2782
  let result = 0;
2784
2783
  switch (operation) {
@@ -2822,6 +2821,7 @@ class AggregationFunctionService {
2822
2821
  clearAll() {
2823
2822
  this.aggregateFieldsMap.clear();
2824
2823
  this.numberFieldsMap.clear();
2824
+ this.aggregateFieldResultsSubject.next(null);
2825
2825
  }
2826
2826
  ngOnDestroy() {
2827
2827
  this.clearAll();
@@ -4392,6 +4392,7 @@ class AggregateFunctionComponent {
4392
4392
  this.result = update.result;
4393
4393
  this.question.answer = String(this.result);
4394
4394
  this.answerChange.emit(this.question.answer);
4395
+ this.validationService.clearInvalid(this.question.id);
4395
4396
  }
4396
4397
  else {
4397
4398
  this.result = 0;