survery-lib 0.1.9 → 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 (146) hide show
  1. package/assets/style.css +325 -0
  2. package/assets/style.css.map +1 -1
  3. package/ng-package.json +11 -0
  4. package/package.json +15 -27
  5. package/scss/style.scss +88 -0
  6. package/src/lib/components/question-boolean-template/question-boolean-template.component.html +13 -0
  7. package/src/lib/components/question-boolean-template/question-boolean-template.component.scss +0 -0
  8. package/src/lib/components/question-boolean-template/question-boolean-template.component.spec.ts +21 -0
  9. package/src/lib/components/question-boolean-template/question-boolean-template.component.ts +109 -0
  10. package/src/lib/components/question-check-box-template/question-check-box-template.component.html +13 -0
  11. package/src/lib/components/question-check-box-template/question-check-box-template.component.scss +0 -0
  12. package/src/lib/components/question-check-box-template/question-check-box-template.component.spec.ts +21 -0
  13. package/src/lib/components/question-check-box-template/question-check-box-template.component.ts +124 -0
  14. package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.html +10 -0
  15. package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.scss +3 -0
  16. package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.spec.ts +21 -0
  17. package/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.ts +100 -0
  18. package/src/lib/components/question-dropdown-template/question-dropdown-template.component.html +10 -0
  19. package/src/lib/components/question-dropdown-template/question-dropdown-template.component.scss +0 -0
  20. package/src/lib/components/question-dropdown-template/question-dropdown-template.component.spec.ts +21 -0
  21. package/src/lib/components/question-dropdown-template/question-dropdown-template.component.ts +87 -0
  22. package/src/lib/components/question-matrix-template/question-matrix-template.component.html +36 -0
  23. package/src/lib/components/question-matrix-template/question-matrix-template.component.scss +0 -0
  24. package/src/lib/components/question-matrix-template/question-matrix-template.component.spec.ts +21 -0
  25. package/src/lib/components/question-matrix-template/question-matrix-template.component.ts +110 -0
  26. package/src/lib/components/question-radio-button-template/question-radio-button-template.component.html +13 -0
  27. package/src/lib/components/question-radio-button-template/question-radio-button-template.component.scss +0 -0
  28. package/src/lib/components/question-radio-button-template/question-radio-button-template.component.spec.ts +21 -0
  29. package/src/lib/components/question-radio-button-template/question-radio-button-template.component.ts +111 -0
  30. package/src/lib/components/question-text-template/question-text-template.component.html +13 -0
  31. package/src/lib/components/question-text-template/question-text-template.component.scss +0 -0
  32. package/src/lib/components/question-text-template/question-text-template.component.spec.ts +21 -0
  33. package/src/lib/components/question-text-template/question-text-template.component.ts +105 -0
  34. package/src/lib/pipes/default-question-answer.pipe.spec.ts +8 -0
  35. package/src/lib/pipes/default-question-answer.pipe.ts +18 -0
  36. package/src/lib/pipes/default-question-answers.pipe.spec.ts +8 -0
  37. package/src/lib/pipes/default-question-answers.pipe.ts +17 -0
  38. package/src/lib/pipes/filter-question.pipe.spec.ts +8 -0
  39. package/src/lib/pipes/filter-question.pipe.ts +14 -0
  40. package/src/lib/services/survey-lib.service.spec.ts +16 -0
  41. package/src/lib/services/survey-lib.service.ts +31 -0
  42. package/src/lib/survery-lib.component.spec.ts +21 -0
  43. package/src/lib/survery-lib.component.ts +308 -0
  44. package/src/lib/survery-lib.module.ts +47 -0
  45. package/src/lib/survey-lib.component.html +67 -0
  46. package/src/lib/survey-lib.component.scss +4 -0
  47. package/{lib/usecases/base/use-case.d.ts → src/lib/usecases/base/use-case.ts} +9 -7
  48. package/src/lib/usecases/check-rule-exps.usecase.ts +188 -0
  49. package/{public-api.d.ts → src/public-api.ts} +5 -1
  50. package/src/shared/dtos/default-question-answers.dto.ts +10 -0
  51. package/{shared/dtos/rule-exp-answer.dto.d.ts → src/shared/dtos/rule-exp-answer.dto.ts} +5 -5
  52. package/{shared/dtos/rule-exp.dto.d.ts → src/shared/dtos/rule-exp.dto.ts} +14 -13
  53. package/{shared/dtos/rule-result-question.dto.d.ts → src/shared/dtos/rule-result-question.dto.ts} +5 -4
  54. package/{shared/dtos/survey-answer.dto.d.ts → src/shared/dtos/survey-answer.dto.ts} +16 -16
  55. package/{shared/dtos/survey-answers-subject.dto.d.ts → src/shared/dtos/survey-answers-subject.dto.ts} +6 -5
  56. package/{shared/dtos/survey-page.dto.d.ts → src/shared/dtos/survey-page.dto.ts} +10 -9
  57. package/{shared/dtos/survey-question-group.dto.d.ts → src/shared/dtos/survey-question-group.dto.ts} +9 -8
  58. package/{shared/dtos/survey-question.dto.d.ts → src/shared/dtos/survey-question.dto.ts} +19 -18
  59. package/{shared/dtos/survey-rule.dto.d.ts → src/shared/dtos/survey-rule.dto.ts} +11 -10
  60. package/{shared/dtos/survey-sub-question.dto.d.ts → src/shared/dtos/survey-sub-question.dto.ts} +9 -9
  61. package/{shared/dtos/survey.dto.d.ts → src/shared/dtos/survey.dto.ts} +17 -16
  62. package/{shared/enums/logic-action.enum.d.ts → src/shared/enums/logic-action.enum.ts} +7 -7
  63. package/src/shared/enums/logic-property.enum.ts +12 -0
  64. package/src/shared/enums/operator.enum.ts +4 -0
  65. package/{shared/enums/question-type.enum.d.ts → src/shared/enums/question-type.enum.ts} +9 -8
  66. package/src/shared/form-interfaces/question-boolean-template.form-interface.ts +17 -0
  67. package/src/shared/form-interfaces/question-check-box-template.form-interface.ts +18 -0
  68. package/src/shared/form-interfaces/question-dropdown-multi-template.form-interface.ts +17 -0
  69. package/src/shared/form-interfaces/question-dropdown-template.form-interface.ts +10 -0
  70. package/{shared/form-interfaces/question-matrix-template.form-interface.d.ts → src/shared/form-interfaces/question-matrix-template.form-interface.ts} +13 -11
  71. package/src/shared/form-interfaces/question-radio-button-template.form-interface.ts +17 -0
  72. package/src/shared/form-interfaces/question-text-template.form-interface.ts +11 -0
  73. package/src/shared/form-interfaces/survery-lib.form-interface.ts +27 -0
  74. package/src/shared/models/question-answer.model.ts +6 -0
  75. package/src/shared/models/survery-question-result.model.ts +8 -0
  76. package/tsconfig.lib.json +14 -0
  77. package/tsconfig.lib.prod.json +10 -0
  78. package/tsconfig.spec.json +14 -0
  79. package/esm2022/lib/components/question-boolean-template/question-boolean-template.component.mjs +0 -97
  80. package/esm2022/lib/components/question-check-box-template/question-check-box-template.component.mjs +0 -108
  81. package/esm2022/lib/components/question-dropdown-template/question-dropdown-template.component.mjs +0 -83
  82. package/esm2022/lib/components/question-matrix-template/question-matrix-template.component.mjs +0 -101
  83. package/esm2022/lib/components/question-radio-button-template/question-radio-button-template.component.mjs +0 -97
  84. package/esm2022/lib/components/question-text-template/question-text-template.component.mjs +0 -99
  85. package/esm2022/lib/pipes/default-question-answer.pipe.mjs +0 -19
  86. package/esm2022/lib/pipes/default-question-answers.pipe.mjs +0 -19
  87. package/esm2022/lib/pipes/filter-question.pipe.mjs +0 -16
  88. package/esm2022/lib/services/survey-lib.service.mjs +0 -30
  89. package/esm2022/lib/survery-lib.component.mjs +0 -270
  90. package/esm2022/lib/survery-lib.module.mjs +0 -59
  91. package/esm2022/lib/usecases/base/use-case.mjs +0 -2
  92. package/esm2022/lib/usecases/check-rule-exps.usecase.mjs +0 -154
  93. package/esm2022/public-api.mjs +0 -8
  94. package/esm2022/shared/dtos/default-question-answers.dto.mjs +0 -3
  95. package/esm2022/shared/dtos/rule-exp-answer.dto.mjs +0 -2
  96. package/esm2022/shared/dtos/rule-exp.dto.mjs +0 -2
  97. package/esm2022/shared/dtos/rule-result-question.dto.mjs +0 -2
  98. package/esm2022/shared/dtos/survey-answer.dto.mjs +0 -2
  99. package/esm2022/shared/dtos/survey-answers-subject.dto.mjs +0 -3
  100. package/esm2022/shared/dtos/survey-page.dto.mjs +0 -2
  101. package/esm2022/shared/dtos/survey-question-group.dto.mjs +0 -2
  102. package/esm2022/shared/dtos/survey-question.dto.mjs +0 -2
  103. package/esm2022/shared/dtos/survey-rule.dto.mjs +0 -2
  104. package/esm2022/shared/dtos/survey-sub-question.dto.mjs +0 -2
  105. package/esm2022/shared/dtos/survey.dto.mjs +0 -2
  106. package/esm2022/shared/enums/Logic-Property.enum.mjs +0 -14
  107. package/esm2022/shared/enums/logic-action.enum.mjs +0 -9
  108. package/esm2022/shared/enums/operator.enum.mjs +0 -6
  109. package/esm2022/shared/enums/question-type.enum.mjs +0 -10
  110. package/esm2022/shared/form-interfaces/question-boolean-template.form-interface.mjs +0 -2
  111. package/esm2022/shared/form-interfaces/question-check-box-template.form-interface.mjs +0 -3
  112. package/esm2022/shared/form-interfaces/question-dropdown-template.form-interface.mjs +0 -3
  113. package/esm2022/shared/form-interfaces/question-matrix-template.form-interface.mjs +0 -2
  114. package/esm2022/shared/form-interfaces/question-radio-button-template.form-interface.mjs +0 -3
  115. package/esm2022/shared/form-interfaces/question-text-template.form-interface.mjs +0 -2
  116. package/esm2022/shared/form-interfaces/survery-lib.form-interface.mjs +0 -2
  117. package/esm2022/shared/models/question-answer.model.mjs +0 -3
  118. package/esm2022/shared/models/survery-question-result.model.mjs +0 -3
  119. package/esm2022/survery-lib.mjs +0 -5
  120. package/fesm2022/survery-lib.mjs +0 -1114
  121. package/fesm2022/survery-lib.mjs.map +0 -1
  122. package/index.d.ts +0 -5
  123. package/lib/components/question-boolean-template/question-boolean-template.component.d.ts +0 -36
  124. package/lib/components/question-check-box-template/question-check-box-template.component.d.ts +0 -37
  125. package/lib/components/question-dropdown-template/question-dropdown-template.component.d.ts +0 -33
  126. package/lib/components/question-matrix-template/question-matrix-template.component.d.ts +0 -33
  127. package/lib/components/question-radio-button-template/question-radio-button-template.component.d.ts +0 -36
  128. package/lib/components/question-text-template/question-text-template.component.d.ts +0 -35
  129. package/lib/pipes/default-question-answer.pipe.d.ts +0 -8
  130. package/lib/pipes/default-question-answers.pipe.d.ts +0 -8
  131. package/lib/pipes/filter-question.pipe.d.ts +0 -9
  132. package/lib/services/survey-lib.service.d.ts +0 -14
  133. package/lib/survery-lib.component.d.ts +0 -45
  134. package/lib/survery-lib.module.d.ts +0 -22
  135. package/lib/usecases/check-rule-exps.usecase.d.ts +0 -21
  136. package/shared/dtos/default-question-answers.dto.d.ts +0 -9
  137. package/shared/enums/Logic-Property.enum.d.ts +0 -12
  138. package/shared/enums/operator.enum.d.ts +0 -4
  139. package/shared/form-interfaces/question-boolean-template.form-interface.d.ts +0 -15
  140. package/shared/form-interfaces/question-check-box-template.form-interface.d.ts +0 -15
  141. package/shared/form-interfaces/question-dropdown-template.form-interface.d.ts +0 -9
  142. package/shared/form-interfaces/question-radio-button-template.form-interface.d.ts +0 -15
  143. package/shared/form-interfaces/question-text-template.form-interface.d.ts +0 -10
  144. package/shared/form-interfaces/survery-lib.form-interface.d.ts +0 -24
  145. package/shared/models/question-answer.model.d.ts +0 -6
  146. 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,97 +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
- this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);
74
- });
75
- }
76
- onChangeAnswer(item) {
77
- this.fCtrls.answer.setValue(item.id);
78
- }
79
- convertToFormControl(element) {
80
- return element;
81
- }
82
- 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 }); }
83
- 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}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"isDisabled\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
84
- }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionBooleanTemplateComponent, decorators: [{
86
- type: Component,
87
- 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}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"isDisabled\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n" }]
88
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SurveyLibService }]; }, propDecorators: { emitter: [{
89
- type: Output
90
- }], isShow: [{
91
- type: Input
92
- }], isDisabled: [{
93
- type: Input
94
- }], setQuestion: [{
95
- type: Input
96
- }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHNUUsT0FBTyxFQUFFLFlBQVksRUFBd0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2RSxPQUFPLEVBQUUsRUFBRSxJQUFJLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFVM0MsTUFBTSxPQUFPLGdDQUFnQztJQUszQyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFPRCxJQUFhLFdBQVcsQ0FBQyxLQUF3QjtRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNwQixFQUFFLEVBQUUsS0FBSyxD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QkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVPLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbnN3ZXJDaGlsZE9mUXVlc3Rpb25Cb29sZWFuVGVtcGxhdGVGb3JtSW50ZXJmYWNlLCBRdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0BuZy1zdGFjay9mb3Jtcyc7XG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBTdXJ2ZXlBbnN3ZXJEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktYW5zd2VyLmR0byc7XG5pbXBvcnQgeyBEZWZhdWx0UXVlc3Rpb25BbnN3ZXJEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9kZWZhdWx0LXF1ZXN0aW9uLWFuc3dlcnMuZHRvJztcbmltcG9ydCB7IFN1cnZleUxpYlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZWxlbUlkID0gZ3VpZEdlbmVyYXRvcigpIGFzIHN0cmluZztcbiAgc3VydmV5UXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvO1xuICByRm9ybTogRm9ybUdyb3VwPFF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgQE91dHB1dCgpIGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXN0aW9uQW5zd2VyTW9kZWw+KCk7XG5cbiAgQElucHV0KCkgaXNTaG93OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBzZXRRdWVzdGlvbih2YWx1ZTogU3VydmV5UXVlc3Rpb25EdG8pIHtcbiAgICB0aGlzLnN1cnZleVF1ZXN0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIGlkOiB2YWx1ZS5xdWVzdGlvbklkLFxuICAgICAgbmFtZTogdmFsdWUucXVlc3Rpb25OYW1lLFxuICAgICAgdGl0bGU6IHZhbHVlLnF1ZXN0aW9uVGl0bGUsXG4gICAgICB0eXBlSWQ6IHZhbHVlLnF1ZXN0aW9uVHlwZUlkLFxuICAgICAgZGVzY3JpcHRpb246IHZhbHVlLnF1ZXN0aW9uRGVzY3JpcHRpb25cbiAgICB9KTtcblxuICAgIHZhbHVlLnN1cnZleUFuc3dlcnMuZm9yRWFjaChzdXJ2ZXJ5QW5zd2VyID0+IHtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlckFycmF5LnB1c2godGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8QW5zd2VyQ2hpbGRPZlF1ZXN0aW9uQm9vbGVhblRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xuICAgICAgICBpZDogW3N1cnZlcnlBbnN3ZXIuYW5zd2VySWRdLFxuICAgICAgICB0aXRsZTogW3N1cnZlcnlBbnN3ZXIuYW5zd2VyVGl0bGVdLFxuICAgICAgICBpc1NlbGVjdGVkOiBbZmFsc2VdXG4gICAgICB9KSlcbiAgICB9KVxuXG4gICAgaWYgKHZhbHVlLmlzUmVxdWlyZWQgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc1Nob3cgPSB2YWx1ZS5pc1Zpc2FibGU7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gdmFsdWUuaXNSZWFkT25seTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciAgLCBwcml2YXRlIF9zdXJ2ZXlMaWJTZXJ2aWNlOlN1cnZleUxpYlNlcnZpY2UpIHtcbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25Cb29sZWFuVGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogW251bGxdLFxuICAgICAgbmFtZTogW251bGxdLFxuICAgICAgdGl0bGU6IFtudWxsXSxcbiAgICAgIHR5cGVJZDogW251bGxdLFxuICAgICAgZGVzY3JpcHRpb246IFtudWxsXSxcbiAgICAgIGFuc3dlcjogW251bGxdLFxuICAgICAgYW5zd2VyQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PEFuc3dlckNoaWxkT2ZRdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KFtdKVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XG4gICAgICB0aGlzLmVtaXR0ZXIuZW1pdCh7XG4gICAgICAgIFF1ZXN0aW9uSWQ6IGZvcm1WYWx1ZS5pZCxcbiAgICAgICAgSXNWYWxpZDogdGhpcy5mQ3RybHMuYW5zd2VyLnZhbGlkLFxuICAgICAgICBBbnN3ZXI6IHZhbHVlXG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKG51bGwpO1xuXG4gICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zdXJ2ZXlBbnN3ZXJzT2JzcnZcbiAgICAucGlwZShtYXAoeD0+IHguZGVmYXVsdEFuc3dlcnMuZmlsdGVyKHg9PnguUXVlc3Rpb25JZCA9PSB0aGlzLmZDdHJscy5pZC52YWx1ZSkpKVxuICAgIC5waXBlKGZpbHRlcih4PT54Lmxlbmd0aCAgPiAwKSkucGlwZShtYXAoeD0+IHguYXQoMCkpKVxuICAgIC5zdWJzY3JpYmUoYW5zd2VyPT57XG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuc2V0VmFsdWUoYW5zd2VyLkFuc3dlcklkKTtcblxuICAgICAgY29uc3QgZ3JvdXBJbmRleCA9IHRoaXMuZkN0cmxzLmFuc3dlckFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHguaWQgPT0gYW5zd2VyLkFuc3dlcklkKTtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlckFycmF5LmF0KGdyb3VwSW5kZXgpLmNvbnRyb2xzLmlzU2VsZWN0ZWQuc2V0VmFsdWUodHJ1ZSk7XG4gICAgfSlcbiAgfVxuXG4gIG9uQ2hhbmdlQW5zd2VyKGl0ZW06IEFuc3dlckNoaWxkT2ZRdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZUZvcm1JbnRlcmZhY2UpIHtcbiAgICB0aGlzLmZDdHJscy5hbnN3ZXIuc2V0VmFsdWUoaXRlbS5pZCk7XG4gIH1cblxuICBjb252ZXJ0VG9Gb3JtQ29udHJvbChlbGVtZW50OiBhbnkpIHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBGb3JtQ29udHJvbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2F0dHIuaWRdPVwiJ3F1ZXN0aW9uXycrZkN0cmxzLmlkLnZhbHVlXCIgIFtuZ0NsYXNzXT1cInsnaW52YWxpZC1xdWVzdGlvbic6IGZDdHJscy5hbnN3ZXIuaW52YWxpZCAgLCAnZC1ub25lJzppc1Nob3cgIT0gdHJ1ZX1cIj5cbiAgICA8aDMgY2xhc3M9XCJxdWFzdGlvbi10aXRsZSBcIj5cbiAgICAgICAge3tmQ3RybHMudGl0bGUudmFsdWV9fVxuICAgIDwvaDM+XG4gICAgPGRpdiBjbGFzcz1cInJhZGlvLWJ1dHRvbi1xdWFzdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLXJhZGlvIGZvcm0tY2hlY2staW5saW5lXCIgXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZDdHJscy5hbnN3ZXJBcnJheS5jb250cm9scyA7bGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJyYWRpb1wiIChjaGFuZ2UpPVwib25DaGFuZ2VBbnN3ZXIoaXRlbS52YWx1ZSlcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInt7ZWxlbUlkfX1fX3JhZGlvLWJ0bi1vcHRpb25cIiBpZD1cInt7ZWxlbUlkfX1fX3JhZGlvLWJ0bl97e2l9fVwiIFtjaGVja2VkXT1cIml0ZW0udmFsdWUuaXNTZWxlY3RlZCA9PSB0cnVlPyB0cnVlIDogbnVsbFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cInt7ZWxlbUlkfX1fX3JhZGlvLWJ0bl97e2l9fVwiPnt7aXRlbS52YWx1ZS50aXRsZX19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==