survery-lib 0.1.39 → 0.1.40
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.
- package/esm2022/lib/components/question-matrix-template/question-matrix-template.component.mjs +7 -1
- package/esm2022/lib/survery-lib.component.mjs +11 -4
- package/fesm2022/survery-lib.mjs +16 -3
- package/fesm2022/survery-lib.mjs.map +1 -1
- package/lib/survery-lib.component.d.ts +1 -0
- package/package.json +1 -1
package/esm2022/lib/components/question-matrix-template/question-matrix-template.component.mjs
CHANGED
|
@@ -70,6 +70,12 @@ export class QuestionMatrixTemplateComponent {
|
|
|
70
70
|
}
|
|
71
71
|
});
|
|
72
72
|
});
|
|
73
|
+
this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {
|
|
74
|
+
this.fCtrls.isDisabled.setValue(x.isDisabled);
|
|
75
|
+
});
|
|
76
|
+
this._surveyLibService.questionIsShowObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {
|
|
77
|
+
this.fCtrls.isShow.setValue(x.isShow);
|
|
78
|
+
});
|
|
73
79
|
}
|
|
74
80
|
onChangeAnswer(question, answer) {
|
|
75
81
|
const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);
|
|
@@ -95,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
95
101
|
}], setQuestion: [{
|
|
96
102
|
type: Input
|
|
97
103
|
}] } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQXdCLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVF2RSxNQUFNLE9BQU8sK0JBQStCO0lBSzFDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUlELElBQWEsV0FBVyxDQUFDLEtBQXdCO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ3BCLEVBQUUsRUFBRSxLQUFLLENBQUMs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QUFPLE9BQXNCLENBQUM7SUFDaEMsQ0FBQzs4R0F4RlUsK0JBQStCO2tHQUEvQiwrQkFBK0IsNklDcEI1QyxpMURBb0NNOzsyRkRoQk8sK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLDhCQUE4QjtpSUFpQjlCLE9BQU87c0JBQWhCLE1BQU07Z0JBRU0sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0BuZy1zdGFjay9mb3Jtcyc7XG5pbXBvcnQgeyBTdXJ2ZXlBbnN3ZXJEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktYW5zd2VyLmR0byc7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkdyb3VwRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLWdyb3VwLmR0byc7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xuaW1wb3J0IHsgU3VydmV5U3ViUXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktc3ViLXF1ZXN0aW9uLmR0byc7XG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZSwgU3ViUXVlc3Rpb25DaGlsZE9mUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xuaW1wb3J0IHsgdjQgYXMgZ3VpZEdlbmVyYXRvciB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3MvZGVmYXVsdC1xdWVzdGlvbi1hbnN3ZXJzLmR0byc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3VydmV5TGliU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N1cnZleS1saWIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGVsZW1JZCA9IGd1aWRHZW5lcmF0b3IoKSBhcyBzdHJpbmc7XG4gIHN1cnZleVF1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0bztcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgQE91dHB1dCgpIGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXN0aW9uQW5zd2VyTW9kZWw+KCk7XG5cbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xuICAgIHRoaXMuc3VydmV5UXVlc3Rpb24gPSB2YWx1ZTtcbiAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXG4gICAgICB0eXBlSWQ6IHZhbHVlLnF1ZXN0aW9uVHlwZUlkICxcbiAgICAgIGlzRGlzYWJsZWQ6IHZhbHVlLmlzUmVhZE9ubHksXG4gICAgICBpc1Nob3c6IHZhbHVlLmlzVmlzYWJsZVxuICAgIH0pO1xuXG4gICAgdmFsdWUuc3VydmV5U3ViUXVlc3Rpb25zLmZvckVhY2goeCA9PiB7XG4gICAgICB2YXIgZ3JvdXAgPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xuICAgICAgICBzdWJRdWVzdGlvbklkOiBbeC5xdWVzdGlvbklkXSxcbiAgICAgICAgcXVlc3Rpb25UaXRsZTogW3gucXVlc3Rpb25UaXRsZV0sXG4gICAgICAgIGFuc3dlcjogW251bGxdLFxuICAgICAgfSk7XG5cbiAgICAgIGlmICh2YWx1ZS5pc1JlcXVpcmVkID09IHRydWUpIHtcbiAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH1cblxuICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xuICAgICAgICAgIFF1ZXN0aW9uSWQ6IGdyb3VwLnZhbHVlLnN1YlF1ZXN0aW9uSWQsXG4gICAgICAgICAgQW5zd2VyOiBncm91cC52YWx1ZS5hbnN3ZXIsXG4gICAgICAgICAgSXNWYWxpZDogZ3JvdXAuY29udHJvbHMuYW5zd2VyLnZhbGlkXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkucHVzaChncm91cCk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIgLCBwcml2YXRlIF9zdXJ2ZXlMaWJTZXJ2aWNlOlN1cnZleUxpYlNlcnZpY2UpIHtcbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcbiAgICAgIGlkOiBbbnVsbF0sXG4gICAgICB0eXBlSWQ6IFtudWxsXSxcbiAgICAgIGlzRGlzYWJsZWQ6W2ZhbHNlXSxcbiAgICAgIGlzU2hvdyA6IFt0cnVlXSxcbiAgICAgIHN1YlF1ZXN0aW9uQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PFN1YlF1ZXN0aW9uQ2hpbGRPZlF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlPihbXSlcbiAgICB9KTsgIFxuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc3VydmV5QW5zd2Vyc09ic3J2XG4gICAgLnBpcGUobWFwKHg9PiB4LmRlZmF1bHRBbnN3ZXJzLmZpbHRlcih4PT54LlBhcmVudFF1ZXN0aW9uSWQgPT0gdGhpcy5mQ3RybHMuaWQudmFsdWUpKSlcbiAgICAucGlwZShmaWx0ZXIoeD0+eC5sZW5ndGggID4gMCkpXG4gICAgLnN1YnNjcmliZShhbnN3ZXJzPT57XG4gICAgICBjb25zb2xlLmxvZyhhbnN3ZXJzKTtcbiAgICAgIHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkuY29udHJvbHMuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgIHZhciBhbnN3ZXIgPSBhbnN3ZXJzLmZpbmQoeCA9PiB4LlF1ZXN0aW9uSWQgPT0gZ3JvdXAudmFsdWUuc3ViUXVlc3Rpb25JZCk7XG4gICAgICAgIGlmIChhbnN3ZXIgIT0gbnVsbCkge1xuICAgICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlci5zZXRWYWx1ZShhbnN3ZXIuQW5zd2VySWQpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBvbkNoYW5nZUFuc3dlcihxdWVzdGlvbjogU3ViUXVlc3Rpb25DaGlsZE9mUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2UsIGFuc3dlcjogU3VydmV5QW5zd2VyRHRvKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZDdHJscy5zdWJRdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHguc3ViUXVlc3Rpb25JZCA9PSBxdWVzdGlvbi5zdWJRdWVzdGlvbklkKTtcbiAgICB2YXIgc3ViUXVlc3Rpb25Hcm91cCA9IHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkuY29udHJvbHNbaW5kZXhdO1xuXG4gICAgc3ViUXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXIuc2V0VmFsdWUoYW5zd2VyLmFuc3dlcklkKTtcblxuICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcbiAgICAgIFF1ZXN0aW9uSWQ6IHN1YlF1ZXN0aW9uR3JvdXAudmFsdWUuc3ViUXVlc3Rpb25JZCxcbiAgICAgIEFuc3dlcjogc3ViUXVlc3Rpb25Hcm91cC52YWx1ZS5hbnN3ZXIsXG4gICAgICBJc1ZhbGlkOiBzdWJRdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlci52YWxpZFxuICAgIH0pO1xuICB9XG5cbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2ZDdHJscy5pZC52YWx1ZVwiIHN0eWxlPVwiIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XCJcbltuZ0NsYXNzXT1cInsnZC1ub25lJzpmQ3RybHMuaXNTaG93LnZhbHVlICE9IHRydWV9XCI+XG4gIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIFwiPlxuICAgIHt7c3VydmV5UXVlc3Rpb24/LnF1ZXN0aW9uVGl0bGV9fVxuICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IHJlZDtcIiAqbmdJZj1cInN1cnZleVF1ZXN0aW9uLmlzUmVxdWlyZWRcIj4qPC9zcGFuPlxuICA8L2gzPlxuICA8ZGl2IGNsYXNzPVwibWF0cml4LXF1ZXN0aW9uXCIgW2Zvcm1Hcm91cF09XCJyRm9ybVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtdGFibGVcIiBmb3JtQXJyYXlOYW1lPVwic3ViUXVlc3Rpb25BcnJheVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1oZWFkLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWNvbFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1jb2xcIiAqbmdGb3I9XCJsZXQgYW5zd2VycyBvZiBzdXJ2ZXlRdWVzdGlvbj8uc3VydmV5QW5zd2Vyc1wiPlxuICAgICAgICAgIHt7YW5zd2Vycy5hbnN3ZXJUaXRsZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtcm93XCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uR3JvdXAgb2YgZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkuY29udHJvbHMgO2xldCBzdWJRdWVzdGlvbkluZGV4ID0gaW5kZXhcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlci5pbnZhbGlkfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWNvbCBtYXRyaXgtc3ViLXF1YXN0aW9uXCI+XG4gICAgICAgICAge3txdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uVGl0bGV9fSBcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtY29sIGFuc3dlcl9fY29udGFpbmVyXCIgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBzdXJ2ZXlRdWVzdGlvbj8uc3VydmV5QW5zd2VycztsZXQgYW5zd2VySW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2stcmFkaW8gZm9ybS1jaGVjay1pbmxpbmVcIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuLW9wdGlvbl97e3N1YlF1ZXN0aW9uSW5kZXh9fVwiXG4gICAgICAgICAgICAgIGlkPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuX3t7c3ViUXVlc3Rpb25JbmRleH19X3t7YW5zd2VySW5kZXh9fVwiIChjaGFuZ2UpPVwib25DaGFuZ2VBbnN3ZXIocXVlc3Rpb25Hcm91cC52YWx1ZSAsYW5zd2VyKVwiXG4gICAgICAgICAgICAgIHZhbHVlPVwie3thbnN3ZXIuYW5zd2VySWR9fVwiICBbY2hlY2tlZF09XCJhbnN3ZXIuYW5zd2VySWQgPT0gcXVlc3Rpb25Hcm91cC52YWx1ZS5hbnN3ZXJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgZC1pbmxpbmUgZC1sZy1ub25lXCJcbiAgICAgICAgICAgICAgZm9yPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuX3t7c3ViUXVlc3Rpb25JbmRleH19X3t7YW5zd2VySW5kZXh9fVwiPiB7e2Fuc3dlci5hbnN3ZXJUaXRsZX19PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQXdCLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVF2RSxNQUFNLE9BQU8sK0JBQStCO0lBSzFDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUlELElBQWEsV0FBVyxDQUFDLEtBQXdCO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ3BCLEVBQUUsRUFBRSxLQUFLLENBQUMs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RUFBRSxNQUF1QjtRQUNyRyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRyxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixVQUFVLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGFBQWE7WUFDaEQsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUs7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQVk7UUFDL0IsT0FBTyxPQUFzQixDQUFDO0lBQ2hDLENBQUM7OEdBaEdVLCtCQUErQjtrR0FBL0IsK0JBQStCLDZJQ3BCNUMsaTFEQW9DTTs7MkZEaEJPLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSw4QkFBOEI7aUlBaUI5QixPQUFPO3NCQUFoQixNQUFNO2dCQUVNLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xuaW1wb3J0IHsgU3VydmV5QW5zd2VyRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LWFuc3dlci5kdG8nO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25Hcm91cER0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi1ncm91cC5kdG8nO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFN1cnZleVN1YlF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXN1Yi1xdWVzdGlvbi5kdG8nO1xuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2UsIFN1YlF1ZXN0aW9uQ2hpbGRPZlF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcbmltcG9ydCB7IHY0IGFzIGd1aWRHZW5lcmF0b3IgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN1cnZleUxpYlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBlbGVtSWQgPSBndWlkR2VuZXJhdG9yKCkgYXMgc3RyaW5nO1xuICBzdXJ2ZXlRdWVzdGlvbjogU3VydmV5UXVlc3Rpb25EdG87XG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+O1xuXG4gIGdldCBmQ3RybHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuckZvcm0uY29udHJvbHM7XG4gIH1cblxuICBnZXQgcXVlc3Rpb25UeXBlRW51bSgpIHtcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxRdWVzdGlvbkFuc3dlck1vZGVsPigpO1xuXG4gIEBJbnB1dCgpIHNldCBzZXRRdWVzdGlvbih2YWx1ZTogU3VydmV5UXVlc3Rpb25EdG8pIHtcbiAgICB0aGlzLnN1cnZleVF1ZXN0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIGlkOiB2YWx1ZS5xdWVzdGlvbklkLFxuICAgICAgdHlwZUlkOiB2YWx1ZS5xdWVzdGlvblR5cGVJZCAsXG4gICAgICBpc0Rpc2FibGVkOiB2YWx1ZS5pc1JlYWRPbmx5LFxuICAgICAgaXNTaG93OiB2YWx1ZS5pc1Zpc2FibGVcbiAgICB9KTtcblxuICAgIHZhbHVlLnN1cnZleVN1YlF1ZXN0aW9ucy5mb3JFYWNoKHggPT4ge1xuICAgICAgdmFyIGdyb3VwID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8U3ViUXVlc3Rpb25DaGlsZE9mUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgc3ViUXVlc3Rpb25JZDogW3gucXVlc3Rpb25JZF0sXG4gICAgICAgIHF1ZXN0aW9uVGl0bGU6IFt4LnF1ZXN0aW9uVGl0bGVdLFxuICAgICAgICBhbnN3ZXI6IFtudWxsXSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodmFsdWUuaXNSZXF1aXJlZCA9PSB0cnVlKSB7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9XG5cbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlci52YWx1ZUNoYW5nZXMucGlwZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XG4gICAgICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcbiAgICAgICAgICBRdWVzdGlvbklkOiBncm91cC52YWx1ZS5zdWJRdWVzdGlvbklkLFxuICAgICAgICAgIEFuc3dlcjogZ3JvdXAudmFsdWUuYW5zd2VyLFxuICAgICAgICAgIElzVmFsaWQ6IGdyb3VwLmNvbnRyb2xzLmFuc3dlci52YWxpZFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmZDdHJscy5zdWJRdWVzdGlvbkFycmF5LnB1c2goZ3JvdXApO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyICwgcHJpdmF0ZSBfc3VydmV5TGliU2VydmljZTpTdXJ2ZXlMaWJTZXJ2aWNlKSB7XG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogW251bGxdLFxuICAgICAgdHlwZUlkOiBbbnVsbF0sXG4gICAgICBpc0Rpc2FibGVkOltmYWxzZV0sXG4gICAgICBpc1Nob3cgOiBbdHJ1ZV0sXG4gICAgICBzdWJRdWVzdGlvbkFycmF5OiB0aGlzLl9mb3JtQnVpbGRlci5hcnJheTxTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZT4oW10pXG4gICAgfSk7ICBcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnN1cnZleUFuc3dlcnNPYnNydlxuICAgIC5waXBlKG1hcCh4PT4geC5kZWZhdWx0QW5zd2Vycy5maWx0ZXIoeD0+eC5QYXJlbnRRdWVzdGlvbklkID09IHRoaXMuZkN0cmxzLmlkLnZhbHVlKSkpXG4gICAgLnBpcGUoZmlsdGVyKHg9PngubGVuZ3RoICA+IDApKVxuICAgIC5zdWJzY3JpYmUoYW5zd2Vycz0+e1xuICAgICAgY29uc29sZS5sb2coYW5zd2Vycyk7XG4gICAgICB0aGlzLmZDdHJscy5zdWJRdWVzdGlvbkFycmF5LmNvbnRyb2xzLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgICB2YXIgYW5zd2VyID0gYW5zd2Vycy5maW5kKHggPT4geC5RdWVzdGlvbklkID09IGdyb3VwLnZhbHVlLnN1YlF1ZXN0aW9uSWQpO1xuICAgICAgICBpZiAoYW5zd2VyICE9IG51bGwpIHtcbiAgICAgICAgICBncm91cC5jb250cm9scy5hbnN3ZXIuc2V0VmFsdWUoYW5zd2VyLkFuc3dlcklkKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KTtcblxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2UucXVlc3Rpb25Jc0Rpc2FibGVkT2JzcnYucGlwZShmaWx0ZXIoeD0+eC5xdWVzdGlvbklkID09IHRoaXMuZkN0cmxzLmlkLnZhbHVlKSkuc3Vic2NyaWJlKHg9PntcbiAgICAgIHRoaXMuZkN0cmxzLmlzRGlzYWJsZWQuc2V0VmFsdWUoeC5pc0Rpc2FibGVkKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2UucXVlc3Rpb25Jc1Nob3dPYnNydi5waXBlKGZpbHRlcih4PT54LnF1ZXN0aW9uSWQgPT0gdGhpcy5mQ3RybHMuaWQudmFsdWUpKS5zdWJzY3JpYmUoeD0+e1xuICAgICAgdGhpcy5mQ3RybHMuaXNTaG93LnNldFZhbHVlKHguaXNTaG93KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2hhbmdlQW5zd2VyKHF1ZXN0aW9uOiBTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZSwgYW5zd2VyOiBTdXJ2ZXlBbnN3ZXJEdG8pIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkudmFsdWUuZmluZEluZGV4KHggPT4geC5zdWJRdWVzdGlvbklkID09IHF1ZXN0aW9uLnN1YlF1ZXN0aW9uSWQpO1xuICAgIHZhciBzdWJRdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMuc3ViUXVlc3Rpb25BcnJheS5jb250cm9sc1tpbmRleF07XG5cbiAgICBzdWJRdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlci5zZXRWYWx1ZShhbnN3ZXIuYW5zd2VySWQpO1xuXG4gICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xuICAgICAgUXVlc3Rpb25JZDogc3ViUXVlc3Rpb25Hcm91cC52YWx1ZS5zdWJRdWVzdGlvbklkLFxuICAgICAgQW5zd2VyOiBzdWJRdWVzdGlvbkdyb3VwLnZhbHVlLmFuc3dlcixcbiAgICAgIElzVmFsaWQ6IHN1YlF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VyLnZhbGlkXG4gICAgfSk7XG4gIH1cblxuICBjb252ZXJ0VG9Gb3JtQ29udHJvbChlbGVtZW50OiBhbnkpIHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBGb3JtQ29udHJvbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2F0dHIuaWRdPVwiJ3F1ZXN0aW9uXycrZkN0cmxzLmlkLnZhbHVlXCIgc3R5bGU9XCIgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcIlxuW25nQ2xhc3NdPVwieydkLW5vbmUnOmZDdHJscy5pc1Nob3cudmFsdWUgIT0gdHJ1ZX1cIj5cbiAgPGgzIGNsYXNzPVwicXVhc3Rpb24tdGl0bGUgXCI+XG4gICAge3tzdXJ2ZXlRdWVzdGlvbj8ucXVlc3Rpb25UaXRsZX19XG4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogcmVkO1wiICpuZ0lmPVwic3VydmV5UXVlc3Rpb24uaXNSZXF1aXJlZFwiPio8L3NwYW4+XG4gIDwvaDM+XG4gIDxkaXYgY2xhc3M9XCJtYXRyaXgtcXVlc3Rpb25cIiBbZm9ybUdyb3VwXT1cInJGb3JtXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1hdHJpeC10YWJsZVwiIGZvcm1BcnJheU5hbWU9XCJzdWJRdWVzdGlvbkFycmF5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWhlYWQtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtY29sXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWNvbFwiICpuZ0Zvcj1cImxldCBhbnN3ZXJzIG9mIHN1cnZleVF1ZXN0aW9uPy5zdXJ2ZXlBbnN3ZXJzXCI+XG4gICAgICAgICAge3thbnN3ZXJzLmFuc3dlclRpdGxlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1yb3dcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb25Hcm91cCBvZiBmQ3RybHMuc3ViUXVlc3Rpb25BcnJheS5jb250cm9scyA7bGV0IHN1YlF1ZXN0aW9uSW5kZXggPSBpbmRleFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnaW52YWxpZC1xdWVzdGlvbic6IHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VyLmludmFsaWR9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtY29sIG1hdHJpeC1zdWItcXVhc3Rpb25cIj5cbiAgICAgICAgICB7e3F1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25UaXRsZX19IFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1jb2wgYW5zd2VyX19jb250YWluZXJcIiAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIHN1cnZleVF1ZXN0aW9uPy5zdXJ2ZXlBbnN3ZXJzO2xldCBhbnN3ZXJJbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1yYWRpbyBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJ7e2VsZW1JZH19X19yYWRpby1idG4tb3B0aW9uX3t7c3ViUXVlc3Rpb25JbmRleH19XCJcbiAgICAgICAgICAgICAgaWQ9XCJ7e2VsZW1JZH19X19yYWRpby1idG5fe3tzdWJRdWVzdGlvbkluZGV4fX1fe3thbnN3ZXJJbmRleH19XCIgKGNoYW5nZSk9XCJvbkNoYW5nZUFuc3dlcihxdWVzdGlvbkdyb3VwLnZhbHVlICxhbnN3ZXIpXCJcbiAgICAgICAgICAgICAgdmFsdWU9XCJ7e2Fuc3dlci5hbnN3ZXJJZH19XCIgIFtjaGVja2VkXT1cImFuc3dlci5hbnN3ZXJJZCA9PSBxdWVzdGlvbkdyb3VwLnZhbHVlLmFuc3dlclwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBkLWlubGluZSBkLWxnLW5vbmVcIlxuICAgICAgICAgICAgICBmb3I9XCJ7e2VsZW1JZH19X19yYWRpby1idG5fe3tzdWJRdWVzdGlvbkluZGV4fX1fe3thbnN3ZXJJbmRleH19XCI+IHt7YW5zd2VyLmFuc3dlclRpdGxlfX08L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
@@ -85,7 +85,6 @@ export class SurveryLibComponent {
|
|
|
85
85
|
this.fCtrls.questionArray.clear();
|
|
86
86
|
this.fCtrls.ruleQuestionArray.clear();
|
|
87
87
|
this.surveyData = null;
|
|
88
|
-
console.log(survey);
|
|
89
88
|
if (survey != null) {
|
|
90
89
|
this.surveyData = survey;
|
|
91
90
|
this.loadQuestions(survey);
|
|
@@ -105,6 +104,9 @@ export class SurveryLibComponent {
|
|
|
105
104
|
const nextPageIndex = this.getNextShowedPage();
|
|
106
105
|
if (nextPageIndex != null) {
|
|
107
106
|
this.fCtrls.currentPageIndex.setValue(nextPageIndex);
|
|
107
|
+
setTimeout(() => {
|
|
108
|
+
this.loadQuestionUpdates(nextPageIndex);
|
|
109
|
+
});
|
|
108
110
|
$('html, body').animate({
|
|
109
111
|
scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top
|
|
110
112
|
}, 2000);
|
|
@@ -176,8 +178,7 @@ export class SurveryLibComponent {
|
|
|
176
178
|
haveInValidateQuestions() {
|
|
177
179
|
const currentPageIndex = this.fCtrls.currentPageIndex.value;
|
|
178
180
|
var invalidRecords = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == currentPageIndex
|
|
179
|
-
&& x.isRequired == true && x.isValid != true
|
|
180
|
-
&& x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);
|
|
181
|
+
&& x.isRequired == true && x.isValid != true && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);
|
|
181
182
|
if (invalidRecords.length > 0) {
|
|
182
183
|
$(`#survey-page_${currentPageIndex}`).addClass('survey-page_submitted');
|
|
183
184
|
}
|
|
@@ -303,6 +304,12 @@ export class SurveryLibComponent {
|
|
|
303
304
|
});
|
|
304
305
|
}
|
|
305
306
|
}
|
|
307
|
+
loadQuestionUpdates(pageIndex) {
|
|
308
|
+
this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == pageIndex).forEach(question => {
|
|
309
|
+
this._surveyLibService.setQuestionIsShow(question.questionId, question.isShow);
|
|
310
|
+
this._surveyLibService.setQuestionIsDisabled(question.questionId, question.isDisabled);
|
|
311
|
+
});
|
|
312
|
+
}
|
|
306
313
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SurveryLibComponent, deps: [{ token: i1.SurveyLibService }, { token: i2.FormBuilder }, { token: i3.CheckRuleExpsUsecase }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
307
314
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SurveryLibComponent, selector: "lib-survery-lib", inputs: { isPre: "isPre", surveyLanguageId: "surveyLanguageId", applicantKey: "applicantKey" }, outputs: { surveyResultEmit: "surveyResultEmit", selectLanguageEmit: "selectLanguageEmit" }, ngImport: i0, template: "<div id=\"survery-card-{{surveryLibraryDivId}}\" class=\"survay-card\" >\r\n <div class=\"alert alert-warning text-center\" role=\"alert\" *ngIf=\"isPre == true && surveyData != null\">\r\n <h4 class=\"alert-heading mb-0\">This survey in review phase </h4>\r\n </div>\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\"\r\n [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template #questionBooleanTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\">\r\n </lib-question-boolean-template>\r\n\r\n <lib-question-text-template #questionTextTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template #questionRadioButtonTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\">\r\n </lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"></lib-question-dropdown-template>\r\n\r\n <lib-question-dropdown-multi-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDownMulti\">\r\n </lib-question-dropdown-multi-template>\r\n\r\n <lib-question-check-box-template #questionCheckBoxTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\">\r\n </lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template #questionMatrixTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\">\r\n </lib-question-matrix-template>\r\n\r\n <lib-question-cascade-template #questionCascadeTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Cascade\"\r\n [applicantKey]=\"applicantKey\" [isPre]=\"isPre\" [surveyLanguageId]=\"surveyLanguageId\" \r\n [pageIndex]=\"surveyPageIndex\"></lib-question-cascade-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\">\r\n <span>{{curruntShowedSurveyPages}}</span>\r\n <span class=\"ms-2 me-2\">of</span>\r\n <span>{{showedSurveyPages?.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}.quastion{padding:10px}.quastion .quastion-title{color:var(--dark-100, #363636);text-align:right;font-family:Almarai;font-size:18px;font-style:normal;font-weight:700;line-height:20.6px}\n"], 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: "component", type: i5.QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: ["isTextArea", "setQuestion", "isDisabled"], outputs: ["emitter"] }, { kind: "component", type: i6.QuestionRadioButtonTemplateComponent, selector: "lib-question-radio-button-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i7.QuestionCheckBoxTemplateComponent, selector: "lib-question-check-box-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i8.QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i9.QuestionMatrixTemplateComponent, selector: "lib-question-matrix-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i10.QuestionBooleanTemplateComponent, selector: "lib-question-boolean-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i11.QuestionDropdownMultiTemplateComponent, selector: "lib-question-dropdown-multi-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i12.QuestionCascadeTemplateComponent, selector: "lib-question-cascade-template", inputs: ["pageIndex", "isPre", "surveyLanguageId", "applicantKey", "setQuestion"], outputs: ["emitter"] }] }); }
|
|
308
315
|
}
|
|
@@ -320,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
320
327
|
}], selectLanguageEmit: [{
|
|
321
328
|
type: Output
|
|
322
329
|
}] } });
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmVyeS1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zdXJ2ZXJ5LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3N1cnZleS1saWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBS3ZILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxZQUFZLEVBQUUsb0JBQW9CLEVBQU0sTUFBTSxNQUFNLENBQUM7QUFJMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQXFCcEUsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1RjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksVUFB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QUFJLENBQUM7b0JBQ2hCLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQztvQkFDbkIsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDO29CQUNsQixVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0JBQ2YsVUFBVSxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztvQkFDcEMsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztvQkFDL0Isa0JBQWtCLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO29CQUM1QyxjQUFjLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO2lCQUN4QyxDQUFDLENBQUMsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDOzhHQXRVVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixvUENqQ2hDLG0rSEFrRU07OzJGRGpDTyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCO29LQWtFbEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3VydmV5TGliU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc3VydmV5LWxpYi5zZXJ2aWNlJztcbmltcG9ydCB7IFN1cnZleUR0byB9IGZyb20gJy4uL3NoYXJlZC9kdG9zL3N1cnZleS5kdG8nO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0BuZy1zdGFjay9mb3Jtcyc7XG5pbXBvcnQgeyBRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZSwgUnVsZVF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlLCBTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZSB9IGZyb20gJy4uL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvc3VydmVyeS1saWIuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgdjQgYXMgZ3VpZEdlbmVyYXRvciB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2dpY1Byb3BlcnR5RW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9Mb2dpYy1Qcm9wZXJ0eS5lbnVtJztcbmltcG9ydCB7IFJ1bGVFeHBEdG8gfSBmcm9tICcuLi9zaGFyZWQvZHRvcy9ydWxlLWV4cC5kdG8nO1xuaW1wb3J0IHsgT3BlcmF0b3JFbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL29wZXJhdG9yLmVudW0nO1xuaW1wb3J0IHsgTG9naWNBY3Rpb25FbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL2xvZ2ljLWFjdGlvbi5lbnVtJztcbmltcG9ydCB7IENoZWNrUnVsZUV4cHNVc2VjYXNlIH0gZnJvbSAnLi91c2VjYXNlcy9jaGVjay1ydWxlLWV4cHMudXNlY2FzZSc7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvblJlc3VsdCB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvc3VydmVyeS1xdWVzdGlvbi1yZXN1bHQubW9kZWwnO1xuaW1wb3J0IHsgRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3MvZGVmYXVsdC1xdWVzdGlvbi1hbnN3ZXJzLmR0byc7XG5pbXBvcnQgeyBRdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uVGV4dFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uRHJvcGRvd25UZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25DaGVja0JveFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZS9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3VydmV5TGFuZ3VhZ2VEdG8gfSBmcm9tICcuLi9zaGFyZWQvZHRvcy9zdXJ2ZXktbGFuZ3VhZ2UuZHRvJztcbmltcG9ydCB7IFN1cnZleVNlY3Rpb25FbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL3N1cnZleS1zZWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdXJ2ZXJ5LWxpYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXktbGliLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3VydmV5LWxpYi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN1cnZlcnlMaWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIHN1cnZlcnlMaWJyYXJ5RGl2SWQgPSBndWlkR2VuZXJhdG9yKCkgYXMgc3RyaW5nO1xuICByZWxvYWREZWZhdWx0QW5zd2VySWQgPSBndWlkR2VuZXJhdG9yKCkgYXMgc3RyaW5nO1xuICBzdXJ2ZXlEYXRhOiBTdXJ2ZXlEdG87XG4gIGRlZmF1bHRBbnN3ZXJzOiBEZWZhdWx0UXVlc3Rpb25BbnN3ZXJEdG9bXTtcbiAgckZvcm06IEZvcm1Hcm91cDxTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgZ2V0IGlzRmlyc3RQYWdlKCkge1xuICAgIGlmICh0aGlzLnNob3dlZFN1cnZleVBhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLnNob3dlZFN1cnZleVBhZ2VzLmZpbmRJbmRleCh4ID0+IHggPT0gdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZSkgPT0gMDtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXQgaXNMYXN0UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcy5maW5kSW5kZXgoeCA9PiB4ID09IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUpID09ICh0aGlzLnNob3dlZFN1cnZleVBhZ2VzLmxlbmd0aCAtIDEpXG4gIH1cblxuICBnZXQgc2hvd2VkU3VydmV5UGFnZXMoKTogbnVtYmVyW10ge1xuICAgIHZhciBwYWdlQXJyOiBudW1iZXJbXSA9IFtdO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgcXVlc3Rpb24gPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlW2luZGV4XTtcbiAgICAgIGlmIChxdWVzdGlvbi5pc1Nob3cgPT0gdHJ1ZSAmJiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlICE9IHRoaXMucXVlc3Rpb25UeXBlRW51bS5NYXRyaXggfHwgcXVlc3Rpb24uaXNNYXRyaXhHcm91cCA9PSB0cnVlKSkge1xuICAgICAgICBwYWdlQXJyLnB1c2gocXVlc3Rpb24uc3VydmV5UGFnZUluZGV4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaXN0aW5jdEFycmF5ID0gcGFnZUFyci5maWx0ZXIoKG4sIGkpID0+IHBhZ2VBcnIuaW5kZXhPZihuKSA9PT0gaSk7XG5cbiAgICByZXR1cm4gZGlzdGluY3RBcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gIH1cblxuICBnZXQgY3VycnVudFNob3dlZFN1cnZleVBhZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnNob3dlZFN1cnZleVBhZ2VzLmZpbmRJbmRleCh4ID0+IHggPT0gdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZSkgKyAxO1xuICB9XG5cbiAgZ2V0IHN1cnZleVJlc3VsdCgpOiB7IGFuc3dlcnM6IFN1cnZleVF1ZXN0aW9uUmVzdWx0W10sIGN1cnJlbnRQYWdlSW5kZXg6IG51bWJlciB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgY3VycmVudFBhZ2VJbmRleDogdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZSxcbiAgICAgIGFuc3dlcnM6XG4gICAgICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUuZmlsdGVyKHggPT4geC5pc01hdHJpeEdyb3VwICE9IHRydWUpLm1hcCh4ID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgU3VydmV5UGFnZUluZGV4OiB4LnN1cnZleVBhZ2VJbmRleCxcbiAgICAgICAgICAgIFF1ZXN0aW9uSWQ6IHgucXVlc3Rpb25JZCxcbiAgICAgICAgICAgIFF1ZXN0aW9uVHlwZTogeC5xdWVzdGlvblR5cGUsXG4gICAgICAgICAgICBBbnN3ZXJJZDogeC5hbnN3ZXJJZCxcbiAgICAgICAgICAgIEFuc3dlclRleHQ6IHguYW5zd2VyVGV4dCxcbiAgICAgICAgICAgIEFuc3dlcklkQXJyOiB4LmFuc3dlcklkQXJyXG4gICAgICAgICAgfSBhcyBTdXJ2ZXlRdWVzdGlvblJlc3VsdFxuICAgICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIGlzUHJlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN1cnZleUxhbmd1YWdlSWQ6IG51bWJlciA9IG51bGw7XG4gIEBJbnB1dCgpIGFwcGxpY2FudEtleTogc3RyaW5nID0gbnVsbDtcblxuICBAT3V0cHV0KCkgc3VydmV5UmVzdWx0RW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VydmV5UXVlc3Rpb25SZXN1bHRbXT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdExhbmd1YWdlRW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N1cnZleUxpYlNlcnZpY2U6IFN1cnZleUxpYlNlcnZpY2VcbiAgICAsIHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBfY2hlY2tSdWxlRXhwc1VzZWNhc2U6IENoZWNrUnVsZUV4cHNVc2VjYXNlKSB7XG5cbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8U3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IFswXSxcbiAgICAgIHF1ZXN0aW9uQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPihbXSksXG4gICAgICBydWxlUXVlc3Rpb25BcnJheTogdGhpcy5fZm9ybUJ1aWxkZXIuYXJyYXk8UnVsZVF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPihbXSlcbiAgICB9KTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnN1cnZleURhdGFPYnNydi5waXBlKGRlYm91bmNlVGltZSgzMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoc3VydmV5ID0+IHtcbiAgICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkuY2xlYXIoKTtcbiAgICAgIHRoaXMuZkN0cmxzLnJ1bGVRdWVzdGlvbkFycmF5LmNsZWFyKCk7XG4gICAgICB0aGlzLnN1cnZleURhdGEgPSBudWxsO1xuICAgICAgY29uc29sZS5sb2coc3VydmV5KTtcblxuICAgICAgaWYgKHN1cnZleSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuc3VydmV5RGF0YSA9IHN1cnZleTtcbiAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKHN1cnZleSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLmFkZFF1ZXN0aW9uT2JzcnYuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmFkZFF1ZXN0aW9uR3JvdXAocmVzLnF1ZXN0aW9uLCByZXMucGFnZUluZGV4KTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2UucmVtb3ZlUXVlc3Rpb25PYnNydi5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gcmVzLnF1ZXN0aW9uSWQpO1xuICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIG9uUGFnZ2luZ05leHQoKSB7XG4gICAgdmFyIGlzSGF2ZUludmFsaWRSZWNvcmRzID0gdGhpcy5oYXZlSW5WYWxpZGF0ZVF1ZXN0aW9ucygpO1xuICAgIGlmIChpc0hhdmVJbnZhbGlkUmVjb3JkcyA9PSBmYWxzZSkge1xuXG4gICAgICBjb25zdCBuZXh0UGFnZUluZGV4ID0gdGhpcy5nZXROZXh0U2hvd2VkUGFnZSgpO1xuXG4gICAgICBpZiAobmV4dFBhZ2VJbmRleCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXguc2V0VmFsdWUobmV4dFBhZ2VJbmRleCk7XG5cbiAgICAgICAgJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoe1xuICAgICAgICAgIHNjcm9sbFRvcDogJChgI3N1cnZlcnktY2FyZC0ke3RoaXMuc3VydmVyeUxpYnJhcnlEaXZJZH1gKS5vZmZzZXQoKS50b3BcbiAgICAgICAgfSwgMjAwMCk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBxdWVzdGlvbkFyciA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUuZmlsdGVyKHggPT4geC5pc01hdHJpeEdyb3VwICE9IHRydWUpLm1hcCh4ID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgU3VydmV5UGFnZUluZGV4OiB4LnN1cnZleVBhZ2VJbmRleCxcbiAgICAgICAgICAgIFF1ZXN0aW9uSWQ6IHgucXVlc3Rpb25JZCxcbiAgICAgICAgICAgIFF1ZXN0aW9uVHlwZTogeC5xdWVzdGlvblR5cGUsXG4gICAgICAgICAgICBBbnN3ZXJJZDogeC5hbnN3ZXJJZCxcbiAgICAgICAgICAgIEFuc3dlclRleHQ6IHguYW5zd2VyVGV4dCxcbiAgICAgICAgICAgIEFuc3dlcklkQXJyOiB4LmFuc3dlcklkQXJyXG4gICAgICAgICAgfSBhcyBTdXJ2ZXlRdWVzdGlvblJlc3VsdFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdXJ2ZXlSZXN1bHRFbWl0LmVtaXQocXVlc3Rpb25BcnIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uUGFnZ2luZ0JhY2soKSB7XG4gICAgY29uc3QgcHJldlBhZ2VJbmRleCA9IHRoaXMuZ2V0UHJldlNob3dlZFBhZ2UoKTtcbiAgICBpZiAocHJldlBhZ2VJbmRleCAhPSBudWxsKSB7XG4gICAgICB0aGlzLmZDdHJscy5jdXJyZW50UGFnZUluZGV4LnNldFZhbHVlKHByZXZQYWdlSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIG9uVXBkYXRlQW5zd2Vycyhtb2RlbDogUXVlc3Rpb25BbnN3ZXJNb2RlbFtdKSB7XG4gICAgbW9kZWwuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgIHRoaXMub25VcGRhdGVBbnN3ZXIoZWxlbSk7XG4gICAgfSk7XG4gIH1cblxuICBvblVwZGF0ZUFuc3dlcihtb2RlbDogUXVlc3Rpb25BbnN3ZXJNb2RlbCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gbW9kZWwuUXVlc3Rpb25JZCk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHZhciBxdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5jb250cm9sc1tpbmRleF07XG4gICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzVmFsaWQuc2V0VmFsdWUobW9kZWwuSXNWYWxpZCk7XG5cbiAgICAgIGlmIChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uVHlwZSA9PSB0aGlzLnF1ZXN0aW9uVHlwZUVudW0uVGV4dElucHV0KSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgYW5zd2VySWQ6IG1vZGVsLlN1cnZleUFuc3dlcklkLFxuICAgICAgICAgIGFuc3dlclRleHQ6IG1vZGVsLkFuc3dlclxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAocXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvblR5cGUgPT0gdGhpcy5xdWVzdGlvblR5cGVFbnVtLkNoZWNrQm94IHx8IHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25UeXBlID09IHRoaXMucXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93bk11bHRpKSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWRBcnIuc2V0VmFsdWUobW9kZWwuQW5zd2VyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWQuc2V0VmFsdWUobW9kZWwuQW5zd2VyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZkN0cmxzLnJ1bGVRdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHgucXVlc3Rpb25JZCA9PSBtb2RlbC5RdWVzdGlvbklkKSA+IC0xKSB7XG4gICAgICAgIHRoaXMuY2hlY2tSdWxlcygpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUXVlc3Rpb25zKHN1cnZleTogU3VydmV5RHRvKSB7XG4gICAgc3VydmV5LnN1cnZleVBhZ2VzLmZvckVhY2goKHBhZ2UsIHBhZ2VJbmRleCkgPT4ge1xuXG4gICAgICBwYWdlLnN1cnZleVF1ZXN0aW9uR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuXG4gICAgICAgIGdyb3VwLnN1cnZleVF1ZXN0aW9ucy5mb3JFYWNoKHF1ZXN0aW9uID0+IHtcbiAgICAgICAgICB0aGlzLmFkZFF1ZXN0aW9uR3JvdXAocXVlc3Rpb24sIHBhZ2VJbmRleCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBzdXJ2ZXkuc3VydmV5UnVsZXMuZm9yRWFjaChydWxlID0+IHtcbiAgICAgIHJ1bGUucnVsZUV4cHMuZm9yRWFjaChydWxlRXhwID0+IHtcbiAgICAgICAgdGhpcy5mQ3RybHMucnVsZVF1ZXN0aW9uQXJyYXkucHVzaCh0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxSdWxlUXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgICBxdWVzdGlvbklkOiBydWxlRXhwLnF1ZXN0aW9uSWRcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaGF2ZUluVmFsaWRhdGVRdWVzdGlvbnMoKSB7XG4gICAgY29uc3QgY3VycmVudFBhZ2VJbmRleCA9IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWU7XG4gICAgdmFyIGludmFsaWRSZWNvcmRzID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maWx0ZXIoeCA9PiB4LnN1cnZleVBhZ2VJbmRleCA9PSBjdXJyZW50UGFnZUluZGV4XG4gICAgICAmJiB4LmlzUmVxdWlyZWQgPT0gdHJ1ZSAmJiB4LmlzVmFsaWQgIT0gdHJ1ZVxuICAgICAgJiYgeC5pc0Rpc2FibGVkID09IGZhbHNlICYmIHguaXNTaG93ID09IHRydWUgJiYgeC5pc01hdHJpeEdyb3VwICE9IHRydWUpO1xuICAgIGlmIChpbnZhbGlkUmVjb3Jkcy5sZW5ndGggPiAwKSB7XG4gICAgICAkKGAjc3VydmV5LXBhZ2VfJHtjdXJyZW50UGFnZUluZGV4fWApLmFkZENsYXNzKCdzdXJ2ZXktcGFnZV9zdWJtaXR0ZWQnKTtcbiAgICB9XG5cbiAgICBpZiAoaW52YWxpZFJlY29yZHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5sb2coaW52YWxpZFJlY29yZHMpO1xuICAgIH1cbiAgICByZXR1cm4gaW52YWxpZFJlY29yZHMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tSdWxlcygpIHtcblxuICAgIHRoaXMuc3VydmV5RGF0YS5zdXJ2ZXlSdWxlcy5mb3JFYWNoKHJ1bGUgPT4ge1xuICAgICAgdGhpcy5fY2hlY2tSdWxlRXhwc1VzZWNhc2UuZXhlY3V0ZSh7XG4gICAgICAgIHJ1bGVFeHBzOiBydWxlLnJ1bGVFeHBzLFxuICAgICAgICBxdWVzdGlvbnM6IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWVcbiAgICAgIH0pLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuXG4gICAgICAgIHZhciBpc1Bhc3NlZCA9IHJlc3VsdC5leHByZXN0aW9uUmVzdWx0QXJyLmZpbHRlcih4ID0+IHggPT0gZmFsc2UpLmxlbmd0aCA9PSAwO1xuICAgICAgICBpZiAoaXNQYXNzZWQpIHtcblxuICAgICAgICAgIHJ1bGUucnVsZVJlc3VsdFF1ZXN0aW9ucy5mb3JFYWNoKHJlc3VsdFF1ZXN0aW9uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCk7XG4gICAgICAgICAgICB2YXIgcXVlc3Rpb25Hcm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkuYXQoaW5kZXgpO1xuICAgICAgICAgICAgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uU2hvdykge1xuICAgICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzU2hvdy5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zZXRRdWVzdGlvbklzU2hvdyhxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uSWQsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkhpZGUpIHtcbiAgICAgICAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5pc1Nob3cuc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgICAgICAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnNldFF1ZXN0aW9uSXNTaG93KHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25JZCwgZmFsc2UpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkVuYWJsZSkge1xuICAgICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzRGlzYWJsZWQuc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgICAgICAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnNldFF1ZXN0aW9uSXNEaXNhYmxlZChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uSWQsIGZhbHNlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5EaXNhYmxlKSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuaXNEaXNhYmxlZC5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zZXRRdWVzdGlvbklzRGlzYWJsZWQocXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvbklkLCB0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TZXRBbnN3ZXIpIHtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcnVsZS5ydWxlUmVzdWx0UXVlc3Rpb25zLmZvckVhY2gocmVzdWx0UXVlc3Rpb24gPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHgucXVlc3Rpb25JZCA9PSByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkKTtcbiAgICAgICAgICAgIHZhciBxdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5hdChpbmRleCk7XG4gICAgICAgICAgICBxdWVzdGlvbkdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICBpc1Nob3c6IHF1ZXN0aW9uR3JvdXAudmFsdWUuaXNTaG93X2RlZmF1bHQsXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IHF1ZXN0aW9uR3JvdXAudmFsdWUuaXNEaXNhYmxlZF9kZWZhdWx0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc2V0UXVlc3Rpb25Jc0Rpc2FibGVkKHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25JZCwgcXVlc3Rpb25Hcm91cC52YWx1ZS5pc0Rpc2FibGVkX2RlZmF1bHQpO1xuICAgICAgICAgICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zZXRRdWVzdGlvbklzU2hvdyhxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uSWQsIHF1ZXN0aW9uR3JvdXAudmFsdWUuaXNTaG93X2RlZmF1bHQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROZXh0U2hvd2VkUGFnZSgpIHtcbiAgICB2YXIgY3VycmVudFBhZ2VJbmRleCA9IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWU7XG4gICAgdmFyIHNob3dlZFBhZ2VzID0gdGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcztcbiAgICB2YXIgbmV4dFNob3dlZFBhZ2VzID0gc2hvd2VkUGFnZXMuZmlsdGVyKHggPT4geCA+IGN1cnJlbnRQYWdlSW5kZXgpO1xuICAgIGlmIChuZXh0U2hvd2VkUGFnZXMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIG5leHRTaG93ZWRQYWdlc1swXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldFByZXZTaG93ZWRQYWdlKCkge1xuICAgIHZhciBjdXJyZW50UGFnZUluZGV4ID0gdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZTtcbiAgICB2YXIgc2hvd2VkUGFnZXMgPSB0aGlzLnNob3dlZFN1cnZleVBhZ2VzO1xuICAgIHZhciBwcmV2U2hvd2VkUGFnZXMgPSBzaG93ZWRQYWdlcy5maWx0ZXIoeCA9PiB4IDwgY3VycmVudFBhZ2VJbmRleCk7XG4gICAgaWYgKHByZXZTaG93ZWRQYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gcHJldlNob3dlZFBhZ2VzW3ByZXZTaG93ZWRQYWdlcy5sZW5ndGggLSAxXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGFkZFF1ZXN0aW9uR3JvdXAocXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvLCBwYWdlSW5kZXg6IG51bWJlcikge1xuICAgIGlmIChxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCAhPSA2KSB7XG4gICAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnB1c2godGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgc3VydmV5UGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gICAgICAgIHF1ZXN0aW9uSWQ6IFtxdWVzdGlvbi5xdWVzdGlvbklkXSxcbiAgICAgICAgcXVlc3Rpb25UeXBlOiBbcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWRdLFxuICAgICAgICBpc01hdHJpeEdyb3VwOiBbZmFsc2VdLFxuICAgICAgICBhbnN3ZXJJZDogW251bGxdLFxuICAgICAgICBhbnN3ZXJJZEFycjogW251bGxdLFxuICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgIGlzUmVxdWlyZWQ6IFtxdWVzdGlvbi5pc1JlcXVpcmVkXSxcbiAgICAgICAgaXNWYWxpZDogW251bGxdLFxuICAgICAgICBpc0Rpc2FibGVkOiBbcXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgIGlzU2hvdzogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogW3F1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3F1ZXN0aW9uLmlzVmlzYWJsZV1cbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICAgIHN1cnZleVBhZ2VJbmRleDogcGFnZUluZGV4LFxuICAgICAgICBxdWVzdGlvbklkOiBbcXVlc3Rpb24ucXVlc3Rpb25JZF0sXG4gICAgICAgIHF1ZXN0aW9uVHlwZTogW3F1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkXSxcbiAgICAgICAgaXNNYXRyaXhHcm91cDogW3RydWVdLFxuICAgICAgICBhbnN3ZXJJZDogW251bGxdLFxuICAgICAgICBhbnN3ZXJJZEFycjogW251bGxdLFxuICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgIGlzUmVxdWlyZWQ6IFtxdWVzdGlvbi5pc1JlcXVpcmVkXSxcbiAgICAgICAgaXNWYWxpZDogW251bGxdLFxuICAgICAgICBpc0Rpc2FibGVkOiBbcXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgIGlzU2hvdzogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogW3F1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICB9KSk7XG5cbiAgICAgIHF1ZXN0aW9uLnN1cnZleVN1YlF1ZXN0aW9ucy5mb3JFYWNoKHN1YlF1ZXN0aW9uID0+IHtcbiAgICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICAgICAgc3VydmV5UGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gICAgICAgICAgcXVlc3Rpb25JZDogW3N1YlF1ZXN0aW9uLnF1ZXN0aW9uSWRdLFxuICAgICAgICAgIHF1ZXN0aW9uVHlwZTogW3N1YlF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkXSxcbiAgICAgICAgICBpc01hdHJpeEdyb3VwOiBbZmFsc2VdLFxuICAgICAgICAgIGFuc3dlcklkOiBbbnVsbF0sXG4gICAgICAgICAgYW5zd2VySWRBcnI6IFtudWxsXSxcbiAgICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgICAgaXNSZXF1aXJlZDogW3F1ZXN0aW9uLmlzUmVxdWlyZWRdLFxuICAgICAgICAgIGlzVmFsaWQ6IFtudWxsXSxcbiAgICAgICAgICBpc0Rpc2FibGVkOiBbc3ViUXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgICAgaXNTaG93OiBbc3ViUXVlc3Rpb24uaXNWaXNhYmxlXSxcbiAgICAgICAgICBpc0Rpc2FibGVkX2RlZmF1bHQ6IFtzdWJRdWVzdGlvbi5pc1JlYWRPbmx5XSxcbiAgICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3N1YlF1ZXN0aW9uLmlzVmlzYWJsZV1cbiAgICAgICAgfSkpO1xuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJzdXJ2ZXJ5LWNhcmQte3tzdXJ2ZXJ5TGlicmFyeURpdklkfX1cIiBjbGFzcz1cInN1cnZheS1jYXJkXCIgPlxyXG4gIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIHRleHQtY2VudGVyXCIgcm9sZT1cImFsZXJ0XCIgKm5nSWY9XCJpc1ByZSA9PSB0cnVlICYmIHN1cnZleURhdGEgIT0gbnVsbFwiPlxyXG4gICAgPGg0IGNsYXNzPVwiYWxlcnQtaGVhZGluZyBtYi0wXCI+VGhpcyBzdXJ2ZXkgaW4gcmV2aWV3IHBoYXNlIDwvaDQ+XHJcbiAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdXJ2ZXlQYWdlIG9mIHN1cnZleURhdGE/LnN1cnZleVBhZ2VzOyBsZXQgc3VydmV5UGFnZUluZGV4ID0gaW5kZXhcIlxyXG4gICAgICBbYXR0ci5pZF09XCInc3VydmV5LXBhZ2VfJytzdXJ2ZXlQYWdlSW5kZXhcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7J2Qtbm9uZSc6IHN1cnZleVBhZ2VJbmRleCAhPSBmQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZX1cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdXJ2ZXlQYWdlLnN1cnZleVF1ZXN0aW9uR3JvdXBzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmF5LWNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmF5LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJncm91cC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2l0ZW0ucXVlc3Rpb25Hcm91cE5hbWV9fVxyXG4gICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ3JvdXAtc3ViLXRpdGxlIFwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2l0ZW0ucXVlc3Rpb25Hcm91cERlc2NyaXB0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBpdGVtLnN1cnZleVF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlICNxdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLkJvb2xlYW5cIj5cclxuICAgICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10ZXh0LXRlbXBsYXRlICNxdWVzdGlvblRleHRUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLlRleHRJbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgIFtpc1RleHRBcmVhXT1cInF1ZXN0aW9uLmlzQWR2YW5jZVRleHRBcmVhXCI+PC9saWItcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZSAjcXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uUmFkaW9CdXR0b25cIj5cclxuICAgICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlICNxdWVzdGlvbkRyb3Bkb3duVGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93blwiPjwvbGliLXF1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tZHJvcGRvd24tbXVsdGktdGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93bk11bHRpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2xpYi1xdWVzdGlvbi1kcm9wZG93bi1tdWx0aS10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZSAjcXVlc3Rpb25DaGVja0JveFRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uQ2hlY2tCb3hcIj5cclxuICAgICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZSAjcXVlc3Rpb25NYXRyaXhUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLk1hdHJpeFwiPlxyXG4gICAgICAgICAgICAgICAgPC9saWItcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlICNxdWVzdGlvbkNhc2NhZGVUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLkNhc2NhZGVcIlxyXG4gICAgICAgICAgICAgICAgICBbYXBwbGljYW50S2V5XT1cImFwcGxpY2FudEtleVwiIFtpc1ByZV09XCJpc1ByZVwiIFtzdXJ2ZXlMYW5ndWFnZUlkXT1cInN1cnZleUxhbmd1YWdlSWRcIiBcclxuICAgICAgICAgICAgICAgICAgW3BhZ2VJbmRleF09XCJzdXJ2ZXlQYWdlSW5kZXhcIj48L2xpYi1xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkLWZvb3RyXCIgKm5nSWY9XCJzdXJ2ZXlEYXRhICE9IG51bGxcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiIGp1c3RpZnktY29udGVudDogc3RhcnQ7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1wYWdpbmF0aW9uIGZ3LWJvbGRcIj5cclxuICAgICAgICAgIDxzcGFuPnt7Y3VycnVudFNob3dlZFN1cnZleVBhZ2VzfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWUtMlwiPm9mPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+e3tzaG93ZWRTdXJ2ZXlQYWdlcz8ubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmVyeS1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zdXJ2ZXJ5LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3N1cnZleS1saWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBS3ZILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxZQUFZLEVBQUUsb0JBQW9CLEVBQU0sTUFBTSxNQUFNLENBQUM7QUFJMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQXFCcEUsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1RjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksVUFB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Z0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1cnZleUxpYlNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3N1cnZleS1saWIuc2VydmljZSc7XG5pbXBvcnQgeyBTdXJ2ZXlEdG8gfSBmcm9tICcuLi9zaGFyZWQvZHRvcy9zdXJ2ZXkuZHRvJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xuaW1wb3J0IHsgUXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2UsIFJ1bGVRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZSwgU3VydmVyeUxpYkZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3N1cnZlcnktbGliLmZvcm0taW50ZXJmYWNlJztcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IHY0IGFzIGd1aWRHZW5lcmF0b3IgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyTW9kZWwgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9naWNQcm9wZXJ0eUVudW0gfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvTG9naWMtUHJvcGVydHkuZW51bSc7XG5pbXBvcnQgeyBSdWxlRXhwRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3MvcnVsZS1leHAuZHRvJztcbmltcG9ydCB7IE9wZXJhdG9yRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9vcGVyYXRvci5lbnVtJztcbmltcG9ydCB7IExvZ2ljQWN0aW9uRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9sb2dpYy1hY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBDaGVja1J1bGVFeHBzVXNlY2FzZSB9IGZyb20gJy4vdXNlY2FzZXMvY2hlY2stcnVsZS1leHBzLnVzZWNhc2UnO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25SZXN1bHQgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3N1cnZlcnktcXVlc3Rpb24tcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xuaW1wb3J0IHsgUXVlc3Rpb25Cb29sZWFuVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWVzdGlvblRleHRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUvcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWVzdGlvbkRyb3Bkb3duVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUvcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uQ2hlY2tCb3hUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUvcXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWVzdGlvbk1hdHJpeFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFN1cnZleUxhbmd1YWdlRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3Mvc3VydmV5LWxhbmd1YWdlLmR0byc7XG5pbXBvcnQgeyBTdXJ2ZXlTZWN0aW9uRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9zdXJ2ZXktc2VjdGlvbi5lbnVtJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xuZGVjbGFyZSB2YXIgJDogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc3VydmVyeS1saWInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3VydmV5LWxpYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N1cnZleS1saWIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTdXJ2ZXJ5TGliQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBzdXJ2ZXJ5TGlicmFyeURpdklkID0gZ3VpZEdlbmVyYXRvcigpIGFzIHN0cmluZztcbiAgcmVsb2FkRGVmYXVsdEFuc3dlcklkID0gZ3VpZEdlbmVyYXRvcigpIGFzIHN0cmluZztcbiAgc3VydmV5RGF0YTogU3VydmV5RHRvO1xuICBkZWZhdWx0QW5zd2VyczogRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvW107XG4gIHJGb3JtOiBGb3JtR3JvdXA8U3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+O1xuXG4gIGdldCBmQ3RybHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuckZvcm0uY29udHJvbHM7XG4gIH1cblxuICBnZXQgcXVlc3Rpb25UeXBlRW51bSgpIHtcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcbiAgfVxuXG4gIGdldCBpc0ZpcnN0UGFnZSgpIHtcbiAgICBpZiAodGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcy5maW5kSW5kZXgoeCA9PiB4ID09IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUpID09IDA7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IGlzTGFzdFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd2VkU3VydmV5UGFnZXMuZmluZEluZGV4KHggPT4geCA9PSB0aGlzLmZDdHJscy5jdXJyZW50UGFnZUluZGV4LnZhbHVlKSA9PSAodGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcy5sZW5ndGggLSAxKVxuICB9XG5cbiAgZ2V0IHNob3dlZFN1cnZleVBhZ2VzKCk6IG51bWJlcltdIHtcbiAgICB2YXIgcGFnZUFycjogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZVtpbmRleF07XG4gICAgICBpZiAocXVlc3Rpb24uaXNTaG93ID09IHRydWUgJiYgKHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSAhPSB0aGlzLnF1ZXN0aW9uVHlwZUVudW0uTWF0cml4IHx8IHF1ZXN0aW9uLmlzTWF0cml4R3JvdXAgPT0gdHJ1ZSkpIHtcbiAgICAgICAgcGFnZUFyci5wdXNoKHF1ZXN0aW9uLnN1cnZleVBhZ2VJbmRleCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGlzdGluY3RBcnJheSA9IHBhZ2VBcnIuZmlsdGVyKChuLCBpKSA9PiBwYWdlQXJyLmluZGV4T2YobikgPT09IGkpO1xuXG4gICAgcmV0dXJuIGRpc3RpbmN0QXJyYXkuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICB9XG5cbiAgZ2V0IGN1cnJ1bnRTaG93ZWRTdXJ2ZXlQYWdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcy5maW5kSW5kZXgoeCA9PiB4ID09IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUpICsgMTtcbiAgfVxuXG4gIGdldCBzdXJ2ZXlSZXN1bHQoKTogeyBhbnN3ZXJzOiBTdXJ2ZXlRdWVzdGlvblJlc3VsdFtdLCBjdXJyZW50UGFnZUluZGV4OiBudW1iZXIgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUsXG4gICAgICBhbnN3ZXJzOlxuICAgICAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmZpbHRlcih4ID0+IHguaXNNYXRyaXhHcm91cCAhPSB0cnVlKS5tYXAoeCA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFN1cnZleVBhZ2VJbmRleDogeC5zdXJ2ZXlQYWdlSW5kZXgsXG4gICAgICAgICAgICBRdWVzdGlvbklkOiB4LnF1ZXN0aW9uSWQsXG4gICAgICAgICAgICBRdWVzdGlvblR5cGU6IHgucXVlc3Rpb25UeXBlLFxuICAgICAgICAgICAgQW5zd2VySWQ6IHguYW5zd2VySWQsXG4gICAgICAgICAgICBBbnN3ZXJUZXh0OiB4LmFuc3dlclRleHQsXG4gICAgICAgICAgICBBbnN3ZXJJZEFycjogeC5hbnN3ZXJJZEFyclxuICAgICAgICAgIH0gYXMgU3VydmV5UXVlc3Rpb25SZXN1bHRcbiAgICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBpc1ByZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdXJ2ZXlMYW5ndWFnZUlkOiBudW1iZXIgPSBudWxsO1xuICBASW5wdXQoKSBhcHBsaWNhbnRLZXk6IHN0cmluZyA9IG51bGw7XG5cbiAgQE91dHB1dCgpIHN1cnZleVJlc3VsdEVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1cnZleVF1ZXN0aW9uUmVzdWx0W10+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RMYW5ndWFnZUVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdXJ2ZXlMaWJTZXJ2aWNlOiBTdXJ2ZXlMaWJTZXJ2aWNlXG4gICAgLCBwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX2NoZWNrUnVsZUV4cHNVc2VjYXNlOiBDaGVja1J1bGVFeHBzVXNlY2FzZSkge1xuXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICBjdXJyZW50UGFnZUluZGV4OiBbMF0sXG4gICAgICBxdWVzdGlvbkFycmF5OiB0aGlzLl9mb3JtQnVpbGRlci5hcnJheTxRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oW10pLFxuICAgICAgcnVsZVF1ZXN0aW9uQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PFJ1bGVRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oW10pXG4gICAgfSk7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zdXJ2ZXlEYXRhT2JzcnYucGlwZShkZWJvdW5jZVRpbWUoMzAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHN1cnZleSA9PiB7XG4gICAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LmNsZWFyKCk7XG4gICAgICB0aGlzLmZDdHJscy5ydWxlUXVlc3Rpb25BcnJheS5jbGVhcigpO1xuICAgICAgdGhpcy5zdXJ2ZXlEYXRhID0gbnVsbDtcblxuICAgICAgaWYgKHN1cnZleSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuc3VydmV5RGF0YSA9IHN1cnZleTtcbiAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKHN1cnZleSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLmFkZFF1ZXN0aW9uT2JzcnYuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmFkZFF1ZXN0aW9uR3JvdXAocmVzLnF1ZXN0aW9uLCByZXMucGFnZUluZGV4KTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2UucmVtb3ZlUXVlc3Rpb25PYnNydi5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gcmVzLnF1ZXN0aW9uSWQpO1xuICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIG9uUGFnZ2luZ05leHQoKSB7XG4gICAgdmFyIGlzSGF2ZUludmFsaWRSZWNvcmRzID0gdGhpcy5oYXZlSW5WYWxpZGF0ZVF1ZXN0aW9ucygpO1xuICAgIGlmIChpc0hhdmVJbnZhbGlkUmVjb3JkcyA9PSBmYWxzZSkge1xuXG4gICAgICBjb25zdCBuZXh0UGFnZUluZGV4ID0gdGhpcy5nZXROZXh0U2hvd2VkUGFnZSgpO1xuXG4gICAgICBpZiAobmV4dFBhZ2VJbmRleCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXguc2V0VmFsdWUobmV4dFBhZ2VJbmRleCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZFF1ZXN0aW9uVXBkYXRlcyhuZXh0UGFnZUluZGV4KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoe1xuICAgICAgICAgIHNjcm9sbFRvcDogJChgI3N1cnZlcnktY2FyZC0ke3RoaXMuc3VydmVyeUxpYnJhcnlEaXZJZH1gKS5vZmZzZXQoKS50b3BcbiAgICAgICAgfSwgMjAwMCk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBxdWVzdGlvbkFyciA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUuZmlsdGVyKHggPT4geC5pc01hdHJpeEdyb3VwICE9IHRydWUpLm1hcCh4ID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgU3VydmV5UGFnZUluZGV4OiB4LnN1cnZleVBhZ2VJbmRleCxcbiAgICAgICAgICAgIFF1ZXN0aW9uSWQ6IHgucXVlc3Rpb25JZCxcbiAgICAgICAgICAgIFF1ZXN0aW9uVHlwZTogeC5xdWVzdGlvblR5cGUsXG4gICAgICAgICAgICBBbnN3ZXJJZDogeC5hbnN3ZXJJZCxcbiAgICAgICAgICAgIEFuc3dlclRleHQ6IHguYW5zd2VyVGV4dCxcbiAgICAgICAgICAgIEFuc3dlcklkQXJyOiB4LmFuc3dlcklkQXJyXG4gICAgICAgICAgfSBhcyBTdXJ2ZXlRdWVzdGlvblJlc3VsdFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdXJ2ZXlSZXN1bHRFbWl0LmVtaXQocXVlc3Rpb25BcnIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uUGFnZ2luZ0JhY2soKSB7XG4gICAgY29uc3QgcHJldlBhZ2VJbmRleCA9IHRoaXMuZ2V0UHJldlNob3dlZFBhZ2UoKTtcbiAgICBpZiAocHJldlBhZ2VJbmRleCAhPSBudWxsKSB7XG4gICAgICB0aGlzLmZDdHJscy5jdXJyZW50UGFnZUluZGV4LnNldFZhbHVlKHByZXZQYWdlSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIG9uVXBkYXRlQW5zd2Vycyhtb2RlbDogUXVlc3Rpb25BbnN3ZXJNb2RlbFtdKSB7XG4gICAgbW9kZWwuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgIHRoaXMub25VcGRhdGVBbnN3ZXIoZWxlbSk7XG4gICAgfSk7XG4gIH1cblxuICBvblVwZGF0ZUFuc3dlcihtb2RlbDogUXVlc3Rpb25BbnN3ZXJNb2RlbCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gbW9kZWwuUXVlc3Rpb25JZCk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHZhciBxdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5jb250cm9sc1tpbmRleF07XG4gICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzVmFsaWQuc2V0VmFsdWUobW9kZWwuSXNWYWxpZCk7XG5cbiAgICAgIGlmIChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uVHlwZSA9PSB0aGlzLnF1ZXN0aW9uVHlwZUVudW0uVGV4dElucHV0KSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgYW5zd2VySWQ6IG1vZGVsLlN1cnZleUFuc3dlcklkLFxuICAgICAgICAgIGFuc3dlclRleHQ6IG1vZGVsLkFuc3dlclxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAocXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvblR5cGUgPT0gdGhpcy5xdWVzdGlvblR5cGVFbnVtLkNoZWNrQm94IHx8IHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25UeXBlID09IHRoaXMucXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93bk11bHRpKSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWRBcnIuc2V0VmFsdWUobW9kZWwuQW5zd2VyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWQuc2V0VmFsdWUobW9kZWwuQW5zd2VyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZkN0cmxzLnJ1bGVRdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHgucXVlc3Rpb25JZCA9PSBtb2RlbC5RdWVzdGlvbklkKSA+IC0xKSB7XG4gICAgICAgIHRoaXMuY2hlY2tSdWxlcygpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUXVlc3Rpb25zKHN1cnZleTogU3VydmV5RHRvKSB7XG4gICAgc3VydmV5LnN1cnZleVBhZ2VzLmZvckVhY2goKHBhZ2UsIHBhZ2VJbmRleCkgPT4ge1xuXG4gICAgICBwYWdlLnN1cnZleVF1ZXN0aW9uR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuXG4gICAgICAgIGdyb3VwLnN1cnZleVF1ZXN0aW9ucy5mb3JFYWNoKHF1ZXN0aW9uID0+IHtcbiAgICAgICAgICB0aGlzLmFkZFF1ZXN0aW9uR3JvdXAocXVlc3Rpb24sIHBhZ2VJbmRleCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBzdXJ2ZXkuc3VydmV5UnVsZXMuZm9yRWFjaChydWxlID0+IHtcbiAgICAgIHJ1bGUucnVsZUV4cHMuZm9yRWFjaChydWxlRXhwID0+IHtcbiAgICAgICAgdGhpcy5mQ3RybHMucnVsZVF1ZXN0aW9uQXJyYXkucHVzaCh0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxSdWxlUXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgICBxdWVzdGlvbklkOiBydWxlRXhwLnF1ZXN0aW9uSWRcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaGF2ZUluVmFsaWRhdGVRdWVzdGlvbnMoKSB7XG4gICAgY29uc3QgY3VycmVudFBhZ2VJbmRleCA9IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWU7XG4gICAgdmFyIGludmFsaWRSZWNvcmRzID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maWx0ZXIoeCA9PiB4LnN1cnZleVBhZ2VJbmRleCA9PSBjdXJyZW50UGFnZUluZGV4XG4gICAgICAmJiB4LmlzUmVxdWlyZWQgPT0gdHJ1ZSAmJiB4LmlzVmFsaWQgIT0gdHJ1ZSAmJiB4LmlzRGlzYWJsZWQgPT0gZmFsc2UgJiYgeC5pc1Nob3cgPT0gdHJ1ZSAmJiB4LmlzTWF0cml4R3JvdXAgIT0gdHJ1ZSk7XG5cbiAgICBpZiAoaW52YWxpZFJlY29yZHMubGVuZ3RoID4gMCkge1xuICAgICAgJChgI3N1cnZleS1wYWdlXyR7Y3VycmVudFBhZ2VJbmRleH1gKS5hZGRDbGFzcygnc3VydmV5LXBhZ2Vfc3VibWl0dGVkJyk7XG4gICAgfVxuXG4gICAgaWYgKGludmFsaWRSZWNvcmRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKGludmFsaWRSZWNvcmRzKTtcbiAgICB9XG4gICAgcmV0dXJuIGludmFsaWRSZWNvcmRzLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrUnVsZXMoKSB7XG5cbiAgICB0aGlzLnN1cnZleURhdGEuc3VydmV5UnVsZXMuZm9yRWFjaChydWxlID0+IHtcbiAgICAgIHRoaXMuX2NoZWNrUnVsZUV4cHNVc2VjYXNlLmV4ZWN1dGUoe1xuICAgICAgICBydWxlRXhwczogcnVsZS5ydWxlRXhwcyxcbiAgICAgICAgcXVlc3Rpb25zOiB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlXG4gICAgICB9KS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcblxuICAgICAgICB2YXIgaXNQYXNzZWQgPSByZXN1bHQuZXhwcmVzdGlvblJlc3VsdEFyci5maWx0ZXIoeCA9PiB4ID09IGZhbHNlKS5sZW5ndGggPT0gMDtcbiAgICAgICAgaWYgKGlzUGFzc2VkKSB7XG5cbiAgICAgICAgICBydWxlLnJ1bGVSZXN1bHRRdWVzdGlvbnMuZm9yRWFjaChyZXN1bHRRdWVzdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUuZmluZEluZGV4KHggPT4geC5xdWVzdGlvbklkID09IHJlc3VsdFF1ZXN0aW9uLnF1ZXN0aW9uSWQpO1xuICAgICAgICAgICAgdmFyIHF1ZXN0aW9uR3JvdXAgPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LmF0KGluZGV4KTtcbiAgICAgICAgICAgIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLlNob3cpIHtcbiAgICAgICAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5pc1Nob3cuc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgICAgICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc2V0UXVlc3Rpb25Jc1Nob3cocXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvbklkLCB0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5IaWRlKSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuaXNTaG93LnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgICAgICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zZXRRdWVzdGlvbklzU2hvdyhxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uSWQsIGZhbHNlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5FbmFibGUpIHtcbiAgICAgICAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5pc0Rpc2FibGVkLnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgICAgICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zZXRRdWVzdGlvbklzRGlzYWJsZWQocXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvbklkLCBmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uRGlzYWJsZSkge1xuICAgICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzRGlzYWJsZWQuc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgICAgICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc2V0UXVlc3Rpb25Jc0Rpc2FibGVkKHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25JZCwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uU2V0QW5zd2VyKSB7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHJ1bGUucnVsZVJlc3VsdFF1ZXN0aW9ucy5mb3JFYWNoKHJlc3VsdFF1ZXN0aW9uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCk7XG4gICAgICAgICAgICB2YXIgcXVlc3Rpb25Hcm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkuYXQoaW5kZXgpO1xuICAgICAgICAgICAgcXVlc3Rpb25Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgaXNTaG93OiBxdWVzdGlvbkdyb3VwLnZhbHVlLmlzU2hvd19kZWZhdWx0LFxuICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBxdWVzdGlvbkdyb3VwLnZhbHVlLmlzRGlzYWJsZWRfZGVmYXVsdFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnNldFF1ZXN0aW9uSXNEaXNhYmxlZChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uSWQsIHF1ZXN0aW9uR3JvdXAudmFsdWUuaXNEaXNhYmxlZF9kZWZhdWx0KTtcbiAgICAgICAgICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc2V0UXVlc3Rpb25Jc1Nob3cocXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvbklkLCBxdWVzdGlvbkdyb3VwLnZhbHVlLmlzU2hvd19kZWZhdWx0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TmV4dFNob3dlZFBhZ2UoKSB7XG4gICAgdmFyIGN1cnJlbnRQYWdlSW5kZXggPSB0aGlzLmZDdHJscy5jdXJyZW50UGFnZUluZGV4LnZhbHVlO1xuICAgIHZhciBzaG93ZWRQYWdlcyA9IHRoaXMuc2hvd2VkU3VydmV5UGFnZXM7XG4gICAgdmFyIG5leHRTaG93ZWRQYWdlcyA9IHNob3dlZFBhZ2VzLmZpbHRlcih4ID0+IHggPiBjdXJyZW50UGFnZUluZGV4KTtcbiAgICBpZiAobmV4dFNob3dlZFBhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBuZXh0U2hvd2VkUGFnZXNbMF07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcmV2U2hvd2VkUGFnZSgpIHtcbiAgICB2YXIgY3VycmVudFBhZ2VJbmRleCA9IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWU7XG4gICAgdmFyIHNob3dlZFBhZ2VzID0gdGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcztcbiAgICB2YXIgcHJldlNob3dlZFBhZ2VzID0gc2hvd2VkUGFnZXMuZmlsdGVyKHggPT4geCA8IGN1cnJlbnRQYWdlSW5kZXgpO1xuICAgIGlmIChwcmV2U2hvd2VkUGFnZXMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHByZXZTaG93ZWRQYWdlc1twcmV2U2hvd2VkUGFnZXMubGVuZ3RoIC0gMV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRRdWVzdGlvbkdyb3VwKHF1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0bywgcGFnZUluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgIT0gNikge1xuICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICAgIHN1cnZleVBhZ2VJbmRleDogcGFnZUluZGV4LFxuICAgICAgICBxdWVzdGlvbklkOiBbcXVlc3Rpb24ucXVlc3Rpb25JZF0sXG4gICAgICAgIHF1ZXN0aW9uVHlwZTogW3F1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkXSxcbiAgICAgICAgaXNNYXRyaXhHcm91cDogW2ZhbHNlXSxcbiAgICAgICAgYW5zd2VySWQ6IFtudWxsXSxcbiAgICAgICAgYW5zd2VySWRBcnI6IFtudWxsXSxcbiAgICAgICAgYW5zd2VyVGV4dDogW251bGxdLFxuICAgICAgICBpc1JlcXVpcmVkOiBbcXVlc3Rpb24uaXNSZXF1aXJlZF0sXG4gICAgICAgIGlzVmFsaWQ6IFtudWxsXSxcbiAgICAgICAgaXNEaXNhYmxlZDogW3F1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICBpc1Nob3c6IFtxdWVzdGlvbi5pc1Zpc2FibGVdLFxuICAgICAgICBpc0Rpc2FibGVkX2RlZmF1bHQ6IFtxdWVzdGlvbi5pc1JlYWRPbmx5XSxcbiAgICAgICAgaXNTaG93X2RlZmF1bHQ6IFtxdWVzdGlvbi5pc1Zpc2FibGVdXG4gICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkucHVzaCh0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oe1xuICAgICAgICBzdXJ2ZXlQYWdlSW5kZXg6IHBhZ2VJbmRleCxcbiAgICAgICAgcXVlc3Rpb25JZDogW3F1ZXN0aW9uLnF1ZXN0aW9uSWRdLFxuICAgICAgICBxdWVzdGlvblR5cGU6IFtxdWVzdGlvbi5xdWVzdGlvblR5cGVJZF0sXG4gICAgICAgIGlzTWF0cml4R3JvdXA6IFt0cnVlXSxcbiAgICAgICAgYW5zd2VySWQ6IFtudWxsXSxcbiAgICAgICAgYW5zd2VySWRBcnI6IFtudWxsXSxcbiAgICAgICAgYW5zd2VyVGV4dDogW251bGxdLFxuICAgICAgICBpc1JlcXVpcmVkOiBbcXVlc3Rpb24uaXNSZXF1aXJlZF0sXG4gICAgICAgIGlzVmFsaWQ6IFtudWxsXSxcbiAgICAgICAgaXNEaXNhYmxlZDogW3F1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICBpc1Nob3c6IFtxdWVzdGlvbi5pc1Zpc2FibGVdLFxuICAgICAgICBpc0Rpc2FibGVkX2RlZmF1bHQ6IFtxdWVzdGlvbi5pc1JlYWRPbmx5XSxcbiAgICAgICAgaXNTaG93X2RlZmF1bHQ6IFtxdWVzdGlvbi5pc1Zpc2FibGVdLFxuICAgICAgfSkpO1xuXG4gICAgICBxdWVzdGlvbi5zdXJ2ZXlTdWJRdWVzdGlvbnMuZm9yRWFjaChzdWJRdWVzdGlvbiA9PiB7XG4gICAgICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkucHVzaCh0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oe1xuICAgICAgICAgIHN1cnZleVBhZ2VJbmRleDogcGFnZUluZGV4LFxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IFtzdWJRdWVzdGlvbi5xdWVzdGlvbklkXSxcbiAgICAgICAgICBxdWVzdGlvblR5cGU6IFtzdWJRdWVzdGlvbi5xdWVzdGlvblR5cGVJZF0sXG4gICAgICAgICAgaXNNYXRyaXhHcm91cDogW2ZhbHNlXSxcbiAgICAgICAgICBhbnN3ZXJJZDogW251bGxdLFxuICAgICAgICAgIGFuc3dlcklkQXJyOiBbbnVsbF0sXG4gICAgICAgICAgYW5zd2VyVGV4dDogW251bGxdLFxuICAgICAgICAgIGlzUmVxdWlyZWQ6IFtxdWVzdGlvbi5pc1JlcXVpcmVkXSxcbiAgICAgICAgICBpc1ZhbGlkOiBbbnVsbF0sXG4gICAgICAgICAgaXNEaXNhYmxlZDogW3N1YlF1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICAgIGlzU2hvdzogW3N1YlF1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICAgICAgaXNEaXNhYmxlZF9kZWZhdWx0OiBbc3ViUXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgICAgaXNTaG93X2RlZmF1bHQ6IFtzdWJRdWVzdGlvbi5pc1Zpc2FibGVdXG4gICAgICAgIH0pKTtcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUXVlc3Rpb25VcGRhdGVzKHBhZ2VJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maWx0ZXIoeCA9PiB4LnN1cnZleVBhZ2VJbmRleCA9PSBwYWdlSW5kZXgpLmZvckVhY2gocXVlc3Rpb24gPT4ge1xuICAgICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zZXRRdWVzdGlvbklzU2hvdyhxdWVzdGlvbi5xdWVzdGlvbklkLCBxdWVzdGlvbi5pc1Nob3cpO1xuICAgICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zZXRRdWVzdGlvbklzRGlzYWJsZWQocXVlc3Rpb24ucXVlc3Rpb25JZCwgcXVlc3Rpb24uaXNEaXNhYmxlZCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJzdXJ2ZXJ5LWNhcmQte3tzdXJ2ZXJ5TGlicmFyeURpdklkfX1cIiBjbGFzcz1cInN1cnZheS1jYXJkXCIgPlxyXG4gIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIHRleHQtY2VudGVyXCIgcm9sZT1cImFsZXJ0XCIgKm5nSWY9XCJpc1ByZSA9PSB0cnVlICYmIHN1cnZleURhdGEgIT0gbnVsbFwiPlxyXG4gICAgPGg0IGNsYXNzPVwiYWxlcnQtaGVhZGluZyBtYi0wXCI+VGhpcyBzdXJ2ZXkgaW4gcmV2aWV3IHBoYXNlIDwvaDQ+XHJcbiAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdXJ2ZXlQYWdlIG9mIHN1cnZleURhdGE/LnN1cnZleVBhZ2VzOyBsZXQgc3VydmV5UGFnZUluZGV4ID0gaW5kZXhcIlxyXG4gICAgICBbYXR0ci5pZF09XCInc3VydmV5LXBhZ2VfJytzdXJ2ZXlQYWdlSW5kZXhcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7J2Qtbm9uZSc6IHN1cnZleVBhZ2VJbmRleCAhPSBmQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZX1cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdXJ2ZXlQYWdlLnN1cnZleVF1ZXN0aW9uR3JvdXBzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmF5LWNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmF5LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJncm91cC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2l0ZW0ucXVlc3Rpb25Hcm91cE5hbWV9fVxyXG4gICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ3JvdXAtc3ViLXRpdGxlIFwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2l0ZW0ucXVlc3Rpb25Hcm91cERlc2NyaXB0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBpdGVtLnN1cnZleVF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlICNxdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLkJvb2xlYW5cIj5cclxuICAgICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10ZXh0LXRlbXBsYXRlICNxdWVzdGlvblRleHRUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLlRleHRJbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgIFtpc1RleHRBcmVhXT1cInF1ZXN0aW9uLmlzQWR2YW5jZVRleHRBcmVhXCI+PC9saWItcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZSAjcXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uUmFkaW9CdXR0b25cIj5cclxuICAgICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlICNxdWVzdGlvbkRyb3Bkb3duVGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93blwiPjwvbGliLXF1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tZHJvcGRvd24tbXVsdGktdGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93bk11bHRpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2xpYi1xdWVzdGlvbi1kcm9wZG93bi1tdWx0aS10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZSAjcXVlc3Rpb25DaGVja0JveFRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uQ2hlY2tCb3hcIj5cclxuICAgICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZSAjcXVlc3Rpb25NYXRyaXhUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLk1hdHJpeFwiPlxyXG4gICAgICAgICAgICAgICAgPC9saWItcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlICNxdWVzdGlvbkNhc2NhZGVUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLkNhc2NhZGVcIlxyXG4gICAgICAgICAgICAgICAgICBbYXBwbGljYW50S2V5XT1cImFwcGxpY2FudEtleVwiIFtpc1ByZV09XCJpc1ByZVwiIFtzdXJ2ZXlMYW5ndWFnZUlkXT1cInN1cnZleUxhbmd1YWdlSWRcIiBcclxuICAgICAgICAgICAgICAgICAgW3BhZ2VJbmRleF09XCJzdXJ2ZXlQYWdlSW5kZXhcIj48L2xpYi1xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkLWZvb3RyXCIgKm5nSWY9XCJzdXJ2ZXlEYXRhICE9IG51bGxcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiIGp1c3RpZnktY29udGVudDogc3RhcnQ7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1wYWdpbmF0aW9uIGZ3LWJvbGRcIj5cclxuICAgICAgICAgIDxzcGFuPnt7Y3VycnVudFNob3dlZFN1cnZleVBhZ2VzfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWUtMlwiPm9mPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+e3tzaG93ZWRTdXJ2ZXlQYWdlcz8ubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
package/fesm2022/survery-lib.mjs
CHANGED
|
@@ -752,6 +752,12 @@ class QuestionMatrixTemplateComponent {
|
|
|
752
752
|
}
|
|
753
753
|
});
|
|
754
754
|
});
|
|
755
|
+
this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {
|
|
756
|
+
this.fCtrls.isDisabled.setValue(x.isDisabled);
|
|
757
|
+
});
|
|
758
|
+
this._surveyLibService.questionIsShowObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {
|
|
759
|
+
this.fCtrls.isShow.setValue(x.isShow);
|
|
760
|
+
});
|
|
755
761
|
}
|
|
756
762
|
onChangeAnswer(question, answer) {
|
|
757
763
|
const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);
|
|
@@ -1150,7 +1156,6 @@ class SurveryLibComponent {
|
|
|
1150
1156
|
this.fCtrls.questionArray.clear();
|
|
1151
1157
|
this.fCtrls.ruleQuestionArray.clear();
|
|
1152
1158
|
this.surveyData = null;
|
|
1153
|
-
console.log(survey);
|
|
1154
1159
|
if (survey != null) {
|
|
1155
1160
|
this.surveyData = survey;
|
|
1156
1161
|
this.loadQuestions(survey);
|
|
@@ -1170,6 +1175,9 @@ class SurveryLibComponent {
|
|
|
1170
1175
|
const nextPageIndex = this.getNextShowedPage();
|
|
1171
1176
|
if (nextPageIndex != null) {
|
|
1172
1177
|
this.fCtrls.currentPageIndex.setValue(nextPageIndex);
|
|
1178
|
+
setTimeout(() => {
|
|
1179
|
+
this.loadQuestionUpdates(nextPageIndex);
|
|
1180
|
+
});
|
|
1173
1181
|
$('html, body').animate({
|
|
1174
1182
|
scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top
|
|
1175
1183
|
}, 2000);
|
|
@@ -1241,8 +1249,7 @@ class SurveryLibComponent {
|
|
|
1241
1249
|
haveInValidateQuestions() {
|
|
1242
1250
|
const currentPageIndex = this.fCtrls.currentPageIndex.value;
|
|
1243
1251
|
var invalidRecords = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == currentPageIndex
|
|
1244
|
-
&& x.isRequired == true && x.isValid != true
|
|
1245
|
-
&& x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);
|
|
1252
|
+
&& x.isRequired == true && x.isValid != true && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);
|
|
1246
1253
|
if (invalidRecords.length > 0) {
|
|
1247
1254
|
$(`#survey-page_${currentPageIndex}`).addClass('survey-page_submitted');
|
|
1248
1255
|
}
|
|
@@ -1368,6 +1375,12 @@ class SurveryLibComponent {
|
|
|
1368
1375
|
});
|
|
1369
1376
|
}
|
|
1370
1377
|
}
|
|
1378
|
+
loadQuestionUpdates(pageIndex) {
|
|
1379
|
+
this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == pageIndex).forEach(question => {
|
|
1380
|
+
this._surveyLibService.setQuestionIsShow(question.questionId, question.isShow);
|
|
1381
|
+
this._surveyLibService.setQuestionIsDisabled(question.questionId, question.isDisabled);
|
|
1382
|
+
});
|
|
1383
|
+
}
|
|
1371
1384
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SurveryLibComponent, deps: [{ token: SurveyLibService }, { token: i1.FormBuilder }, { token: CheckRuleExpsUsecase }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1372
1385
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SurveryLibComponent, selector: "lib-survery-lib", inputs: { isPre: "isPre", surveyLanguageId: "surveyLanguageId", applicantKey: "applicantKey" }, outputs: { surveyResultEmit: "surveyResultEmit", selectLanguageEmit: "selectLanguageEmit" }, ngImport: i0, template: "<div id=\"survery-card-{{surveryLibraryDivId}}\" class=\"survay-card\" >\r\n <div class=\"alert alert-warning text-center\" role=\"alert\" *ngIf=\"isPre == true && surveyData != null\">\r\n <h4 class=\"alert-heading mb-0\">This survey in review phase </h4>\r\n </div>\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\"\r\n [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template #questionBooleanTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\">\r\n </lib-question-boolean-template>\r\n\r\n <lib-question-text-template #questionTextTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template #questionRadioButtonTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\">\r\n </lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"></lib-question-dropdown-template>\r\n\r\n <lib-question-dropdown-multi-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDownMulti\">\r\n </lib-question-dropdown-multi-template>\r\n\r\n <lib-question-check-box-template #questionCheckBoxTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\">\r\n </lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template #questionMatrixTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\">\r\n </lib-question-matrix-template>\r\n\r\n <lib-question-cascade-template #questionCascadeTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Cascade\"\r\n [applicantKey]=\"applicantKey\" [isPre]=\"isPre\" [surveyLanguageId]=\"surveyLanguageId\" \r\n [pageIndex]=\"surveyPageIndex\"></lib-question-cascade-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\">\r\n <span>{{curruntShowedSurveyPages}}</span>\r\n <span class=\"ms-2 me-2\">of</span>\r\n <span>{{showedSurveyPages?.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}.quastion{padding:10px}.quastion .quastion-title{color:var(--dark-100, #363636);text-align:right;font-family:Almarai;font-size:18px;font-style:normal;font-weight:700;line-height:20.6px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: ["isTextArea", "setQuestion", "isDisabled"], outputs: ["emitter"] }, { kind: "component", type: QuestionRadioButtonTemplateComponent, selector: "lib-question-radio-button-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionCheckBoxTemplateComponent, selector: "lib-question-check-box-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionMatrixTemplateComponent, selector: "lib-question-matrix-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionBooleanTemplateComponent, selector: "lib-question-boolean-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionDropdownMultiTemplateComponent, selector: "lib-question-dropdown-multi-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionCascadeTemplateComponent, selector: "lib-question-cascade-template", inputs: ["pageIndex", "isPre", "surveyLanguageId", "applicantKey", "setQuestion"], outputs: ["emitter"] }] }); }
|
|
1373
1386
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"survery-lib.mjs","sources":["../../../projects/survery-lib/src/shared/enums/question-type.enum.ts","../../../projects/survery-lib/src/shared/enums/logic-action.enum.ts","../../../projects/survery-lib/src/lib/services/survey-lib.service.ts","../../../projects/survery-lib/src/shared/enums/Logic-Property.enum.ts","../../../projects/survery-lib/src/shared/enums/operator.enum.ts","../../../projects/survery-lib/src/lib/usecases/check-rule-exps.usecase.ts","../../../projects/survery-lib/src/shared/enums/input-type.enum.ts","../../../projects/survery-lib/src/lib/pipes/text-box-type-attr.pipe.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.html","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.ts","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.html","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.ts","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.html","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.ts","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.html","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.ts","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.html","../../../projects/survery-lib/src/lib/services/lib-config.service.ts","../../../projects/survery-lib/src/lib/services/api.service.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.html","../../../projects/survery-lib/src/lib/survery-lib.component.ts","../../../projects/survery-lib/src/lib/survey-lib.component.html","../../../projects/survery-lib/src/lib/pipes/filter-question.pipe.ts","../../../projects/survery-lib/src/lib/pipes/default-question-answer.pipe.ts","../../../projects/survery-lib/src/lib/pipes/default-question-answers.pipe.ts","../../../projects/survery-lib/src/lib/survery-lib.module.ts","../../../projects/survery-lib/src/shared/models/survery-question-result.model.ts","../../../projects/survery-lib/src/public-api.ts","../../../projects/survery-lib/src/survery-lib.ts"],"sourcesContent":["export enum QuestionTypeEnum {\r\n RadioButton = 1,\r\n CheckBox = 2,\r\n DropDown = 3,\r\n Boolean = 4,\r\n TextInput = 5,\r\n Matrix = 6,\r\n DropDownMulti = 7 ,\r\n Cascade = 8\r\n}","export enum LogicActionEnum {\r\n Show = 1,\r\n Hide = 2,\r\n Enable = 3,\r\n Disable = 4,\r\n SetAnswer = 5\r\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { SurveyDto } from '../../shared/dtos/survey.dto';\nimport { surveyAnswersSubjectDto } from '../../shared/dtos/survey-answers-subject.dto';\nimport { SurveyLanguageDto } from '../../shared/dtos/survey-language.dto';\nimport { v4 as guidGenerator } from 'uuid';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SurveyLibService {\n\n private surveyDataSubject: Subject<SurveyDto> = new Subject<SurveyDto>();\n private surveyAnswersSubject: Subject<surveyAnswersSubjectDto> = new Subject<surveyAnswersSubjectDto>();\n private reloadSurveySubject: Subject<string> = new Subject<string>();\n private questionIsShowSubject: Subject<{ questionId: number, isShow: boolean }> = new Subject<{ questionId: number, isShow: boolean }>();\n private questionIsDisabledSubject: Subject<{ questionId: number, isDisabled: boolean }> = new Subject<{ questionId: number, isDisabled: boolean }>();\n private addQuestionSubject: Subject<{ question: SurveyQuestionDto, pageIndex: number }> = new Subject<{ question: SurveyQuestionDto, pageIndex: number }>();\n private removeQuestionSubject: Subject<{ questionId: number }> = new Subject<{ questionId: number }>();\n\n get surveyDataObsrv() {\n return this.surveyDataSubject.asObservable();\n }\n\n get surveyAnswersObsrv() {\n return this.surveyAnswersSubject.asObservable();\n }\n\n get reloadSurveyObsrv() {\n return this.reloadSurveySubject.asObservable();\n }\n\n get questionIsShowObsrv() {\n return this.questionIsShowSubject.asObservable();\n }\n\n get questionIsDisabledObsrv() {\n return this.questionIsDisabledSubject.asObservable();\n }\n\n get addQuestionObsrv() {\n return this.addQuestionSubject.asObservable();\n }\n\n get removeQuestionObsrv() {\n return this.removeQuestionSubject.asObservable();\n }\n\n constructor() { }\n\n setSurveyData(survey: SurveyDto) {\n this.surveyDataSubject.next(survey);\n }\n\n setsurveyAnswers(model: surveyAnswersSubjectDto) {\n this.surveyAnswersSubject.next(model);\n }\n\n setQuestionIsShow(questionId: number, isShow: boolean) {\n this.questionIsShowSubject.next({ questionId, isShow });\n }\n\n setQuestionIsDisabled(questionId: number, isDisabled: boolean) {\n this.questionIsDisabledSubject.next({ questionId, isDisabled });\n }\n\n setReloadSurvey() {\n this.reloadSurveySubject.next(guidGenerator());\n }\n\n setAddQuestion(question: SurveyQuestionDto, pageIndex: number) {\n this.addQuestionSubject.next({ question, pageIndex });\n }\n\n setRemoveQuestion(questionId: number) {\n this.removeQuestionSubject.next({ questionId });\n }\n}\n","export enum LogicPropertyEnum{\r\n GreaterThan = 1 ,\r\n GreaterThanOrEqual = 2 ,\r\n LessThan = 3,\r\n LessThanOrEqual = 4 ,\r\n Equal = 5 ,\r\n NotEqual = 6,\r\n IsEmpty = 9 ,\r\n IsNotEmpty = 10 ,\r\n AnyOf =11,\r\n Then = 12\r\n}","export enum OperatorEnum {\r\n Or = 7,\r\n And =8\r\n}","import { Observable, of } from \"rxjs\";\r\nimport { UseCase } from \"./base/use-case\";\r\nimport { SurveyRuleDto } from \"../../shared/dtos/survey-rule.dto\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { QuestionChildOfSurveryLibFormInterface } from \"../../shared/form-interfaces/survery-lib.form-interface\";\r\nimport { RuleExpDto } from \"../../shared/dtos/rule-exp.dto\";\r\nimport { QuestionTypeEnum } from \"../../shared/enums/question-type.enum\";\r\nimport { LogicPropertyEnum } from \"../../shared/enums/Logic-Property.enum\";\r\nimport { OperatorEnum } from \"../../shared/enums/operator.enum\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckRuleExpsUsecase implements UseCase<CheckRulesUsecaseModel, CheckRulesUsecaseResult>{\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n execute(params: CheckRulesUsecaseModel): Observable<CheckRulesUsecaseResult> {\r\n\r\n var useCaseResult: CheckRulesUsecaseResult = {\r\n exprestionResultArr: []\r\n };\r\n\r\n params.ruleExps.forEach(ruleExp => {\r\n const index = params.questions.findIndex(x => x.questionId == ruleExp.questionId);\r\n var questionGroupValue = params.questions.at(index);\r\n\r\n var result: boolean;\r\n\r\n if (questionGroupValue.questionType == QuestionTypeEnum.TextInput) {\r\n result = this.checkRuleExpForAnswerText(ruleExp, questionGroupValue.answerText)\r\n } \r\n else if (questionGroupValue.questionType == QuestionTypeEnum.CheckBox || questionGroupValue.questionType == QuestionTypeEnum.DropDownMulti) {\r\n result = this.checkRuleExpForAnswerIdArr(ruleExp, questionGroupValue.answerIdArr);\r\n } \r\n else {\r\n result = this.checkRuleExpForAnswerId(ruleExp, questionGroupValue.answerId);\r\n }\r\n\r\n var answers =ruleExp.ruleExpAnswers.map(x=>x.answerId+'-'+x.answerTitle);\r\n console.log(`Question ${questionGroupValue.questionId} type ${QuestionTypeEnum[questionGroupValue.questionType]} --- ${result == true ?'passed':'not passed'} ---`,\r\n ` answers (${answers.join(' , ')}) logic (${ LogicPropertyEnum[ruleExp.logicPropertyId]}) operator (${OperatorEnum [ruleExp.opporator]})`);\r\n\r\n useCaseResult.exprestionResultArr.push(result);\r\n });\r\n\r\n return of(useCaseResult);\r\n }\r\n\r\n private checkRuleExpForAnswerId(ruleExp: RuleExpDto, answerId: number) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId > answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId >= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId < answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId <= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Equal) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId == answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.NotEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId != answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answerId == null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answerId != null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.AnyOf) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) > -1\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Then) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) == -1\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerIdArr(ruleExp: RuleExpDto, answerIdArr: number[]) {\r\n var ruleExpResultArr: boolean[] = [];\r\n\r\n answerIdArr?.forEach(answer => {\r\n var isResult = this.checkRuleExpForAnswerId(ruleExp, answer);\r\n ruleExpResultArr.push(isResult);\r\n })\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerText(ruleExp: RuleExpDto, answer: string) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answer == null || answer == ''\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answer != null && answer != ''\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n\r\n if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class CheckRulesUsecaseModel {\r\n ruleExps: RuleExpDto[];\r\n questions: QuestionChildOfSurveryLibFormInterface[];\r\n}\r\n\r\nexport class CheckRulesUsecaseResult {\r\n exprestionResultArr: boolean[];\r\n}","export enum InputTypeEnum {\r\n Color = 1,\r\n Date = 2 ,\r\n\tDateTime = 3,\r\n Email = 4,\r\n Number = 5,\r\n Password = 6,\r\n Text = 7\r\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { InputTypeEnum } from '../../shared/enums/input-type.enum';\n\n@Pipe({\n name: 'textBoxTypeAttr'\n})\nexport class TextBoxTypeAttrPipe implements PipeTransform {\n\n transform(value: InputTypeEnum, ...args: unknown[]): string {\n if (value != null) {\n if (value == InputTypeEnum.Color) {\n return 'color';\n } else if (value == InputTypeEnum.Date) {\n return 'date';\n }\n else if (value == InputTypeEnum.DateTime) {\n return 'datetime-local';\n }\n else if (value == InputTypeEnum.Email) {\n return 'email';\n }\n else if (value == InputTypeEnum.Number) {\n return 'number';\n }\n else if (value == InputTypeEnum.Password) {\n return 'password';\n }\n }\n\n return 'text';\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup, FormControl as FormControlStack, ValidatorsModel } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { InputTypeEnum } from '../../../shared/enums/input-type.enum';\n\n@Component({\n selector: 'lib-question-text-template',\n templateUrl: './question-text-template.component.html',\n styleUrls: ['./question-text-template.component.scss']\n})\nexport class QuestionTextTemplateComponent implements OnInit {\n\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionTextTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isTextArea: boolean;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n \n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n if (value.surveyAnswers[0]?.answerId != null && value.surveyAnswers[0]?.answerId != undefined) {\n this.fCtrls.surveyAnswerId.setValue(value.surveyAnswers[0].answerId);\n this.fCtrls.inputTypeId.setValue(value.surveyAnswers[0].inputTypeId);\n }\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n\n if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Number) {\n if(value.surveyAnswers[0].inputMin != null){\n this.fCtrls.answer.addValidators([Validators.min(value.surveyAnswers[0].inputMin)]);\n }\n\n if( value.surveyAnswers[0].inputMax != null){\n this.fCtrls.answer.addValidators([Validators.max(value.surveyAnswers[0].inputMax)]);\n } \n }\n else if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Email) {\n this.fCtrls.answer.addValidators([Validators.email]);\n }\n\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.toggleEnableAnswer(value.isReadOnly);\n }\n\n @Input() set isDisabled(value: boolean) {\n this.toggleEnableAnswer(value);\n }\n\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionTextTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n surveyAnswerId: [null],\n answer: [null],\n isDisabled:[false],\n isShow : [true],\n inputTypeId: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value,\n SurveyAnswerId: formValue.surveyAnswerId\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\n .subscribe(answer => {\n this.fCtrls.answer.setValue(answer.AnswerText);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n \n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n\n private toggleEnableAnswer(isReadOnly: boolean) {\n if (isReadOnly == true) {\n this.fCtrls.answer.disable()\n } else {\n this.fCtrls.answer.enable()\n }\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n}\n","<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion\">\n <ng-container *ngIf=\"isTextArea == false else textAreaTemplate\">\n <input class=\"form-control\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\" [attr.type]=\"fCtrls.inputTypeId.value | textBoxTypeAttr\" >\n </ng-container>\n <ng-template #textAreaTemplate>\n <textarea class=\"form-control\" rows=\"5\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\" ></textarea>\n </ng-template>\n </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionRadioButtonTemplateFormInterface,\r\n QuestionRadioButtonTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-radio-button-template',\r\n templateUrl: './question-radio-button-template.component.html',\r\n styleUrls: ['./question-radio-button-template.component.scss']\r\n})\r\nexport class QuestionRadioButtonTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionRadioButtonTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionRadioButtonTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionRadioButtonTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n isDisabled:[false],\r\n isShow : [true],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionRadioButtonTemplateFormInterface>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n console.log(value);\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\r\n .subscribe(answer => {\r\n this.fCtrls.answer.setValue(answer.AnswerId);\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answer.AnswerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n \r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionRadioButtonTemplateFormInterface) {\r\n this.fCtrls.answer.setValue(item.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of fCtrls.answerArray.controls;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"fCtrls.isDisabled.value\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionCheckBoxTemplateFormInterface,\r\n QuestionCheckBoxTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-check-box-template.form-interface';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-check-box-template',\r\n templateUrl: './question-check-box-template.component.html',\r\n styleUrls: ['./question-check-box-template.component.scss']\r\n})\r\nexport class QuestionCheckBoxTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionCheckBoxTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionCheckBoxTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionCheckBoxTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n isDisabled:[false],\r\n isShow : [true],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionCheckBoxTemplateFormInterface>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv\r\n .pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\r\n .subscribe(answer => {\r\n const distinctArray = answer.AnswerIdArr.filter((n, i) => answer.AnswerIdArr.indexOf(n) === i);\r\n this.fCtrls.answer.setValue(distinctArray);\r\n\r\n answer.AnswerIdArr.forEach(answerId => {\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n })\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n \r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionBooleanTemplateFormInterface, event: Event) {\r\n var answerArr: number[] = this.fCtrls.answer.value || [];\r\n\r\n if ((event.target as any).checked == true) {\r\n answerArr.push(item.id);\r\n } else {\r\n answerArr = answerArr.filter(x => x != item.id);\r\n }\r\n\r\n answerArr = answerArr.length == 0 ? [] : answerArr;\r\n this.fCtrls.answer.setValue(answerArr);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n\n <div class=\"checkbox-button-quastion\">\n <div class=\"form-check check-box-form-check\" *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" [disabled]=\"fCtrls.isDisabled.value\"\n (change)=\"onChangeAnswer(item.value ,$event)\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionDropdownTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-template.form-interface';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { SurveyLibService } from '../../services/survey-lib.service';\n\n@Component({\n selector: 'lib-question-dropdown-template',\n templateUrl: './question-dropdown-template.component.html',\n styleUrls: ['./question-dropdown-template.component.scss']\n})\nexport class QuestionDropdownTemplateComponent implements OnInit {\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionDropdownTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n }\n\n constructor(private _formBuilder: FormBuilder ,private _surveyLibService :SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionDropdownTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null] ,\n isDisabled:[false],\n isShow : [true]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x=>x.length > 0)).pipe(map(x=> x.at(0)))\n .subscribe(answer=>{\n this.fCtrls.answer.setValue(answer.AnswerId);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"surveyQuestion?.surveyAnswers\" bindValue=\"answerId\" bindLabel=\"answerTitle\" class=\"form-control\"\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"false\">\n </ng-select>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\nimport { SurveyQuestionGroupDto } from '../../../shared/dtos/survey-question-group.dto';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { SurveySubQuestionDto } from '../../../shared/dtos/survey-sub-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionMatrixTemplateFormInterface, SubQuestionChildOfQuestionMatrixTemplateFormInterface } from '../../../shared/form-interfaces/question-matrix-template.form-interface';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { v4 as guidGenerator } from 'uuid';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { SurveyLibService } from '../../services/survey-lib.service';\n\n@Component({\n selector: 'lib-question-matrix-template',\n templateUrl: './question-matrix-template.component.html',\n styleUrls: ['./question-matrix-template.component.scss']\n})\nexport class QuestionMatrixTemplateComponent implements OnInit {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionMatrixTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n typeId: value.questionTypeId ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n value.surveySubQuestions.forEach(x => {\n var group = this._formBuilder.group<SubQuestionChildOfQuestionMatrixTemplateFormInterface>({\n subQuestionId: [x.questionId],\n questionTitle: [x.questionTitle],\n answer: [null],\n });\n\n if (value.isRequired == true) {\n group.controls.answer.addValidators([Validators.required]);\n group.controls.answer.updateValueAndValidity();\n }\n\n group.controls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: group.value.subQuestionId,\n Answer: group.value.answer,\n IsValid: group.controls.answer.valid\n });\n });\n\n this.fCtrls.subQuestionArray.push(group);\n });\n }\n\n constructor(private _formBuilder: FormBuilder , private _surveyLibService:SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionMatrixTemplateFormInterface>({\n id: [null],\n typeId: [null],\n isDisabled:[false],\n isShow : [true],\n subQuestionArray: this._formBuilder.array<SubQuestionChildOfQuestionMatrixTemplateFormInterface>([])\n }); \n }\n ngOnInit(): void {\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.ParentQuestionId == this.fCtrls.id.value)))\n .pipe(filter(x=>x.length > 0))\n .subscribe(answers=>{\n console.log(answers);\n this.fCtrls.subQuestionArray.controls.forEach(group => {\n var answer = answers.find(x => x.QuestionId == group.value.subQuestionId);\n if (answer != null) {\n group.controls.answer.setValue(answer.AnswerId);\n }\n })\n })\n }\n\n onChangeAnswer(question: SubQuestionChildOfQuestionMatrixTemplateFormInterface, answer: SurveyAnswerDto) {\n const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);\n var subQuestionGroup = this.fCtrls.subQuestionArray.controls[index];\n\n subQuestionGroup.controls.answer.setValue(answer.answerId);\n\n this.emitter.emit({\n QuestionId: subQuestionGroup.value.subQuestionId,\n Answer: subQuestionGroup.value.answer,\n IsValid: subQuestionGroup.controls.answer.valid\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\"\n[ngClass]=\"{'d-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{surveyQuestion?.questionTitle}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\n <div class=\"matrix-head-row\">\n <div class=\"matrix-col\">\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\">\n {{answers.answerTitle}}\n </div>\n </div>\n\n <div class=\"matrix-row\"\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\n <div class=\"matrix-col matrix-sub-quastion\">\n {{questionGroup.value.questionTitle}} \n </div>\n <div class=\"matrix-col answer__container\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\n <div class=\"form-check form-check-radio form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup.value ,answer)\"\n value=\"{{answer.answerId}}\" [checked]=\"answer.answerId == questionGroup.value.answer\">\n <label class=\"form-check-label d-inline d-lg-none\"\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> {{answer.answerTitle}}</label>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Validators, FormControl } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface, QuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-boolean-template',\r\n templateUrl: './question-boolean-template.component.html',\r\n styleUrls: ['./question-boolean-template.component.scss']\r\n})\r\nexport class QuestionBooleanTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionBooleanTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n console.log(value.surveyAnswers);\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionBooleanTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder , private _surveyLibService:SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionBooleanTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionBooleanTemplateFormInterface>([]) ,\r\n isDisabled:[false],\r\n isShow : [true]\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv\r\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x=>x.length > 0)).pipe(map(x=> x.at(0)))\r\n .subscribe(answer=>{\r\n this.fCtrls.answer.setValue(answer.AnswerId);\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answer.AnswerId);\r\n if(groupIndex > -1){\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n\r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionBooleanTemplateFormInterface) {\r\n this.fCtrls.answer.setValue(item.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"fCtrls.isDisabled.value\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { FormGroup, Validators , FormBuilder} from '@ng-stack/forms';\nimport { QuestionCheckBoxTemplateFormInterface } from '../../../shared/form-interfaces/question-check-box-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { v4 as guidGenerator } from 'uuid';\nimport { AnswerChildOfQuestionDropDownMultiTemplateFormInterface, QuestionDropDownMultiTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-multi-template.form-interface';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\n\n@Component({\n selector: 'lib-question-dropdown-multi-template',\n templateUrl: './question-dropdown-multi-template.component.html',\n styleUrls: ['./question-dropdown-multi-template.component.scss']\n})\nexport class QuestionDropdownMultiTemplateComponent {\n \n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionDropDownMultiTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n value.surveyAnswers.forEach(surveryAnswer => {\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>({\n id: [surveryAnswer.answerId],\n title: [surveryAnswer.answerTitle],\n isSelected: [false]\n }))\n })\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n }\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionDropDownMultiTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null],\n isDisabled:[false],\n isShow : [true],\n answerArray: this._formBuilder.array<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>([])\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\n .subscribe(answer => {\n const distinctArray = answer.AnswerIdArr.filter((n, i) => answer.AnswerIdArr.indexOf(n) === i);\n this.fCtrls.answer.setValue(distinctArray);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n \n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"this.fCtrls.answerArray.value\" bindValue=\"id\" bindLabel=\"title\" class=\"form-control\"\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"true\">\n </ng-select>\n </div>\n</div>\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface LibConfigModel{\r\n apiUrl: string;\r\n}\r\n\r\nexport const LibConfigService = new InjectionToken<LibConfigModel>('LibConfig');","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { LibConfigService, LibConfigModel } from './lib-config.service';\nimport { Observable } from 'rxjs';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\nimport { DtoBase } from '../../shared/dtos/base/dto.base';\nimport { GetNextQuestionResult } from '../../shared/results/api.result';\ndeclare var $: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n private url;\n\n constructor(private _HttpClient: HttpClient,\n @Inject(LibConfigService) private _LibConfigService: LibConfigModel) {\n this.url = _LibConfigService.apiUrl;\n }\n\n getNextQuestion(filter: { answerId, surveyLanguageId, applicantKey, isPre }): Observable<GetNextQuestionResult> {\n var queryString = $.param(filter);\n return this._HttpClient.get<GetNextQuestionResult>(`${this.url}/GetNextQuestion?${queryString}`,\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { QuestionCascadeTemplateFormInterface, QuestionGroupChildOfQuestionCascadeTemplateFormInterface } from '../../../shared/form-interfaces/question-cascade.form-interface';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { ApiService } from '../../services/api.service';\n\n@Component({\n selector: 'lib-question-cascade-template',\n templateUrl: './question-cascade-template.component.html',\n styleUrls: ['./question-cascade-template.component.css']\n})\nexport class QuestionCascadeTemplateComponent {\n surveyQuestionArr: SurveyQuestionDto[] = [];\n rForm: FormGroup<QuestionCascadeTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get questionFormArray() {\n return this.fCtrls.questionArr\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() pageIndex: number = null;\n @Input() isPre: boolean = false;\n @Input() surveyLanguageId: number = null;\n @Input() applicantKey: string = null;\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.setQuestions(value);\n }\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\n private _ApiService: ApiService) {\n this.rForm = this._formBuilder.group<QuestionCascadeTemplateFormInterface>({\n questionArr: this._formBuilder.array<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>([])\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.questionArr.statusChanges.subscribe(v => {\n console.log(v);\n })\n }\n\n onUpdateAnswer(model: QuestionAnswerModel) {\n if (this.surveyQuestionArr.length > 1) {\n const surveyQuestionIndex = this.surveyQuestionArr.findIndex(c => c.questionId == model.QuestionId);\n\n var deletedQuestions = []\n for (let index = surveyQuestionIndex + 1; index < this.surveyQuestionArr.length; index++) {\n deletedQuestions.push(index);\n }\n\n var sortDeletedArr = deletedQuestions.sort((a, b) => (a > b ? -1 : 1));\n for (let index = 0; index < sortDeletedArr.length; index++) {\n const elementIndex = sortDeletedArr[index];\n const questionId = this.surveyQuestionArr[elementIndex].questionId;\n this._surveyLibService.setRemoveQuestion(questionId);\n this.surveyQuestionArr = this.surveyQuestionArr.filter(x=>x.questionId != questionId);\n this.questionFormArray.removeAt(elementIndex);\n }\n }\n\n if (model.Answer) {\n this._ApiService.getNextQuestion({\n answerId: model.Answer,\n applicantKey: this.applicantKey,\n isPre: this.isPre,\n surveyLanguageId: this.surveyLanguageId\n }).subscribe(res => {\n if (res.errors.filter(x => x.code == 17).length == 0) {\n this.setQuestions(res);\n this._surveyLibService.setAddQuestion(res, this.pageIndex);\n }\n });\n }\n\n this.emitter.emit(model);\n }\n\n identify(index, item: QuestionGroupChildOfQuestionCascadeTemplateFormInterface) {\n return item.id;\n }\n\n private setQuestions(value: SurveyQuestionDto) {\n this.surveyQuestionArr.push(value);\n\n var group = this._formBuilder.group<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>({\n id: [value.questionId],\n typeId: [value.questionTypeId],\n answer: null\n });\n\n if (value.isRequired == true) {\n group.controls.answer.addValidators([Validators.required]);\n group.controls.answer.updateValueAndValidity();\n }\n\n this.fCtrls.questionArr.push(group);\n }\n\n}\n","<ng-container *ngFor=\"let item of questionFormArray.value ; trackBy:identify ; let i = index\">\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"surveyQuestionArr[i]\"\n (emitter)=\"onUpdateAnswer($event)\" >\n </lib-question-dropdown-template>\n</ng-container>","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\nimport { SurveyLibService } from './services/survey-lib.service';\nimport { SurveyDto } from '../shared/dtos/survey.dto';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { QuestionChildOfSurveryLibFormInterface, RuleQuestionChildOfSurveryLibFormInterface, SurveryLibFormInterface } from '../shared/form-interfaces/survery-lib.form-interface';\nimport { QuestionTypeEnum } from '../shared/enums/question-type.enum';\nimport { v4 as guidGenerator } from 'uuid';\nimport { QuestionAnswerModel } from '../shared/models/question-answer.model';\nimport { Observable, debounceTime, distinctUntilChanged, of } from 'rxjs';\nimport { LogicPropertyEnum } from '../shared/enums/Logic-Property.enum';\nimport { RuleExpDto } from '../shared/dtos/rule-exp.dto';\nimport { OperatorEnum } from '../shared/enums/operator.enum';\nimport { LogicActionEnum } from '../shared/enums/logic-action.enum';\nimport { CheckRuleExpsUsecase } from './usecases/check-rule-exps.usecase';\nimport { SurveyQuestionResult } from '../shared/models/survery-question-result.model';\nimport { DefaultQuestionAnswerDto } from '../shared/dtos/default-question-answers.dto';\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\nimport { SurveyLanguageDto } from '../shared/dtos/survey-language.dto';\nimport { SurveySectionEnum } from '../shared/enums/survey-section.enum';\nimport { Validators } from '@angular/forms';\nimport { SurveyQuestionDto } from '../shared/dtos/survey-question.dto';\ndeclare var $: any;\n\n@Component({\n selector: 'lib-survery-lib',\n templateUrl: './survey-lib.component.html',\n styleUrls: ['./survey-lib.component.scss']\n})\nexport class SurveryLibComponent implements OnInit, AfterViewInit {\n\n surveryLibraryDivId = guidGenerator() as string;\n reloadDefaultAnswerId = guidGenerator() as string;\n surveyData: SurveyDto;\n defaultAnswers: DefaultQuestionAnswerDto[];\n rForm: FormGroup<SurveryLibFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get isFirstPage() {\n if (this.showedSurveyPages.length > 0) {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) == 0;\n }\n return true;\n }\n\n get isLastPage() {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) == (this.showedSurveyPages.length - 1)\n }\n\n get showedSurveyPages(): number[] {\n var pageArr: number[] = [];\n for (let index = 0; index < this.fCtrls.questionArray.value.length; index++) {\n const question = this.fCtrls.questionArray.value[index];\n if (question.isShow == true && (question.questionType != this.questionTypeEnum.Matrix || question.isMatrixGroup == true)) {\n pageArr.push(question.surveyPageIndex);\n }\n }\n\n const distinctArray = pageArr.filter((n, i) => pageArr.indexOf(n) === i);\n\n return distinctArray.sort((a, b) => a - b);\n }\n\n get curruntShowedSurveyPages() {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) + 1;\n }\n\n get surveyResult(): { answers: SurveyQuestionResult[], currentPageIndex: number } {\n return {\n currentPageIndex: this.fCtrls.currentPageIndex.value,\n answers:\n this.fCtrls.questionArray.value.filter(x => x.isMatrixGroup != true).map(x => {\n return {\n SurveyPageIndex: x.surveyPageIndex,\n QuestionId: x.questionId,\n QuestionType: x.questionType,\n AnswerId: x.answerId,\n AnswerText: x.answerText,\n AnswerIdArr: x.answerIdArr\n } as SurveyQuestionResult\n })\n }\n }\n\n @Input() isPre: boolean = false;\n @Input() surveyLanguageId: number = null;\n @Input() applicantKey: string = null;\n\n @Output() surveyResultEmit = new EventEmitter<SurveyQuestionResult[]>();\n @Output() selectLanguageEmit = new EventEmitter<string>();\n\n constructor(private _surveyLibService: SurveyLibService\n , private _formBuilder: FormBuilder, private _checkRuleExpsUsecase: CheckRuleExpsUsecase) {\n\n this.rForm = this._formBuilder.group<SurveryLibFormInterface>({\n currentPageIndex: [0],\n questionArray: this._formBuilder.array<QuestionChildOfSurveryLibFormInterface>([]),\n ruleQuestionArray: this._formBuilder.array<RuleQuestionChildOfSurveryLibFormInterface>([])\n });\n }\n ngAfterViewInit(): void {\n }\n\n ngOnInit(): void {\n this._surveyLibService.surveyDataObsrv.pipe(debounceTime(300), distinctUntilChanged()).subscribe(survey => {\n this.fCtrls.questionArray.clear();\n this.fCtrls.ruleQuestionArray.clear();\n this.surveyData = null;\n console.log(survey);\n\n if (survey != null) {\n this.surveyData = survey;\n this.loadQuestions(survey);\n }\n });\n\n this._surveyLibService.addQuestionObsrv.subscribe(res => {\n this.addQuestionGroup(res.question, res.pageIndex);\n });\n\n this._surveyLibService.removeQuestionObsrv.subscribe(res => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == res.questionId);\n this.fCtrls.questionArray.removeAt(index);\n });\n\n }\n\n onPaggingNext() {\n var isHaveInvalidRecords = this.haveInValidateQuestions();\n if (isHaveInvalidRecords == false) {\n\n const nextPageIndex = this.getNextShowedPage();\n\n if (nextPageIndex != null) {\n this.fCtrls.currentPageIndex.setValue(nextPageIndex);\n\n $('html, body').animate({\n scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top\n }, 2000);\n\n } else {\n var questionArr = this.fCtrls.questionArray.value.filter(x => x.isMatrixGroup != true).map(x => {\n return {\n SurveyPageIndex: x.surveyPageIndex,\n QuestionId: x.questionId,\n QuestionType: x.questionType,\n AnswerId: x.answerId,\n AnswerText: x.answerText,\n AnswerIdArr: x.answerIdArr\n } as SurveyQuestionResult\n });\n this.surveyResultEmit.emit(questionArr);\n }\n }\n }\n\n onPaggingBack() {\n const prevPageIndex = this.getPrevShowedPage();\n if (prevPageIndex != null) {\n this.fCtrls.currentPageIndex.setValue(prevPageIndex);\n }\n }\n\n onUpdateAnswers(model: QuestionAnswerModel[]) {\n model.forEach(elem => {\n this.onUpdateAnswer(elem);\n });\n }\n\n onUpdateAnswer(model: QuestionAnswerModel) {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == model.QuestionId);\n if (index > -1) {\n var questionGroup = this.fCtrls.questionArray.controls[index];\n questionGroup.controls.isValid.setValue(model.IsValid);\n\n if (questionGroup.value.questionType == this.questionTypeEnum.TextInput) {\n questionGroup.patchValue({\n answerId: model.SurveyAnswerId,\n answerText: model.Answer\n });\n } else if (questionGroup.value.questionType == this.questionTypeEnum.CheckBox || questionGroup.value.questionType == this.questionTypeEnum.DropDownMulti) {\n questionGroup.controls.answerIdArr.setValue(model.Answer);\n } else {\n questionGroup.controls.answerId.setValue(model.Answer);\n }\n\n if (this.fCtrls.ruleQuestionArray.value.findIndex(x => x.questionId == model.QuestionId) > -1) {\n this.checkRules()\n }\n }\n }\n\n private loadQuestions(survey: SurveyDto) {\n survey.surveyPages.forEach((page, pageIndex) => {\n\n page.surveyQuestionGroups.forEach(group => {\n\n group.surveyQuestions.forEach(question => {\n this.addQuestionGroup(question, pageIndex);\n });\n });\n });\n\n survey.surveyRules.forEach(rule => {\n rule.ruleExps.forEach(ruleExp => {\n this.fCtrls.ruleQuestionArray.push(this._formBuilder.group<RuleQuestionChildOfSurveryLibFormInterface>({\n questionId: ruleExp.questionId\n }));\n });\n })\n }\n\n private haveInValidateQuestions() {\n const currentPageIndex = this.fCtrls.currentPageIndex.value;\n var invalidRecords = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == currentPageIndex\n && x.isRequired == true && x.isValid != true\n && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);\n if (invalidRecords.length > 0) {\n $(`#survey-page_${currentPageIndex}`).addClass('survey-page_submitted');\n }\n\n if (invalidRecords.length > 0) {\n console.log(invalidRecords);\n }\n return invalidRecords.length > 0;\n }\n\n private checkRules() {\n\n this.surveyData.surveyRules.forEach(rule => {\n this._checkRuleExpsUsecase.execute({\n ruleExps: rule.ruleExps,\n questions: this.fCtrls.questionArray.value\n }).subscribe(result => {\n\n var isPassed = result.exprestionResultArr.filter(x => x == false).length == 0;\n if (isPassed) {\n\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n if (rule.logicActionId == LogicActionEnum.Show) {\n questionGroup.controls.isShow.setValue(true);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, true);\n } else if (rule.logicActionId == LogicActionEnum.Hide) {\n questionGroup.controls.isShow.setValue(false);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, false);\n } else if (rule.logicActionId == LogicActionEnum.Enable) {\n questionGroup.controls.isDisabled.setValue(false);\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, false);\n } else if (rule.logicActionId == LogicActionEnum.Disable) {\n questionGroup.controls.isDisabled.setValue(true);\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, true);\n } else if (rule.logicActionId == LogicActionEnum.SetAnswer) {\n\n }\n\n });\n }\n else {\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n questionGroup.patchValue({\n isShow: questionGroup.value.isShow_default,\n isDisabled: questionGroup.value.isDisabled_default\n });\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, questionGroup.value.isDisabled_default);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, questionGroup.value.isShow_default);\n });\n }\n });\n\n });\n }\n\n private getNextShowedPage() {\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n var showedPages = this.showedSurveyPages;\n var nextShowedPages = showedPages.filter(x => x > currentPageIndex);\n if (nextShowedPages.length > 0) {\n return nextShowedPages[0];\n }\n return null;\n }\n\n private getPrevShowedPage() {\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n var showedPages = this.showedSurveyPages;\n var prevShowedPages = showedPages.filter(x => x < currentPageIndex);\n if (prevShowedPages.length > 0) {\n return prevShowedPages[prevShowedPages.length - 1];\n }\n return null;\n }\n\n private addQuestionGroup(question: SurveyQuestionDto, pageIndex: number) {\n if (question.questionTypeId != 6) {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable]\n }));\n } else {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [true],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable],\n }));\n\n question.surveySubQuestions.forEach(subQuestion => {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [subQuestion.questionId],\n questionType: [subQuestion.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [subQuestion.isReadOnly],\n isShow: [subQuestion.isVisable],\n isDisabled_default: [subQuestion.isReadOnly],\n isShow_default: [subQuestion.isVisable]\n }));\n })\n }\n }\n}\n","<div id=\"survery-card-{{surveryLibraryDivId}}\" class=\"survay-card\" >\r\n <div class=\"alert alert-warning text-center\" role=\"alert\" *ngIf=\"isPre == true && surveyData != null\">\r\n <h4 class=\"alert-heading mb-0\">This survey in review phase </h4>\r\n </div>\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\"\r\n [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template #questionBooleanTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\">\r\n </lib-question-boolean-template>\r\n\r\n <lib-question-text-template #questionTextTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template #questionRadioButtonTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\">\r\n </lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"></lib-question-dropdown-template>\r\n\r\n <lib-question-dropdown-multi-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDownMulti\">\r\n </lib-question-dropdown-multi-template>\r\n\r\n <lib-question-check-box-template #questionCheckBoxTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\">\r\n </lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template #questionMatrixTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\">\r\n </lib-question-matrix-template>\r\n\r\n <lib-question-cascade-template #questionCascadeTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Cascade\"\r\n [applicantKey]=\"applicantKey\" [isPre]=\"isPre\" [surveyLanguageId]=\"surveyLanguageId\" \r\n [pageIndex]=\"surveyPageIndex\"></lib-question-cascade-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\">\r\n <span>{{curruntShowedSurveyPages}}</span>\r\n <span class=\"ms-2 me-2\">of</span>\r\n <span>{{showedSurveyPages?.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\nimport { QuestionChildOfSurveryLibFormInterface } from '../../shared/form-interfaces/survery-lib.form-interface';\n\n@Pipe({\n name: 'filterQuestion'\n})\nexport class FilterQuestionPipe implements PipeTransform {\n\n transform(value: SurveyQuestionDto, questionArr: QuestionChildOfSurveryLibFormInterface[]): QuestionChildOfSurveryLibFormInterface {\n return questionArr.find(x=>x.questionId == value.questionId);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\nimport { QuestionTypeEnum } from '../../shared/enums/question-type.enum';\n\n@Pipe({\n name: 'defaultQuestionAnswer'\n})\nexport class DefaultQuestionAnswerPipe implements PipeTransform {\n\n transform(value: DefaultQuestionAnswerDto[], questionId: number , reloadId): DefaultQuestionAnswerDto {\n if (value != null) {\n return value.find(x => x.QuestionId == questionId); \n }\n\n return null;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\n\n@Pipe({\n name: 'defaultQuestionAnswers'\n})\nexport class DefaultQuestionAnswersPipe implements PipeTransform {\n\n transform(value: DefaultQuestionAnswerDto[], questionId: any , reloadId): DefaultQuestionAnswerDto[] {\n if (value != null) {\n return value.filter(x => x.ParentQuestionId == questionId); \n }\n\n return [];\n }\n\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { SurveryLibComponent } from './survery-lib.component';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { NgsFormsModule } from '@ng-stack/forms';\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\nimport { FilterQuestionPipe } from './pipes/filter-question.pipe';\nimport { DefaultQuestionAnswerPipe } from './pipes/default-question-answer.pipe';\nimport { DefaultQuestionAnswersPipe } from './pipes/default-question-answers.pipe';\nimport { QuestionDropdownMultiTemplateComponent } from './components/question-dropdown-multi-template/question-dropdown-multi-template.component';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { TextBoxTypeAttrPipe } from './pipes/text-box-type-attr.pipe';\nimport { QuestionCascadeTemplateComponent } from './components/question-cascade-template/question-cascade-template.component';\nimport { LibConfigModel, LibConfigService } from './services/lib-config.service';\n\n\n@NgModule({\n declarations: [\n SurveryLibComponent,\n QuestionTextTemplateComponent,\n QuestionRadioButtonTemplateComponent,\n QuestionCheckBoxTemplateComponent,\n QuestionDropdownTemplateComponent,\n QuestionMatrixTemplateComponent,\n QuestionBooleanTemplateComponent,\n QuestionDropdownMultiTemplateComponent,\n FilterQuestionPipe,\n DefaultQuestionAnswerPipe,\n DefaultQuestionAnswersPipe,\n TextBoxTypeAttrPipe,\n QuestionCascadeTemplateComponent\n ],\n imports: [\n CommonModule, HttpClientModule, ReactiveFormsModule, FormsModule, NgsFormsModule, NgSelectModule\n ],\n exports: [\n SurveryLibComponent\n ]\n})\nexport class SurveryLibModule {\n\n public static forRoot(config: LibConfigModel): ModuleWithProviders<SurveryLibModule> {\n return {\n ngModule: SurveryLibModule,\n providers: [\n { provide: LibConfigService, useValue: config }\n ]\n }\n }\n\n public static forChild(): ModuleWithProviders<SurveryLibModule> {\n return {\n ngModule: SurveryLibModule\n }\n }\n}\n","export class SurveyQuestionResult{\r\n SurveyPageIndex:number;\r\n QuestionId;\r\n QuestionType;\r\n AnswerId;\r\n AnswerIdArr;\r\n AnswerText;\r\n}","/*\n * Public API Surface of survery-lib\n */\n\nexport * from './lib/survery-lib.component';\nexport * from './lib/services/survey-lib.service';\nexport * from './lib/survery-lib.module';\nexport * from './shared/models/survery-question-result.model'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["guidGenerator","i2.SurveyLibService","i5.TextBoxTypeAttrPipe","Validators","i3.ApiService","i4","i5.QuestionDropdownTemplateComponent","i1.SurveyLibService","i2","i3.CheckRuleExpsUsecase","i5.QuestionTextTemplateComponent","i6.QuestionRadioButtonTemplateComponent","i7.QuestionCheckBoxTemplateComponent","i8.QuestionDropdownTemplateComponent","i9.QuestionMatrixTemplateComponent","i10.QuestionBooleanTemplateComponent","i11.QuestionDropdownMultiTemplateComponent","i12.QuestionCascadeTemplateComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"survery-lib.mjs","sources":["../../../projects/survery-lib/src/shared/enums/question-type.enum.ts","../../../projects/survery-lib/src/shared/enums/logic-action.enum.ts","../../../projects/survery-lib/src/lib/services/survey-lib.service.ts","../../../projects/survery-lib/src/shared/enums/Logic-Property.enum.ts","../../../projects/survery-lib/src/shared/enums/operator.enum.ts","../../../projects/survery-lib/src/lib/usecases/check-rule-exps.usecase.ts","../../../projects/survery-lib/src/shared/enums/input-type.enum.ts","../../../projects/survery-lib/src/lib/pipes/text-box-type-attr.pipe.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.html","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.ts","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.html","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.ts","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.html","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.ts","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.html","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.ts","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.html","../../../projects/survery-lib/src/lib/services/lib-config.service.ts","../../../projects/survery-lib/src/lib/services/api.service.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.html","../../../projects/survery-lib/src/lib/survery-lib.component.ts","../../../projects/survery-lib/src/lib/survey-lib.component.html","../../../projects/survery-lib/src/lib/pipes/filter-question.pipe.ts","../../../projects/survery-lib/src/lib/pipes/default-question-answer.pipe.ts","../../../projects/survery-lib/src/lib/pipes/default-question-answers.pipe.ts","../../../projects/survery-lib/src/lib/survery-lib.module.ts","../../../projects/survery-lib/src/shared/models/survery-question-result.model.ts","../../../projects/survery-lib/src/public-api.ts","../../../projects/survery-lib/src/survery-lib.ts"],"sourcesContent":["export enum QuestionTypeEnum {\r\n RadioButton = 1,\r\n CheckBox = 2,\r\n DropDown = 3,\r\n Boolean = 4,\r\n TextInput = 5,\r\n Matrix = 6,\r\n DropDownMulti = 7 ,\r\n Cascade = 8\r\n}","export enum LogicActionEnum {\r\n Show = 1,\r\n Hide = 2,\r\n Enable = 3,\r\n Disable = 4,\r\n SetAnswer = 5\r\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { SurveyDto } from '../../shared/dtos/survey.dto';\nimport { surveyAnswersSubjectDto } from '../../shared/dtos/survey-answers-subject.dto';\nimport { SurveyLanguageDto } from '../../shared/dtos/survey-language.dto';\nimport { v4 as guidGenerator } from 'uuid';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SurveyLibService {\n\n private surveyDataSubject: Subject<SurveyDto> = new Subject<SurveyDto>();\n private surveyAnswersSubject: Subject<surveyAnswersSubjectDto> = new Subject<surveyAnswersSubjectDto>();\n private reloadSurveySubject: Subject<string> = new Subject<string>();\n private questionIsShowSubject: Subject<{ questionId: number, isShow: boolean }> = new Subject<{ questionId: number, isShow: boolean }>();\n private questionIsDisabledSubject: Subject<{ questionId: number, isDisabled: boolean }> = new Subject<{ questionId: number, isDisabled: boolean }>();\n private addQuestionSubject: Subject<{ question: SurveyQuestionDto, pageIndex: number }> = new Subject<{ question: SurveyQuestionDto, pageIndex: number }>();\n private removeQuestionSubject: Subject<{ questionId: number }> = new Subject<{ questionId: number }>();\n\n get surveyDataObsrv() {\n return this.surveyDataSubject.asObservable();\n }\n\n get surveyAnswersObsrv() {\n return this.surveyAnswersSubject.asObservable();\n }\n\n get reloadSurveyObsrv() {\n return this.reloadSurveySubject.asObservable();\n }\n\n get questionIsShowObsrv() {\n return this.questionIsShowSubject.asObservable();\n }\n\n get questionIsDisabledObsrv() {\n return this.questionIsDisabledSubject.asObservable();\n }\n\n get addQuestionObsrv() {\n return this.addQuestionSubject.asObservable();\n }\n\n get removeQuestionObsrv() {\n return this.removeQuestionSubject.asObservable();\n }\n\n constructor() { }\n\n setSurveyData(survey: SurveyDto) {\n this.surveyDataSubject.next(survey);\n }\n\n setsurveyAnswers(model: surveyAnswersSubjectDto) {\n this.surveyAnswersSubject.next(model);\n }\n\n setQuestionIsShow(questionId: number, isShow: boolean) {\n this.questionIsShowSubject.next({ questionId, isShow });\n }\n\n setQuestionIsDisabled(questionId: number, isDisabled: boolean) {\n this.questionIsDisabledSubject.next({ questionId, isDisabled });\n }\n\n setReloadSurvey() {\n this.reloadSurveySubject.next(guidGenerator());\n }\n\n setAddQuestion(question: SurveyQuestionDto, pageIndex: number) {\n this.addQuestionSubject.next({ question, pageIndex });\n }\n\n setRemoveQuestion(questionId: number) {\n this.removeQuestionSubject.next({ questionId });\n }\n}\n","export enum LogicPropertyEnum{\r\n GreaterThan = 1 ,\r\n GreaterThanOrEqual = 2 ,\r\n LessThan = 3,\r\n LessThanOrEqual = 4 ,\r\n Equal = 5 ,\r\n NotEqual = 6,\r\n IsEmpty = 9 ,\r\n IsNotEmpty = 10 ,\r\n AnyOf =11,\r\n Then = 12\r\n}","export enum OperatorEnum {\r\n Or = 7,\r\n And =8\r\n}","import { Observable, of } from \"rxjs\";\r\nimport { UseCase } from \"./base/use-case\";\r\nimport { SurveyRuleDto } from \"../../shared/dtos/survey-rule.dto\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { QuestionChildOfSurveryLibFormInterface } from \"../../shared/form-interfaces/survery-lib.form-interface\";\r\nimport { RuleExpDto } from \"../../shared/dtos/rule-exp.dto\";\r\nimport { QuestionTypeEnum } from \"../../shared/enums/question-type.enum\";\r\nimport { LogicPropertyEnum } from \"../../shared/enums/Logic-Property.enum\";\r\nimport { OperatorEnum } from \"../../shared/enums/operator.enum\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckRuleExpsUsecase implements UseCase<CheckRulesUsecaseModel, CheckRulesUsecaseResult>{\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n execute(params: CheckRulesUsecaseModel): Observable<CheckRulesUsecaseResult> {\r\n\r\n var useCaseResult: CheckRulesUsecaseResult = {\r\n exprestionResultArr: []\r\n };\r\n\r\n params.ruleExps.forEach(ruleExp => {\r\n const index = params.questions.findIndex(x => x.questionId == ruleExp.questionId);\r\n var questionGroupValue = params.questions.at(index);\r\n\r\n var result: boolean;\r\n\r\n if (questionGroupValue.questionType == QuestionTypeEnum.TextInput) {\r\n result = this.checkRuleExpForAnswerText(ruleExp, questionGroupValue.answerText)\r\n } \r\n else if (questionGroupValue.questionType == QuestionTypeEnum.CheckBox || questionGroupValue.questionType == QuestionTypeEnum.DropDownMulti) {\r\n result = this.checkRuleExpForAnswerIdArr(ruleExp, questionGroupValue.answerIdArr);\r\n } \r\n else {\r\n result = this.checkRuleExpForAnswerId(ruleExp, questionGroupValue.answerId);\r\n }\r\n\r\n var answers =ruleExp.ruleExpAnswers.map(x=>x.answerId+'-'+x.answerTitle);\r\n console.log(`Question ${questionGroupValue.questionId} type ${QuestionTypeEnum[questionGroupValue.questionType]} --- ${result == true ?'passed':'not passed'} ---`,\r\n ` answers (${answers.join(' , ')}) logic (${ LogicPropertyEnum[ruleExp.logicPropertyId]}) operator (${OperatorEnum [ruleExp.opporator]})`);\r\n\r\n useCaseResult.exprestionResultArr.push(result);\r\n });\r\n\r\n return of(useCaseResult);\r\n }\r\n\r\n private checkRuleExpForAnswerId(ruleExp: RuleExpDto, answerId: number) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId > answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId >= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId < answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId <= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Equal) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId == answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.NotEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId != answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answerId == null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answerId != null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.AnyOf) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) > -1\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Then) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) == -1\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerIdArr(ruleExp: RuleExpDto, answerIdArr: number[]) {\r\n var ruleExpResultArr: boolean[] = [];\r\n\r\n answerIdArr?.forEach(answer => {\r\n var isResult = this.checkRuleExpForAnswerId(ruleExp, answer);\r\n ruleExpResultArr.push(isResult);\r\n })\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerText(ruleExp: RuleExpDto, answer: string) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answer == null || answer == ''\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answer != null && answer != ''\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n\r\n if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class CheckRulesUsecaseModel {\r\n ruleExps: RuleExpDto[];\r\n questions: QuestionChildOfSurveryLibFormInterface[];\r\n}\r\n\r\nexport class CheckRulesUsecaseResult {\r\n exprestionResultArr: boolean[];\r\n}","export enum InputTypeEnum {\r\n Color = 1,\r\n Date = 2 ,\r\n\tDateTime = 3,\r\n Email = 4,\r\n Number = 5,\r\n Password = 6,\r\n Text = 7\r\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { InputTypeEnum } from '../../shared/enums/input-type.enum';\n\n@Pipe({\n name: 'textBoxTypeAttr'\n})\nexport class TextBoxTypeAttrPipe implements PipeTransform {\n\n transform(value: InputTypeEnum, ...args: unknown[]): string {\n if (value != null) {\n if (value == InputTypeEnum.Color) {\n return 'color';\n } else if (value == InputTypeEnum.Date) {\n return 'date';\n }\n else if (value == InputTypeEnum.DateTime) {\n return 'datetime-local';\n }\n else if (value == InputTypeEnum.Email) {\n return 'email';\n }\n else if (value == InputTypeEnum.Number) {\n return 'number';\n }\n else if (value == InputTypeEnum.Password) {\n return 'password';\n }\n }\n\n return 'text';\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup, FormControl as FormControlStack, ValidatorsModel } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { InputTypeEnum } from '../../../shared/enums/input-type.enum';\n\n@Component({\n selector: 'lib-question-text-template',\n templateUrl: './question-text-template.component.html',\n styleUrls: ['./question-text-template.component.scss']\n})\nexport class QuestionTextTemplateComponent implements OnInit {\n\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionTextTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isTextArea: boolean;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n \n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n if (value.surveyAnswers[0]?.answerId != null && value.surveyAnswers[0]?.answerId != undefined) {\n this.fCtrls.surveyAnswerId.setValue(value.surveyAnswers[0].answerId);\n this.fCtrls.inputTypeId.setValue(value.surveyAnswers[0].inputTypeId);\n }\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n\n if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Number) {\n if(value.surveyAnswers[0].inputMin != null){\n this.fCtrls.answer.addValidators([Validators.min(value.surveyAnswers[0].inputMin)]);\n }\n\n if( value.surveyAnswers[0].inputMax != null){\n this.fCtrls.answer.addValidators([Validators.max(value.surveyAnswers[0].inputMax)]);\n } \n }\n else if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Email) {\n this.fCtrls.answer.addValidators([Validators.email]);\n }\n\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.toggleEnableAnswer(value.isReadOnly);\n }\n\n @Input() set isDisabled(value: boolean) {\n this.toggleEnableAnswer(value);\n }\n\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionTextTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n surveyAnswerId: [null],\n answer: [null],\n isDisabled:[false],\n isShow : [true],\n inputTypeId: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value,\n SurveyAnswerId: formValue.surveyAnswerId\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\n .subscribe(answer => {\n this.fCtrls.answer.setValue(answer.AnswerText);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n \n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n\n private toggleEnableAnswer(isReadOnly: boolean) {\n if (isReadOnly == true) {\n this.fCtrls.answer.disable()\n } else {\n this.fCtrls.answer.enable()\n }\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n}\n","<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion\">\n <ng-container *ngIf=\"isTextArea == false else textAreaTemplate\">\n <input class=\"form-control\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\" [attr.type]=\"fCtrls.inputTypeId.value | textBoxTypeAttr\" >\n </ng-container>\n <ng-template #textAreaTemplate>\n <textarea class=\"form-control\" rows=\"5\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\" ></textarea>\n </ng-template>\n </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionRadioButtonTemplateFormInterface,\r\n QuestionRadioButtonTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-radio-button-template',\r\n templateUrl: './question-radio-button-template.component.html',\r\n styleUrls: ['./question-radio-button-template.component.scss']\r\n})\r\nexport class QuestionRadioButtonTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionRadioButtonTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionRadioButtonTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionRadioButtonTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n isDisabled:[false],\r\n isShow : [true],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionRadioButtonTemplateFormInterface>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n console.log(value);\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\r\n .subscribe(answer => {\r\n this.fCtrls.answer.setValue(answer.AnswerId);\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answer.AnswerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n \r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionRadioButtonTemplateFormInterface) {\r\n this.fCtrls.answer.setValue(item.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of fCtrls.answerArray.controls;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"fCtrls.isDisabled.value\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionCheckBoxTemplateFormInterface,\r\n QuestionCheckBoxTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-check-box-template.form-interface';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-check-box-template',\r\n templateUrl: './question-check-box-template.component.html',\r\n styleUrls: ['./question-check-box-template.component.scss']\r\n})\r\nexport class QuestionCheckBoxTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionCheckBoxTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionCheckBoxTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionCheckBoxTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n isDisabled:[false],\r\n isShow : [true],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionCheckBoxTemplateFormInterface>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv\r\n .pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\r\n .subscribe(answer => {\r\n const distinctArray = answer.AnswerIdArr.filter((n, i) => answer.AnswerIdArr.indexOf(n) === i);\r\n this.fCtrls.answer.setValue(distinctArray);\r\n\r\n answer.AnswerIdArr.forEach(answerId => {\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n })\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n \r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionBooleanTemplateFormInterface, event: Event) {\r\n var answerArr: number[] = this.fCtrls.answer.value || [];\r\n\r\n if ((event.target as any).checked == true) {\r\n answerArr.push(item.id);\r\n } else {\r\n answerArr = answerArr.filter(x => x != item.id);\r\n }\r\n\r\n answerArr = answerArr.length == 0 ? [] : answerArr;\r\n this.fCtrls.answer.setValue(answerArr);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n\n <div class=\"checkbox-button-quastion\">\n <div class=\"form-check check-box-form-check\" *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" [disabled]=\"fCtrls.isDisabled.value\"\n (change)=\"onChangeAnswer(item.value ,$event)\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionDropdownTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-template.form-interface';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { SurveyLibService } from '../../services/survey-lib.service';\n\n@Component({\n selector: 'lib-question-dropdown-template',\n templateUrl: './question-dropdown-template.component.html',\n styleUrls: ['./question-dropdown-template.component.scss']\n})\nexport class QuestionDropdownTemplateComponent implements OnInit {\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionDropdownTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n }\n\n constructor(private _formBuilder: FormBuilder ,private _surveyLibService :SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionDropdownTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null] ,\n isDisabled:[false],\n isShow : [true]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x=>x.length > 0)).pipe(map(x=> x.at(0)))\n .subscribe(answer=>{\n this.fCtrls.answer.setValue(answer.AnswerId);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"surveyQuestion?.surveyAnswers\" bindValue=\"answerId\" bindLabel=\"answerTitle\" class=\"form-control\"\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"false\">\n </ng-select>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\nimport { SurveyQuestionGroupDto } from '../../../shared/dtos/survey-question-group.dto';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { SurveySubQuestionDto } from '../../../shared/dtos/survey-sub-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionMatrixTemplateFormInterface, SubQuestionChildOfQuestionMatrixTemplateFormInterface } from '../../../shared/form-interfaces/question-matrix-template.form-interface';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { v4 as guidGenerator } from 'uuid';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { SurveyLibService } from '../../services/survey-lib.service';\n\n@Component({\n selector: 'lib-question-matrix-template',\n templateUrl: './question-matrix-template.component.html',\n styleUrls: ['./question-matrix-template.component.scss']\n})\nexport class QuestionMatrixTemplateComponent implements OnInit {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionMatrixTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n typeId: value.questionTypeId ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n value.surveySubQuestions.forEach(x => {\n var group = this._formBuilder.group<SubQuestionChildOfQuestionMatrixTemplateFormInterface>({\n subQuestionId: [x.questionId],\n questionTitle: [x.questionTitle],\n answer: [null],\n });\n\n if (value.isRequired == true) {\n group.controls.answer.addValidators([Validators.required]);\n group.controls.answer.updateValueAndValidity();\n }\n\n group.controls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: group.value.subQuestionId,\n Answer: group.value.answer,\n IsValid: group.controls.answer.valid\n });\n });\n\n this.fCtrls.subQuestionArray.push(group);\n });\n }\n\n constructor(private _formBuilder: FormBuilder , private _surveyLibService:SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionMatrixTemplateFormInterface>({\n id: [null],\n typeId: [null],\n isDisabled:[false],\n isShow : [true],\n subQuestionArray: this._formBuilder.array<SubQuestionChildOfQuestionMatrixTemplateFormInterface>([])\n }); \n }\n ngOnInit(): void {\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.ParentQuestionId == this.fCtrls.id.value)))\n .pipe(filter(x=>x.length > 0))\n .subscribe(answers=>{\n console.log(answers);\n this.fCtrls.subQuestionArray.controls.forEach(group => {\n var answer = answers.find(x => x.QuestionId == group.value.subQuestionId);\n if (answer != null) {\n group.controls.answer.setValue(answer.AnswerId);\n }\n })\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n onChangeAnswer(question: SubQuestionChildOfQuestionMatrixTemplateFormInterface, answer: SurveyAnswerDto) {\n const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);\n var subQuestionGroup = this.fCtrls.subQuestionArray.controls[index];\n\n subQuestionGroup.controls.answer.setValue(answer.answerId);\n\n this.emitter.emit({\n QuestionId: subQuestionGroup.value.subQuestionId,\n Answer: subQuestionGroup.value.answer,\n IsValid: subQuestionGroup.controls.answer.valid\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\"\n[ngClass]=\"{'d-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{surveyQuestion?.questionTitle}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\n <div class=\"matrix-head-row\">\n <div class=\"matrix-col\">\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\">\n {{answers.answerTitle}}\n </div>\n </div>\n\n <div class=\"matrix-row\"\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\n <div class=\"matrix-col matrix-sub-quastion\">\n {{questionGroup.value.questionTitle}} \n </div>\n <div class=\"matrix-col answer__container\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\n <div class=\"form-check form-check-radio form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup.value ,answer)\"\n value=\"{{answer.answerId}}\" [checked]=\"answer.answerId == questionGroup.value.answer\">\n <label class=\"form-check-label d-inline d-lg-none\"\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> {{answer.answerTitle}}</label>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Validators, FormControl } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface, QuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-boolean-template',\r\n templateUrl: './question-boolean-template.component.html',\r\n styleUrls: ['./question-boolean-template.component.scss']\r\n})\r\nexport class QuestionBooleanTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionBooleanTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n console.log(value.surveyAnswers);\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionBooleanTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder , private _surveyLibService:SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionBooleanTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionBooleanTemplateFormInterface>([]) ,\r\n isDisabled:[false],\r\n isShow : [true]\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv\r\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x=>x.length > 0)).pipe(map(x=> x.at(0)))\r\n .subscribe(answer=>{\r\n this.fCtrls.answer.setValue(answer.AnswerId);\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answer.AnswerId);\r\n if(groupIndex > -1){\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n\r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionBooleanTemplateFormInterface) {\r\n this.fCtrls.answer.setValue(item.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"fCtrls.isDisabled.value\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { FormGroup, Validators , FormBuilder} from '@ng-stack/forms';\nimport { QuestionCheckBoxTemplateFormInterface } from '../../../shared/form-interfaces/question-check-box-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { v4 as guidGenerator } from 'uuid';\nimport { AnswerChildOfQuestionDropDownMultiTemplateFormInterface, QuestionDropDownMultiTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-multi-template.form-interface';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\n\n@Component({\n selector: 'lib-question-dropdown-multi-template',\n templateUrl: './question-dropdown-multi-template.component.html',\n styleUrls: ['./question-dropdown-multi-template.component.scss']\n})\nexport class QuestionDropdownMultiTemplateComponent {\n \n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionDropDownMultiTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n value.surveyAnswers.forEach(surveryAnswer => {\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>({\n id: [surveryAnswer.answerId],\n title: [surveryAnswer.answerTitle],\n isSelected: [false]\n }))\n })\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n }\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionDropDownMultiTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null],\n isDisabled:[false],\n isShow : [true],\n answerArray: this._formBuilder.array<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>([])\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\n .subscribe(answer => {\n const distinctArray = answer.AnswerIdArr.filter((n, i) => answer.AnswerIdArr.indexOf(n) === i);\n this.fCtrls.answer.setValue(distinctArray);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n \n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"this.fCtrls.answerArray.value\" bindValue=\"id\" bindLabel=\"title\" class=\"form-control\"\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"true\">\n </ng-select>\n </div>\n</div>\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface LibConfigModel{\r\n apiUrl: string;\r\n}\r\n\r\nexport const LibConfigService = new InjectionToken<LibConfigModel>('LibConfig');","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { LibConfigService, LibConfigModel } from './lib-config.service';\nimport { Observable } from 'rxjs';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\nimport { DtoBase } from '../../shared/dtos/base/dto.base';\nimport { GetNextQuestionResult } from '../../shared/results/api.result';\ndeclare var $: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n private url;\n\n constructor(private _HttpClient: HttpClient,\n @Inject(LibConfigService) private _LibConfigService: LibConfigModel) {\n this.url = _LibConfigService.apiUrl;\n }\n\n getNextQuestion(filter: { answerId, surveyLanguageId, applicantKey, isPre }): Observable<GetNextQuestionResult> {\n var queryString = $.param(filter);\n return this._HttpClient.get<GetNextQuestionResult>(`${this.url}/GetNextQuestion?${queryString}`,\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { QuestionCascadeTemplateFormInterface, QuestionGroupChildOfQuestionCascadeTemplateFormInterface } from '../../../shared/form-interfaces/question-cascade.form-interface';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { ApiService } from '../../services/api.service';\n\n@Component({\n selector: 'lib-question-cascade-template',\n templateUrl: './question-cascade-template.component.html',\n styleUrls: ['./question-cascade-template.component.css']\n})\nexport class QuestionCascadeTemplateComponent {\n surveyQuestionArr: SurveyQuestionDto[] = [];\n rForm: FormGroup<QuestionCascadeTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get questionFormArray() {\n return this.fCtrls.questionArr\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() pageIndex: number = null;\n @Input() isPre: boolean = false;\n @Input() surveyLanguageId: number = null;\n @Input() applicantKey: string = null;\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.setQuestions(value);\n }\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\n private _ApiService: ApiService) {\n this.rForm = this._formBuilder.group<QuestionCascadeTemplateFormInterface>({\n questionArr: this._formBuilder.array<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>([])\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.questionArr.statusChanges.subscribe(v => {\n console.log(v);\n })\n }\n\n onUpdateAnswer(model: QuestionAnswerModel) {\n if (this.surveyQuestionArr.length > 1) {\n const surveyQuestionIndex = this.surveyQuestionArr.findIndex(c => c.questionId == model.QuestionId);\n\n var deletedQuestions = []\n for (let index = surveyQuestionIndex + 1; index < this.surveyQuestionArr.length; index++) {\n deletedQuestions.push(index);\n }\n\n var sortDeletedArr = deletedQuestions.sort((a, b) => (a > b ? -1 : 1));\n for (let index = 0; index < sortDeletedArr.length; index++) {\n const elementIndex = sortDeletedArr[index];\n const questionId = this.surveyQuestionArr[elementIndex].questionId;\n this._surveyLibService.setRemoveQuestion(questionId);\n this.surveyQuestionArr = this.surveyQuestionArr.filter(x=>x.questionId != questionId);\n this.questionFormArray.removeAt(elementIndex);\n }\n }\n\n if (model.Answer) {\n this._ApiService.getNextQuestion({\n answerId: model.Answer,\n applicantKey: this.applicantKey,\n isPre: this.isPre,\n surveyLanguageId: this.surveyLanguageId\n }).subscribe(res => {\n if (res.errors.filter(x => x.code == 17).length == 0) {\n this.setQuestions(res);\n this._surveyLibService.setAddQuestion(res, this.pageIndex);\n }\n });\n }\n\n this.emitter.emit(model);\n }\n\n identify(index, item: QuestionGroupChildOfQuestionCascadeTemplateFormInterface) {\n return item.id;\n }\n\n private setQuestions(value: SurveyQuestionDto) {\n this.surveyQuestionArr.push(value);\n\n var group = this._formBuilder.group<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>({\n id: [value.questionId],\n typeId: [value.questionTypeId],\n answer: null\n });\n\n if (value.isRequired == true) {\n group.controls.answer.addValidators([Validators.required]);\n group.controls.answer.updateValueAndValidity();\n }\n\n this.fCtrls.questionArr.push(group);\n }\n\n}\n","<ng-container *ngFor=\"let item of questionFormArray.value ; trackBy:identify ; let i = index\">\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"surveyQuestionArr[i]\"\n (emitter)=\"onUpdateAnswer($event)\" >\n </lib-question-dropdown-template>\n</ng-container>","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\nimport { SurveyLibService } from './services/survey-lib.service';\nimport { SurveyDto } from '../shared/dtos/survey.dto';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { QuestionChildOfSurveryLibFormInterface, RuleQuestionChildOfSurveryLibFormInterface, SurveryLibFormInterface } from '../shared/form-interfaces/survery-lib.form-interface';\nimport { QuestionTypeEnum } from '../shared/enums/question-type.enum';\nimport { v4 as guidGenerator } from 'uuid';\nimport { QuestionAnswerModel } from '../shared/models/question-answer.model';\nimport { Observable, debounceTime, distinctUntilChanged, of } from 'rxjs';\nimport { LogicPropertyEnum } from '../shared/enums/Logic-Property.enum';\nimport { RuleExpDto } from '../shared/dtos/rule-exp.dto';\nimport { OperatorEnum } from '../shared/enums/operator.enum';\nimport { LogicActionEnum } from '../shared/enums/logic-action.enum';\nimport { CheckRuleExpsUsecase } from './usecases/check-rule-exps.usecase';\nimport { SurveyQuestionResult } from '../shared/models/survery-question-result.model';\nimport { DefaultQuestionAnswerDto } from '../shared/dtos/default-question-answers.dto';\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\nimport { SurveyLanguageDto } from '../shared/dtos/survey-language.dto';\nimport { SurveySectionEnum } from '../shared/enums/survey-section.enum';\nimport { Validators } from '@angular/forms';\nimport { SurveyQuestionDto } from '../shared/dtos/survey-question.dto';\ndeclare var $: any;\n\n@Component({\n selector: 'lib-survery-lib',\n templateUrl: './survey-lib.component.html',\n styleUrls: ['./survey-lib.component.scss']\n})\nexport class SurveryLibComponent implements OnInit, AfterViewInit {\n\n surveryLibraryDivId = guidGenerator() as string;\n reloadDefaultAnswerId = guidGenerator() as string;\n surveyData: SurveyDto;\n defaultAnswers: DefaultQuestionAnswerDto[];\n rForm: FormGroup<SurveryLibFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get isFirstPage() {\n if (this.showedSurveyPages.length > 0) {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) == 0;\n }\n return true;\n }\n\n get isLastPage() {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) == (this.showedSurveyPages.length - 1)\n }\n\n get showedSurveyPages(): number[] {\n var pageArr: number[] = [];\n for (let index = 0; index < this.fCtrls.questionArray.value.length; index++) {\n const question = this.fCtrls.questionArray.value[index];\n if (question.isShow == true && (question.questionType != this.questionTypeEnum.Matrix || question.isMatrixGroup == true)) {\n pageArr.push(question.surveyPageIndex);\n }\n }\n\n const distinctArray = pageArr.filter((n, i) => pageArr.indexOf(n) === i);\n\n return distinctArray.sort((a, b) => a - b);\n }\n\n get curruntShowedSurveyPages() {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) + 1;\n }\n\n get surveyResult(): { answers: SurveyQuestionResult[], currentPageIndex: number } {\n return {\n currentPageIndex: this.fCtrls.currentPageIndex.value,\n answers:\n this.fCtrls.questionArray.value.filter(x => x.isMatrixGroup != true).map(x => {\n return {\n SurveyPageIndex: x.surveyPageIndex,\n QuestionId: x.questionId,\n QuestionType: x.questionType,\n AnswerId: x.answerId,\n AnswerText: x.answerText,\n AnswerIdArr: x.answerIdArr\n } as SurveyQuestionResult\n })\n }\n }\n\n @Input() isPre: boolean = false;\n @Input() surveyLanguageId: number = null;\n @Input() applicantKey: string = null;\n\n @Output() surveyResultEmit = new EventEmitter<SurveyQuestionResult[]>();\n @Output() selectLanguageEmit = new EventEmitter<string>();\n\n constructor(private _surveyLibService: SurveyLibService\n , private _formBuilder: FormBuilder, private _checkRuleExpsUsecase: CheckRuleExpsUsecase) {\n\n this.rForm = this._formBuilder.group<SurveryLibFormInterface>({\n currentPageIndex: [0],\n questionArray: this._formBuilder.array<QuestionChildOfSurveryLibFormInterface>([]),\n ruleQuestionArray: this._formBuilder.array<RuleQuestionChildOfSurveryLibFormInterface>([])\n });\n }\n ngAfterViewInit(): void {\n }\n\n ngOnInit(): void {\n this._surveyLibService.surveyDataObsrv.pipe(debounceTime(300), distinctUntilChanged()).subscribe(survey => {\n this.fCtrls.questionArray.clear();\n this.fCtrls.ruleQuestionArray.clear();\n this.surveyData = null;\n\n if (survey != null) {\n this.surveyData = survey;\n this.loadQuestions(survey);\n }\n });\n\n this._surveyLibService.addQuestionObsrv.subscribe(res => {\n this.addQuestionGroup(res.question, res.pageIndex);\n });\n\n this._surveyLibService.removeQuestionObsrv.subscribe(res => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == res.questionId);\n this.fCtrls.questionArray.removeAt(index);\n });\n\n }\n\n onPaggingNext() {\n var isHaveInvalidRecords = this.haveInValidateQuestions();\n if (isHaveInvalidRecords == false) {\n\n const nextPageIndex = this.getNextShowedPage();\n\n if (nextPageIndex != null) {\n this.fCtrls.currentPageIndex.setValue(nextPageIndex);\n setTimeout(() => {\n this.loadQuestionUpdates(nextPageIndex);\n });\n\n $('html, body').animate({\n scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top\n }, 2000);\n\n } else {\n var questionArr = this.fCtrls.questionArray.value.filter(x => x.isMatrixGroup != true).map(x => {\n return {\n SurveyPageIndex: x.surveyPageIndex,\n QuestionId: x.questionId,\n QuestionType: x.questionType,\n AnswerId: x.answerId,\n AnswerText: x.answerText,\n AnswerIdArr: x.answerIdArr\n } as SurveyQuestionResult\n });\n this.surveyResultEmit.emit(questionArr);\n }\n }\n }\n\n onPaggingBack() {\n const prevPageIndex = this.getPrevShowedPage();\n if (prevPageIndex != null) {\n this.fCtrls.currentPageIndex.setValue(prevPageIndex);\n }\n }\n\n onUpdateAnswers(model: QuestionAnswerModel[]) {\n model.forEach(elem => {\n this.onUpdateAnswer(elem);\n });\n }\n\n onUpdateAnswer(model: QuestionAnswerModel) {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == model.QuestionId);\n if (index > -1) {\n var questionGroup = this.fCtrls.questionArray.controls[index];\n questionGroup.controls.isValid.setValue(model.IsValid);\n\n if (questionGroup.value.questionType == this.questionTypeEnum.TextInput) {\n questionGroup.patchValue({\n answerId: model.SurveyAnswerId,\n answerText: model.Answer\n });\n } else if (questionGroup.value.questionType == this.questionTypeEnum.CheckBox || questionGroup.value.questionType == this.questionTypeEnum.DropDownMulti) {\n questionGroup.controls.answerIdArr.setValue(model.Answer);\n } else {\n questionGroup.controls.answerId.setValue(model.Answer);\n }\n\n if (this.fCtrls.ruleQuestionArray.value.findIndex(x => x.questionId == model.QuestionId) > -1) {\n this.checkRules()\n }\n }\n }\n\n private loadQuestions(survey: SurveyDto) {\n survey.surveyPages.forEach((page, pageIndex) => {\n\n page.surveyQuestionGroups.forEach(group => {\n\n group.surveyQuestions.forEach(question => {\n this.addQuestionGroup(question, pageIndex);\n });\n });\n });\n\n survey.surveyRules.forEach(rule => {\n rule.ruleExps.forEach(ruleExp => {\n this.fCtrls.ruleQuestionArray.push(this._formBuilder.group<RuleQuestionChildOfSurveryLibFormInterface>({\n questionId: ruleExp.questionId\n }));\n });\n })\n }\n\n private haveInValidateQuestions() {\n const currentPageIndex = this.fCtrls.currentPageIndex.value;\n var invalidRecords = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == currentPageIndex\n && x.isRequired == true && x.isValid != true && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);\n\n if (invalidRecords.length > 0) {\n $(`#survey-page_${currentPageIndex}`).addClass('survey-page_submitted');\n }\n\n if (invalidRecords.length > 0) {\n console.log(invalidRecords);\n }\n return invalidRecords.length > 0;\n }\n\n private checkRules() {\n\n this.surveyData.surveyRules.forEach(rule => {\n this._checkRuleExpsUsecase.execute({\n ruleExps: rule.ruleExps,\n questions: this.fCtrls.questionArray.value\n }).subscribe(result => {\n\n var isPassed = result.exprestionResultArr.filter(x => x == false).length == 0;\n if (isPassed) {\n\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n if (rule.logicActionId == LogicActionEnum.Show) {\n questionGroup.controls.isShow.setValue(true);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, true);\n } else if (rule.logicActionId == LogicActionEnum.Hide) {\n questionGroup.controls.isShow.setValue(false);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, false);\n } else if (rule.logicActionId == LogicActionEnum.Enable) {\n questionGroup.controls.isDisabled.setValue(false);\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, false);\n } else if (rule.logicActionId == LogicActionEnum.Disable) {\n questionGroup.controls.isDisabled.setValue(true);\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, true);\n } else if (rule.logicActionId == LogicActionEnum.SetAnswer) {\n\n }\n\n });\n }\n else {\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n questionGroup.patchValue({\n isShow: questionGroup.value.isShow_default,\n isDisabled: questionGroup.value.isDisabled_default\n });\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, questionGroup.value.isDisabled_default);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, questionGroup.value.isShow_default);\n });\n }\n });\n\n });\n }\n\n private getNextShowedPage() {\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n var showedPages = this.showedSurveyPages;\n var nextShowedPages = showedPages.filter(x => x > currentPageIndex);\n if (nextShowedPages.length > 0) {\n return nextShowedPages[0];\n }\n return null;\n }\n\n private getPrevShowedPage() {\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n var showedPages = this.showedSurveyPages;\n var prevShowedPages = showedPages.filter(x => x < currentPageIndex);\n if (prevShowedPages.length > 0) {\n return prevShowedPages[prevShowedPages.length - 1];\n }\n return null;\n }\n\n private addQuestionGroup(question: SurveyQuestionDto, pageIndex: number) {\n if (question.questionTypeId != 6) {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable]\n }));\n } else {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [true],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable],\n }));\n\n question.surveySubQuestions.forEach(subQuestion => {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [subQuestion.questionId],\n questionType: [subQuestion.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [subQuestion.isReadOnly],\n isShow: [subQuestion.isVisable],\n isDisabled_default: [subQuestion.isReadOnly],\n isShow_default: [subQuestion.isVisable]\n }));\n })\n }\n }\n\n private loadQuestionUpdates(pageIndex: number) {\n this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == pageIndex).forEach(question => {\n this._surveyLibService.setQuestionIsShow(question.questionId, question.isShow);\n this._surveyLibService.setQuestionIsDisabled(question.questionId, question.isDisabled);\n });\n }\n}\n","<div id=\"survery-card-{{surveryLibraryDivId}}\" class=\"survay-card\" >\r\n <div class=\"alert alert-warning text-center\" role=\"alert\" *ngIf=\"isPre == true && surveyData != null\">\r\n <h4 class=\"alert-heading mb-0\">This survey in review phase </h4>\r\n </div>\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\"\r\n [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template #questionBooleanTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\">\r\n </lib-question-boolean-template>\r\n\r\n <lib-question-text-template #questionTextTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template #questionRadioButtonTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\">\r\n </lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"></lib-question-dropdown-template>\r\n\r\n <lib-question-dropdown-multi-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDownMulti\">\r\n </lib-question-dropdown-multi-template>\r\n\r\n <lib-question-check-box-template #questionCheckBoxTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\">\r\n </lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template #questionMatrixTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\">\r\n </lib-question-matrix-template>\r\n\r\n <lib-question-cascade-template #questionCascadeTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Cascade\"\r\n [applicantKey]=\"applicantKey\" [isPre]=\"isPre\" [surveyLanguageId]=\"surveyLanguageId\" \r\n [pageIndex]=\"surveyPageIndex\"></lib-question-cascade-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\">\r\n <span>{{curruntShowedSurveyPages}}</span>\r\n <span class=\"ms-2 me-2\">of</span>\r\n <span>{{showedSurveyPages?.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\nimport { QuestionChildOfSurveryLibFormInterface } from '../../shared/form-interfaces/survery-lib.form-interface';\n\n@Pipe({\n name: 'filterQuestion'\n})\nexport class FilterQuestionPipe implements PipeTransform {\n\n transform(value: SurveyQuestionDto, questionArr: QuestionChildOfSurveryLibFormInterface[]): QuestionChildOfSurveryLibFormInterface {\n return questionArr.find(x=>x.questionId == value.questionId);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\nimport { QuestionTypeEnum } from '../../shared/enums/question-type.enum';\n\n@Pipe({\n name: 'defaultQuestionAnswer'\n})\nexport class DefaultQuestionAnswerPipe implements PipeTransform {\n\n transform(value: DefaultQuestionAnswerDto[], questionId: number , reloadId): DefaultQuestionAnswerDto {\n if (value != null) {\n return value.find(x => x.QuestionId == questionId); \n }\n\n return null;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\n\n@Pipe({\n name: 'defaultQuestionAnswers'\n})\nexport class DefaultQuestionAnswersPipe implements PipeTransform {\n\n transform(value: DefaultQuestionAnswerDto[], questionId: any , reloadId): DefaultQuestionAnswerDto[] {\n if (value != null) {\n return value.filter(x => x.ParentQuestionId == questionId); \n }\n\n return [];\n }\n\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { SurveryLibComponent } from './survery-lib.component';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { NgsFormsModule } from '@ng-stack/forms';\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\nimport { FilterQuestionPipe } from './pipes/filter-question.pipe';\nimport { DefaultQuestionAnswerPipe } from './pipes/default-question-answer.pipe';\nimport { DefaultQuestionAnswersPipe } from './pipes/default-question-answers.pipe';\nimport { QuestionDropdownMultiTemplateComponent } from './components/question-dropdown-multi-template/question-dropdown-multi-template.component';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { TextBoxTypeAttrPipe } from './pipes/text-box-type-attr.pipe';\nimport { QuestionCascadeTemplateComponent } from './components/question-cascade-template/question-cascade-template.component';\nimport { LibConfigModel, LibConfigService } from './services/lib-config.service';\n\n\n@NgModule({\n declarations: [\n SurveryLibComponent,\n QuestionTextTemplateComponent,\n QuestionRadioButtonTemplateComponent,\n QuestionCheckBoxTemplateComponent,\n QuestionDropdownTemplateComponent,\n QuestionMatrixTemplateComponent,\n QuestionBooleanTemplateComponent,\n QuestionDropdownMultiTemplateComponent,\n FilterQuestionPipe,\n DefaultQuestionAnswerPipe,\n DefaultQuestionAnswersPipe,\n TextBoxTypeAttrPipe,\n QuestionCascadeTemplateComponent\n ],\n imports: [\n CommonModule, HttpClientModule, ReactiveFormsModule, FormsModule, NgsFormsModule, NgSelectModule\n ],\n exports: [\n SurveryLibComponent\n ]\n})\nexport class SurveryLibModule {\n\n public static forRoot(config: LibConfigModel): ModuleWithProviders<SurveryLibModule> {\n return {\n ngModule: SurveryLibModule,\n providers: [\n { provide: LibConfigService, useValue: config }\n ]\n }\n }\n\n public static forChild(): ModuleWithProviders<SurveryLibModule> {\n return {\n ngModule: SurveryLibModule\n }\n }\n}\n","export class SurveyQuestionResult{\r\n SurveyPageIndex:number;\r\n QuestionId;\r\n QuestionType;\r\n AnswerId;\r\n AnswerIdArr;\r\n AnswerText;\r\n}","/*\n * Public API Surface of survery-lib\n */\n\nexport * from './lib/survery-lib.component';\nexport * from './lib/services/survey-lib.service';\nexport * from './lib/survery-lib.module';\nexport * from './shared/models/survery-question-result.model'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["guidGenerator","i2.SurveyLibService","i5.TextBoxTypeAttrPipe","Validators","i3.ApiService","i4","i5.QuestionDropdownTemplateComponent","i1.SurveyLibService","i2","i3.CheckRuleExpsUsecase","i5.QuestionTextTemplateComponent","i6.QuestionRadioButtonTemplateComponent","i7.QuestionCheckBoxTemplateComponent","i8.QuestionDropdownTemplateComponent","i9.QuestionMatrixTemplateComponent","i10.QuestionBooleanTemplateComponent","i11.QuestionDropdownMultiTemplateComponent","i12.QuestionCascadeTemplateComponent"],"mappings":"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"}
|
|
@@ -50,6 +50,7 @@ export declare class SurveryLibComponent implements OnInit, AfterViewInit {
|
|
|
50
50
|
private getNextShowedPage;
|
|
51
51
|
private getPrevShowedPage;
|
|
52
52
|
private addQuestionGroup;
|
|
53
|
+
private loadQuestionUpdates;
|
|
53
54
|
static ɵfac: i0.ɵɵFactoryDeclaration<SurveryLibComponent, never>;
|
|
54
55
|
static ɵcmp: i0.ɵɵComponentDeclaration<SurveryLibComponent, "lib-survery-lib", never, { "isPre": { "alias": "isPre"; "required": false; }; "surveyLanguageId": { "alias": "surveyLanguageId"; "required": false; }; "applicantKey": { "alias": "applicantKey"; "required": false; }; }, { "surveyResultEmit": "surveyResultEmit"; "selectLanguageEmit": "selectLanguageEmit"; }, never, never, false, never>;
|
|
55
56
|
}
|