survery-lib 0.1.10 → 0.1.11

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.
Files changed (147) hide show
  1. package/README.md +52 -52
  2. package/assets/style.css +383 -58
  3. package/assets/style.css.map +1 -1
  4. package/ng-package.json +11 -0
  5. package/package.json +15 -27
  6. package/scss/style.scss +88 -0
  7. package/src/lib/components/question-boolean-template/question-boolean-template.component.html +13 -0
  8. package/src/lib/components/question-boolean-template/question-boolean-template.component.scss +0 -0
  9. package/src/lib/components/question-boolean-template/question-boolean-template.component.spec.ts +21 -0
  10. package/src/lib/components/question-boolean-template/question-boolean-template.component.ts +109 -0
  11. package/src/lib/components/question-check-box-template/question-check-box-template.component.html +13 -0
  12. package/src/lib/components/question-check-box-template/question-check-box-template.component.scss +0 -0
  13. package/src/lib/components/question-check-box-template/question-check-box-template.component.spec.ts +21 -0
  14. package/src/lib/components/question-check-box-template/question-check-box-template.component.ts +124 -0
  15. package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.html +10 -0
  16. package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.scss +3 -0
  17. package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.spec.ts +21 -0
  18. package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.ts +100 -0
  19. package/src/lib/components/question-dropdown-template/question-dropdown-template.component.html +10 -0
  20. package/src/lib/components/question-dropdown-template/question-dropdown-template.component.scss +0 -0
  21. package/src/lib/components/question-dropdown-template/question-dropdown-template.component.spec.ts +21 -0
  22. package/src/lib/components/question-dropdown-template/question-dropdown-template.component.ts +87 -0
  23. package/src/lib/components/question-matrix-template/question-matrix-template.component.html +36 -0
  24. package/src/lib/components/question-matrix-template/question-matrix-template.component.scss +0 -0
  25. package/src/lib/components/question-matrix-template/question-matrix-template.component.spec.ts +21 -0
  26. package/src/lib/components/question-matrix-template/question-matrix-template.component.ts +110 -0
  27. package/src/lib/components/question-radio-button-template/question-radio-button-template.component.html +13 -0
  28. package/src/lib/components/question-radio-button-template/question-radio-button-template.component.scss +0 -0
  29. package/src/lib/components/question-radio-button-template/question-radio-button-template.component.spec.ts +21 -0
  30. package/src/lib/components/question-radio-button-template/question-radio-button-template.component.ts +111 -0
  31. package/src/lib/components/question-text-template/question-text-template.component.html +13 -0
  32. package/src/lib/components/question-text-template/question-text-template.component.scss +0 -0
  33. package/src/lib/components/question-text-template/question-text-template.component.spec.ts +21 -0
  34. package/src/lib/components/question-text-template/question-text-template.component.ts +105 -0
  35. package/src/lib/pipes/default-question-answer.pipe.spec.ts +8 -0
  36. package/src/lib/pipes/default-question-answer.pipe.ts +18 -0
  37. package/src/lib/pipes/default-question-answers.pipe.spec.ts +8 -0
  38. package/src/lib/pipes/default-question-answers.pipe.ts +17 -0
  39. package/src/lib/pipes/filter-question.pipe.spec.ts +8 -0
  40. package/src/lib/pipes/filter-question.pipe.ts +14 -0
  41. package/src/lib/services/survey-lib.service.spec.ts +16 -0
  42. package/src/lib/services/survey-lib.service.ts +31 -0
  43. package/src/lib/survery-lib.component.spec.ts +21 -0
  44. package/src/lib/survery-lib.component.ts +308 -0
  45. package/src/lib/survery-lib.module.ts +47 -0
  46. package/src/lib/survey-lib.component.html +67 -0
  47. package/src/lib/survey-lib.component.scss +4 -0
  48. package/{lib/usecases/base/use-case.d.ts → src/lib/usecases/base/use-case.ts} +9 -7
  49. package/src/lib/usecases/check-rule-exps.usecase.ts +188 -0
  50. package/{public-api.d.ts → src/public-api.ts} +5 -1
  51. package/src/shared/dtos/default-question-answers.dto.ts +10 -0
  52. package/{shared/dtos/rule-exp-answer.dto.d.ts → src/shared/dtos/rule-exp-answer.dto.ts} +5 -5
  53. package/{shared/dtos/rule-exp.dto.d.ts → src/shared/dtos/rule-exp.dto.ts} +14 -13
  54. package/{shared/dtos/rule-result-question.dto.d.ts → src/shared/dtos/rule-result-question.dto.ts} +5 -4
  55. package/{shared/dtos/survey-answer.dto.d.ts → src/shared/dtos/survey-answer.dto.ts} +16 -16
  56. package/{shared/dtos/survey-answers-subject.dto.d.ts → src/shared/dtos/survey-answers-subject.dto.ts} +6 -5
  57. package/{shared/dtos/survey-page.dto.d.ts → src/shared/dtos/survey-page.dto.ts} +10 -9
  58. package/{shared/dtos/survey-question-group.dto.d.ts → src/shared/dtos/survey-question-group.dto.ts} +9 -8
  59. package/{shared/dtos/survey-question.dto.d.ts → src/shared/dtos/survey-question.dto.ts} +19 -18
  60. package/{shared/dtos/survey-rule.dto.d.ts → src/shared/dtos/survey-rule.dto.ts} +11 -10
  61. package/{shared/dtos/survey-sub-question.dto.d.ts → src/shared/dtos/survey-sub-question.dto.ts} +9 -9
  62. package/{shared/dtos/survey.dto.d.ts → src/shared/dtos/survey.dto.ts} +17 -16
  63. package/{shared/enums/logic-action.enum.d.ts → src/shared/enums/logic-action.enum.ts} +7 -7
  64. package/src/shared/enums/logic-property.enum.ts +12 -0
  65. package/src/shared/enums/operator.enum.ts +4 -0
  66. package/{shared/enums/question-type.enum.d.ts → src/shared/enums/question-type.enum.ts} +9 -8
  67. package/src/shared/form-interfaces/question-boolean-template.form-interface.ts +17 -0
  68. package/src/shared/form-interfaces/question-check-box-template.form-interface.ts +18 -0
  69. package/src/shared/form-interfaces/question-dropdown-multi-template.form-interface.ts +17 -0
  70. package/src/shared/form-interfaces/question-dropdown-template.form-interface.ts +10 -0
  71. package/{shared/form-interfaces/question-matrix-template.form-interface.d.ts → src/shared/form-interfaces/question-matrix-template.form-interface.ts} +13 -11
  72. package/src/shared/form-interfaces/question-radio-button-template.form-interface.ts +17 -0
  73. package/src/shared/form-interfaces/question-text-template.form-interface.ts +11 -0
  74. package/src/shared/form-interfaces/survery-lib.form-interface.ts +27 -0
  75. package/src/shared/models/question-answer.model.ts +6 -0
  76. package/src/shared/models/survery-question-result.model.ts +8 -0
  77. package/tsconfig.lib.json +14 -0
  78. package/tsconfig.lib.prod.json +10 -0
  79. package/tsconfig.spec.json +14 -0
  80. package/esm2022/lib/components/question-boolean-template/question-boolean-template.component.mjs +0 -99
  81. package/esm2022/lib/components/question-check-box-template/question-check-box-template.component.mjs +0 -110
  82. package/esm2022/lib/components/question-dropdown-template/question-dropdown-template.component.mjs +0 -83
  83. package/esm2022/lib/components/question-matrix-template/question-matrix-template.component.mjs +0 -101
  84. package/esm2022/lib/components/question-radio-button-template/question-radio-button-template.component.mjs +0 -99
  85. package/esm2022/lib/components/question-text-template/question-text-template.component.mjs +0 -99
  86. package/esm2022/lib/pipes/default-question-answer.pipe.mjs +0 -19
  87. package/esm2022/lib/pipes/default-question-answers.pipe.mjs +0 -19
  88. package/esm2022/lib/pipes/filter-question.pipe.mjs +0 -16
  89. package/esm2022/lib/services/survey-lib.service.mjs +0 -30
  90. package/esm2022/lib/survery-lib.component.mjs +0 -270
  91. package/esm2022/lib/survery-lib.module.mjs +0 -59
  92. package/esm2022/lib/usecases/base/use-case.mjs +0 -2
  93. package/esm2022/lib/usecases/check-rule-exps.usecase.mjs +0 -154
  94. package/esm2022/public-api.mjs +0 -8
  95. package/esm2022/shared/dtos/default-question-answers.dto.mjs +0 -3
  96. package/esm2022/shared/dtos/rule-exp-answer.dto.mjs +0 -2
  97. package/esm2022/shared/dtos/rule-exp.dto.mjs +0 -2
  98. package/esm2022/shared/dtos/rule-result-question.dto.mjs +0 -2
  99. package/esm2022/shared/dtos/survey-answer.dto.mjs +0 -2
  100. package/esm2022/shared/dtos/survey-answers-subject.dto.mjs +0 -3
  101. package/esm2022/shared/dtos/survey-page.dto.mjs +0 -2
  102. package/esm2022/shared/dtos/survey-question-group.dto.mjs +0 -2
  103. package/esm2022/shared/dtos/survey-question.dto.mjs +0 -2
  104. package/esm2022/shared/dtos/survey-rule.dto.mjs +0 -2
  105. package/esm2022/shared/dtos/survey-sub-question.dto.mjs +0 -2
  106. package/esm2022/shared/dtos/survey.dto.mjs +0 -2
  107. package/esm2022/shared/enums/Logic-Property.enum.mjs +0 -14
  108. package/esm2022/shared/enums/logic-action.enum.mjs +0 -9
  109. package/esm2022/shared/enums/operator.enum.mjs +0 -6
  110. package/esm2022/shared/enums/question-type.enum.mjs +0 -10
  111. package/esm2022/shared/form-interfaces/question-boolean-template.form-interface.mjs +0 -2
  112. package/esm2022/shared/form-interfaces/question-check-box-template.form-interface.mjs +0 -3
  113. package/esm2022/shared/form-interfaces/question-dropdown-template.form-interface.mjs +0 -3
  114. package/esm2022/shared/form-interfaces/question-matrix-template.form-interface.mjs +0 -2
  115. package/esm2022/shared/form-interfaces/question-radio-button-template.form-interface.mjs +0 -3
  116. package/esm2022/shared/form-interfaces/question-text-template.form-interface.mjs +0 -2
  117. package/esm2022/shared/form-interfaces/survery-lib.form-interface.mjs +0 -2
  118. package/esm2022/shared/models/question-answer.model.mjs +0 -3
  119. package/esm2022/shared/models/survery-question-result.model.mjs +0 -3
  120. package/esm2022/survery-lib.mjs +0 -5
  121. package/fesm2022/survery-lib.mjs +0 -1120
  122. package/fesm2022/survery-lib.mjs.map +0 -1
  123. package/index.d.ts +0 -5
  124. package/lib/components/question-boolean-template/question-boolean-template.component.d.ts +0 -36
  125. package/lib/components/question-check-box-template/question-check-box-template.component.d.ts +0 -37
  126. package/lib/components/question-dropdown-template/question-dropdown-template.component.d.ts +0 -33
  127. package/lib/components/question-matrix-template/question-matrix-template.component.d.ts +0 -33
  128. package/lib/components/question-radio-button-template/question-radio-button-template.component.d.ts +0 -36
  129. package/lib/components/question-text-template/question-text-template.component.d.ts +0 -35
  130. package/lib/pipes/default-question-answer.pipe.d.ts +0 -8
  131. package/lib/pipes/default-question-answers.pipe.d.ts +0 -8
  132. package/lib/pipes/filter-question.pipe.d.ts +0 -9
  133. package/lib/services/survey-lib.service.d.ts +0 -14
  134. package/lib/survery-lib.component.d.ts +0 -45
  135. package/lib/survery-lib.module.d.ts +0 -22
  136. package/lib/usecases/check-rule-exps.usecase.d.ts +0 -21
  137. package/shared/dtos/default-question-answers.dto.d.ts +0 -9
  138. package/shared/enums/Logic-Property.enum.d.ts +0 -12
  139. package/shared/enums/operator.enum.d.ts +0 -4
  140. package/shared/form-interfaces/question-boolean-template.form-interface.d.ts +0 -15
  141. package/shared/form-interfaces/question-check-box-template.form-interface.d.ts +0 -15
  142. package/shared/form-interfaces/question-dropdown-template.form-interface.d.ts +0 -9
  143. package/shared/form-interfaces/question-radio-button-template.form-interface.d.ts +0 -15
  144. package/shared/form-interfaces/question-text-template.form-interface.d.ts +0 -10
  145. package/shared/form-interfaces/survery-lib.form-interface.d.ts +0 -24
  146. package/shared/models/question-answer.model.d.ts +0 -6
  147. package/shared/models/survery-question-result.model.d.ts +0 -8
@@ -1,13 +1,14 @@
1
- import { LogicPropertyEnum } from "../enums/Logic-Property.enum";
2
- import { OperatorEnum } from "../enums/operator.enum";
3
- import { RuleExpAnswerDto } from "./rule-exp-answer.dto";
4
- export interface RuleExpDto {
5
- ruleExpId: number;
6
- questionId: number;
7
- logicPropertyId: LogicPropertyEnum;
8
- questionTitle: string;
9
- questionTypeId: number;
10
- opporator: OperatorEnum;
11
- isComplete: boolean;
12
- ruleExpAnswers: RuleExpAnswerDto[];
13
- }
1
+ import { LogicPropertyEnum } from "../enums/Logic-Property.enum";
2
+ import { OperatorEnum } from "../enums/operator.enum";
3
+ import { RuleExpAnswerDto } from "./rule-exp-answer.dto";
4
+
5
+ export interface RuleExpDto {
6
+ ruleExpId: number;
7
+ questionId: number;
8
+ logicPropertyId: LogicPropertyEnum;
9
+ questionTitle: string;
10
+ questionTypeId: number;
11
+ opporator: OperatorEnum;
12
+ isComplete: boolean;
13
+ ruleExpAnswers: RuleExpAnswerDto[];
14
+ }
@@ -1,4 +1,5 @@
1
- export interface RuleResultQuestionDto {
2
- questionId: number;
3
- questionTitle: string;
4
- }
1
+ export interface RuleResultQuestionDto {
2
+ questionId: number;
3
+ questionTitle: string;
4
+ }
5
+
@@ -1,16 +1,16 @@
1
- export interface SurveyAnswerDto {
2
- answerId: number;
3
- score: number;
4
- inputMax: number[];
5
- inputMin: number[];
6
- isSelected: boolean;
7
- isAddByPreDefine: boolean;
8
- selectedAnswer: string;
9
- answerTitle?: string;
10
- answerName: string;
11
- questionTitle: string;
12
- regex?: any;
13
- answerDescription?: string;
14
- placeHolder?: any;
15
- inputTypeId?: number;
16
- }
1
+ export interface SurveyAnswerDto {
2
+ answerId: number;
3
+ score: number;
4
+ inputMax: number[];
5
+ inputMin: number[];
6
+ isSelected: boolean;
7
+ isAddByPreDefine: boolean;
8
+ selectedAnswer: string;
9
+ answerTitle?: string;
10
+ answerName: string;
11
+ questionTitle: string;
12
+ regex?: any;
13
+ answerDescription?: string;
14
+ placeHolder?: any;
15
+ inputTypeId?: number;
16
+ }
@@ -1,5 +1,6 @@
1
- import { DefaultQuestionAnswerDto } from "./default-question-answers.dto";
2
- export declare class surveyAnswersSubjectDto {
3
- currentpage: number;
4
- defaultAnswers: DefaultQuestionAnswerDto[];
5
- }
1
+ import { DefaultQuestionAnswerDto } from "./default-question-answers.dto";
2
+
3
+ export class surveyAnswersSubjectDto {
4
+ currentpage: number;
5
+ defaultAnswers: DefaultQuestionAnswerDto[];
6
+ }
@@ -1,9 +1,10 @@
1
- import { SurveyQuestionGroupDto } from "./survey-question-group.dto";
2
- export interface SurveyPageDto {
3
- pageId: number;
4
- pageTypeId: number;
5
- pageTitle?: any;
6
- pageDescription?: any;
7
- isAllHidden: boolean;
8
- surveyQuestionGroups: SurveyQuestionGroupDto[];
9
- }
1
+ import { SurveyQuestionGroupDto } from "./survey-question-group.dto";
2
+
3
+ export interface SurveyPageDto {
4
+ pageId: number;
5
+ pageTypeId: number;
6
+ pageTitle?: any;
7
+ pageDescription?: any;
8
+ isAllHidden: boolean;
9
+ surveyQuestionGroups: SurveyQuestionGroupDto[];
10
+ }
@@ -1,8 +1,9 @@
1
- import { SurveyQuestionDto } from "./survey-question.dto";
2
- export interface SurveyQuestionGroupDto {
3
- isMatrix: boolean;
4
- questionGroupId: number;
5
- questionGroupName: string;
6
- questionGroupDescription: string;
7
- surveyQuestions: SurveyQuestionDto[];
8
- }
1
+ import { SurveyQuestionDto } from "./survey-question.dto";
2
+
3
+ export interface SurveyQuestionGroupDto {
4
+ isMatrix:boolean;
5
+ questionGroupId: number;
6
+ questionGroupName: string;
7
+ questionGroupDescription: string ;
8
+ surveyQuestions: SurveyQuestionDto[];
9
+ }
@@ -1,18 +1,19 @@
1
- import { SurveyAnswerDto } from "./survey-answer.dto";
2
- import { SurveySubQuestionDto } from "./survey-sub-question.dto";
3
- export interface SurveyQuestionDto {
4
- questionId: number;
5
- questionTypeId: number;
6
- questionName: string;
7
- questionTitle: string;
8
- questionDescription: string;
9
- isRequired: boolean;
10
- isVisable: boolean;
11
- isEditable: boolean;
12
- isOTPOption: boolean;
13
- isReadOnly: boolean;
14
- isPreDefine: boolean;
15
- isAdvanceTextArea: boolean;
16
- surveyAnswers: SurveyAnswerDto[];
17
- surveySubQuestions: SurveySubQuestionDto[];
18
- }
1
+ import { SurveyAnswerDto } from "./survey-answer.dto";
2
+ import { SurveySubQuestionDto } from "./survey-sub-question.dto";
3
+
4
+ export interface SurveyQuestionDto{
5
+ questionId: number;
6
+ questionTypeId: number;
7
+ questionName: string;
8
+ questionTitle: string;
9
+ questionDescription:string;
10
+ isRequired: boolean;
11
+ isVisable: boolean;
12
+ isEditable: boolean;
13
+ isOTPOption: boolean;
14
+ isReadOnly: boolean;
15
+ isPreDefine: boolean;
16
+ isAdvanceTextArea: boolean;
17
+ surveyAnswers: SurveyAnswerDto[];
18
+ surveySubQuestions: SurveySubQuestionDto[];
19
+ }
@@ -1,10 +1,11 @@
1
- import { RuleExpDto } from "./rule-exp.dto";
2
- import { RuleResultQuestionDto } from "./rule-result-question.dto";
3
- export interface SurveyRuleDto {
4
- ruleId: number;
5
- expression?: any;
6
- isComplete: boolean;
7
- ruleExps: RuleExpDto[];
8
- ruleResultQuestions: RuleResultQuestionDto[];
9
- logicActionId: number;
10
- }
1
+ import { RuleExpDto } from "./rule-exp.dto";
2
+ import { RuleResultQuestionDto } from "./rule-result-question.dto";
3
+
4
+ export interface SurveyRuleDto {
5
+ ruleId: number;
6
+ expression?: any;
7
+ isComplete: boolean;
8
+ ruleExps: RuleExpDto[];
9
+ ruleResultQuestions: RuleResultQuestionDto[];
10
+ logicActionId: number;
11
+ }
@@ -1,9 +1,9 @@
1
- export interface SurveySubQuestionDto {
2
- questionId: number;
3
- questionTypeId: number;
4
- questionTitle: string;
5
- questionName: string;
6
- isVisable: boolean;
7
- isReadOnly: boolean;
8
- questionDescription: string;
9
- }
1
+ export interface SurveySubQuestionDto {
2
+ questionId: number;
3
+ questionTypeId: number;
4
+ questionTitle: string;
5
+ questionName: string;
6
+ isVisable: boolean;
7
+ isReadOnly: boolean;
8
+ questionDescription: string;
9
+ }
@@ -1,16 +1,17 @@
1
- import { SurveyPageDto } from "./survey-page.dto";
2
- import { SurveyRuleDto } from "./survey-rule.dto";
3
- export interface SurveyDto {
4
- surveyId: number;
5
- surveyTitle: string;
6
- applicantKey: any;
7
- applicantKeyTitle?: any;
8
- surveyPages: SurveyPageDto[];
9
- surveyRules: SurveyRuleDto[];
10
- isSuccess: boolean;
11
- errors: any[];
12
- code?: any;
13
- message?: any;
14
- languageTypeId?: any;
15
- returnUrl?: any;
16
- }
1
+ import { SurveyPageDto } from "./survey-page.dto";
2
+ import { SurveyRuleDto } from "./survey-rule.dto";
3
+
4
+ export interface SurveyDto {
5
+ surveyId: number;
6
+ surveyTitle: string;
7
+ applicantKey: any;
8
+ applicantKeyTitle?: any;
9
+ surveyPages: SurveyPageDto[];
10
+ surveyRules: SurveyRuleDto[];
11
+ isSuccess: boolean;
12
+ errors: any[];
13
+ code?: any;
14
+ message?: any;
15
+ languageTypeId?: any;
16
+ returnUrl?: any;
17
+ }
@@ -1,7 +1,7 @@
1
- export declare enum LogicActionEnum {
2
- Show = 1,
3
- Hide = 2,
4
- Enable = 3,
5
- Disable = 4,
6
- SetAnswer = 5
7
- }
1
+ export enum LogicActionEnum {
2
+ Show = 1,
3
+ Hide = 2,
4
+ Enable = 3,
5
+ Disable = 4,
6
+ SetAnswer = 5
7
+ }
@@ -0,0 +1,12 @@
1
+ export enum LogicPropertyEnum{
2
+ GreaterThan = 1 ,
3
+ GreaterThanOrEqual = 2 ,
4
+ LessThan = 3,
5
+ LessThanOrEqual = 4 ,
6
+ Equal = 5 ,
7
+ NotEqual = 6,
8
+ IsEmpty = 9 ,
9
+ IsNotEmpty = 10 ,
10
+ AnyOf =11,
11
+ Then = 12
12
+ }
@@ -0,0 +1,4 @@
1
+ export enum OperatorEnum {
2
+ Or = 7,
3
+ And =8
4
+ }
@@ -1,8 +1,9 @@
1
- export declare enum QuestionTypeEnum {
2
- RadioButton = 1,
3
- CheckBox = 2,
4
- DropDown = 3,
5
- Boolean = 4,
6
- TextInput = 5,
7
- Matrix = 6
8
- }
1
+ export enum QuestionTypeEnum {
2
+ RadioButton = 1,
3
+ CheckBox = 2,
4
+ DropDown = 3,
5
+ Boolean = 4,
6
+ TextInput = 5,
7
+ Matrix = 6,
8
+ DropDownMulti = 7
9
+ }
@@ -0,0 +1,17 @@
1
+ import { QuestionTypeEnum } from "../enums/question-type.enum";
2
+
3
+ export interface QuestionBooleanTemplateFormInterface{
4
+ id;
5
+ typeId:QuestionTypeEnum;
6
+ name;
7
+ title;
8
+ description;
9
+ answer;
10
+ answerArray:AnswerChildOfQuestionBooleanTemplateFormInterface[];
11
+ }
12
+
13
+ export interface AnswerChildOfQuestionBooleanTemplateFormInterface{
14
+ id;
15
+ title;
16
+ isSelected;
17
+ }
@@ -0,0 +1,18 @@
1
+ import { QuestionTypeEnum } from "../enums/question-type.enum";
2
+
3
+ export class QuestionCheckBoxTemplateFormInterface{
4
+ id;
5
+ typeId:QuestionTypeEnum;
6
+ name;
7
+ title;
8
+ description;
9
+ answer;
10
+ answerArray:AnswerChildOfQuestionCheckBoxTemplateFormInterface[];
11
+ }
12
+
13
+ export interface AnswerChildOfQuestionCheckBoxTemplateFormInterface{
14
+ id;
15
+ title;
16
+ isSelected;
17
+ }
18
+
@@ -0,0 +1,17 @@
1
+ import { QuestionTypeEnum } from "../enums/question-type.enum";
2
+
3
+ export class QuestionDropDownMultiTemplateFormInterface{
4
+ id;
5
+ typeId:QuestionTypeEnum;
6
+ name;
7
+ title;
8
+ description;
9
+ answer;
10
+ answerArray:AnswerChildOfQuestionDropDownMultiTemplateFormInterface[];
11
+ }
12
+
13
+ export interface AnswerChildOfQuestionDropDownMultiTemplateFormInterface{
14
+ id;
15
+ title;
16
+ isSelected;
17
+ }
@@ -0,0 +1,10 @@
1
+ import { QuestionTypeEnum } from "../enums/question-type.enum";
2
+
3
+ export class QuestionDropdownTemplateFormInterface{
4
+ id;
5
+ typeId:QuestionTypeEnum;
6
+ name;
7
+ title;
8
+ description;
9
+ answer;
10
+ }
@@ -1,11 +1,13 @@
1
- import { QuestionTypeEnum } from "../enums/question-type.enum";
2
- export interface QuestionMatrixTemplateFormInterface {
3
- id: any;
4
- typeId: QuestionTypeEnum;
5
- subQuestionArray: SubQuestionChildOfQuestionMatrixTemplateFormInterface[];
6
- }
7
- export interface SubQuestionChildOfQuestionMatrixTemplateFormInterface {
8
- subQuestionId: any;
9
- questionTitle: any;
10
- answer: any;
11
- }
1
+ import { QuestionTypeEnum } from "../enums/question-type.enum";
2
+
3
+ export interface QuestionMatrixTemplateFormInterface {
4
+ id;
5
+ typeId: QuestionTypeEnum;
6
+ subQuestionArray: SubQuestionChildOfQuestionMatrixTemplateFormInterface[];
7
+ }
8
+
9
+ export interface SubQuestionChildOfQuestionMatrixTemplateFormInterface {
10
+ subQuestionId;
11
+ questionTitle;
12
+ answer;
13
+ }
@@ -0,0 +1,17 @@
1
+ import { QuestionTypeEnum } from "../enums/question-type.enum";
2
+
3
+ export class QuestionRadioButtonTemplateFormInterface{
4
+ id;
5
+ typeId:QuestionTypeEnum;
6
+ name;
7
+ title;
8
+ description;
9
+ answer;
10
+ answerArray:AnswerChildOfQuestionRadioButtonTemplateFormInterface[]
11
+ }
12
+
13
+ export interface AnswerChildOfQuestionRadioButtonTemplateFormInterface{
14
+ id;
15
+ title;
16
+ isSelected;
17
+ }
@@ -0,0 +1,11 @@
1
+ import { QuestionTypeEnum } from "../enums/question-type.enum";
2
+
3
+ export interface QuestionTextTemplateFormInterface {
4
+ id;
5
+ typeId:QuestionTypeEnum;
6
+ name;
7
+ title;
8
+ description;
9
+ answer;
10
+ surveyAnswerId;
11
+ }
@@ -0,0 +1,27 @@
1
+ import { QuestionTypeEnum } from "../enums/question-type.enum";
2
+
3
+ export interface SurveryLibFormInterface {
4
+ currentPageIndex: number;
5
+ questionArray:QuestionChildOfSurveryLibFormInterface[];
6
+ ruleQuestionArray :RuleQuestionChildOfSurveryLibFormInterface[];
7
+ }
8
+
9
+ export interface QuestionChildOfSurveryLibFormInterface {
10
+ surveyPageIndex:number;
11
+ questionId;
12
+ questionType:QuestionTypeEnum;
13
+ isMatrixGroup:boolean;
14
+ answerId;
15
+ answerIdArr;
16
+ answerText;
17
+ isRequired:boolean;
18
+ isValid:boolean;
19
+ isDisabled :boolean;
20
+ isShow:boolean;
21
+ isDisabled_default :boolean;
22
+ isShow_default:boolean;
23
+ }
24
+
25
+ export interface RuleQuestionChildOfSurveryLibFormInterface {
26
+ questionId;
27
+ }
@@ -0,0 +1,6 @@
1
+ export class QuestionAnswerModel{
2
+ QuestionId;
3
+ Answer;
4
+ IsValid;
5
+ SurveyAnswerId?;
6
+ }
@@ -0,0 +1,8 @@
1
+ export class SurveyQuestionResult{
2
+ SurveyPageIndex:number;
3
+ QuestionId;
4
+ QuestionType;
5
+ AnswerId;
6
+ AnswerIdArr;
7
+ AnswerText;
8
+ }
@@ -0,0 +1,14 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/lib",
6
+ "declaration": true,
7
+ "declarationMap": true,
8
+ "inlineSources": true,
9
+ "types": []
10
+ },
11
+ "exclude": [
12
+ "**/*.spec.ts"
13
+ ]
14
+ }
@@ -0,0 +1,10 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "./tsconfig.lib.json",
4
+ "compilerOptions": {
5
+ "declarationMap": false
6
+ },
7
+ "angularCompilerOptions": {
8
+ "compilationMode": "partial"
9
+ }
10
+ }
@@ -0,0 +1,14 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/spec",
6
+ "types": [
7
+ "jasmine"
8
+ ]
9
+ },
10
+ "include": [
11
+ "**/*.spec.ts",
12
+ "**/*.d.ts"
13
+ ]
14
+ }
@@ -1,99 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { Validators } from '@angular/forms';
3
- import { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';
4
- import { debounceTime, filter, map } from 'rxjs';
5
- import { v4 as guidGenerator } from 'uuid';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ng-stack/forms";
8
- import * as i2 from "../../services/survey-lib.service";
9
- import * as i3 from "@angular/common";
10
- export class QuestionBooleanTemplateComponent {
11
- get fCtrls() {
12
- return this.rForm.controls;
13
- }
14
- get questionTypeEnum() {
15
- return QuestionTypeEnum;
16
- }
17
- set setQuestion(value) {
18
- this.surveyQuestion = value;
19
- this.rForm.patchValue({
20
- id: value.questionId,
21
- name: value.questionName,
22
- title: value.questionTitle,
23
- typeId: value.questionTypeId,
24
- description: value.questionDescription
25
- });
26
- value.surveyAnswers.forEach(surveryAnswer => {
27
- this.fCtrls.answerArray.push(this._formBuilder.group({
28
- id: [surveryAnswer.answerId],
29
- title: [surveryAnswer.answerTitle],
30
- isSelected: [false]
31
- }));
32
- });
33
- if (value.isRequired == true) {
34
- this.fCtrls.answer.addValidators([Validators.required]);
35
- this.fCtrls.answer.updateValueAndValidity();
36
- }
37
- this.isShow = value.isVisable;
38
- this.isDisabled = value.isReadOnly;
39
- }
40
- constructor(_formBuilder, _surveyLibService) {
41
- this._formBuilder = _formBuilder;
42
- this._surveyLibService = _surveyLibService;
43
- this.elemId = guidGenerator();
44
- this.emitter = new EventEmitter();
45
- this.isShow = true;
46
- this.isDisabled = false;
47
- this.rForm = this._formBuilder.group({
48
- id: [null],
49
- name: [null],
50
- title: [null],
51
- typeId: [null],
52
- description: [null],
53
- answer: [null],
54
- answerArray: this._formBuilder.array([])
55
- });
56
- }
57
- ngOnInit() {
58
- this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {
59
- const formValue = this.rForm.value;
60
- this.emitter.emit({
61
- QuestionId: formValue.id,
62
- IsValid: this.fCtrls.answer.valid,
63
- Answer: value
64
- });
65
- });
66
- this.fCtrls.answer.setValue(null);
67
- this._surveyLibService.surveyAnswersObsrv
68
- .pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))
69
- .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))
70
- .subscribe(answer => {
71
- this.fCtrls.answer.setValue(answer.AnswerId);
72
- const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answer.AnswerId);
73
- if (groupIndex > -1) {
74
- this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);
75
- }
76
- });
77
- }
78
- onChangeAnswer(item) {
79
- this.fCtrls.answer.setValue(item.id);
80
- }
81
- convertToFormControl(element) {
82
- return element;
83
- }
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionBooleanTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SurveyLibService }], target: i0.ɵɵFactoryTarget.Component }); }
85
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionBooleanTemplateComponent, selector: "lib-question-boolean-template", inputs: { isShow: "isShow", isDisabled: "isDisabled", setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\r\n <h3 class=\"quastion-title \">\r\n {{fCtrls.title.value}}\r\n </h3>\r\n <div class=\"radio-button-quastion\">\r\n <div class=\"form-check form-check-radio form-check-inline\" \r\n *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\r\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"isDisabled\"\r\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\r\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
86
- }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionBooleanTemplateComponent, decorators: [{
88
- type: Component,
89
- args: [{ selector: 'lib-question-boolean-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\r\n <h3 class=\"quastion-title \">\r\n {{fCtrls.title.value}}\r\n </h3>\r\n <div class=\"radio-button-quastion\">\r\n <div class=\"form-check form-check-radio form-check-inline\" \r\n *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\r\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"isDisabled\"\r\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\r\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
90
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SurveyLibService }]; }, propDecorators: { emitter: [{
91
- type: Output
92
- }], isShow: [{
93
- type: Input
94
- }], isDisabled: [{
95
- type: Input
96
- }], setQuestion: [{
97
- type: Input
98
- }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHNUUsT0FBTyxFQUFFLFlBQVksRUFBd0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2RSxPQUFPLEVBQUUsRUFBRSxJQUFJLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFVM0MsTUFBTSxPQUFPLGdDQUFnQztJQUszQyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFPRCxJQUFhLFdBQVcsQ0FBQyxLQUF3QjtRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNwQixFQUFFLEVBQUUsS0FBSyxD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QixPQUFPO3NCQUFoQixNQUFNO2dCQUVFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVPLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xyXG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFuc3dlckNoaWxkT2ZRdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZUZvcm1JbnRlcmZhY2UsIFF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xyXG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IFN1cnZleUFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1hbnN3ZXIuZHRvJztcclxuaW1wb3J0IHsgRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3MvZGVmYXVsdC1xdWVzdGlvbi1hbnN3ZXJzLmR0byc7XHJcbmltcG9ydCB7IFN1cnZleUxpYlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Cb29sZWFuVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGVsZW1JZCA9IGd1aWRHZW5lcmF0b3IoKSBhcyBzdHJpbmc7XHJcbiAgc3VydmV5UXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvO1xyXG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25Cb29sZWFuVGVtcGxhdGVGb3JtSW50ZXJmYWNlPjtcclxuXHJcbiAgZ2V0IGZDdHJscygpIHtcclxuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XHJcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxRdWVzdGlvbkFuc3dlck1vZGVsPigpO1xyXG5cclxuICBASW5wdXQoKSBpc1Nob3c6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xyXG4gICAgdGhpcy5zdXJ2ZXlRdWVzdGlvbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXHJcbiAgICAgIG5hbWU6IHZhbHVlLnF1ZXN0aW9uTmFtZSxcclxuICAgICAgdGl0bGU6IHZhbHVlLnF1ZXN0aW9uVGl0bGUsXHJcbiAgICAgIHR5cGVJZDogdmFsdWUucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uXHJcbiAgICB9KTtcclxuXHJcbiAgICB2YWx1ZS5zdXJ2ZXlBbnN3ZXJzLmZvckVhY2goc3VydmVyeUFuc3dlciA9PiB7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlckFycmF5LnB1c2godGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8QW5zd2VyQ2hpbGRPZlF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xyXG4gICAgICAgIGlkOiBbc3VydmVyeUFuc3dlci5hbnN3ZXJJZF0sXHJcbiAgICAgICAgdGl0bGU6IFtzdXJ2ZXJ5QW5zd2VyLmFuc3dlclRpdGxlXSxcclxuICAgICAgICBpc1NlbGVjdGVkOiBbZmFsc2VdXHJcbiAgICAgIH0pKVxyXG4gICAgfSlcclxuXHJcbiAgICBpZiAodmFsdWUuaXNSZXF1aXJlZCA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1Nob3cgPSB2YWx1ZS5pc1Zpc2FibGU7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSB2YWx1ZS5pc1JlYWRPbmx5O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyICAsIHByaXZhdGUgX3N1cnZleUxpYlNlcnZpY2U6U3VydmV5TGliU2VydmljZSkge1xyXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xyXG4gICAgICBpZDogW251bGxdLFxyXG4gICAgICBuYW1lOiBbbnVsbF0sXHJcbiAgICAgIHRpdGxlOiBbbnVsbF0sXHJcbiAgICAgIHR5cGVJZDogW251bGxdLFxyXG4gICAgICBkZXNjcmlwdGlvbjogW251bGxdLFxyXG4gICAgICBhbnN3ZXI6IFtudWxsXSxcclxuICAgICAgYW5zd2VyQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PEFuc3dlckNoaWxkT2ZRdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KFtdKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZkN0cmxzLmFuc3dlci52YWx1ZUNoYW5nZXMucGlwZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XHJcbiAgICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcclxuICAgICAgICBRdWVzdGlvbklkOiBmb3JtVmFsdWUuaWQsXHJcbiAgICAgICAgSXNWYWxpZDogdGhpcy5mQ3RybHMuYW5zd2VyLnZhbGlkLFxyXG4gICAgICAgIEFuc3dlcjogdmFsdWVcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShudWxsKTtcclxuXHJcbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnN1cnZleUFuc3dlcnNPYnNydlxyXG4gICAgLnBpcGUobWFwKHg9PiB4LmRlZmF1bHRBbnN3ZXJzLmZpbHRlcih4PT54LlF1ZXN0aW9uSWQgPT0gdGhpcy5mQ3RybHMuaWQudmFsdWUpKSlcclxuICAgIC5waXBlKGZpbHRlcih4PT54Lmxlbmd0aCAgPiAwKSkucGlwZShtYXAoeD0+IHguYXQoMCkpKVxyXG4gICAgLnN1YnNjcmliZShhbnN3ZXI9PntcclxuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGFuc3dlci5BbnN3ZXJJZCk7XHJcblxyXG4gICAgICBjb25zdCBncm91cEluZGV4ID0gdGhpcy5mQ3RybHMuYW5zd2VyQXJyYXkudmFsdWUuZmluZEluZGV4KHggPT4geC5pZCA9PSBhbnN3ZXIuQW5zd2VySWQpO1xyXG4gICAgICBpZihncm91cEluZGV4ID4gLTEpe1xyXG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXJBcnJheS5hdChncm91cEluZGV4KS5jb250cm9scy5pc1NlbGVjdGVkLnNldFZhbHVlKHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VBbnN3ZXIoaXRlbTogQW5zd2VyQ2hpbGRPZlF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZSkge1xyXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGl0ZW0uaWQpO1xyXG4gIH1cclxuXHJcbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XHJcbiAgICByZXR1cm4gZWxlbWVudCBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2F0dHIuaWRdPVwiJ3F1ZXN0aW9uXycrZkN0cmxzLmlkLnZhbHVlXCIgIFtuZ0NsYXNzXT1cInsnaW52YWxpZC1xdWVzdGlvbic6IGZDdHJscy5hbnN3ZXIuaW52YWxpZCAgLCAnZC1ub25lJzppc1Nob3cgIT0gdHJ1ZX1cIj5cclxuICAgIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIFwiPlxyXG4gICAgICAgIHt7ZkN0cmxzLnRpdGxlLnZhbHVlfX1cclxuICAgIDwvaDM+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmFkaW8tYnV0dG9uLXF1YXN0aW9uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1yYWRpbyBmb3JtLWNoZWNrLWlubGluZVwiIFxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZDdHJscy5hbnN3ZXJBcnJheS5jb250cm9scyA7bGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgKGNoYW5nZSk9XCJvbkNoYW5nZUFuc3dlcihpdGVtLnZhbHVlKVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ7e2VsZW1JZH19X19yYWRpby1idG4tb3B0aW9uXCIgaWQ9XCJ7e2VsZW1JZH19X19yYWRpby1idG5fe3tpfX1cIiBbY2hlY2tlZF09XCJpdGVtLnZhbHVlLmlzU2VsZWN0ZWQgPT0gdHJ1ZT8gdHJ1ZSA6IG51bGxcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cInt7ZWxlbUlkfX1fX3JhZGlvLWJ0bl97e2l9fVwiPnt7aXRlbS52YWx1ZS50aXRsZX19PC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19