survery-lib 2.1.36 → 2.1.37

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.
@@ -54,23 +54,25 @@ export class SurveyEffects {
54
54
  else if (rule.logicActionId == LogicActionEnum.SetAnswer) {
55
55
  }
56
56
  const question = questionArr.find(x => x.questionId == resultQuestion.questionId);
57
- //update matrix sub questions
58
- if (question.questionType == QuestionTypeEnum.Matrix && question.isQuestionGroup == true) {
59
- var subQuestions = questionArr.filter(x => x.parentQuestionId == question.questionId);
60
- subQuestions.forEach(subQuestion => {
61
- if (rule.logicActionId == LogicActionEnum.Show) {
62
- toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: true });
63
- }
64
- else if (rule.logicActionId == LogicActionEnum.Hide) {
65
- toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: false });
66
- }
67
- else if (rule.logicActionId == LogicActionEnum.Enable) {
68
- toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: false });
69
- }
70
- else if (rule.logicActionId == LogicActionEnum.Disable) {
71
- toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: true });
72
- }
73
- });
57
+ if (question) {
58
+ //update matrix sub questions
59
+ if (question.questionType == QuestionTypeEnum.Matrix && question.isQuestionGroup == true) {
60
+ var subQuestions = questionArr.filter(x => x.parentQuestionId == question.questionId);
61
+ subQuestions.forEach(subQuestion => {
62
+ if (rule.logicActionId == LogicActionEnum.Show) {
63
+ toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: true });
64
+ }
65
+ else if (rule.logicActionId == LogicActionEnum.Hide) {
66
+ toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: false });
67
+ }
68
+ else if (rule.logicActionId == LogicActionEnum.Enable) {
69
+ toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: false });
70
+ }
71
+ else if (rule.logicActionId == LogicActionEnum.Disable) {
72
+ toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: true });
73
+ }
74
+ });
75
+ }
74
76
  }
75
77
  });
76
78
  }
@@ -142,4 +144,4 @@ export class SurveyEffects {
142
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SurveyEffects, decorators: [{
143
145
  type: Injectable
144
146
  }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.Store }, { type: i3.CheckRuleExpsUsecase }, { type: i4.ApiService }]; } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7O0FBSS9FLE1BQU0sT0FBTyxhQUFhO0lBQ3RCLFlBQW9CLFFBQWlCLEVBQVUsTUFBYSxFQUNoRCxxQkFBMkMsRUFBVSxXQUF1QjtRQURwRSxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNoRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFHeEYsMEJBQXFCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENB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QyxFQUFFLENBQUMsQ0FBQTtRQUNqQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFbEMsd0JBQW1CLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUN6SCxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQy9FLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDMUQsT0FBTyxhQUFhLENBQUMseUJBQXlCLENBQUMsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDNUYsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQXhJYixDQUFDOzhHQUhRLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gXCJAbmdyeC9lZmZlY3RzXCI7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IHdpdGhMYXRlc3RGcm9tLCBmaWx0ZXIsIHN3aXRjaE1hcCwgbWFwLCBjYXRjaEVycm9yLCBvZiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHN1cnZleUFjdGlvbnMgfSBmcm9tIFwiLi9zdXJ2ZXkuYWN0aW9uXCI7XHJcbmltcG9ydCB7IENoZWNrUnVsZUV4cHNVc2VjYXNlIH0gZnJvbSBcIi4uLy4uLy4uL3VzZWNhc2VzL2NoZWNrLXJ1bGUtZXhwcy51c2VjYXNlXCI7XHJcbmltcG9ydCB7IHN1cnZleVNlbGVjdG9ycyB9IGZyb20gXCIuL3N1cnZleS5zZWxlY3RvclwiO1xyXG5pbXBvcnQgeyBxdWVzdGlvblNlbGVjdG9ycyB9IGZyb20gXCIuL3F1ZXN0aW9uLnNlbGVjdG9yXCI7XHJcbmltcG9ydCB7IExvZ2ljQWN0aW9uRW51bSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvZW51bXMvbG9naWMtYWN0aW9uLmVudW1cIjtcclxuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN1cnZleUVmZmVjdHMge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYWN0aW9uczogQWN0aW9ucywgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlLFxyXG4gICAgICAgIHByaXZhdGUgX2NoZWNrUnVsZUV4cHNVc2VjYXNlOiBDaGVja1J1bGVFeHBzVXNlY2FzZSwgcHJpdmF0ZSBfYXBpU2VydmljZTogQXBpU2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVF1ZXN0aW9uQW5zd2VyJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxyXG4gICAgICAgIHRoaXMuX2FjdGlvbnMucGlwZShvZlR5cGUoc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbkFuc3dlciksIHdpdGhMYXRlc3RGcm9tKHRoaXMuX3N0b3JlLnNlbGVjdChzdXJ2ZXlTZWxlY3RvcnMucnVsZUFycilcclxuICAgICAgICAgICAgLCB0aGlzLl9zdG9yZS5zZWxlY3QocXVlc3Rpb25TZWxlY3RvcnMuYWxsUXVlc3Rpb25zKSksIHN3aXRjaE1hcCgoW2FjdGlvbiwgcnVsZUFyciwgcXVlc3Rpb25BcnJdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZm9ybWF0ZWRSdWxlQXJyOiB7IHJ1bGVJZDogYW55LCBxdWVzdGlvbklkOiBhbnkgfVtdID0gW107XHJcbiAgICAgICAgICAgICAgICBydWxlQXJyLmZvckVhY2gocnVsZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcnVsZS5ydWxlRXhwcy5mb3JFYWNoKHJ1bGVRdWVzdGlvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdGVkUnVsZUFyci5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVJZDogcnVsZS5ydWxlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBydWxlUXVlc3Rpb24ucXVlc3Rpb25JZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZFJ1bGVJZEFyciA9IGZvcm1hdGVkUnVsZUFyci5maWx0ZXIoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gYWN0aW9uLnF1ZXN0aW9uSWQpLm1hcCh4ID0+IE51bWJlcih4LnJ1bGVJZCkpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGFyciA9IHJ1bGVBcnIuZmlsdGVyKHggPT4gc2VsZWN0ZWRSdWxlSWRBcnIuZmluZChjID0+IGMgPT0geC5ydWxlSWQpICE9IG51bGwpO1xyXG5cclxuICAgICAgICAgICAgICAgIHZhciB0b2dnbGVTaG93ZWRRdWVzdGlvbklkczogeyBxdWVzdGlvbklkOiBhbnksIGlzU2hvdzogYm9vbGVhbiB9W10gPSBbXTtcclxuICAgICAgICAgICAgICAgIHZhciB0b2dnbGVEaXNhYmxlZFF1ZXN0aW9uSWRzOiB7IHF1ZXN0aW9uSWQ6IGFueSwgaXNEaXNhYmxlZDogYm9vbGVhbiB9W10gPSBbXTtcclxuICAgICAgICAgICAgICAgIGFyci5mb3JFYWNoKHJ1bGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUnVsZUV4cHNVc2VjYXNlLmV4ZWN1dGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBydWxlRXhwczogcnVsZS5ydWxlRXhwcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25zOiBxdWVzdGlvbkFycixcclxuICAgICAgICAgICAgICAgICAgICB9KS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc1Bhc3NlZCA9IHJlc3VsdC5leHByZXN0aW9uUmVzdWx0QXJyLmZpbHRlcih4ID0+IHggPT0gZmFsc2UpLmxlbmd0aCA9PSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQYXNzZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUucnVsZVJlc3VsdFF1ZXN0aW9ucy5mb3JFYWNoKHJlc3VsdFF1ZXN0aW9uID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TaG93KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZVNob3dlZFF1ZXN0aW9uSWRzLnB1c2goeyBxdWVzdGlvbklkOiByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkLCBpc1Nob3c6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkhpZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlU2hvd2VkUXVlc3Rpb25JZHMucHVzaCh7IHF1ZXN0aW9uSWQ6IHJlc3VsdFF1ZXN0aW9uLnF1ZXN0aW9uSWQsIGlzU2hvdzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkVuYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVEaXNhYmxlZFF1ZXN0aW9uSWRzLnB1c2goeyBxdWVzdGlvbklkOiByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkLCBpc0Rpc2FibGVkOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uRGlzYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVEaXNhYmxlZFF1ZXN0aW9uSWRzLnB1c2goeyBxdWVzdGlvbklkOiByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkLCBpc0Rpc2FibGVkOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TZXRBbnN3ZXIpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbiA9IHF1ZXN0aW9uQXJyLmZpbmQoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdXBkYXRlIG1hdHJpeCBzdWIgcXVlc3Rpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLk1hdHJpeCAmJiBxdWVzdGlvbi5pc1F1ZXN0aW9uR3JvdXAgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3ViUXVlc3Rpb25zID0gcXVlc3Rpb25BcnIuZmlsdGVyKHggPT4geC5wYXJlbnRRdWVzdGlvbklkID09IHF1ZXN0aW9uLnF1ZXN0aW9uSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJRdWVzdGlvbnMuZm9yRWFjaChzdWJRdWVzdGlvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TaG93KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlU2hvd2VkUXVlc3Rpb25JZHMucHVzaCh7IHF1ZXN0aW9uSWQ6IHN1YlF1ZXN0aW9uLnF1ZXN0aW9uSWQsIGlzU2hvdzogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5IaWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlU2hvd2VkUXVlc3Rpb25JZHMucHVzaCh7IHF1ZXN0aW9uSWQ6IHN1YlF1ZXN0aW9uLnF1ZXN0aW9uSWQsIGlzU2hvdzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkVuYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZURpc2FibGVkUXVlc3Rpb25JZHMucHVzaCh7IHF1ZXN0aW9uSWQ6IHN1YlF1ZXN0aW9uLnF1ZXN0aW9uSWQsIGlzRGlzYWJsZWQ6IGZhbHNlIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5EaXNhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRGlzYWJsZWRRdWVzdGlvbklkcy5wdXNoKHsgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCwgaXNEaXNhYmxlZDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5ydWxlUmVzdWx0UXVlc3Rpb25zLmZvckVhY2gocmVzdWx0UXVlc3Rpb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uID0gcXVlc3Rpb25BcnIuZmluZCh4ID0+IHgucXVlc3Rpb25JZCA9PSByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXN0aW9uLmlzU2hvdyAhPSBxdWVzdGlvbi5pc1Nob3dfZGVmYXVsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlU2hvd2VkUXVlc3Rpb25JZHMucHVzaCh7IHF1ZXN0aW9uSWQ6IHJlc3VsdFF1ZXN0aW9uLnF1ZXN0aW9uSWQsIGlzU2hvdzogcXVlc3Rpb24uaXNTaG93X2RlZmF1bHQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChxdWVzdGlvbi5pc0Rpc2FibGVkICE9IHF1ZXN0aW9uLmlzRGlzYWJsZWRfZGVmYXVsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRGlzYWJsZWRRdWVzdGlvbklkcy5wdXNoKHsgcXVlc3Rpb25JZDogcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCwgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNEaXNhYmxlZF9kZWZhdWx0IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uTWF0cml4ICYmIHF1ZXN0aW9uLmlzUXVlc3Rpb25Hcm91cCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3ViUXVlc3Rpb25zID0gcXVlc3Rpb25BcnIuZmlsdGVyKHggPT4geC5wYXJlbnRRdWVzdGlvbklkID09IHF1ZXN0aW9uLnF1ZXN0aW9uSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViUXVlc3Rpb25zLmZvckVhY2goc3ViUXVlc3Rpb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJRdWVzdGlvbi5pc1Nob3cgIT0gc3ViUXVlc3Rpb24uaXNTaG93X2RlZmF1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlU2hvd2VkUXVlc3Rpb25JZHMucHVzaCh7IHF1ZXN0aW9uSWQ6IHN1YlF1ZXN0aW9uLnF1ZXN0aW9uSWQsIGlzU2hvdzogc3ViUXVlc3Rpb24uaXNTaG93X2RlZmF1bHQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3ViUXVlc3Rpb24uaXNEaXNhYmxlZCAhPSBzdWJRdWVzdGlvbi5pc0Rpc2FibGVkX2RlZmF1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRGlzYWJsZWRRdWVzdGlvbklkcy5wdXNoKHsgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCwgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNEaXNhYmxlZF9kZWZhdWx0IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgaGlkZGVuUXVlc3Rpb25JZHMgPSB0b2dnbGVTaG93ZWRRdWVzdGlvbklkcy5maWx0ZXIoeCA9PiB4LmlzU2hvdyA9PSBmYWxzZSkubWFwKHggPT4geC5xdWVzdGlvbklkKTtcclxuICAgICAgICAgICAgICAgIGlmIChoaWRkZW5RdWVzdGlvbklkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbnNTaG93KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZHM6IGhpZGRlblF1ZXN0aW9uSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1Nob3c6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHNob3dlZFF1ZXN0aW9uSWRzID0gdG9nZ2xlU2hvd2VkUXVlc3Rpb25JZHMuZmlsdGVyKHggPT4geC5pc1Nob3cgPT0gdHJ1ZSkubWFwKHggPT4geC5xdWVzdGlvbklkKTtcclxuICAgICAgICAgICAgICAgIGlmIChzaG93ZWRRdWVzdGlvbklkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbnNTaG93KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZHM6IHNob3dlZFF1ZXN0aW9uSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1Nob3c6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgZGlzYWJsZWRRdWVzdGlvbklkcyA9IHRvZ2dsZURpc2FibGVkUXVlc3Rpb25JZHMuZmlsdGVyKHggPT4geC5pc0Rpc2FibGVkID09IHRydWUpLm1hcCh4ID0+IHgucXVlc3Rpb25JZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZWRRdWVzdGlvbklkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbnNEaXNhYmxlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZHM6IGRpc2FibGVkUXVlc3Rpb25JZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgZW5hYmxlZFF1ZXN0aW9uSWRzID0gdG9nZ2xlRGlzYWJsZWRRdWVzdGlvbklkcy5maWx0ZXIoeCA9PiB4LmlzRGlzYWJsZWQgPT0gZmFsc2UpLm1hcCh4ID0+IHgucXVlc3Rpb25JZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZW5hYmxlZFF1ZXN0aW9uSWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uc0Rpc2FibGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkczogZW5hYmxlZFF1ZXN0aW9uSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoW10pXHJcbiAgICAgICAgICAgIH0pKSwgeyBkaXNwYXRjaDogZmFsc2UgfSk7XHJcblxyXG4gICAgbG9hZEluc3RpdHV0aW9uQXJyJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxyXG4gICAgICAgIHRoaXMuX2FjdGlvbnMucGlwZShvZlR5cGUoc3VydmV5QWN0aW9ucy5sb2FkSW5zdGl0dXRpb25BcnIpLCB3aXRoTGF0ZXN0RnJvbSh0aGlzLl9zdG9yZS5zZWxlY3Qoc3VydmV5U2VsZWN0b3JzLmluc3RpdHV0aW9uQXJyKSlcclxuICAgICAgICAgICAgLCBmaWx0ZXIoKFthY3Rpb24sIGluc3RpdHV0aW9uQXJyXSkgPT4gaW5zdGl0dXRpb25BcnIubGVuZ3RoID09IDApLCBzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UuZ2V0QWxsSW5zdGl0dXRpb25zKCkucGlwZShtYXAoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdXJ2ZXlBY3Rpb25zLmxvYWRJbnN0aXR1dGlvbkFyclN1Y2Nlc3MoeyBpbnN0aXR1dGlvbkFycjogcmVzLnJlc3BvbnNlRGV0YWlscyB9KTtcclxuICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICB9KSkpO1xyXG59XHJcblxyXG4iXX0=
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7O0FBSS9FLE1BQU0sT0FBTyxhQUFhO0lBQ3RCLFlBQW9CLFFBQWlCLEVBQVUsTUFBYSxFQUNoRCxxQkFBMkMsRUFBVSxXQUF1QjtRQURwRSxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNoRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFHeEYsMEJBQXFCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENB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QUFDO2FBQ1A7WUFFRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNqQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFbEMsd0JBQW1CLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUN6SCxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQy9FLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDMUQsT0FBTyxhQUFhLENBQUMseUJBQXlCLENBQUMsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDNUYsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQTFJYixDQUFDOzhHQUhRLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gXCJAbmdyeC9lZmZlY3RzXCI7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IHdpdGhMYXRlc3RGcm9tLCBmaWx0ZXIsIHN3aXRjaE1hcCwgbWFwLCBjYXRjaEVycm9yLCBvZiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHN1cnZleUFjdGlvbnMgfSBmcm9tIFwiLi9zdXJ2ZXkuYWN0aW9uXCI7XHJcbmltcG9ydCB7IENoZWNrUnVsZUV4cHNVc2VjYXNlIH0gZnJvbSBcIi4uLy4uLy4uL3VzZWNhc2VzL2NoZWNrLXJ1bGUtZXhwcy51c2VjYXNlXCI7XHJcbmltcG9ydCB7IHN1cnZleVNlbGVjdG9ycyB9IGZyb20gXCIuL3N1cnZleS5zZWxlY3RvclwiO1xyXG5pbXBvcnQgeyBxdWVzdGlvblNlbGVjdG9ycyB9IGZyb20gXCIuL3F1ZXN0aW9uLnNlbGVjdG9yXCI7XHJcbmltcG9ydCB7IExvZ2ljQWN0aW9uRW51bSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvZW51bXMvbG9naWMtYWN0aW9uLmVudW1cIjtcclxuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN1cnZleUVmZmVjdHMge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYWN0aW9uczogQWN0aW9ucywgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlLFxyXG4gICAgICAgIHByaXZhdGUgX2NoZWNrUnVsZUV4cHNVc2VjYXNlOiBDaGVja1J1bGVFeHBzVXNlY2FzZSwgcHJpdmF0ZSBfYXBpU2VydmljZTogQXBpU2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVF1ZXN0aW9uQW5zd2VyJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxyXG4gICAgICAgIHRoaXMuX2FjdGlvbnMucGlwZShvZlR5cGUoc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbkFuc3dlciksIHdpdGhMYXRlc3RGcm9tKHRoaXMuX3N0b3JlLnNlbGVjdChzdXJ2ZXlTZWxlY3RvcnMucnVsZUFycilcclxuICAgICAgICAgICAgLCB0aGlzLl9zdG9yZS5zZWxlY3QocXVlc3Rpb25TZWxlY3RvcnMuYWxsUXVlc3Rpb25zKSksIHN3aXRjaE1hcCgoW2FjdGlvbiwgcnVsZUFyciwgcXVlc3Rpb25BcnJdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZm9ybWF0ZWRSdWxlQXJyOiB7IHJ1bGVJZDogYW55LCBxdWVzdGlvbklkOiBhbnkgfVtdID0gW107XHJcbiAgICAgICAgICAgICAgICBydWxlQXJyLmZvckVhY2gocnVsZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcnVsZS5ydWxlRXhwcy5mb3JFYWNoKHJ1bGVRdWVzdGlvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdGVkUnVsZUFyci5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVJZDogcnVsZS5ydWxlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBydWxlUXVlc3Rpb24ucXVlc3Rpb25JZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZFJ1bGVJZEFyciA9IGZvcm1hdGVkUnVsZUFyci5maWx0ZXIoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gYWN0aW9uLnF1ZXN0aW9uSWQpLm1hcCh4ID0+IE51bWJlcih4LnJ1bGVJZCkpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGFyciA9IHJ1bGVBcnIuZmlsdGVyKHggPT4gc2VsZWN0ZWRSdWxlSWRBcnIuZmluZChjID0+IGMgPT0geC5ydWxlSWQpICE9IG51bGwpO1xyXG5cclxuICAgICAgICAgICAgICAgIHZhciB0b2dnbGVTaG93ZWRRdWVzdGlvbklkczogeyBxdWVzdGlvbklkOiBhbnksIGlzU2hvdzogYm9vbGVhbiB9W10gPSBbXTtcclxuICAgICAgICAgICAgICAgIHZhciB0b2dnbGVEaXNhYmxlZFF1ZXN0aW9uSWRzOiB7IHF1ZXN0aW9uSWQ6IGFueSwgaXNEaXNhYmxlZDogYm9vbGVhbiB9W10gPSBbXTtcclxuICAgICAgICAgICAgICAgIGFyci5mb3JFYWNoKHJ1bGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUnVsZUV4cHNVc2VjYXNlLmV4ZWN1dGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBydWxlRXhwczogcnVsZS5ydWxlRXhwcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25zOiBxdWVzdGlvbkFycixcclxuICAgICAgICAgICAgICAgICAgICB9KS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc1Bhc3NlZCA9IHJlc3VsdC5leHByZXN0aW9uUmVzdWx0QXJyLmZpbHRlcih4ID0+IHggPT0gZmFsc2UpLmxlbmd0aCA9PSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQYXNzZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUucnVsZVJlc3VsdFF1ZXN0aW9ucy5mb3JFYWNoKHJlc3VsdFF1ZXN0aW9uID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TaG93KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZVNob3dlZFF1ZXN0aW9uSWRzLnB1c2goeyBxdWVzdGlvbklkOiByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkLCBpc1Nob3c6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkhpZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlU2hvd2VkUXVlc3Rpb25JZHMucHVzaCh7IHF1ZXN0aW9uSWQ6IHJlc3VsdFF1ZXN0aW9uLnF1ZXN0aW9uSWQsIGlzU2hvdzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkVuYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVEaXNhYmxlZFF1ZXN0aW9uSWRzLnB1c2goeyBxdWVzdGlvbklkOiByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkLCBpc0Rpc2FibGVkOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uRGlzYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVEaXNhYmxlZFF1ZXN0aW9uSWRzLnB1c2goeyBxdWVzdGlvbklkOiByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkLCBpc0Rpc2FibGVkOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TZXRBbnN3ZXIpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbiA9IHF1ZXN0aW9uQXJyLmZpbmQoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChxdWVzdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3VwZGF0ZSBtYXRyaXggc3ViIHF1ZXN0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uTWF0cml4ICYmIHF1ZXN0aW9uLmlzUXVlc3Rpb25Hcm91cCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3ViUXVlc3Rpb25zID0gcXVlc3Rpb25BcnIuZmlsdGVyKHggPT4geC5wYXJlbnRRdWVzdGlvbklkID09IHF1ZXN0aW9uLnF1ZXN0aW9uSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViUXVlc3Rpb25zLmZvckVhY2goc3ViUXVlc3Rpb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLlNob3cpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlU2hvd2VkUXVlc3Rpb25JZHMucHVzaCh7IHF1ZXN0aW9uSWQ6IHN1YlF1ZXN0aW9uLnF1ZXN0aW9uSWQsIGlzU2hvdzogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uSGlkZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVTaG93ZWRRdWVzdGlvbklkcy5wdXNoKHsgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCwgaXNTaG93OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5FbmFibGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRGlzYWJsZWRRdWVzdGlvbklkcy5wdXNoKHsgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCwgaXNEaXNhYmxlZDogZmFsc2UgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5EaXNhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZURpc2FibGVkUXVlc3Rpb25JZHMucHVzaCh7IHF1ZXN0aW9uSWQ6IHN1YlF1ZXN0aW9uLnF1ZXN0aW9uSWQsIGlzRGlzYWJsZWQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLnJ1bGVSZXN1bHRRdWVzdGlvbnMuZm9yRWFjaChyZXN1bHRRdWVzdGlvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb24gPSBxdWVzdGlvbkFyci5maW5kKHggPT4geC5xdWVzdGlvbklkID09IHJlc3VsdFF1ZXN0aW9uLnF1ZXN0aW9uSWQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXN0aW9uLmlzU2hvdyAhPSBxdWVzdGlvbi5pc1Nob3dfZGVmYXVsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlU2hvd2VkUXVlc3Rpb25JZHMucHVzaCh7IHF1ZXN0aW9uSWQ6IHJlc3VsdFF1ZXN0aW9uLnF1ZXN0aW9uSWQsIGlzU2hvdzogcXVlc3Rpb24uaXNTaG93X2RlZmF1bHQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChxdWVzdGlvbi5pc0Rpc2FibGVkICE9IHF1ZXN0aW9uLmlzRGlzYWJsZWRfZGVmYXVsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRGlzYWJsZWRRdWVzdGlvbklkcy5wdXNoKHsgcXVlc3Rpb25JZDogcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCwgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNEaXNhYmxlZF9kZWZhdWx0IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uTWF0cml4ICYmIHF1ZXN0aW9uLmlzUXVlc3Rpb25Hcm91cCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3ViUXVlc3Rpb25zID0gcXVlc3Rpb25BcnIuZmlsdGVyKHggPT4geC5wYXJlbnRRdWVzdGlvbklkID09IHF1ZXN0aW9uLnF1ZXN0aW9uSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViUXVlc3Rpb25zLmZvckVhY2goc3ViUXVlc3Rpb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJRdWVzdGlvbi5pc1Nob3cgIT0gc3ViUXVlc3Rpb24uaXNTaG93X2RlZmF1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlU2hvd2VkUXVlc3Rpb25JZHMucHVzaCh7IHF1ZXN0aW9uSWQ6IHN1YlF1ZXN0aW9uLnF1ZXN0aW9uSWQsIGlzU2hvdzogc3ViUXVlc3Rpb24uaXNTaG93X2RlZmF1bHQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3ViUXVlc3Rpb24uaXNEaXNhYmxlZCAhPSBzdWJRdWVzdGlvbi5pc0Rpc2FibGVkX2RlZmF1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRGlzYWJsZWRRdWVzdGlvbklkcy5wdXNoKHsgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCwgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNEaXNhYmxlZF9kZWZhdWx0IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBoaWRkZW5RdWVzdGlvbklkcyA9IHRvZ2dsZVNob3dlZFF1ZXN0aW9uSWRzLmZpbHRlcih4ID0+IHguaXNTaG93ID09IGZhbHNlKS5tYXAoeCA9PiB4LnF1ZXN0aW9uSWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGhpZGRlblF1ZXN0aW9uSWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uc1Nob3coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkczogaGlkZGVuUXVlc3Rpb25JZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU2hvdzogZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2hvd2VkUXVlc3Rpb25JZHMgPSB0b2dnbGVTaG93ZWRRdWVzdGlvbklkcy5maWx0ZXIoeCA9PiB4LmlzU2hvdyA9PSB0cnVlKS5tYXAoeCA9PiB4LnF1ZXN0aW9uSWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNob3dlZFF1ZXN0aW9uSWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uc1Nob3coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkczogc2hvd2VkUXVlc3Rpb25JZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU2hvdzogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZFF1ZXN0aW9uSWRzID0gdG9nZ2xlRGlzYWJsZWRRdWVzdGlvbklkcy5maWx0ZXIoeCA9PiB4LmlzRGlzYWJsZWQgPT0gdHJ1ZSkubWFwKHggPT4geC5xdWVzdGlvbklkKTtcclxuICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlZFF1ZXN0aW9uSWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uc0Rpc2FibGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkczogZGlzYWJsZWRRdWVzdGlvbklkcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBlbmFibGVkUXVlc3Rpb25JZHMgPSB0b2dnbGVEaXNhYmxlZFF1ZXN0aW9uSWRzLmZpbHRlcih4ID0+IHguaXNEaXNhYmxlZCA9PSBmYWxzZSkubWFwKHggPT4geC5xdWVzdGlvbklkKTtcclxuICAgICAgICAgICAgICAgIGlmIChlbmFibGVkUXVlc3Rpb25JZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25zRGlzYWJsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uSWRzOiBlbmFibGVkUXVlc3Rpb25JZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBvZihbXSlcclxuICAgICAgICAgICAgfSkpLCB7IGRpc3BhdGNoOiBmYWxzZSB9KTtcclxuXHJcbiAgICBsb2FkSW5zdGl0dXRpb25BcnIkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICAgICAgdGhpcy5fYWN0aW9ucy5waXBlKG9mVHlwZShzdXJ2ZXlBY3Rpb25zLmxvYWRJbnN0aXR1dGlvbkFyciksIHdpdGhMYXRlc3RGcm9tKHRoaXMuX3N0b3JlLnNlbGVjdChzdXJ2ZXlTZWxlY3RvcnMuaW5zdGl0dXRpb25BcnIpKVxyXG4gICAgICAgICAgICAsIGZpbHRlcigoW2FjdGlvbiwgaW5zdGl0dXRpb25BcnJdKSA9PiBpbnN0aXR1dGlvbkFyci5sZW5ndGggPT0gMCksIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5nZXRBbGxJbnN0aXR1dGlvbnMoKS5waXBlKG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1cnZleUFjdGlvbnMubG9hZEluc3RpdHV0aW9uQXJyU3VjY2Vzcyh7IGluc3RpdHV0aW9uQXJyOiByZXMucmVzcG9uc2VEZXRhaWxzIH0pO1xyXG4gICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIH0pKSk7XHJcbn1cclxuXHJcbiJdfQ==
@@ -2601,23 +2601,25 @@ class SurveyEffects {
2601
2601
  else if (rule.logicActionId == LogicActionEnum.SetAnswer) {
2602
2602
  }
2603
2603
  const question = questionArr.find(x => x.questionId == resultQuestion.questionId);
2604
- //update matrix sub questions
2605
- if (question.questionType == QuestionTypeEnum.Matrix && question.isQuestionGroup == true) {
2606
- var subQuestions = questionArr.filter(x => x.parentQuestionId == question.questionId);
2607
- subQuestions.forEach(subQuestion => {
2608
- if (rule.logicActionId == LogicActionEnum.Show) {
2609
- toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: true });
2610
- }
2611
- else if (rule.logicActionId == LogicActionEnum.Hide) {
2612
- toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: false });
2613
- }
2614
- else if (rule.logicActionId == LogicActionEnum.Enable) {
2615
- toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: false });
2616
- }
2617
- else if (rule.logicActionId == LogicActionEnum.Disable) {
2618
- toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: true });
2619
- }
2620
- });
2604
+ if (question) {
2605
+ //update matrix sub questions
2606
+ if (question.questionType == QuestionTypeEnum.Matrix && question.isQuestionGroup == true) {
2607
+ var subQuestions = questionArr.filter(x => x.parentQuestionId == question.questionId);
2608
+ subQuestions.forEach(subQuestion => {
2609
+ if (rule.logicActionId == LogicActionEnum.Show) {
2610
+ toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: true });
2611
+ }
2612
+ else if (rule.logicActionId == LogicActionEnum.Hide) {
2613
+ toggleShowedQuestionIds.push({ questionId: subQuestion.questionId, isShow: false });
2614
+ }
2615
+ else if (rule.logicActionId == LogicActionEnum.Enable) {
2616
+ toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: false });
2617
+ }
2618
+ else if (rule.logicActionId == LogicActionEnum.Disable) {
2619
+ toggleDisabledQuestionIds.push({ questionId: subQuestion.questionId, isDisabled: true });
2620
+ }
2621
+ });
2622
+ }
2621
2623
  }
2622
2624
  });
2623
2625
  }