survery-lib 2.1.40 → 2.1.42

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.
@@ -1,10 +1,34 @@
1
1
  import { createFeatureSelector, createSelector } from "@ngrx/store";
2
2
  import { questionAdapter } from "../entites/question.entity";
3
3
  import { QuestionTypeEnum } from "../../../../shared/enums/question-type.enum";
4
+ import { InputTypeEnum } from "../../../../shared/enums/input-type.enum";
4
5
  const { selectAll, selectIds } = questionAdapter.getSelectors();
5
6
  const selectSurveyData = createFeatureSelector('survey-lib');
6
7
  const allQuestions = createSelector(selectSurveyData, (state) => selectAll(state.questionArr));
7
8
  const pageQuestions = createSelector(selectSurveyData, (state) => selectAll(state.questionArr).filter(x => x.surveyPageId == state.selectedPageId));
9
+ const HaveValidQuestionsCurrentPage = createSelector(selectSurveyData, (state) => {
10
+ const questionArr = selectAll(state.questionArr).filter(x => x.surveyPageId == state.selectedPageId);
11
+ if (questionArr.length == 0) {
12
+ return true;
13
+ }
14
+ else {
15
+ var invalidRecords = [];
16
+ var arr = questionArr.filter(x => x.isDisabled == false && x.isShow == true);
17
+ arr.map(x => {
18
+ if (x.isRequired == true && x.isValid != true && x.isQuestionGroup != true) {
19
+ invalidRecords.push(x);
20
+ }
21
+ else {
22
+ if (x.questionType == QuestionTypeEnum.TextInput && x.inputTypeId == InputTypeEnum.Email) {
23
+ if (x.answerText?.trim() && x.isValid != true) {
24
+ invalidRecords.push(x);
25
+ }
26
+ }
27
+ }
28
+ });
29
+ return invalidRecords.length == 0;
30
+ }
31
+ });
8
32
  const questionAnswers = createSelector(selectSurveyData, (state) => selectAll(state.questionArr)
9
33
  .filter(x => x.isQuestionGroup != true && x.isShow == true).map(x => {
10
34
  if (x.questionType == QuestionTypeEnum.Institutions) {
@@ -33,6 +57,7 @@ const questionAnswers = createSelector(selectSurveyData, (state) => selectAll(st
33
57
  export const questionSelectors = {
34
58
  allQuestions,
35
59
  pageQuestions,
36
- questionAnswers
60
+ questionAnswers,
61
+ HaveValidQuestionsCurrentPage
37
62
  };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9xdWVzdGlvbi5zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUUvRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUdoRSxNQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFjLFlBQVksQ0FBQyxDQUFDO0FBRTFFLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBRS9GLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBRXBKLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7S0FDL0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDakUsSUFBRyxDQUFDLENBQUMsWUFBWSxJQUFJLGdCQUFnQixDQUFDLFlBQVksRUFBQztRQUMvQyxPQUFPO1lBQ0gsZUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZO1lBQy9CLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtZQUN4QixZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVk7WUFDNUIsUUFBUSxFQUFDLENBQUMsQ0FBQyxhQUFhO1lBQ3hCLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtZQUN4QixXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVc7WUFDMUIsYUFBYSxFQUFFLENBQUMsQ0FBQyxRQUFRO1NBQ0osQ0FBQTtLQUM1QjtTQUFJO1FBQ0QsT0FBTztZQUNILGVBQWUsRUFBRSxDQUFDLENBQUMsWUFBWTtZQUMvQixVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVU7WUFDeEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZO1lBQzVCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtZQUNwQixVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVU7WUFDeEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO1lBQzFCLGFBQWEsRUFBQyxDQUFDLENBQUMsYUFBYTtTQUNSLENBQUE7S0FDNUI7QUFFTCxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRUgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDN0IsWUFBWTtJQUNaLGFBQWE7SUFDYixlQUFlO0NBQ2xCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IHF1ZXN0aW9uR3JvdXBBZGFwdGVyIH0gZnJvbSBcIi4uL2VudGl0ZXMvcXVlc3Rpb24tZ3JvdXAuZW50aXR5XCI7XHJcbmltcG9ydCB7IHF1ZXN0aW9uQWRhcHRlciB9IGZyb20gXCIuLi9lbnRpdGVzL3F1ZXN0aW9uLmVudGl0eVwiO1xyXG5pbXBvcnQgeyBTdXJ2ZXlTdGF0ZSB9IGZyb20gXCIuL3N1cnZleS5yZWR1Y2VyXCI7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uUmVzdWx0IH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvc3VydmVyeS1xdWVzdGlvbi1yZXN1bHQubW9kZWxcIjtcclxuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtXCI7XHJcblxyXG5jb25zdCB7IHNlbGVjdEFsbCwgc2VsZWN0SWRzIH0gPSBxdWVzdGlvbkFkYXB0ZXIuZ2V0U2VsZWN0b3JzKCk7XHJcblxyXG5cclxuY29uc3Qgc2VsZWN0U3VydmV5RGF0YSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxTdXJ2ZXlTdGF0ZT4oJ3N1cnZleS1saWInKTtcclxuXHJcbmNvbnN0IGFsbFF1ZXN0aW9ucyA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN1cnZleURhdGEsIChzdGF0ZSkgPT4gc2VsZWN0QWxsKHN0YXRlLnF1ZXN0aW9uQXJyKSk7XHJcblxyXG5jb25zdCBwYWdlUXVlc3Rpb25zID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3VydmV5RGF0YSwgKHN0YXRlKSA9PiBzZWxlY3RBbGwoc3RhdGUucXVlc3Rpb25BcnIpLmZpbHRlcih4ID0+IHguc3VydmV5UGFnZUlkID09IHN0YXRlLnNlbGVjdGVkUGFnZUlkKSk7XHJcblxyXG5jb25zdCBxdWVzdGlvbkFuc3dlcnMgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdXJ2ZXlEYXRhLCAoc3RhdGUpID0+IHNlbGVjdEFsbChzdGF0ZS5xdWVzdGlvbkFycilcclxuLmZpbHRlcih4ID0+IHguaXNRdWVzdGlvbkdyb3VwICE9IHRydWUgJiYgeC5pc1Nob3cgPT0gdHJ1ZSApLm1hcCh4ID0+IHtcclxuICAgIGlmKHgucXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uSW5zdGl0dXRpb25zKXtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBTdXJ2ZXlQYWdlSW5kZXg6IHguc3VydmV5UGFnZUlkLFxyXG4gICAgICAgICAgICBRdWVzdGlvbklkOiB4LnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICAgIFF1ZXN0aW9uVHlwZTogeC5xdWVzdGlvblR5cGUsXHJcbiAgICAgICAgICAgIEFuc3dlcklkOnguYW5zd2VyTGV2ZWxJZCAsXHJcbiAgICAgICAgICAgIEFuc3dlclRleHQ6IHguYW5zd2VyVGV4dCxcclxuICAgICAgICAgICAgQW5zd2VySWRBcnI6IHguYW5zd2VySWRBcnIgLFxyXG4gICAgICAgICAgICBBbnN3ZXJMZXZlbElkOiB4LmFuc3dlcklkIFxyXG4gICAgICAgIH0gYXMgU3VydmV5UXVlc3Rpb25SZXN1bHRcclxuICAgIH1lbHNle1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIFN1cnZleVBhZ2VJbmRleDogeC5zdXJ2ZXlQYWdlSWQsXHJcbiAgICAgICAgICAgIFF1ZXN0aW9uSWQ6IHgucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgUXVlc3Rpb25UeXBlOiB4LnF1ZXN0aW9uVHlwZSxcclxuICAgICAgICAgICAgQW5zd2VySWQ6IHguYW5zd2VySWQsXHJcbiAgICAgICAgICAgIEFuc3dlclRleHQ6IHguYW5zd2VyVGV4dCxcclxuICAgICAgICAgICAgQW5zd2VySWRBcnI6IHguYW5zd2VySWRBcnIgLFxyXG4gICAgICAgICAgICBBbnN3ZXJMZXZlbElkOnguYW5zd2VyTGV2ZWxJZCBcclxuICAgICAgICB9IGFzIFN1cnZleVF1ZXN0aW9uUmVzdWx0XHJcbiAgICB9XHJcbiAgIFxyXG59KSlcclxuXHJcbmV4cG9ydCBjb25zdCBxdWVzdGlvblNlbGVjdG9ycyA9IHtcclxuICAgIGFsbFF1ZXN0aW9ucyxcclxuICAgIHBhZ2VRdWVzdGlvbnMgLFxyXG4gICAgcXVlc3Rpb25BbnN3ZXJzXHJcbn0iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9xdWVzdGlvbi5zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFekUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7QUFHaEUsTUFBTSxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBYyxZQUFZLENBQUMsQ0FBQztBQUUxRSxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUUvRixNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUVwSixNQUFNLDZCQUE2QixHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQzdFLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFckcsSUFBSSxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtRQUN6QixPQUFPLElBQUksQ0FBQztLQUNmO1NBQU07UUFDSCxJQUFJLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFFeEIsSUFBSSxHQUFHLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUM7UUFDN0UsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQUU7Z0JBQ3hFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUI7aUJBQ0k7Z0JBQ0QsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLGdCQUFnQixDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLGFBQWEsQ0FBQyxLQUFLLEVBQUU7b0JBQ3RGLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTt3QkFDM0MsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDMUI7aUJBQ0o7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztLQUNyQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztLQUMzRixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUNoRSxJQUFJLENBQUMsQ0FBQyxZQUFZLElBQUksZ0JBQWdCLENBQUMsWUFBWSxFQUFFO1FBQ2pELE9BQU87WUFDSCxlQUFlLEVBQUUsQ0FBQyxDQUFDLFlBQVk7WUFDL0IsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1lBQ3hCLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWTtZQUM1QixRQUFRLEVBQUUsQ0FBQyxDQUFDLGFBQWE7WUFDekIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1lBQ3hCLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVztZQUMxQixhQUFhLEVBQUUsQ0FBQyxDQUFDLFFBQVE7U0FDSixDQUFBO0tBQzVCO1NBQU07UUFDSCxPQUFPO1lBQ0gsZUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZO1lBQy9CLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtZQUN4QixZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVk7WUFDNUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtZQUN4QixXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVc7WUFDMUIsYUFBYSxFQUFFLENBQUMsQ0FBQyxhQUFhO1NBQ1QsQ0FBQTtLQUM1QjtBQUVMLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFUCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUM3QixZQUFZO0lBQ1osYUFBYTtJQUNiLGVBQWU7SUFDZiw2QkFBNkI7Q0FDaEMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUZlYXR1cmVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3IgfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcclxuaW1wb3J0IHsgcXVlc3Rpb25Hcm91cEFkYXB0ZXIgfSBmcm9tIFwiLi4vZW50aXRlcy9xdWVzdGlvbi1ncm91cC5lbnRpdHlcIjtcclxuaW1wb3J0IHsgcXVlc3Rpb25BZGFwdGVyIH0gZnJvbSBcIi4uL2VudGl0ZXMvcXVlc3Rpb24uZW50aXR5XCI7XHJcbmltcG9ydCB7IFN1cnZleVN0YXRlIH0gZnJvbSBcIi4vc3VydmV5LnJlZHVjZXJcIjtcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25SZXN1bHQgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkL21vZGVscy9zdXJ2ZXJ5LXF1ZXN0aW9uLXJlc3VsdC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHsgSW5wdXRUeXBlRW51bSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvZW51bXMvaW5wdXQtdHlwZS5lbnVtXCI7XHJcblxyXG5jb25zdCB7IHNlbGVjdEFsbCwgc2VsZWN0SWRzIH0gPSBxdWVzdGlvbkFkYXB0ZXIuZ2V0U2VsZWN0b3JzKCk7XHJcblxyXG5cclxuY29uc3Qgc2VsZWN0U3VydmV5RGF0YSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxTdXJ2ZXlTdGF0ZT4oJ3N1cnZleS1saWInKTtcclxuXHJcbmNvbnN0IGFsbFF1ZXN0aW9ucyA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN1cnZleURhdGEsIChzdGF0ZSkgPT4gc2VsZWN0QWxsKHN0YXRlLnF1ZXN0aW9uQXJyKSk7XHJcblxyXG5jb25zdCBwYWdlUXVlc3Rpb25zID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3VydmV5RGF0YSwgKHN0YXRlKSA9PiBzZWxlY3RBbGwoc3RhdGUucXVlc3Rpb25BcnIpLmZpbHRlcih4ID0+IHguc3VydmV5UGFnZUlkID09IHN0YXRlLnNlbGVjdGVkUGFnZUlkKSk7XHJcblxyXG5jb25zdCBIYXZlVmFsaWRRdWVzdGlvbnNDdXJyZW50UGFnZSA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN1cnZleURhdGEsIChzdGF0ZSkgPT4ge1xyXG4gICAgY29uc3QgcXVlc3Rpb25BcnIgPSBzZWxlY3RBbGwoc3RhdGUucXVlc3Rpb25BcnIpLmZpbHRlcih4ID0+IHguc3VydmV5UGFnZUlkID09IHN0YXRlLnNlbGVjdGVkUGFnZUlkKTtcclxuXHJcbiAgICBpZiAocXVlc3Rpb25BcnIubGVuZ3RoID09IDApIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFyIGludmFsaWRSZWNvcmRzID0gW107XHJcblxyXG4gICAgICAgIHZhciBhcnIgPSBxdWVzdGlvbkFyci5maWx0ZXIoeCA9PiB4LmlzRGlzYWJsZWQgPT0gZmFsc2UgJiYgeC5pc1Nob3cgPT0gdHJ1ZSk7XHJcbiAgICAgICAgYXJyLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgaWYgKHguaXNSZXF1aXJlZCA9PSB0cnVlICYmIHguaXNWYWxpZCAhPSB0cnVlICYmIHguaXNRdWVzdGlvbkdyb3VwICE9IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIGludmFsaWRSZWNvcmRzLnB1c2goeCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoeC5xdWVzdGlvblR5cGUgPT0gUXVlc3Rpb25UeXBlRW51bS5UZXh0SW5wdXQgJiYgeC5pbnB1dFR5cGVJZCA9PSBJbnB1dFR5cGVFbnVtLkVtYWlsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHguYW5zd2VyVGV4dD8udHJpbSgpICYmIHguaXNWYWxpZCAhPSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRSZWNvcmRzLnB1c2goeCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBpbnZhbGlkUmVjb3Jkcy5sZW5ndGggPT0gMDtcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBxdWVzdGlvbkFuc3dlcnMgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdXJ2ZXlEYXRhLCAoc3RhdGUpID0+IHNlbGVjdEFsbChzdGF0ZS5xdWVzdGlvbkFycilcclxuICAgIC5maWx0ZXIoeCA9PiB4LmlzUXVlc3Rpb25Hcm91cCAhPSB0cnVlICYmIHguaXNTaG93ID09IHRydWUpLm1hcCh4ID0+IHtcclxuICAgICAgICBpZiAoeC5xdWVzdGlvblR5cGUgPT0gUXVlc3Rpb25UeXBlRW51bS5JbnN0aXR1dGlvbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIFN1cnZleVBhZ2VJbmRleDogeC5zdXJ2ZXlQYWdlSWQsXHJcbiAgICAgICAgICAgICAgICBRdWVzdGlvbklkOiB4LnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICBRdWVzdGlvblR5cGU6IHgucXVlc3Rpb25UeXBlLFxyXG4gICAgICAgICAgICAgICAgQW5zd2VySWQ6IHguYW5zd2VyTGV2ZWxJZCxcclxuICAgICAgICAgICAgICAgIEFuc3dlclRleHQ6IHguYW5zd2VyVGV4dCxcclxuICAgICAgICAgICAgICAgIEFuc3dlcklkQXJyOiB4LmFuc3dlcklkQXJyLFxyXG4gICAgICAgICAgICAgICAgQW5zd2VyTGV2ZWxJZDogeC5hbnN3ZXJJZFxyXG4gICAgICAgICAgICB9IGFzIFN1cnZleVF1ZXN0aW9uUmVzdWx0XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIFN1cnZleVBhZ2VJbmRleDogeC5zdXJ2ZXlQYWdlSWQsXHJcbiAgICAgICAgICAgICAgICBRdWVzdGlvbklkOiB4LnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICBRdWVzdGlvblR5cGU6IHgucXVlc3Rpb25UeXBlLFxyXG4gICAgICAgICAgICAgICAgQW5zd2VySWQ6IHguYW5zd2VySWQsXHJcbiAgICAgICAgICAgICAgICBBbnN3ZXJUZXh0OiB4LmFuc3dlclRleHQsXHJcbiAgICAgICAgICAgICAgICBBbnN3ZXJJZEFycjogeC5hbnN3ZXJJZEFycixcclxuICAgICAgICAgICAgICAgIEFuc3dlckxldmVsSWQ6IHguYW5zd2VyTGV2ZWxJZFxyXG4gICAgICAgICAgICB9IGFzIFN1cnZleVF1ZXN0aW9uUmVzdWx0XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0pKVxyXG5cclxuZXhwb3J0IGNvbnN0IHF1ZXN0aW9uU2VsZWN0b3JzID0ge1xyXG4gICAgYWxsUXVlc3Rpb25zLFxyXG4gICAgcGFnZVF1ZXN0aW9ucyxcclxuICAgIHF1ZXN0aW9uQW5zd2VycyxcclxuICAgIEhhdmVWYWxpZFF1ZXN0aW9uc0N1cnJlbnRQYWdlXHJcbn0iXX0=
@@ -55,6 +55,7 @@ export class SurveryLibComponent {
55
55
  this.isFirstPage$ = this._Store.select(surveySelectors.isFirstPage);
56
56
  this.isLastPage$ = this._Store.select(surveySelectors.isLastPage);
57
57
  this.curruntShowedSurveyPages$ = this._Store.select(surveySelectors.selectedPageIndex).pipe(map(x => x + 1));
58
+ this.haveValidQuestionsCurrentPage$ = this._Store.select(questionSelectors.HaveValidQuestionsCurrentPage);
58
59
  this.isPre = false;
59
60
  this.surveyLanguageId = null;
60
61
  this.surveyKey = null;
@@ -178,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
178
179
  }], selectLanguageEmit: [{
179
180
  type: Output
180
181
  }] } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmVyeS1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zdXJ2ZXJ5LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3N1cnZleS1saWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBSXZILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBa0QsR0FBRyxFQUFNLElBQUksRUFBa0IsTUFBTSxNQUFNLENBQUM7QUFnQnJHLE9BQU8sRUFBZSxXQUFXLEVBQXlCLE1BQU0sZ0JBQWdCLENBQUM7QUFFakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVN6RSxNQUFNLE9BQU8sbUJBQW1CO0lBYzlCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ25DLE9B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LENBQUM7UUFDOUMsSUFBSSxlQUFlLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0UsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM5QixPQUFPLGVBQWUsQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQTlKVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwwU0N4Q2hDLGlpSUFxRU07OzJGRDdCTyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCO3dMQXVDbEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3VydmV5TGliU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc3VydmV5LWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3VydmV5RHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3Mvc3VydmV5LmR0byc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlLCBSdWxlUXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2UsIFN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9zdXJ2ZXJ5LWxpYi5mb3JtLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgdjQgYXMgZ3VpZEdlbmVyYXRvciB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIG9mLCB0YWtlLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMb2dpY1Byb3BlcnR5RW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9Mb2dpYy1Qcm9wZXJ0eS5lbnVtJztcclxuaW1wb3J0IHsgUnVsZUV4cER0byB9IGZyb20gJy4uL3NoYXJlZC9kdG9zL3J1bGUtZXhwLmR0byc7XHJcbmltcG9ydCB7IE9wZXJhdG9yRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9vcGVyYXRvci5lbnVtJztcclxuaW1wb3J0IHsgTG9naWNBY3Rpb25FbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL2xvZ2ljLWFjdGlvbi5lbnVtJztcclxuaW1wb3J0IHsgQ2hlY2tSdWxlRXhwc1VzZWNhc2UgfSBmcm9tICcuL3VzZWNhc2VzL2NoZWNrLXJ1bGUtZXhwcy51c2VjYXNlJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25SZXN1bHQgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3N1cnZlcnktcXVlc3Rpb24tcmVzdWx0Lm1vZGVsJztcclxuaW1wb3J0IHsgRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3MvZGVmYXVsdC1xdWVzdGlvbi1hbnN3ZXJzLmR0byc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRdWVzdGlvblRleHRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUXVlc3Rpb25Ecm9wZG93blRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uQ2hlY2tCb3hUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUvcXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlMYW5ndWFnZUR0byB9IGZyb20gJy4uL3NoYXJlZC9kdG9zL3N1cnZleS1sYW5ndWFnZS5kdG8nO1xyXG5pbXBvcnQgeyBTdXJ2ZXlTZWN0aW9uRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9zdXJ2ZXktc2VjdGlvbi5lbnVtJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XHJcbmltcG9ydCB7IElucHV0VHlwZUVudW0gfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvaW5wdXQtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IHN1cnZleVNlbGVjdG9ycyB9IGZyb20gJy4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5zZWxlY3Rvcic7XHJcbmltcG9ydCB7IHF1ZXN0aW9uR3JvdXBTZWxlY3RvcnMgfSBmcm9tICcuL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9xdWVzdGlvbi1ncm91cC5zZWxlY3Rvcic7XHJcbmltcG9ydCB7IHF1ZXN0aW9uU2VsZWN0b3JzIH0gZnJvbSAnLi9jb3JlL3N0YXRlcy9zdXJ2ZXktc3RvcmUvcXVlc3Rpb24uc2VsZWN0b3InO1xyXG5pbXBvcnQgeyBRdWVzdGlvbk5ncnhNb2RlbCB9IGZyb20gJy4vY29yZS9zdGF0ZXMvZW50aXRlcy9xdWVzdGlvbi5lbnRpdHknO1xyXG5pbXBvcnQgeyBzdXJ2ZXlBY3Rpb25zIH0gZnJvbSAnLi9jb3JlL3N0YXRlcy9zdXJ2ZXktc3RvcmUvc3VydmV5LmFjdGlvbic7XHJcbmltcG9ydCB7IFF1ZXN0aW9uR3JvdXBOZ3J4TW9kZWwgfSBmcm9tICcuL2NvcmUvc3RhdGVzL2VudGl0ZXMvcXVlc3Rpb24tZ3JvdXAuZW50aXR5JztcclxuZGVjbGFyZSB2YXIgJDogYW55O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc3VydmVyeS1saWInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXktbGliLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdXJ2ZXktbGliLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZlcnlMaWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBzdXJ2ZXJ5TGlicmFyeURpdklkID0gZ3VpZEdlbmVyYXRvcigpIGFzIHN0cmluZztcclxuICByZWxvYWREZWZhdWx0QW5zd2VySWQgPSBndWlkR2VuZXJhdG9yKCkgYXMgc3RyaW5nO1xyXG4gIHJGb3JtOiBGb3JtR3JvdXA8U3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+O1xyXG4gIHF1ZXN0aW9uQW5zd2VyQXJyOiBTdXJ2ZXlRdWVzdGlvblJlc3VsdFtdID0gW107XHJcblxyXG4gIHBhZ2VRdWVzdGlvbkdyb3VwcyQgPSB0aGlzLl9TdG9yZS5zZWxlY3RTaWduYWwocXVlc3Rpb25Hcm91cFNlbGVjdG9ycy5wYWdlUXVlc3Rpb25Hcm91cHMpO1xyXG4gIHBhZ2VRdWVzdGlvbnMkID0gdGhpcy5fU3RvcmUuc2VsZWN0U2lnbmFsKHF1ZXN0aW9uU2VsZWN0b3JzLnBhZ2VRdWVzdGlvbnMpO1xyXG5cclxuICBpc0ZpcnN0UGFnZSQgPSB0aGlzLl9TdG9yZS5zZWxlY3Qoc3VydmV5U2VsZWN0b3JzLmlzRmlyc3RQYWdlKTtcclxuICBpc0xhc3RQYWdlJCA9IHRoaXMuX1N0b3JlLnNlbGVjdChzdXJ2ZXlTZWxlY3RvcnMuaXNMYXN0UGFnZSk7XHJcbiAgY3VycnVudFNob3dlZFN1cnZleVBhZ2VzJCA9IHRoaXMuX1N0b3JlLnNlbGVjdChzdXJ2ZXlTZWxlY3RvcnMuc2VsZWN0ZWRQYWdlSW5kZXgpLnBpcGUobWFwKHggPT4geCArIDEpKTtcclxuXHJcbiAgZ2V0IGZDdHJscygpIHtcclxuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRmlyc3RQYWdlKCkge1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcclxuICAgIHJldHVybiBmb3JtVmFsdWUuc2hvd2VkU3VydmV5UGFnZXMuZmluZEluZGV4KHggPT4geCA9PSBmb3JtVmFsdWUuY3VycmVudFBhZ2VJZCkgPT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xyXG4gICAgcmV0dXJuIFF1ZXN0aW9uVHlwZUVudW07XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0IHN1cnZleVJlc3VsdCgpOiB7IGFuc3dlcnM6IFN1cnZleVF1ZXN0aW9uUmVzdWx0W10sIGN1cnJlbnRQYWdlSW5kZXg6IG51bWJlciB9IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSWQudmFsdWUsXHJcbiAgICAgIGFuc3dlcnM6IHRoaXMucXVlc3Rpb25BbnN3ZXJBcnJcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGlzUHJlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3VydmV5TGFuZ3VhZ2VJZDogbnVtYmVyID0gbnVsbDtcclxuICBASW5wdXQoKSBzdXJ2ZXlLZXk6IHN0cmluZyA9IG51bGw7XHJcbiAgQElucHV0KCkgYXBwbGljYW50S2V5OiBzdHJpbmcgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGlzQXJhYmljTGFuZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgc3VydmV5UmVzdWx0RW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VydmV5UXVlc3Rpb25SZXN1bHRbXT4oKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0TGFuZ3VhZ2VFbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N1cnZleUxpYlNlcnZpY2U6IFN1cnZleUxpYlNlcnZpY2UsIHByaXZhdGUgX1N0b3JlOiBTdG9yZVxyXG4gICAgLCBwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX2NoZWNrUnVsZUV4cHNVc2VjYXNlOiBDaGVja1J1bGVFeHBzVXNlY2FzZSkge1xyXG5cclxuICAgIHRoaXMuckZvcm0gPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oe1xyXG4gICAgICBjdXJyZW50UGFnZUlkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIHNob3dlZFN1cnZleVBhZ2VzOiBuZXcgRm9ybUNvbnRyb2woW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9TdG9yZS5zZWxlY3QocXVlc3Rpb25TZWxlY3RvcnMucXVlc3Rpb25BbnN3ZXJzKS5zdWJzY3JpYmUoYXJyID0+IHtcclxuICAgICAgdGhpcy5xdWVzdGlvbkFuc3dlckFyciA9IGFycjtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBxdWVzdGlvbklkZW50aWZ5KGluZGV4LCBpdGVtOiBRdWVzdGlvbk5ncnhNb2RlbCkge1xyXG4gICAgcmV0dXJuIGl0ZW0ucXVlc3Rpb25JZDtcclxuICB9XHJcblxyXG4gIHF1ZXN0aW9uR3JvdXBJZGVudGlmeShpbmRleCwgaXRlbTogUXVlc3Rpb25Hcm91cE5ncnhNb2RlbCkge1xyXG4gICAgcmV0dXJuIGl0ZW0ucXVlc3Rpb25Hcm91cElkO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9TdG9yZS5zZWxlY3Qoc3VydmV5U2VsZWN0b3JzLnNlbGVjdGVkUGFnZUlkKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLmZDdHJscy5jdXJyZW50UGFnZUlkLnNldFZhbHVlKHZhbHVlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX1N0b3JlLnNlbGVjdChzdXJ2ZXlTZWxlY3RvcnMuc2hvd2VkU3VydmV5UGFnZXMpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIHRoaXMuZkN0cmxzLnNob3dlZFN1cnZleVBhZ2VzLnNldFZhbHVlKHZhbHVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25QYWdnaW5nTmV4dCgpIHtcclxuICAgIHRoaXMuX1N0b3JlLnNlbGVjdChxdWVzdGlvblNlbGVjdG9ycy5wYWdlUXVlc3Rpb25zKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShhcnIgPT4ge1xyXG4gICAgICB2YXIgaW52YWxpZFJlY29yZHMgPSB0aGlzLmhhdmVJblZhbGlkYXRlUXVlc3Rpb25zKGFycik7XHJcblxyXG4gICAgICBpZiAoaW52YWxpZFJlY29yZHMubGVuZ3RoID09IDApIHtcclxuXHJcbiAgICAgICAgY29uc3QgbmV4dFBhZ2VJZCA9IHRoaXMuZ2V0TmV4dFNob3dlZFBhZ2UoKTtcclxuXHJcbiAgICAgICAgaWYgKG5leHRQYWdlSWQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy5fU3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVQYWdlSWQoeyBwYWdlSWQ6IG5leHRQYWdlSWQgfSkpO1xyXG5cclxuICAgICAgICAgICQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHtcclxuICAgICAgICAgICAgc2Nyb2xsVG9wOiAkKGAjc3VydmVyeS1jYXJkLSR7dGhpcy5zdXJ2ZXJ5TGlicmFyeURpdklkfWApLm9mZnNldCgpLnRvcCAtIDMwXHJcbiAgICAgICAgICB9LCAzMDApO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zdXJ2ZXlSZXN1bHRFbWl0LmVtaXQodGhpcy5xdWVzdGlvbkFuc3dlckFycik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhciBmaXJzdFF1ZXN0aW9uID0gJCgnLmludmFsaWQtcXVlc3Rpb24nKVswXTtcclxuICAgICAgICAkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7XHJcbiAgICAgICAgICBzY3JvbGxUb3A6ICQoZmlyc3RRdWVzdGlvbikub2Zmc2V0KCkudG9wIC0gMjUwXHJcbiAgICAgICAgfSwgMzAwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2dpbmdCYWNrKCkge1xyXG4gICAgY29uc3QgcHJldlBhZ2VJZCA9IHRoaXMuZ2V0UHJldlNob3dlZFBhZ2UoKTtcclxuICAgIGlmIChwcmV2UGFnZUlkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5fU3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVQYWdlSWQoeyBwYWdlSWQ6IHByZXZQYWdlSWQgfSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGF2ZUluVmFsaWRhdGVRdWVzdGlvbnMocXVlc3Rpb25BcnI6IFF1ZXN0aW9uTmdyeE1vZGVsW10pIHtcclxuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XHJcbiAgICB2YXIgaW52YWxpZFJlY29yZHMgPSBbXTtcclxuXHJcbiAgICB2YXIgYXJyID0gcXVlc3Rpb25BcnIuZmlsdGVyKHggPT4geC5pc0Rpc2FibGVkID09IGZhbHNlICYmIHguaXNTaG93ID09IHRydWUpO1xyXG4gICAgYXJyLm1hcCh4ID0+IHtcclxuICAgICAgaWYgKHguaXNSZXF1aXJlZCA9PSB0cnVlICYmIHguaXNWYWxpZCAhPSB0cnVlICYmIHguaXNRdWVzdGlvbkdyb3VwICE9IHRydWUpIHtcclxuICAgICAgICBpbnZhbGlkUmVjb3Jkcy5wdXNoKHgpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICh4LnF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLlRleHRJbnB1dCAmJiB4LmlucHV0VHlwZUlkID09IElucHV0VHlwZUVudW0uRW1haWwpIHtcclxuICAgICAgICAgIGlmICh4LmFuc3dlclRleHQ/LnRyaW0oKSAmJiB4LmlzVmFsaWQgIT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBpbnZhbGlkUmVjb3Jkcy5wdXNoKHgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGludmFsaWRSZWNvcmRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgJChgI3N1cnZleS1wYWdlXyR7Zm9ybVZhbHVlLmN1cnJlbnRQYWdlSWR9YCkuYWRkQ2xhc3MoJ3N1cnZleS1wYWdlX3N1Ym1pdHRlZCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgJChgI3N1cnZleS1wYWdlXyR7Zm9ybVZhbHVlLmN1cnJlbnRQYWdlSWR9YCkucmVtb3ZlQ2xhc3MoJ3N1cnZleS1wYWdlX3N1Ym1pdHRlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbnZhbGlkUmVjb3JkcztcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIGdldE5leHRTaG93ZWRQYWdlKCkge1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcclxuICAgIHZhciBzaG93ZWRQYWdlcyA9IGZvcm1WYWx1ZS5zaG93ZWRTdXJ2ZXlQYWdlcztcclxuICAgIHZhciBuZXh0U2hvd2VkUGFnZXMgPSBzaG93ZWRQYWdlcy5maWx0ZXIoeCA9PiB4ID4gZm9ybVZhbHVlLmN1cnJlbnRQYWdlSWQpO1xyXG4gICAgaWYgKG5leHRTaG93ZWRQYWdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBuZXh0U2hvd2VkUGFnZXNbMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UHJldlNob3dlZFBhZ2UoKSB7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnJGb3JtLnZhbHVlO1xyXG4gICAgdmFyIHNob3dlZFBhZ2VzID0gZm9ybVZhbHVlLnNob3dlZFN1cnZleVBhZ2VzO1xyXG4gICAgdmFyIHByZXZTaG93ZWRQYWdlcyA9IHNob3dlZFBhZ2VzLmZpbHRlcih4ID0+IHggPCBmb3JtVmFsdWUuY3VycmVudFBhZ2VJZCk7XHJcbiAgICBpZiAocHJldlNob3dlZFBhZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHByZXZTaG93ZWRQYWdlc1twcmV2U2hvd2VkUGFnZXMubGVuZ3RoIC0gMV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cInN1cnZlcnktY2FyZC17e3N1cnZlcnlMaWJyYXJ5RGl2SWR9fVwiIGNsYXNzPVwic3VydmF5LWNhcmRcIj5cclxuICA8ZGl2IFthdHRyLmlkXT1cIidzdXJ2ZXktcGFnZV8nK2ZDdHJscy5jdXJyZW50UGFnZUlkLnZhbHVlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2VRdWVzdGlvbkdyb3VwcyQoKTsgdHJhY2tCeTpxdWVzdGlvbkdyb3VwSWRlbnRpZnlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkLWJvZHlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2YXktZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZ3JvdXAtdGl0bGVcIiBbaW5uZXJIVE1MXT1cIml0ZW0ucXVlc3Rpb25Hcm91cE5hbWVcIj5cclxuICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ3JvdXAtc3ViLXRpdGxlIFwiIFtpbm5lckhUTUxdPVwiaXRlbS5xdWVzdGlvbkdyb3VwRGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIChwYWdlUXVlc3Rpb25zJCgpIHxmaWx0ZXJRdWVzdGlvbiA6IGl0ZW0ucXVlc3Rpb25Hcm91cElkKTsgdHJhY2tCeTpxdWVzdGlvbklkZW50aWZ5XCI+XHJcbiAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlICNxdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGUgPT0gcXVlc3Rpb25UeXBlRW51bS5Cb29sZWFuXCI+XHJcbiAgICAgICAgICAgICAgPC9saWItcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10ZXh0LXRlbXBsYXRlICNxdWVzdGlvblRleHRUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGUgPT0gcXVlc3Rpb25UeXBlRW51bS5UZXh0SW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgW2lzQXJhYmljTGFuZ109XCJpc0FyYWJpY0xhbmdcIj48L2xpYi1xdWVzdGlvbi10ZXh0LXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWZlZWRiYWNrLXRlbXBsYXRlICNxdWVzdGlvbkZlZWRUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGUgPT0gcXVlc3Rpb25UeXBlRW51bS5GZWVkQmFja1wiXHJcbiAgICAgICAgICAgICAgICBbaXNBcmFiaWNMYW5nXT1cImlzQXJhYmljTGFuZ1wiPjwvbGliLXF1ZXN0aW9uLWZlZWRiYWNrLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZSAjcXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSA9PSBxdWVzdGlvblR5cGVFbnVtLlJhZGlvQnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgPC9saWItcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlICNxdWVzdGlvbkRyb3Bkb3duVGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlID09IHF1ZXN0aW9uVHlwZUVudW0uRHJvcERvd25cIj48L2xpYi1xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1kcm9wZG93bi1tdWx0aS10ZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGUgPT0gcXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93bk11bHRpXCI+XHJcbiAgICAgICAgICAgICAgPC9saWItcXVlc3Rpb24tZHJvcGRvd24tbXVsdGktdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlICNxdWVzdGlvbkNoZWNrQm94VGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlID09IHF1ZXN0aW9uVHlwZUVudW0uQ2hlY2tCb3hcIj5cclxuICAgICAgICAgICAgICA8L2xpYi1xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlICNxdWVzdGlvbk1hdHJpeFRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSA9PSBxdWVzdGlvblR5cGVFbnVtLk1hdHJpeFwiPlxyXG4gICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlICNxdWVzdGlvbkNhc2NhZGVUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGUgPT0gcXVlc3Rpb25UeXBlRW51bS5DYXNjYWRlXCIgW2FwcGxpY2FudEtleV09XCJhcHBsaWNhbnRLZXlcIiBbaXNQcmVdPVwiaXNQcmVcIlxyXG4gICAgICAgICAgICAgICAgW3N1cnZleUxhbmd1YWdlSWRdPVwic3VydmV5TGFuZ3VhZ2VJZFwiIFtwYWdlSWRdPVwicXVlc3Rpb24uc3VydmV5UGFnZUlkXCJcclxuICAgICAgICAgICAgICAgIFtxdWVzdGlvbkdyb3VwSWRdPVwicXVlc3Rpb24ucXVlc3Rpb25Hcm91cElkXCIgW3N1cnZleUtleV09XCJzdXJ2ZXlLZXlcIlxyXG4gICAgICAgICAgICAgICAgW3N1cnZleUxhbmd1YWdlSWRdPVwic3VydmV5TGFuZ3VhZ2VJZFwiPjwvbGliLXF1ZXN0aW9uLWNhc2NhZGUtdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlICNxdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSA9PSBxdWVzdGlvblR5cGVFbnVtLkluc3RpdHV0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICBbaXNBcmFiaWNMYW5nXT1cImlzQXJhYmljTGFuZ1wiPjwvbGliLXF1ZXN0aW9uLWluc3RpdHV0aW9ucy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwic3VydmF5LWNhcmQtZm9vdHJcIiAqbmdJZj1cImZDdHJscy5zaG93ZWRTdXJ2ZXlQYWdlcy52YWx1ZS5sZW5ndGggPiAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCIganVzdGlmeS1jb250ZW50OiBzdGFydDtcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1wYWdpbmF0aW9uIGZ3LWJvbGRcIj5cclxuICAgICAgICA8c3Bhbj57eyBjdXJydW50U2hvd2VkU3VydmV5UGFnZXMkIHwgYXN5bmN9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWUtMlwiPnt7aXNBcmFiaWNMYW5nID8gJ9mF2YYnIDogJ29mJ319IDwvc3Bhbj5cclxuICAgICAgICA8c3Bhbj57e2ZDdHJscy5zaG93ZWRTdXJ2ZXlQYWdlcy52YWx1ZS5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmVyeS1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zdXJ2ZXJ5LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3N1cnZleS1saWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBSXZILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBa0QsR0FBRyxFQUFNLElBQUksRUFBa0IsTUFBTSxNQUFNLENBQUM7QUFnQnJHLE9BQU8sRUFBZSxXQUFXLEVBQXlCLE1BQU0sZ0JBQWdCLENBQUM7QUFFakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVN6RSxNQUFNLE9BQU8sbUJBQW1CO0lBZTlCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ25DLE9B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U0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ25DLElBQUksV0FBVyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztRQUM5QyxJQUFJLGVBQWUsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE9BQU8sZUFBZSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBL0pVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDBTQ3hDaEMsaWlJQXFFTTs7MkZEN0JPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7d0xBd0NsQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlMaWJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlEdG8gfSBmcm9tICcuLi9zaGFyZWQvZHRvcy9zdXJ2ZXkuZHRvJztcclxuaW1wb3J0IHsgUXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2UsIFJ1bGVRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZSwgU3VydmVyeUxpYkZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3N1cnZlcnktbGliLmZvcm0taW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyTW9kZWwgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgb2YsIHRha2UsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ2ljUHJvcGVydHlFbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL0xvZ2ljLVByb3BlcnR5LmVudW0nO1xyXG5pbXBvcnQgeyBSdWxlRXhwRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3MvcnVsZS1leHAuZHRvJztcclxuaW1wb3J0IHsgT3BlcmF0b3JFbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL29wZXJhdG9yLmVudW0nO1xyXG5pbXBvcnQgeyBMb2dpY0FjdGlvbkVudW0gfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvbG9naWMtYWN0aW9uLmVudW0nO1xyXG5pbXBvcnQgeyBDaGVja1J1bGVFeHBzVXNlY2FzZSB9IGZyb20gJy4vdXNlY2FzZXMvY2hlY2stcnVsZS1leHBzLnVzZWNhc2UnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvblJlc3VsdCB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvc3VydmVyeS1xdWVzdGlvbi1yZXN1bHQubW9kZWwnO1xyXG5pbXBvcnQgeyBEZWZhdWx0UXVlc3Rpb25BbnN3ZXJEdG8gfSBmcm9tICcuLi9zaGFyZWQvZHRvcy9kZWZhdWx0LXF1ZXN0aW9uLWFuc3dlcnMuZHRvJztcclxuaW1wb3J0IHsgUXVlc3Rpb25Cb29sZWFuVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uVGV4dFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkRyb3Bkb3duVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUvcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUXVlc3Rpb25DaGVja0JveFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZS9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1cnZleUxhbmd1YWdlRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3Mvc3VydmV5LWxhbmd1YWdlLmR0byc7XHJcbmltcG9ydCB7IFN1cnZleVNlY3Rpb25FbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL3N1cnZleS1zZWN0aW9uLmVudW0nO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcclxuaW1wb3J0IHsgSW5wdXRUeXBlRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9pbnB1dC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgc3VydmV5U2VsZWN0b3JzIH0gZnJvbSAnLi9jb3JlL3N0YXRlcy9zdXJ2ZXktc3RvcmUvc3VydmV5LnNlbGVjdG9yJztcclxuaW1wb3J0IHsgcXVlc3Rpb25Hcm91cFNlbGVjdG9ycyB9IGZyb20gJy4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3F1ZXN0aW9uLWdyb3VwLnNlbGVjdG9yJztcclxuaW1wb3J0IHsgcXVlc3Rpb25TZWxlY3RvcnMgfSBmcm9tICcuL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9xdWVzdGlvbi5zZWxlY3Rvcic7XHJcbmltcG9ydCB7IFF1ZXN0aW9uTmdyeE1vZGVsIH0gZnJvbSAnLi9jb3JlL3N0YXRlcy9lbnRpdGVzL3F1ZXN0aW9uLmVudGl0eSc7XHJcbmltcG9ydCB7IHN1cnZleUFjdGlvbnMgfSBmcm9tICcuL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9zdXJ2ZXkuYWN0aW9uJztcclxuaW1wb3J0IHsgUXVlc3Rpb25Hcm91cE5ncnhNb2RlbCB9IGZyb20gJy4vY29yZS9zdGF0ZXMvZW50aXRlcy9xdWVzdGlvbi1ncm91cC5lbnRpdHknO1xyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zdXJ2ZXJ5LWxpYicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N1cnZleS1saWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N1cnZleS1saWIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VydmVyeUxpYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIHN1cnZlcnlMaWJyYXJ5RGl2SWQgPSBndWlkR2VuZXJhdG9yKCkgYXMgc3RyaW5nO1xyXG4gIHJlbG9hZERlZmF1bHRBbnN3ZXJJZCA9IGd1aWRHZW5lcmF0b3IoKSBhcyBzdHJpbmc7XHJcbiAgckZvcm06IEZvcm1Hcm91cDxTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT47XHJcbiAgcXVlc3Rpb25BbnN3ZXJBcnI6IFN1cnZleVF1ZXN0aW9uUmVzdWx0W10gPSBbXTtcclxuXHJcbiAgcGFnZVF1ZXN0aW9uR3JvdXBzJCA9IHRoaXMuX1N0b3JlLnNlbGVjdFNpZ25hbChxdWVzdGlvbkdyb3VwU2VsZWN0b3JzLnBhZ2VRdWVzdGlvbkdyb3Vwcyk7XHJcbiAgcGFnZVF1ZXN0aW9ucyQgPSB0aGlzLl9TdG9yZS5zZWxlY3RTaWduYWwocXVlc3Rpb25TZWxlY3RvcnMucGFnZVF1ZXN0aW9ucyk7XHJcblxyXG4gIGlzRmlyc3RQYWdlJCA9IHRoaXMuX1N0b3JlLnNlbGVjdChzdXJ2ZXlTZWxlY3RvcnMuaXNGaXJzdFBhZ2UpO1xyXG4gIGlzTGFzdFBhZ2UkID0gdGhpcy5fU3RvcmUuc2VsZWN0KHN1cnZleVNlbGVjdG9ycy5pc0xhc3RQYWdlKTtcclxuICBjdXJydW50U2hvd2VkU3VydmV5UGFnZXMkID0gdGhpcy5fU3RvcmUuc2VsZWN0KHN1cnZleVNlbGVjdG9ycy5zZWxlY3RlZFBhZ2VJbmRleCkucGlwZShtYXAoeCA9PiB4ICsgMSkpO1xyXG4gIGhhdmVWYWxpZFF1ZXN0aW9uc0N1cnJlbnRQYWdlJCA9IHRoaXMuX1N0b3JlLnNlbGVjdChxdWVzdGlvblNlbGVjdG9ycy5IYXZlVmFsaWRRdWVzdGlvbnNDdXJyZW50UGFnZSk7XHJcblxyXG4gIGdldCBmQ3RybHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcclxuICB9XHJcblxyXG4gIGdldCBpc0ZpcnN0UGFnZSgpIHtcclxuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XHJcbiAgICByZXR1cm4gZm9ybVZhbHVlLnNob3dlZFN1cnZleVBhZ2VzLmZpbmRJbmRleCh4ID0+IHggPT0gZm9ybVZhbHVlLmN1cnJlbnRQYWdlSWQpID09IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgcXVlc3Rpb25UeXBlRW51bSgpIHtcclxuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldCBzdXJ2ZXlSZXN1bHQoKTogeyBhbnN3ZXJzOiBTdXJ2ZXlRdWVzdGlvblJlc3VsdFtdLCBjdXJyZW50UGFnZUluZGV4OiBudW1iZXIgfSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjdXJyZW50UGFnZUluZGV4OiB0aGlzLmZDdHJscy5jdXJyZW50UGFnZUlkLnZhbHVlLFxyXG4gICAgICBhbnN3ZXJzOiB0aGlzLnF1ZXN0aW9uQW5zd2VyQXJyXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBpc1ByZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHN1cnZleUxhbmd1YWdlSWQ6IG51bWJlciA9IG51bGw7XHJcbiAgQElucHV0KCkgc3VydmV5S2V5OiBzdHJpbmcgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGFwcGxpY2FudEtleTogc3RyaW5nID0gbnVsbDtcclxuICBASW5wdXQoKSBpc0FyYWJpY0xhbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHN1cnZleVJlc3VsdEVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1cnZleVF1ZXN0aW9uUmVzdWx0W10+KCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdExhbmd1YWdlRW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdXJ2ZXlMaWJTZXJ2aWNlOiBTdXJ2ZXlMaWJTZXJ2aWNlLCBwcml2YXRlIF9TdG9yZTogU3RvcmVcclxuICAgICwgcHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIF9jaGVja1J1bGVFeHBzVXNlY2FzZTogQ2hlY2tSdWxlRXhwc1VzZWNhc2UpIHtcclxuXHJcbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8U3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcclxuICAgICAgY3VycmVudFBhZ2VJZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBzaG93ZWRTdXJ2ZXlQYWdlczogbmV3IEZvcm1Db250cm9sKFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fU3RvcmUuc2VsZWN0KHF1ZXN0aW9uU2VsZWN0b3JzLnF1ZXN0aW9uQW5zd2Vycykuc3Vic2NyaWJlKGFyciA9PiB7XHJcbiAgICAgIHRoaXMucXVlc3Rpb25BbnN3ZXJBcnIgPSBhcnI7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcXVlc3Rpb25JZGVudGlmeShpbmRleCwgaXRlbTogUXVlc3Rpb25OZ3J4TW9kZWwpIHtcclxuICAgIHJldHVybiBpdGVtLnF1ZXN0aW9uSWQ7XHJcbiAgfVxyXG5cclxuICBxdWVzdGlvbkdyb3VwSWRlbnRpZnkoaW5kZXgsIGl0ZW06IFF1ZXN0aW9uR3JvdXBOZ3J4TW9kZWwpIHtcclxuICAgIHJldHVybiBpdGVtLnF1ZXN0aW9uR3JvdXBJZDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fU3RvcmUuc2VsZWN0KHN1cnZleVNlbGVjdG9ycy5zZWxlY3RlZFBhZ2VJZCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJZC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9TdG9yZS5zZWxlY3Qoc3VydmV5U2VsZWN0b3JzLnNob3dlZFN1cnZleVBhZ2VzKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLmZDdHJscy5zaG93ZWRTdXJ2ZXlQYWdlcy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUGFnZ2luZ05leHQoKSB7XHJcbiAgICB0aGlzLl9TdG9yZS5zZWxlY3QocXVlc3Rpb25TZWxlY3RvcnMucGFnZVF1ZXN0aW9ucykucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoYXJyID0+IHtcclxuICAgICAgdmFyIGludmFsaWRSZWNvcmRzID0gdGhpcy5oYXZlSW5WYWxpZGF0ZVF1ZXN0aW9ucyhhcnIpO1xyXG5cclxuICAgICAgaWYgKGludmFsaWRSZWNvcmRzLmxlbmd0aCA9PSAwKSB7XHJcblxyXG4gICAgICAgIGNvbnN0IG5leHRQYWdlSWQgPSB0aGlzLmdldE5leHRTaG93ZWRQYWdlKCk7XHJcblxyXG4gICAgICAgIGlmIChuZXh0UGFnZUlkICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUGFnZUlkKHsgcGFnZUlkOiBuZXh0UGFnZUlkIH0pKTtcclxuXHJcbiAgICAgICAgICAkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7XHJcbiAgICAgICAgICAgIHNjcm9sbFRvcDogJChgI3N1cnZlcnktY2FyZC0ke3RoaXMuc3VydmVyeUxpYnJhcnlEaXZJZH1gKS5vZmZzZXQoKS50b3AgLSAzMFxyXG4gICAgICAgICAgfSwgMzAwKTtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3VydmV5UmVzdWx0RW1pdC5lbWl0KHRoaXMucXVlc3Rpb25BbnN3ZXJBcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YXIgZmlyc3RRdWVzdGlvbiA9ICQoJy5pbnZhbGlkLXF1ZXN0aW9uJylbMF07XHJcbiAgICAgICAgJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoe1xyXG4gICAgICAgICAgc2Nyb2xsVG9wOiAkKGZpcnN0UXVlc3Rpb24pLm9mZnNldCgpLnRvcCAtIDI1MFxyXG4gICAgICAgIH0sIDMwMCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25QYWdnaW5nQmFjaygpIHtcclxuICAgIGNvbnN0IHByZXZQYWdlSWQgPSB0aGlzLmdldFByZXZTaG93ZWRQYWdlKCk7XHJcbiAgICBpZiAocHJldlBhZ2VJZCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUGFnZUlkKHsgcGFnZUlkOiBwcmV2UGFnZUlkIH0pKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gcHJpdmF0ZSBoYXZlSW5WYWxpZGF0ZVF1ZXN0aW9ucyhxdWVzdGlvbkFycjogUXVlc3Rpb25OZ3J4TW9kZWxbXSkge1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcclxuICAgIHZhciBpbnZhbGlkUmVjb3JkcyA9IFtdO1xyXG5cclxuICAgIHZhciBhcnIgPSBxdWVzdGlvbkFyci5maWx0ZXIoeCA9PiB4LmlzRGlzYWJsZWQgPT0gZmFsc2UgJiYgeC5pc1Nob3cgPT0gdHJ1ZSk7XHJcbiAgICBhcnIubWFwKHggPT4ge1xyXG4gICAgICBpZiAoeC5pc1JlcXVpcmVkID09IHRydWUgJiYgeC5pc1ZhbGlkICE9IHRydWUgJiYgeC5pc1F1ZXN0aW9uR3JvdXAgIT0gdHJ1ZSkge1xyXG4gICAgICAgIGludmFsaWRSZWNvcmRzLnB1c2goeCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHgucXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uVGV4dElucHV0ICYmIHguaW5wdXRUeXBlSWQgPT0gSW5wdXRUeXBlRW51bS5FbWFpbCkge1xyXG4gICAgICAgICAgaWYgKHguYW5zd2VyVGV4dD8udHJpbSgpICYmIHguaXNWYWxpZCAhPSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGludmFsaWRSZWNvcmRzLnB1c2goeCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoaW52YWxpZFJlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAkKGAjc3VydmV5LXBhZ2VfJHtmb3JtVmFsdWUuY3VycmVudFBhZ2VJZH1gKS5hZGRDbGFzcygnc3VydmV5LXBhZ2Vfc3VibWl0dGVkJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAkKGAjc3VydmV5LXBhZ2VfJHtmb3JtVmFsdWUuY3VycmVudFBhZ2VJZH1gKS5yZW1vdmVDbGFzcygnc3VydmV5LXBhZ2Vfc3VibWl0dGVkJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGludmFsaWRSZWNvcmRzO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgZ2V0TmV4dFNob3dlZFBhZ2UoKSB7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnJGb3JtLnZhbHVlO1xyXG4gICAgdmFyIHNob3dlZFBhZ2VzID0gZm9ybVZhbHVlLnNob3dlZFN1cnZleVBhZ2VzO1xyXG4gICAgdmFyIG5leHRTaG93ZWRQYWdlcyA9IHNob3dlZFBhZ2VzLmZpbHRlcih4ID0+IHggPiBmb3JtVmFsdWUuY3VycmVudFBhZ2VJZCk7XHJcbiAgICBpZiAobmV4dFNob3dlZFBhZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIG5leHRTaG93ZWRQYWdlc1swXTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQcmV2U2hvd2VkUGFnZSgpIHtcclxuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XHJcbiAgICB2YXIgc2hvd2VkUGFnZXMgPSBmb3JtVmFsdWUuc2hvd2VkU3VydmV5UGFnZXM7XHJcbiAgICB2YXIgcHJldlNob3dlZFBhZ2VzID0gc2hvd2VkUGFnZXMuZmlsdGVyKHggPT4geCA8IGZvcm1WYWx1ZS5jdXJyZW50UGFnZUlkKTtcclxuICAgIGlmIChwcmV2U2hvd2VkUGFnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gcHJldlNob3dlZFBhZ2VzW3ByZXZTaG93ZWRQYWdlcy5sZW5ndGggLSAxXTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGlkPVwic3VydmVyeS1jYXJkLXt7c3VydmVyeUxpYnJhcnlEaXZJZH19XCIgY2xhc3M9XCJzdXJ2YXktY2FyZFwiPlxyXG4gIDxkaXYgW2F0dHIuaWRdPVwiJ3N1cnZleS1wYWdlXycrZkN0cmxzLmN1cnJlbnRQYWdlSWQudmFsdWVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnZVF1ZXN0aW9uR3JvdXBzJCgpOyB0cmFja0J5OnF1ZXN0aW9uR3JvdXBJZGVudGlmeVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3VydmF5LWNhcmRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmF5LWNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1ncm91cFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJncm91cC10aXRsZVwiIFtpbm5lckhUTUxdPVwiaXRlbS5xdWVzdGlvbkdyb3VwTmFtZVwiPlxyXG4gICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJncm91cC1zdWItdGl0bGUgXCIgW2lubmVySFRNTF09XCJpdGVtLnF1ZXN0aW9uR3JvdXBEZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgKHBhZ2VRdWVzdGlvbnMkKCkgfGZpbHRlclF1ZXN0aW9uIDogaXRlbS5xdWVzdGlvbkdyb3VwSWQpOyB0cmFja0J5OnF1ZXN0aW9uSWRlbnRpZnlcIj5cclxuICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUgI3F1ZXN0aW9uQm9vbGVhblRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSA9PSBxdWVzdGlvblR5cGVFbnVtLkJvb2xlYW5cIj5cclxuICAgICAgICAgICAgICA8L2xpYi1xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXRleHQtdGVtcGxhdGUgI3F1ZXN0aW9uVGV4dFRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSA9PSBxdWVzdGlvblR5cGVFbnVtLlRleHRJbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBbaXNBcmFiaWNMYW5nXT1cImlzQXJhYmljTGFuZ1wiPjwvbGliLXF1ZXN0aW9uLXRleHQtdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tZmVlZGJhY2stdGVtcGxhdGUgI3F1ZXN0aW9uRmVlZFRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSA9PSBxdWVzdGlvblR5cGVFbnVtLkZlZWRCYWNrXCJcclxuICAgICAgICAgICAgICAgIFtpc0FyYWJpY0xhbmddPVwiaXNBcmFiaWNMYW5nXCI+PC9saWItcXVlc3Rpb24tZmVlZGJhY2stdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlICNxdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlID09IHF1ZXN0aW9uVHlwZUVudW0uUmFkaW9CdXR0b25cIj5cclxuICAgICAgICAgICAgICA8L2xpYi1xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUgI3F1ZXN0aW9uRHJvcGRvd25UZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGUgPT0gcXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93blwiPjwvbGliLXF1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWRyb3Bkb3duLW11bHRpLXRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSA9PSBxdWVzdGlvblR5cGVFbnVtLkRyb3BEb3duTXVsdGlcIj5cclxuICAgICAgICAgICAgICA8L2xpYi1xdWVzdGlvbi1kcm9wZG93bi1tdWx0aS10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUgI3F1ZXN0aW9uQ2hlY2tCb3hUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGUgPT0gcXVlc3Rpb25UeXBlRW51bS5DaGVja0JveFwiPlxyXG4gICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUgI3F1ZXN0aW9uTWF0cml4VGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlID09IHF1ZXN0aW9uVHlwZUVudW0uTWF0cml4XCI+XHJcbiAgICAgICAgICAgICAgPC9saWItcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWNhc2NhZGUtdGVtcGxhdGUgI3F1ZXN0aW9uQ2FzY2FkZVRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSA9PSBxdWVzdGlvblR5cGVFbnVtLkNhc2NhZGVcIiBbYXBwbGljYW50S2V5XT1cImFwcGxpY2FudEtleVwiIFtpc1ByZV09XCJpc1ByZVwiXHJcbiAgICAgICAgICAgICAgICBbc3VydmV5TGFuZ3VhZ2VJZF09XCJzdXJ2ZXlMYW5ndWFnZUlkXCIgW3BhZ2VJZF09XCJxdWVzdGlvbi5zdXJ2ZXlQYWdlSWRcIlxyXG4gICAgICAgICAgICAgICAgW3F1ZXN0aW9uR3JvdXBJZF09XCJxdWVzdGlvbi5xdWVzdGlvbkdyb3VwSWRcIiBbc3VydmV5S2V5XT1cInN1cnZleUtleVwiXHJcbiAgICAgICAgICAgICAgICBbc3VydmV5TGFuZ3VhZ2VJZF09XCJzdXJ2ZXlMYW5ndWFnZUlkXCI+PC9saWItcXVlc3Rpb24tY2FzY2FkZS10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUgI3F1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlID09IHF1ZXN0aW9uVHlwZUVudW0uSW5zdGl0dXRpb25zXCJcclxuICAgICAgICAgICAgICAgIFtpc0FyYWJpY0xhbmddPVwiaXNBcmFiaWNMYW5nXCI+PC9saWItcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJzdXJ2YXktY2FyZC1mb290clwiICpuZ0lmPVwiZkN0cmxzLnNob3dlZFN1cnZleVBhZ2VzLnZhbHVlLmxlbmd0aCA+IDBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cIiBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3VydmF5LXBhZ2luYXRpb24gZnctYm9sZFwiPlxyXG4gICAgICAgIDxzcGFuPnt7IGN1cnJ1bnRTaG93ZWRTdXJ2ZXlQYWdlcyQgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtZS0yXCI+e3tpc0FyYWJpY0xhbmcgPyAn2YXZhicgOiAnb2YnfX0gPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPnt7ZkN0cmxzLnNob3dlZFN1cnZleVBhZ2VzLnZhbHVlLmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -113,6 +113,29 @@ const { selectAll: selectAll$1, selectIds: selectIds$1 } = questionAdapter.getSe
113
113
  const selectSurveyData = createFeatureSelector('survey-lib');
114
114
  const allQuestions = createSelector(selectSurveyData, (state) => selectAll$1(state.questionArr));
115
115
  const pageQuestions = createSelector(selectSurveyData, (state) => selectAll$1(state.questionArr).filter(x => x.surveyPageId == state.selectedPageId));
116
+ const HaveValidQuestionsCurrentPage = createSelector(selectSurveyData, (state) => {
117
+ const questionArr = selectAll$1(state.questionArr).filter(x => x.surveyPageId == state.selectedPageId);
118
+ if (questionArr.length == 0) {
119
+ return true;
120
+ }
121
+ else {
122
+ var invalidRecords = [];
123
+ var arr = questionArr.filter(x => x.isDisabled == false && x.isShow == true);
124
+ arr.map(x => {
125
+ if (x.isRequired == true && x.isValid != true && x.isQuestionGroup != true) {
126
+ invalidRecords.push(x);
127
+ }
128
+ else {
129
+ if (x.questionType == QuestionTypeEnum.TextInput && x.inputTypeId == InputTypeEnum.Email) {
130
+ if (x.answerText?.trim() && x.isValid != true) {
131
+ invalidRecords.push(x);
132
+ }
133
+ }
134
+ }
135
+ });
136
+ return invalidRecords.length == 0;
137
+ }
138
+ });
116
139
  const questionAnswers = createSelector(selectSurveyData, (state) => selectAll$1(state.questionArr)
117
140
  .filter(x => x.isQuestionGroup != true && x.isShow == true).map(x => {
118
141
  if (x.questionType == QuestionTypeEnum.Institutions) {
@@ -141,7 +164,8 @@ const questionAnswers = createSelector(selectSurveyData, (state) => selectAll$1(
141
164
  const questionSelectors = {
142
165
  allQuestions,
143
166
  pageQuestions,
144
- questionAnswers
167
+ questionAnswers,
168
+ HaveValidQuestionsCurrentPage
145
169
  };
146
170
 
147
171
  const loadSurvey = createAction('[Survey library] Load Survey', props());
@@ -2249,6 +2273,7 @@ class SurveryLibComponent {
2249
2273
  this.isFirstPage$ = this._Store.select(surveySelectors.isFirstPage);
2250
2274
  this.isLastPage$ = this._Store.select(surveySelectors.isLastPage);
2251
2275
  this.curruntShowedSurveyPages$ = this._Store.select(surveySelectors.selectedPageIndex).pipe(map(x => x + 1));
2276
+ this.haveValidQuestionsCurrentPage$ = this._Store.select(questionSelectors.HaveValidQuestionsCurrentPage);
2252
2277
  this.isPre = false;
2253
2278
  this.surveyLanguageId = null;
2254
2279
  this.surveyKey = null;