survery-lib 2.1.49 → 2.1.51

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.
@@ -53,6 +53,13 @@ export class SurveyLibService {
53
53
  isValid: true
54
54
  }));
55
55
  }
56
+ else if (answer.QuestionType == QuestionTypeEnum.File) {
57
+ this._Store.dispatch(surveyActions.updateQuestionFileAnswer({
58
+ questionId: answer.QuestionId,
59
+ fileArr: answer.FileArr.map(x => ({ byteArr: null, name: x.name, id: x.id })),
60
+ isValid: true
61
+ }));
62
+ }
56
63
  else if (answer.QuestionType == QuestionTypeEnum.CheckBox
57
64
  || answer.QuestionType == QuestionTypeEnum.DropDownMulti) {
58
65
  this._Store.dispatch(surveyActions.updateQuestionAnswer({
@@ -179,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
179
186
  providedIn: 'root'
180
187
  }]
181
188
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWxpYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUloRCxPQUFPLEVBQUUsRUFBRSxJQUFJLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUczQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7QUFLN0UsTUFBTSxPQUFPLGdCQUFnQjtJQUkzQixJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBb0IsTUFBYTtRQUFiLFdBQU0sR0FBTixNQUFNLENBQU87UUFOekIsd0JBQW1CLEdBQW9CLElBQUksT0FBTyxFQUFVLENBQUM7SUFNaEMsQ0FBQztJQUV0QyxhQUFhLENBQUMsTUFBaUI7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFbEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksV0FBVyxHQUF3QixFQUFFLENBQUM7WUFDMUMsSUFBSSxnQkFBZ0IsR0FBNkIsRUFBRSxDQUFDO1lBR3BELE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxF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Q0FBQyxTQUFTO29CQUMxQixrQkFBa0IsRUFBRSxRQUFRLENBQUMsVUFBVTtvQkFDdkMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxTQUFTO29CQUNsQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsVUFBVTtvQkFDckMsZUFBZSxFQUFFLGVBQWU7b0JBQ2hDLGVBQWUsRUFBRSxRQUFRO29CQUN6QixhQUFhLEVBQUUsSUFBSTtpQkFDcEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7OEdBekxVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN1cnZleUR0byB9IGZyb20gJy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS5kdG8nO1xyXG5pbXBvcnQgeyBzdXJ2ZXlBbnN3ZXJzU3ViamVjdER0byB9IGZyb20gJy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1hbnN3ZXJzLXN1YmplY3QuZHRvJztcclxuaW1wb3J0IHsgU3VydmV5TGFuZ3VhZ2VEdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktbGFuZ3VhZ2UuZHRvJztcclxuaW1wb3J0IHsgdjQgYXMgZ3VpZEdlbmVyYXRvciB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgc3VydmV5QWN0aW9ucyB9IGZyb20gJy4uL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9zdXJ2ZXkuYWN0aW9uJztcclxuaW1wb3J0IHsgUXVlc3Rpb25OZ3J4TW9kZWwgfSBmcm9tICcuLi9jb3JlL3N0YXRlcy9lbnRpdGVzL3F1ZXN0aW9uLmVudGl0eSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgUXVlc3Rpb25Hcm91cE5ncnhNb2RlbCB9IGZyb20gJy4uL2NvcmUvc3RhdGVzL2VudGl0ZXMvcXVlc3Rpb24tZ3JvdXAuZW50aXR5JztcclxuaW1wb3J0IHsgSW5wdXRUeXBlRW51bSB9IGZyb20gJy4uLy4uL3NoYXJlZC9lbnVtcy9pbnB1dC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBFdmFsdWF0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9zaGFyZWQvZW51bXMvZXZhbHVhdGlvbi10eXBlLmVudW0nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VydmV5TGliU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcmVsb2FkU3VydmV5U3ViamVjdDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG5cclxuICBnZXQgcmVsb2FkU3VydmV5T2JzcnYoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWxvYWRTdXJ2ZXlTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfU3RvcmU6IFN0b3JlKSB7IH1cclxuXHJcbiAgc2V0U3VydmV5RGF0YShzdXJ2ZXk6IFN1cnZleUR0bykge1xyXG4gICAgdGhpcy5fU3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy5yZXNldFN1cnZleSgpKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdmFyIHF1ZXN0aW9uQXJyOiBRdWVzdGlvbk5ncnhNb2RlbFtdID0gW107XHJcbiAgICAgIHZhciBxdWVzdGlvbkdyb3VwQXJyOiBRdWVzdGlvbkdyb3VwTmdyeE1vZGVsW10gPSBbXTtcclxuXHJcblxyXG4gICAgICBzdXJ2ZXkuc3VydmV5UGFnZXMuZm9yRWFjaCgocGFnZSwgcGFnZUluZGV4KSA9PiB7XHJcbiAgICAgICAgcGFnZS5zdXJ2ZXlRdWVzdGlvbkdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcclxuICAgICAgICAgIHF1ZXN0aW9uR3JvdXBBcnIucHVzaCh7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXBJZDogZ3JvdXAucXVlc3Rpb25Hcm91cElkLFxyXG4gICAgICAgICAgICBxdWVzdGlvbkdyb3VwTmFtZTogZ3JvdXAucXVlc3Rpb25Hcm91cE5hbWUsXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXBEZXNjcmlwdGlvbjogZ3JvdXAucXVlc3Rpb25Hcm91cERlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICBzdXJ2ZXlQYWdlSWQ6IHBhZ2UucGFnZUlkXHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICBncm91cC5zdXJ2ZXlRdWVzdGlvbnMuZm9yRWFjaChxdWVzdGlvbiA9PiB7XHJcbiAgICAgICAgICAgIHZhciBuZXdRdWVzdGlvbnMgPSB0aGlzLmFkZFF1ZXN0aW9uKHF1ZXN0aW9uLCBwYWdlLnBhZ2VJZCwgZ3JvdXAucXVlc3Rpb25Hcm91cElkKVxyXG4gICAgICAgICAgICBxdWVzdGlvbkFyci5wdXNoKC4uLm5ld1F1ZXN0aW9ucyk7XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdmFyIHBhZ2VJZEFyciA9IHN1cnZleS5zdXJ2ZXlQYWdlcy5tYXAoeCA9PiB4LnBhZ2VJZCk7XHJcblxyXG4gICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLmxvYWRTdXJ2ZXkoe1xyXG4gICAgICAgIHF1ZXN0aW9uQXJyOiBxdWVzdGlvbkFycixcclxuICAgICAgICBydWxlQXJyOiBzdXJ2ZXkuc3VydmV5UnVsZXMsXHJcbiAgICAgICAgcXVlc3Rpb25Hcm91cEFycjogcXVlc3Rpb25Hcm91cEFycixcclxuICAgICAgICBzZWxlY3RlZFBhZ2VJZDogTWF0aC5taW4oLi4ucGFnZUlkQXJyKVxyXG4gICAgICB9KSk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgc2V0c3VydmV5QW5zd2Vycyhtb2RlbDogc3VydmV5QW5zd2Vyc1N1YmplY3REdG8pIHtcclxuXHJcbiAgICBtb2RlbC5kZWZhdWx0QW5zd2Vycy5mb3JFYWNoKGFuc3dlciA9PiB7XHJcblxyXG4gICAgICBpZiAoYW5zd2VyLlF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLlRleHRJbnB1dCB8fFxyXG4gICAgICAgIGFuc3dlci5RdWVzdGlvblR5cGUgPT0gUXVlc3Rpb25UeXBlRW51bS5GZWVkQmFjaykge1xyXG5cclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uQW5zd2VyKHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGFuc3dlci5RdWVzdGlvbklkLFxyXG4gICAgICAgICAgYW5zd2VyOiBhbnN3ZXIuQW5zd2VyVGV4dCxcclxuICAgICAgICAgIGlzVmFsaWQ6IHRydWVcclxuICAgICAgICB9KSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoYW5zd2VyLlF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLkNoZWNrQm94XHJcbiAgICAgICAgfHwgYW5zd2VyLlF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLkRyb3BEb3duTXVsdGkpIHtcclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uQW5zd2VyKHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGFuc3dlci5RdWVzdGlvbklkLFxyXG4gICAgICAgICAgYW5zd2VyOiBhbnN3ZXIuQW5zd2VySWRBcnIsXHJcbiAgICAgICAgICBpc1ZhbGlkOiB0cnVlXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGFuc3dlci5RdWVzdGlvblR5cGUgPT0gUXVlc3Rpb25UeXBlRW51bS5JbnN0aXR1dGlvbnMpIHtcclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZUluc3RpdHV0aW9uUXVlc3Rpb25BbnN3ZXIoe1xyXG4gICAgICAgICAgcXVlc3Rpb25JZDogYW5zd2VyLlF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBhbnN3ZXI6IGFuc3dlci5BbnN3ZXJUZXh0LFxyXG4gICAgICAgICAgYW5zd2VySWQ6IGFuc3dlci5BbnN3ZXJJZCxcclxuICAgICAgICAgIGFuc3dlckxldmVsSWQ6IGFuc3dlci5BbnN3ZXJMZXZlbElkLFxyXG4gICAgICAgICAgaXNWYWxpZDogdHJ1ZVxyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fU3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbkFuc3dlcih7XHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBhbnN3ZXIuUXVlc3Rpb25JZCxcclxuICAgICAgICAgIGFuc3dlcjogYW5zd2VyLkFuc3dlcklkLFxyXG4gICAgICAgICAgaXNWYWxpZDogdHJ1ZVxyXG4gICAgICAgIH0pKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNldFJlbG9hZFN1cnZleSgpIHtcclxuICAgIHRoaXMucmVsb2FkU3VydmV5U3ViamVjdC5uZXh0KGd1aWRHZW5lcmF0b3IoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFF1ZXN0aW9uKHF1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0bywgcGFnZUluZGV4OiBudW1iZXIsIHF1ZXN0aW9uR3JvdXBJZDogbnVtYmVyKTogUXVlc3Rpb25OZ3J4TW9kZWxbXSB7XHJcbiAgICB2YXIgcXVlc3Rpb25BcnI6IFF1ZXN0aW9uTmdyeE1vZGVsW10gPSBbXTtcclxuXHJcbiAgICB2YXIgcXVlc3Rpb25OZ3J4TW9kZWw6IFF1ZXN0aW9uTmdyeE1vZGVsID0ge1xyXG4gICAgICBzdXJ2ZXlQYWdlSWQ6IHBhZ2VJbmRleCxcclxuICAgICAgcXVlc3Rpb25JZDogcXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgcXVlc3Rpb25UeXBlOiBxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCxcclxuICAgICAgaW5wdXRUeXBlSWQ6IHF1ZXN0aW9uLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQsXHJcbiAgICAgIGlzUXVlc3Rpb25Hcm91cDogcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gUXVlc3Rpb25UeXBlRW51bS5NYXRyaXggfHwgcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gUXVlc3Rpb25UeXBlRW51bS5JbnN0aXR1dGlvbnMsXHJcbiAgICAgIGFuc3dlcklkOiBudWxsLFxyXG4gICAgICBhbnN3ZXJJZEFycjogbnVsbCxcclxuICAgICAgYW5zd2VyVGV4dDogbnVsbCxcclxuICAgICAgYW5zd2VyRmlsZTogbnVsbCxcclxuICAgICAgaXNSZXF1aXJlZDogcXVlc3Rpb24uaXNSZXF1aXJlZCxcclxuICAgICAgaXNWYWxpZDogbnVsbCxcclxuICAgICAgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNSZWFkT25seSxcclxuICAgICAgaXNTaG93OiBxdWVzdGlvbi5pc1Zpc2FibGUsXHJcbiAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogcXVlc3Rpb24uaXNSZWFkT25seSxcclxuICAgICAgaXNTaG93X2RlZmF1bHQ6IHF1ZXN0aW9uLmlzVmlzYWJsZSxcclxuICAgICAgb3JkZXI6IHF1ZXN0aW9uLm9yZGVyLFxyXG4gICAgICBxdWVzdGlvbkdyb3VwSWQ6IHF1ZXN0aW9uR3JvdXBJZCxcclxuICAgICAgcGFyZW50UXVlc3Rpb25JZDogbnVsbCxcclxuICAgICAgbWF4TGV2ZWxWYWx1ZTogbnVsbCxcclxuICAgICAgcXVlc3Rpb25BbGxJbmZvOiBxdWVzdGlvbixcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IFF1ZXN0aW9uVHlwZUVudW0uRmVlZEJhY2spIHtcclxuICAgICAgaWYgKHF1ZXN0aW9uLnN1cnZleUFuc3dlcnNbMF0uZXZhbHVhdGlvblR5cGVJZCA9PSBFdmFsdWF0aW9uVHlwZUVudW0uU3RhcnMpIHtcclxuICAgICAgICBxdWVzdGlvbk5ncnhNb2RlbC5pbnB1dFR5cGVJZCA9IElucHV0VHlwZUVudW0uU3RhcnNcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChxdWVzdGlvbi5zdXJ2ZXlBbnN3ZXJzWzBdLmV2YWx1YXRpb25UeXBlSWQgPT0gRXZhbHVhdGlvblR5cGVFbnVtLlBhZ2luYXRpb24pIHtcclxuICAgICAgICBxdWVzdGlvbk5ncnhNb2RlbC5pbnB1dFR5cGVJZCA9IElucHV0VHlwZUVudW0uUGFnaW5hdGlvblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcXVlc3Rpb25BcnIucHVzaChxdWVzdGlvbk5ncnhNb2RlbCk7XHJcblxyXG4gICAgaWYgKHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IFF1ZXN0aW9uVHlwZUVudW0uTWF0cml4KSB7XHJcbiAgICAgIHF1ZXN0aW9uLnN1cnZleVN1YlF1ZXN0aW9ucy5mb3JFYWNoKHN1YlF1ZXN0aW9uID0+IHtcclxuICAgICAgICBxdWVzdGlvbkFyci5wdXNoKHtcclxuICAgICAgICAgIHN1cnZleVBhZ2VJZDogcGFnZUluZGV4LFxyXG4gICAgICAgICAgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgIHF1ZXN0aW9uVHlwZTogcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgICAgICBpbnB1dFR5cGVJZDogcXVlc3Rpb24uc3VydmV5QW5zd2Vyc1swXS5pbnB1dFR5cGVJZCxcclxuICAgICAgICAgIGlzUXVlc3Rpb25Hcm91cDogZmFsc2UsXHJcbiAgICAgICAgICBhbnN3ZXJJZDogbnVsbCxcclxuICAgICAgICAgIGFuc3dlcklkQXJyOiBudWxsLFxyXG4gICAgICAgICAgYW5zd2VyVGV4dDogbnVsbCxcclxuICAgICAgICAgIGFuc3dlckZpbGU6IG51bGwsXHJcbiAgICAgICAgICBpc1JlcXVpcmVkOiBxdWVzdGlvbi5pc1JlcXVpcmVkLFxyXG4gICAgICAgICAgaXNWYWxpZDogbnVsbCxcclxuICAgICAgICAgIG9yZGVyOiBxdWVzdGlvbi5vcmRlcixcclxuICAgICAgICAgIGlzRGlzYWJsZWQ6IHF1ZXN0aW9uLmlzUmVhZE9ubHksXHJcbiAgICAgICAgICBpc1Nob3c6IHF1ZXN0aW9uLmlzVmlzYWJsZSxcclxuICAgICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogcXVlc3Rpb24uaXNSZWFkT25seSxcclxuICAgICAgICAgIGlzU2hvd19kZWZhdWx0OiBxdWVzdGlvbi5pc1Zpc2FibGUsXHJcbiAgICAgICAgICBwYXJlbnRRdWVzdGlvbklkOiBxdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgcXVlc3Rpb25Hcm91cElkOiBxdWVzdGlvbkdyb3VwSWQsXHJcbiAgICAgICAgICBxdWVzdGlvbkFsbEluZm86IHF1ZXN0aW9uLFxyXG4gICAgICAgICAgbWF4TGV2ZWxWYWx1ZTogbnVsbFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gUXVlc3Rpb25UeXBlRW51bS5JbnN0aXR1dGlvbnMpIHtcclxuICAgICAgcXVlc3Rpb25OZ3J4TW9kZWwubWF4TGV2ZWxWYWx1ZSA9IHF1ZXN0aW9uLm1heExldmVsVmFsdWU7XHJcblxyXG4gICAgICBxdWVzdGlvbi5zdXJ2ZXlTdWJRdWVzdGlvbkxldmVscy5mb3JFYWNoKHN1YlF1ZXN0aW9uID0+IHtcclxuICAgICAgICBxdWVzdGlvbkFyci5wdXNoKHtcclxuICAgICAgICAgIHN1cnZleVBhZ2VJZDogcGFnZUluZGV4LFxyXG4gICAgICAgICAgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgIHF1ZXN0aW9uVHlwZTogcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgICAgICBpbnB1dFR5cGVJZDogcXVlc3Rpb24uc3VydmV5QW5zd2Vyc1swXS5pbnB1dFR5cGVJZCxcclxuICAgICAgICAgIGlzUXVlc3Rpb25Hcm91cDogZmFsc2UsXHJcbiAgICAgICAgICBhbnN3ZXJJZDogbnVsbCxcclxuICAgICAgICAgIGFuc3dlcklkQXJyOiBudWxsLFxyXG4gICAgICAgICAgYW5zd2VyVGV4dDogbnVsbCxcclxuICAgICAgICAgIGFuc3dlckZpbGU6IG51bGwsXHJcbiAgICAgICAgICBpc1JlcXVpcmVkOiBzdWJRdWVzdGlvbi5sZXZlbCA9PSAxID8gcXVlc3Rpb24uaXNSZXF1aXJlZCA6IGZhbHNlLFxyXG4gICAgICAgICAgaXNWYWxpZDogbnVsbCxcclxuICAgICAgICAgIGlzRGlzYWJsZWQ6IHF1ZXN0aW9uLmlzUmVhZE9ubHksXHJcbiAgICAgICAgICBvcmRlcjogcXVlc3Rpb24ub3JkZXIsXHJcbiAgICAgICAgICBpc1Nob3c6IHF1ZXN0aW9uLmlzVmlzYWJsZSxcclxuICAgICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogcXVlc3Rpb24uaXNSZWFkT25seSxcclxuICAgICAgICAgIGlzU2hvd19kZWZhdWx0OiBxdWVzdGlvbi5pc1Zpc2FibGUsXHJcbiAgICAgICAgICBwYXJlbnRRdWVzdGlvbklkOiBxdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgcXVlc3Rpb25Hcm91cElkOiBxdWVzdGlvbkdyb3VwSWQsXHJcbiAgICAgICAgICBxdWVzdGlvbkFsbEluZm86IHF1ZXN0aW9uLFxyXG4gICAgICAgICAgbWF4TGV2ZWxWYWx1ZTogbnVsbFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcXVlc3Rpb25BcnI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWxpYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUloRCxPQUFPLEVBQUUsRUFBRSxJQUFJLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUczQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7QUFLN0UsTUFBTSxPQUFPLGdCQUFnQjtJQUkzQixJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBb0IsTUFBYTtRQUFiLFdBQU0sR0FBTixNQUFNLENBQU87UUFOekIsd0JBQW1CLEdBQW9CLElBQUksT0FBTyxFQUFVLENBQUM7SUFNaEMsQ0FBQztJQUV0QyxhQUFhLENBQUMsTUFBaUI7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFbEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksV0FBVyxHQUF3QixFQUFFLENBQUM7WUFDMUMsSUFBSSxnQkFBZ0IsR0FBNkIsRUFBRSxDQUFDO1lBR3BELE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxF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LFdBQVcsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVc7b0JBQ2xELGVBQWUsRUFBRSxLQUFLO29CQUN0QixRQUFRLEVBQUUsSUFBSTtvQkFDZCxXQUFXLEVBQUUsSUFBSTtvQkFDakIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixVQUFVLEVBQUUsV0FBVyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUs7b0JBQ2hFLE9BQU8sRUFBRSxJQUFJO29CQUNiLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtvQkFDL0IsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO29CQUNyQixNQUFNLEVBQUUsUUFBUSxDQUFDLFNBQVM7b0JBQzFCLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxVQUFVO29CQUN2QyxjQUFjLEVBQUUsUUFBUSxDQUFDLFNBQVM7b0JBQ2xDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxVQUFVO29CQUNyQyxlQUFlLEVBQUUsZUFBZTtvQkFDaEMsZUFBZSxFQUFFLFFBQVE7b0JBQ3pCLGFBQWEsRUFBRSxJQUFJO2lCQUNwQixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs4R0FoTVUsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3VydmV5RHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LmR0byc7XHJcbmltcG9ydCB7IHN1cnZleUFuc3dlcnNTdWJqZWN0RHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LWFuc3dlcnMtc3ViamVjdC5kdG8nO1xyXG5pbXBvcnQgeyBTdXJ2ZXlMYW5ndWFnZUR0byB9IGZyb20gJy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1sYW5ndWFnZS5kdG8nO1xyXG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBzdXJ2ZXlBY3Rpb25zIH0gZnJvbSAnLi4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5hY3Rpb24nO1xyXG5pbXBvcnQgeyBRdWVzdGlvbk5ncnhNb2RlbCB9IGZyb20gJy4uL2NvcmUvc3RhdGVzL2VudGl0ZXMvcXVlc3Rpb24uZW50aXR5JztcclxuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkdyb3VwTmdyeE1vZGVsIH0gZnJvbSAnLi4vY29yZS9zdGF0ZXMvZW50aXRlcy9xdWVzdGlvbi1ncm91cC5lbnRpdHknO1xyXG5pbXBvcnQgeyBJbnB1dFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL2lucHV0LXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IEV2YWx1YXRpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL3NoYXJlZC9lbnVtcy9ldmFsdWF0aW9uLXR5cGUuZW51bSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlMaWJTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSByZWxvYWRTdXJ2ZXlTdWJqZWN0OiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcblxyXG4gIGdldCByZWxvYWRTdXJ2ZXlPYnNydigpIHtcclxuICAgIHJldHVybiB0aGlzLnJlbG9hZFN1cnZleVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9TdG9yZTogU3RvcmUpIHsgfVxyXG5cclxuICBzZXRTdXJ2ZXlEYXRhKHN1cnZleTogU3VydmV5RHRvKSB7XHJcbiAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnJlc2V0U3VydmV5KCkpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB2YXIgcXVlc3Rpb25BcnI6IFF1ZXN0aW9uTmdyeE1vZGVsW10gPSBbXTtcclxuICAgICAgdmFyIHF1ZXN0aW9uR3JvdXBBcnI6IFF1ZXN0aW9uR3JvdXBOZ3J4TW9kZWxbXSA9IFtdO1xyXG5cclxuXHJcbiAgICAgIHN1cnZleS5zdXJ2ZXlQYWdlcy5mb3JFYWNoKChwYWdlLCBwYWdlSW5kZXgpID0+IHtcclxuICAgICAgICBwYWdlLnN1cnZleVF1ZXN0aW9uR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xyXG4gICAgICAgICAgcXVlc3Rpb25Hcm91cEFyci5wdXNoKHtcclxuICAgICAgICAgICAgcXVlc3Rpb25Hcm91cElkOiBncm91cC5xdWVzdGlvbkdyb3VwSWQsXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXBOYW1lOiBncm91cC5xdWVzdGlvbkdyb3VwTmFtZSxcclxuICAgICAgICAgICAgcXVlc3Rpb25Hcm91cERlc2NyaXB0aW9uOiBncm91cC5xdWVzdGlvbkdyb3VwRGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIHN1cnZleVBhZ2VJZDogcGFnZS5wYWdlSWRcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIGdyb3VwLnN1cnZleVF1ZXN0aW9ucy5mb3JFYWNoKHF1ZXN0aW9uID0+IHtcclxuICAgICAgICAgICAgdmFyIG5ld1F1ZXN0aW9ucyA9IHRoaXMuYWRkUXVlc3Rpb24ocXVlc3Rpb24sIHBhZ2UucGFnZUlkLCBncm91cC5xdWVzdGlvbkdyb3VwSWQpXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uQXJyLnB1c2goLi4ubmV3UXVlc3Rpb25zKTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB2YXIgcGFnZUlkQXJyID0gc3VydmV5LnN1cnZleVBhZ2VzLm1hcCh4ID0+IHgucGFnZUlkKTtcclxuXHJcbiAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMubG9hZFN1cnZleSh7XHJcbiAgICAgICAgcXVlc3Rpb25BcnI6IHF1ZXN0aW9uQXJyLFxyXG4gICAgICAgIHJ1bGVBcnI6IHN1cnZleS5zdXJ2ZXlSdWxlcyxcclxuICAgICAgICBxdWVzdGlvbkdyb3VwQXJyOiBxdWVzdGlvbkdyb3VwQXJyLFxyXG4gICAgICAgIHNlbGVjdGVkUGFnZUlkOiBNYXRoLm1pbiguLi5wYWdlSWRBcnIpXHJcbiAgICAgIH0pKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICBzZXRzdXJ2ZXlBbnN3ZXJzKG1vZGVsOiBzdXJ2ZXlBbnN3ZXJzU3ViamVjdER0bykge1xyXG5cclxuICAgIG1vZGVsLmRlZmF1bHRBbnN3ZXJzLmZvckVhY2goYW5zd2VyID0+IHtcclxuXHJcbiAgICAgIGlmIChhbnN3ZXIuUXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uVGV4dElucHV0IHx8XHJcbiAgICAgICAgYW5zd2VyLlF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLkZlZWRCYWNrKSB7XHJcblxyXG4gICAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25BbnN3ZXIoe1xyXG4gICAgICAgICAgcXVlc3Rpb25JZDogYW5zd2VyLlF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBhbnN3ZXI6IGFuc3dlci5BbnN3ZXJUZXh0LFxyXG4gICAgICAgICAgaXNWYWxpZDogdHJ1ZVxyXG4gICAgICAgIH0pKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChhbnN3ZXIuUXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uRmlsZSkge1xyXG4gICAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25GaWxlQW5zd2VyKHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGFuc3dlci5RdWVzdGlvbklkLFxyXG4gICAgICAgICAgZmlsZUFycjogYW5zd2VyLkZpbGVBcnIubWFwKHggPT4gKHsgYnl0ZUFycjogbnVsbCwgbmFtZTogeC5uYW1lLCBpZDogeC5pZCAgfSkpLFxyXG4gICAgICAgICAgaXNWYWxpZDogdHJ1ZVxyXG4gICAgICAgIH0pKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChhbnN3ZXIuUXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uQ2hlY2tCb3hcclxuICAgICAgICB8fCBhbnN3ZXIuUXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uRHJvcERvd25NdWx0aSkge1xyXG4gICAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25BbnN3ZXIoe1xyXG4gICAgICAgICAgcXVlc3Rpb25JZDogYW5zd2VyLlF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBhbnN3ZXI6IGFuc3dlci5BbnN3ZXJJZEFycixcclxuICAgICAgICAgIGlzVmFsaWQ6IHRydWVcclxuICAgICAgICB9KSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoYW5zd2VyLlF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLkluc3RpdHV0aW9ucykge1xyXG4gICAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlSW5zdGl0dXRpb25RdWVzdGlvbkFuc3dlcih7XHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBhbnN3ZXIuUXVlc3Rpb25JZCxcclxuICAgICAgICAgIGFuc3dlcjogYW5zd2VyLkFuc3dlclRleHQsXHJcbiAgICAgICAgICBhbnN3ZXJJZDogYW5zd2VyLkFuc3dlcklkLFxyXG4gICAgICAgICAgYW5zd2VyTGV2ZWxJZDogYW5zd2VyLkFuc3dlckxldmVsSWQsXHJcbiAgICAgICAgICBpc1ZhbGlkOiB0cnVlXHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uQW5zd2VyKHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGFuc3dlci5RdWVzdGlvbklkLFxyXG4gICAgICAgICAgYW5zd2VyOiBhbnN3ZXIuQW5zd2VySWQsXHJcbiAgICAgICAgICBpc1ZhbGlkOiB0cnVlXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2V0UmVsb2FkU3VydmV5KCkge1xyXG4gICAgdGhpcy5yZWxvYWRTdXJ2ZXlTdWJqZWN0Lm5leHQoZ3VpZEdlbmVyYXRvcigpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkUXVlc3Rpb24ocXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvLCBwYWdlSW5kZXg6IG51bWJlciwgcXVlc3Rpb25Hcm91cElkOiBudW1iZXIpOiBRdWVzdGlvbk5ncnhNb2RlbFtdIHtcclxuICAgIHZhciBxdWVzdGlvbkFycjogUXVlc3Rpb25OZ3J4TW9kZWxbXSA9IFtdO1xyXG5cclxuICAgIHZhciBxdWVzdGlvbk5ncnhNb2RlbDogUXVlc3Rpb25OZ3J4TW9kZWwgPSB7XHJcbiAgICAgIHN1cnZleVBhZ2VJZDogcGFnZUluZGV4LFxyXG4gICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICBxdWVzdGlvblR5cGU6IHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkLFxyXG4gICAgICBpbnB1dFR5cGVJZDogcXVlc3Rpb24uc3VydmV5QW5zd2Vyc1swXS5pbnB1dFR5cGVJZCxcclxuICAgICAgaXNRdWVzdGlvbkdyb3VwOiBxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBRdWVzdGlvblR5cGVFbnVtLk1hdHJpeCB8fCBxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBRdWVzdGlvblR5cGVFbnVtLkluc3RpdHV0aW9ucyxcclxuICAgICAgYW5zd2VySWQ6IG51bGwsXHJcbiAgICAgIGFuc3dlcklkQXJyOiBudWxsLFxyXG4gICAgICBhbnN3ZXJUZXh0OiBudWxsLFxyXG4gICAgICBhbnN3ZXJGaWxlOiBudWxsLFxyXG4gICAgICBpc1JlcXVpcmVkOiBxdWVzdGlvbi5pc1JlcXVpcmVkLFxyXG4gICAgICBpc1ZhbGlkOiBudWxsLFxyXG4gICAgICBpc0Rpc2FibGVkOiBxdWVzdGlvbi5pc1JlYWRPbmx5LFxyXG4gICAgICBpc1Nob3c6IHF1ZXN0aW9uLmlzVmlzYWJsZSxcclxuICAgICAgaXNEaXNhYmxlZF9kZWZhdWx0OiBxdWVzdGlvbi5pc1JlYWRPbmx5LFxyXG4gICAgICBpc1Nob3dfZGVmYXVsdDogcXVlc3Rpb24uaXNWaXNhYmxlLFxyXG4gICAgICBvcmRlcjogcXVlc3Rpb24ub3JkZXIsXHJcbiAgICAgIHF1ZXN0aW9uR3JvdXBJZDogcXVlc3Rpb25Hcm91cElkLFxyXG4gICAgICBwYXJlbnRRdWVzdGlvbklkOiBudWxsLFxyXG4gICAgICBtYXhMZXZlbFZhbHVlOiBudWxsLFxyXG4gICAgICBxdWVzdGlvbkFsbEluZm86IHF1ZXN0aW9uLFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gUXVlc3Rpb25UeXBlRW51bS5GZWVkQmFjaykge1xyXG4gICAgICBpZiAocXVlc3Rpb24uc3VydmV5QW5zd2Vyc1swXS5ldmFsdWF0aW9uVHlwZUlkID09IEV2YWx1YXRpb25UeXBlRW51bS5TdGFycykge1xyXG4gICAgICAgIHF1ZXN0aW9uTmdyeE1vZGVsLmlucHV0VHlwZUlkID0gSW5wdXRUeXBlRW51bS5TdGFyc1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHF1ZXN0aW9uLnN1cnZleUFuc3dlcnNbMF0uZXZhbHVhdGlvblR5cGVJZCA9PSBFdmFsdWF0aW9uVHlwZUVudW0uUGFnaW5hdGlvbikge1xyXG4gICAgICAgIHF1ZXN0aW9uTmdyeE1vZGVsLmlucHV0VHlwZUlkID0gSW5wdXRUeXBlRW51bS5QYWdpbmF0aW9uXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBxdWVzdGlvbkFyci5wdXNoKHF1ZXN0aW9uTmdyeE1vZGVsKTtcclxuXHJcbiAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gUXVlc3Rpb25UeXBlRW51bS5NYXRyaXgpIHtcclxuICAgICAgcXVlc3Rpb24uc3VydmV5U3ViUXVlc3Rpb25zLmZvckVhY2goc3ViUXVlc3Rpb24gPT4ge1xyXG4gICAgICAgIHF1ZXN0aW9uQXJyLnB1c2goe1xyXG4gICAgICAgICAgc3VydmV5UGFnZUlkOiBwYWdlSW5kZXgsXHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBzdWJRdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgcXVlc3Rpb25UeXBlOiBxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCxcclxuICAgICAgICAgIGlucHV0VHlwZUlkOiBxdWVzdGlvbi5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0VHlwZUlkLFxyXG4gICAgICAgICAgaXNRdWVzdGlvbkdyb3VwOiBmYWxzZSxcclxuICAgICAgICAgIGFuc3dlcklkOiBudWxsLFxyXG4gICAgICAgICAgYW5zd2VySWRBcnI6IG51bGwsXHJcbiAgICAgICAgICBhbnN3ZXJUZXh0OiBudWxsLFxyXG4gICAgICAgICAgYW5zd2VyRmlsZTogbnVsbCxcclxuICAgICAgICAgIGlzUmVxdWlyZWQ6IHF1ZXN0aW9uLmlzUmVxdWlyZWQsXHJcbiAgICAgICAgICBpc1ZhbGlkOiBudWxsLFxyXG4gICAgICAgICAgb3JkZXI6IHF1ZXN0aW9uLm9yZGVyLFxyXG4gICAgICAgICAgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNSZWFkT25seSxcclxuICAgICAgICAgIGlzU2hvdzogcXVlc3Rpb24uaXNWaXNhYmxlLFxyXG4gICAgICAgICAgaXNEaXNhYmxlZF9kZWZhdWx0OiBxdWVzdGlvbi5pc1JlYWRPbmx5LFxyXG4gICAgICAgICAgaXNTaG93X2RlZmF1bHQ6IHF1ZXN0aW9uLmlzVmlzYWJsZSxcclxuICAgICAgICAgIHBhcmVudFF1ZXN0aW9uSWQ6IHF1ZXN0aW9uLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBxdWVzdGlvbkdyb3VwSWQ6IHF1ZXN0aW9uR3JvdXBJZCxcclxuICAgICAgICAgIHF1ZXN0aW9uQWxsSW5mbzogcXVlc3Rpb24sXHJcbiAgICAgICAgICBtYXhMZXZlbFZhbHVlOiBudWxsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBRdWVzdGlvblR5cGVFbnVtLkluc3RpdHV0aW9ucykge1xyXG4gICAgICBxdWVzdGlvbk5ncnhNb2RlbC5tYXhMZXZlbFZhbHVlID0gcXVlc3Rpb24ubWF4TGV2ZWxWYWx1ZTtcclxuXHJcbiAgICAgIHF1ZXN0aW9uLnN1cnZleVN1YlF1ZXN0aW9uTGV2ZWxzLmZvckVhY2goc3ViUXVlc3Rpb24gPT4ge1xyXG4gICAgICAgIHF1ZXN0aW9uQXJyLnB1c2goe1xyXG4gICAgICAgICAgc3VydmV5UGFnZUlkOiBwYWdlSW5kZXgsXHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBzdWJRdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgcXVlc3Rpb25UeXBlOiBxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCxcclxuICAgICAgICAgIGlucHV0VHlwZUlkOiBxdWVzdGlvbi5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0VHlwZUlkLFxyXG4gICAgICAgICAgaXNRdWVzdGlvbkdyb3VwOiBmYWxzZSxcclxuICAgICAgICAgIGFuc3dlcklkOiBudWxsLFxyXG4gICAgICAgICAgYW5zd2VySWRBcnI6IG51bGwsXHJcbiAgICAgICAgICBhbnN3ZXJUZXh0OiBudWxsLFxyXG4gICAgICAgICAgYW5zd2VyRmlsZTogbnVsbCxcclxuICAgICAgICAgIGlzUmVxdWlyZWQ6IHN1YlF1ZXN0aW9uLmxldmVsID09IDEgPyBxdWVzdGlvbi5pc1JlcXVpcmVkIDogZmFsc2UsXHJcbiAgICAgICAgICBpc1ZhbGlkOiBudWxsLFxyXG4gICAgICAgICAgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNSZWFkT25seSxcclxuICAgICAgICAgIG9yZGVyOiBxdWVzdGlvbi5vcmRlcixcclxuICAgICAgICAgIGlzU2hvdzogcXVlc3Rpb24uaXNWaXNhYmxlLFxyXG4gICAgICAgICAgaXNEaXNhYmxlZF9kZWZhdWx0OiBxdWVzdGlvbi5pc1JlYWRPbmx5LFxyXG4gICAgICAgICAgaXNTaG93X2RlZmF1bHQ6IHF1ZXN0aW9uLmlzVmlzYWJsZSxcclxuICAgICAgICAgIHBhcmVudFF1ZXN0aW9uSWQ6IHF1ZXN0aW9uLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBxdWVzdGlvbkdyb3VwSWQ6IHF1ZXN0aW9uR3JvdXBJZCxcclxuICAgICAgICAgIHF1ZXN0aW9uQWxsSW5mbzogcXVlc3Rpb24sXHJcbiAgICAgICAgICBtYXhMZXZlbFZhbHVlOiBudWxsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBxdWVzdGlvbkFycjtcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tZmlsZS10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLWZpbGUtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tIFwiLi4vZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXN0aW9uRmlsZVRlbXBsYXRlRm9ybUludGVyZmFjZSB7XHJcbiAgICBpZCA6IEZvcm1Db250cm9sPG51bWJlcj47XHJcbiAgICB0eXBlSWQ6IEZvcm1Db250cm9sPFF1ZXN0aW9uVHlwZUVudW0+O1xyXG4gICAgbmFtZTogRm9ybUNvbnRyb2w8c3RyaW5nPjtcclxuICAgIHRpdGxlOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xyXG4gICAgZGVzY3JpcHRpb246IEZvcm1Db250cm9sPHN0cmluZz47XHJcbiAgICBmaWxlQXJyOiBGb3JtQ29udHJvbDx7ZmlsZTpzdHJpbmcsIG5hbWU6c3RyaW5nICwgYnl0ZUFycjpzdHJpbmcgLGZpbGVSYXc/IDpGaWxlIHwgbnVsbCB9W10gfCBudWxsPjtcclxuICAgIHN1cnZleUFuc3dlcklkOiBGb3JtQ29udHJvbDxudW1iZXI+O1xyXG4gICAgaXNTaG93OiBGb3JtQ29udHJvbDxib29sZWFuPjtcclxuICAgIGlzRGlzYWJsZWQ6IEZvcm1Db250cm9sPGJvb2xlYW4+O1xyXG4gICAgaXNNdWx0aXBsZTogRm9ybUNvbnRyb2w8Ym9vbGVhbj47XHJcbiAgICBhY2NlcHRlZFR5cGVzOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xyXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tZmlsZS10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLWZpbGUtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tIFwiLi4vZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXN0aW9uRmlsZVRlbXBsYXRlRm9ybUludGVyZmFjZSB7XHJcbiAgICBpZCA6IEZvcm1Db250cm9sPG51bWJlcj47XHJcbiAgICB0eXBlSWQ6IEZvcm1Db250cm9sPFF1ZXN0aW9uVHlwZUVudW0+O1xyXG4gICAgbmFtZTogRm9ybUNvbnRyb2w8c3RyaW5nPjtcclxuICAgIHRpdGxlOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xyXG4gICAgZGVzY3JpcHRpb246IEZvcm1Db250cm9sPHN0cmluZz47XHJcbiAgICBmaWxlQXJyOiBGb3JtQ29udHJvbDx7ZmlsZUJhc2U2NDpzdHJpbmcsIG5hbWU6c3RyaW5nICwgYnl0ZUFycjpzdHJpbmcgICxpZDpzdHJpbmd9W10gfCBudWxsPjtcclxuICAgIHN1cnZleUFuc3dlcklkOiBGb3JtQ29udHJvbDxudW1iZXI+O1xyXG4gICAgaXNTaG93OiBGb3JtQ29udHJvbDxib29sZWFuPjtcclxuICAgIGlzRGlzYWJsZWQ6IEZvcm1Db250cm9sPGJvb2xlYW4+O1xyXG4gICAgaXNNdWx0aXBsZTogRm9ybUNvbnRyb2w8Ym9vbGVhbj47XHJcbiAgICBhY2NlcHRlZFR5cGVzOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xyXG59Il19
@@ -1,3 +1,3 @@
1
1
  export class SurveyQuestionResult {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmVyeS1xdWVzdGlvbi1yZXN1bHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvc2hhcmVkL21vZGVscy9zdXJ2ZXJ5LXF1ZXN0aW9uLXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sb0JBQW9CO0NBV2hDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN1cnZleVF1ZXN0aW9uUmVzdWx0e1xyXG4gICAgU3VydmV5UGFnZUluZGV4Om51bWJlcjtcclxuICAgIFF1ZXN0aW9uSWQ7XHJcbiAgICBRdWVzdGlvbk5hbWU7XHJcbiAgICBRdWVzdGlvblR5cGU7XHJcbiAgICBBbnN3ZXJJZDtcclxuICAgIEFuc3dlcklkQXJyO1xyXG4gICAgQW5zd2VyVGV4dDtcclxuICAgIEFuc3dlckxldmVsSWQgO1xyXG4gICAgQW5zd2VyRmlsZSA6ICB7ZmlsZTpzdHJpbmcsIG5hbWU6c3RyaW5nfSBbXTtcclxuICAgIFBhc3NlZFJ1bGVRdWVzdGlvbklkPzogYW55O1xyXG59Il19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmVyeS1xdWVzdGlvbi1yZXN1bHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvc2hhcmVkL21vZGVscy9zdXJ2ZXJ5LXF1ZXN0aW9uLXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sb0JBQW9CO0NBV2hDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN1cnZleVF1ZXN0aW9uUmVzdWx0e1xyXG4gICAgU3VydmV5UGFnZUluZGV4Om51bWJlcjtcclxuICAgIFF1ZXN0aW9uSWQ7XHJcbiAgICBRdWVzdGlvbk5hbWU7XHJcbiAgICBRdWVzdGlvblR5cGU7XHJcbiAgICBBbnN3ZXJJZDtcclxuICAgIEFuc3dlcklkQXJyO1xyXG4gICAgQW5zd2VyVGV4dDtcclxuICAgIEFuc3dlckxldmVsSWQgO1xyXG4gICAgQW5zd2VyRmlsZSA6ICB7Ynl0ZUFycjpzdHJpbmcsIG5hbWU6c3RyaW5nICwgaWQ6c3RyaW5nIH0gW107XHJcbiAgICBQYXNzZWRSdWxlUXVlc3Rpb25JZD86IGFueTtcclxufSJdfQ==
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Directive, HostListener, Pipe, Component, Input, EventEmitter, Output, InjectionToken, Inject, computed, ViewChild, NgModule } from '@angular/core';
3
3
  import { v4 } from 'uuid';
4
- import { Subject, of, debounceTime, distinctUntilChanged, map, filter, pairwise, take, withLatestFrom, switchMap } from 'rxjs';
4
+ import { Subject, of, debounceTime, distinctUntilChanged, map, filter, pairwise, tap, take, withLatestFrom, switchMap } from 'rxjs';
5
5
  import * as i1 from '@angular/forms';
6
6
  import { Validators, FormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';
7
7
  import * as i3 from '@ngrx/store';
@@ -14,6 +14,7 @@ import * as i5 from '@ng-select/ng-select';
14
14
  import { NgSelectModule } from '@ng-select/ng-select';
15
15
  import * as i1$1 from '@angular/common/http';
16
16
  import { HttpHeaders, HttpClientModule } from '@angular/common/http';
17
+ import { saveAs } from 'file-saver';
17
18
  import * as i5$1 from 'ngx-bootstrap/rating';
18
19
  import { RatingModule } from 'ngx-bootstrap/rating';
19
20
  import * as i6 from 'ngx-bootstrap/pagination';
@@ -166,7 +167,7 @@ const questionAnswers = createSelector(selectSurveyData, (state) => selectAll$1(
166
167
  AnswerText: answerText,
167
168
  AnswerIdArr: x.answerIdArr,
168
169
  AnswerLevelId: x.answerLevelId,
169
- AnswerFile: x.answerFile,
170
+ AnswerFile: x.answerFile.map(x => ({ byteArr: x.byteArr, name: x.name, id: x.id })),
170
171
  PassedRuleQuestionId: x.passedRuleQuestionId
171
172
  };
172
173
  }
@@ -289,6 +290,13 @@ class SurveyLibService {
289
290
  isValid: true
290
291
  }));
291
292
  }
293
+ else if (answer.QuestionType == QuestionTypeEnum.File) {
294
+ this._Store.dispatch(surveyActions.updateQuestionFileAnswer({
295
+ questionId: answer.QuestionId,
296
+ fileArr: answer.FileArr.map(x => ({ byteArr: null, name: x.name, id: x.id })),
297
+ isValid: true
298
+ }));
299
+ }
292
300
  else if (answer.QuestionType == QuestionTypeEnum.CheckBox
293
301
  || answer.QuestionType == QuestionTypeEnum.DropDownMulti) {
294
302
  this._Store.dispatch(surveyActions.updateQuestionAnswer({
@@ -1631,6 +1639,15 @@ class ApiService {
1631
1639
  var queryString = $.param(filter);
1632
1640
  return this._HttpClient.get(`${this.url}/Institutions/GetPrograms?${queryString}`, { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });
1633
1641
  }
1642
+ downloadFile(params) {
1643
+ var queryString = $.param({ fileId: params.fileId });
1644
+ return this._HttpClient.get(`${this.url}/Survey/GetFile?${queryString}`, { observe: 'response', responseType: 'blob', headers: new HttpHeaders({ 'disable-error-alert': 'true' }) })
1645
+ .pipe(tap((res) => {
1646
+ if (res.body) {
1647
+ saveAs(res.body, params.fileName);
1648
+ }
1649
+ }));
1650
+ }
1634
1651
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ApiService, deps: [{ token: i1$1.HttpClient }, { token: LibConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1635
1652
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ApiService, providedIn: 'root' }); }
1636
1653
  }
@@ -2308,16 +2325,16 @@ class QuestionFileTemplateComponent {
2308
2325
  var question = this.questionArr().find(x => x.questionId == value.questionId);
2309
2326
  if (question?.answerText) {
2310
2327
  this.rForm.patchValue({
2311
- fileArr: question.answerFile.map(x => ({ file: x.file, name: x.name, byteArr: null })),
2328
+ fileArr: question.answerFile.map(x => ({ fileBase64: null, name: x.name, byteArr: null, id: x.id })),
2312
2329
  isDisabled: question.isDisabled,
2313
2330
  isShow: question.isShow
2314
2331
  }, { emitEvent: false });
2315
2332
  }
2316
2333
  }
2317
2334
  }
2318
- constructor(_formBuilder, _surveyLibService, _Store) {
2335
+ constructor(_formBuilder, _apiService, _Store) {
2319
2336
  this._formBuilder = _formBuilder;
2320
- this._surveyLibService = _surveyLibService;
2337
+ this._apiService = _apiService;
2321
2338
  this._Store = _Store;
2322
2339
  this.MAX_FILE_SIZE = 10 * 1024 * 1024;
2323
2340
  this.questionArr = this._Store.selectSignal(questionSelectors.pageQuestions);
@@ -2353,7 +2370,7 @@ class QuestionFileTemplateComponent {
2353
2370
  const newValue = value[1];
2354
2371
  //updated answer
2355
2372
  if (JSON.stringify(oldValue?.answerFile) != JSON.stringify(newValue?.answerFile) && oldValue?.answerFile == null) {
2356
- this.fCtrls.fileArr.setValue(newValue?.answerFile.map(x => ({ file: x.file, name: x.name, byteArr: null })), { emitEvent: false });
2373
+ this.fCtrls.fileArr.setValue(newValue?.answerFile.map(x => ({ id: x.id, name: x.name, byteArr: x.byteArr, fileBase64: null, })), { emitEvent: false });
2357
2374
  }
2358
2375
  //updated isDisabled
2359
2376
  if (oldValue?.isDisabled != newValue?.isDisabled) {
@@ -2393,7 +2410,7 @@ class QuestionFileTemplateComponent {
2393
2410
  if (this.fCtrls.isMultiple.value == false) {
2394
2411
  fileArr = [];
2395
2412
  }
2396
- fileArr.push({ file: base64Result, name: file.name, byteArr: base64Data, fileRaw: file });
2413
+ fileArr.push({ fileBase64: base64Result, name: file.name, byteArr: base64Data, id: null });
2397
2414
  this.fCtrls.fileArr.setValue(fileArr);
2398
2415
  this.fileInputRef.nativeElement.value = '';
2399
2416
  };
@@ -2402,29 +2419,31 @@ class QuestionFileTemplateComponent {
2402
2419
  }
2403
2420
  }
2404
2421
  openFileInNewTab(item) {
2405
- if (!item?.file)
2406
- return;
2407
- console.log('Opening file in new tab:', item);
2408
- const link = document.createElement('a');
2409
- link.href = item.file;
2410
- link.download = item.name || 'downloaded-file';
2411
- // Append to body, trigger click, and remove
2412
- document.body.appendChild(link);
2413
- link.click();
2414
- document.body.removeChild(link);
2422
+ if (item?.fileBase64) {
2423
+ const link = document.createElement('a');
2424
+ link.href = item.fileBase64;
2425
+ link.download = item.name || 'downloaded-file';
2426
+ // Append to body, trigger click, and remove
2427
+ document.body.appendChild(link);
2428
+ link.click();
2429
+ document.body.removeChild(link);
2430
+ }
2431
+ else if (item?.id) {
2432
+ this._apiService.downloadFile({ fileId: item.id, fileName: item.name }).subscribe();
2433
+ }
2415
2434
  }
2416
2435
  onDeleteFile(index) {
2417
2436
  const fileArr = this.fCtrls.fileArr.value || [];
2418
2437
  var newFileArr = fileArr.filter((_, i) => i !== index);
2419
2438
  this.fCtrls.fileArr.setValue(newFileArr);
2420
2439
  }
2421
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionFileTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: SurveyLibService }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Component }); }
2422
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionFileTemplateComponent, selector: "lib-question-file-template", inputs: { isArabicLang: "isArabicLang", setQuestion: "setQuestion" }, viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.fileArr.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion\">\r\n <input #fileInput class=\"form-control\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"fCtrls.isMultiple.value\"\r\n type=\"file\" (change)=\"onFileSelect($event)\">\r\n <div class=\"d-flex flex-row gap-2 mt-2\">\r\n <div *ngFor=\"let item of fCtrls.fileArr.value; let i = index\" class=\"me-4\">\r\n <a href=\"javascript:void(0)\" (click)=\"openFileInNewTab(item)\">{{item.name}}</a>\r\n <a href=\"javascript:void(0)\" class=\"text-danger ms-2\" (click)=\"onDeleteFile(i)\">\r\n <i class=\"fa-solid fa-xmark\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n </div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
2440
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionFileTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: ApiService }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Component }); }
2441
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionFileTemplateComponent, selector: "lib-question-file-template", inputs: { isArabicLang: "isArabicLang", setQuestion: "setQuestion" }, viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.fileArr.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion\">\r\n <input #fileInput class=\"form-control\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"fCtrls.isMultiple.value\"\r\n type=\"file\" [accept]=\"fCtrls.acceptedTypes.value\" (change)=\"onFileSelect($event)\">\r\n <div class=\"d-flex flex-row gap-2 mt-2\">\r\n <div *ngFor=\"let item of fCtrls.fileArr.value; let i = index\" class=\"me-4\">\r\n <a href=\"javascript:void(0)\" (click)=\"openFileInNewTab(item)\">{{item.name}}</a>\r\n <a href=\"javascript:void(0)\" class=\"text-danger ms-2\" (click)=\"onDeleteFile(i)\">\r\n <i class=\"fa-solid fa-xmark\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n </div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
2423
2442
  }
2424
2443
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionFileTemplateComponent, decorators: [{
2425
2444
  type: Component,
2426
- args: [{ selector: 'lib-question-file-template', template: "<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.fileArr.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion\">\r\n <input #fileInput class=\"form-control\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"fCtrls.isMultiple.value\"\r\n type=\"file\" (change)=\"onFileSelect($event)\">\r\n <div class=\"d-flex flex-row gap-2 mt-2\">\r\n <div *ngFor=\"let item of fCtrls.fileArr.value; let i = index\" class=\"me-4\">\r\n <a href=\"javascript:void(0)\" (click)=\"openFileInNewTab(item)\">{{item.name}}</a>\r\n <a href=\"javascript:void(0)\" class=\"text-danger ms-2\" (click)=\"onDeleteFile(i)\">\r\n <i class=\"fa-solid fa-xmark\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n </div>" }]
2427
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: SurveyLibService }, { type: i3.Store }]; }, propDecorators: { isArabicLang: [{
2445
+ args: [{ selector: 'lib-question-file-template', template: "<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.fileArr.invalid , 'd-none':fCtrls.isShow.value != true}\">\r\n <h3 class=\"quastion-title \">\r\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\r\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\r\n </h3>\r\n <div class=\"text-quastion\">\r\n <input #fileInput class=\"form-control\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"fCtrls.isMultiple.value\"\r\n type=\"file\" [accept]=\"fCtrls.acceptedTypes.value\" (change)=\"onFileSelect($event)\">\r\n <div class=\"d-flex flex-row gap-2 mt-2\">\r\n <div *ngFor=\"let item of fCtrls.fileArr.value; let i = index\" class=\"me-4\">\r\n <a href=\"javascript:void(0)\" (click)=\"openFileInNewTab(item)\">{{item.name}}</a>\r\n <a href=\"javascript:void(0)\" class=\"text-danger ms-2\" (click)=\"onDeleteFile(i)\">\r\n <i class=\"fa-solid fa-xmark\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n </div>" }]
2446
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: ApiService }, { type: i3.Store }]; }, propDecorators: { isArabicLang: [{
2428
2447
  type: Input
2429
2448
  }], setQuestion: [{
2430
2449
  type: Input
@@ -2709,7 +2728,7 @@ const _surveyReducer = createReducer(initialSurveyState, on(surveyActions.loadSu
2709
2728
  changes: {
2710
2729
  answerId: question.questionAllInfo.surveyAnswers[0].answerId,
2711
2730
  answerText: null,
2712
- answerFile: props.fileArr.map(x => ({ file: x.byteArr, name: x.name })),
2731
+ answerFile: props.fileArr.map(x => ({ byteArr: x.byteArr, name: x.name, id: x.id })),
2713
2732
  isValid: props.isValid
2714
2733
  }
2715
2734
  };