survery-lib 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,24 +1,53 @@
1
- # SurveryLib
1
+ # SurveyWorkspace
2
2
 
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.1.0.
3
+ Survey Library for angular
4
4
 
5
- ## Code scaffolding
5
+ ## Versions
6
6
 
7
- Run `ng generate component component-name --project survery-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project survery-lib`.
8
- > Note: Don't forget to add `--project survery-lib` or else it will be added to the default project in your `angular.json` file.
7
+ | Angular | Survey Lib |
8
+ |------------------|:----------:|
9
+ | >=16.0.0 <17.0.0 | v16.x.x |
9
10
 
10
- ## Build
11
11
 
12
- Run `ng build survery-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
12
+ ## Getting started
13
+ ### Step 1: Install `survery-lib`:
13
14
 
14
- ## Publishing
15
+ #### NPM
16
+ ```shell
17
+ npm i survery-lib
18
+ ```
15
19
 
16
- After building your library with `ng build survery-lib`, go to the dist folder `cd dist/survery-lib` and run `npm publish`.
20
+ ### Step 2: Import the SurveryLibModule and angular NgStackFormsModule module:
21
+ ```js
22
+ import { NgStackFormsModule } from '@ng-stack/forms';
23
+ import { SurveryLibModule } from 'survery-lib/src/public-api';
24
+ @NgModule({
25
+ declarations: [AppComponent],
26
+ imports: [NgStackFormsModule ,SurveryLibModule.forRoot()],
27
+ bootstrap: [AppComponent]
28
+ })
29
+ export class AppModule {}
30
+ ```
17
31
 
18
- ## Running unit tests
32
+ ### Step 3: Include a theme:
33
+ ```scss
34
+ @import "~survery-lib/assets/style.css";
35
+ ```
19
36
 
20
- Run `ng test survery-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
37
+ ### Step 4: to load survey json:
21
38
 
22
- ## Further help
39
+ ```ts
23
40
 
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
41
+ import { SurveyLibService } from 'survery-lib';
42
+
43
+ this._SurveyLibService.setSurveyData(surveyJson);;
44
+
45
+ ```
46
+
47
+ ### Step 5: In template use `lib-survery-lib` component with your options
48
+
49
+ ```html
50
+
51
+ <lib-survery-lib #surveryLibrary (surveyResultEmit)="onFinishSurvey($event)"></lib-survery-lib>
52
+
53
+ ```
@@ -225,12 +225,12 @@ export class SurveryLibComponent {
225
225
  });
226
226
  }
227
227
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SurveryLibComponent, deps: [{ token: i1.SurveyLibService }, { token: i2.FormBuilder }, { token: i3.CheckRuleExpsUsecase }], target: i0.ɵɵFactoryTarget.Component }); }
228
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SurveryLibComponent, selector: "lib-survery-lib", outputs: { surveyResultEmit: "surveyResultEmit" }, ngImport: i0, template: "<div class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-boolean-template>\r\n\r\n <lib-question-text-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-dropdown-template>\r\n\r\n <lib-question-check-box-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswers($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-matrix-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination\">\r\n <nav aria-label=\"Page navigation example\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item previous-page-item \">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingBack()\"\r\n [ngClass]=\"{'disable__btn':fCtrls.currentPageIndex.value == 0}\">\u0627\u0644\u0633\u0627\u0628\u0642</a>\r\n </li>\r\n <li class=\"page-item active\" *ngFor=\"let item of surveyData?.surveyPages;let i = index\"\r\n [ngClass]=\"{'active': i == fCtrls.currentPageIndex.value }\">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingChange(i)\"\r\n [ngClass]=\"{'disable__btn':(fCtrls.currentPageIndex.value +1 ) < i }\">{{i + 1}}</a>\r\n </li>\r\n <li class=\"page-item next-page-item\">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingNext()\"\r\n [ngClass]=\"{'disable__btn':fCtrls.currentPageIndex.value == (surveyData.surveyPages.length - 1)}\">\u0627\u0644\u062A\u0627\u0644\u064A</a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: ["isShow", "isTextArea", "setQuestion", "isDisabled"], outputs: ["emitter"] }, { kind: "component", type: i6.QuestionRadioButtonTemplateComponent, selector: "lib-question-radio-button-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i7.QuestionCheckBoxTemplateComponent, selector: "lib-question-check-box-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i8.QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i9.QuestionMatrixTemplateComponent, selector: "lib-question-matrix-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i10.QuestionBooleanTemplateComponent, selector: "lib-question-boolean-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "pipe", type: i11.FilterQuestionPipe, name: "filterQuestion" }] }); }
228
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SurveryLibComponent, selector: "lib-survery-lib", outputs: { surveyResultEmit: "surveyResultEmit" }, ngImport: i0, template: "<div class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-boolean-template>\r\n\r\n <lib-question-text-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-dropdown-template>\r\n\r\n <lib-question-check-box-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswers($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-matrix-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\" >\r\n <span>{{fCtrls.currentPageIndex.value + 1}}</span>\r\n <span class=\"ms-2 me-2\">of</span>\r\n <span>{{surveyData.surveyPages.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: ["isShow", "isTextArea", "setQuestion", "isDisabled"], outputs: ["emitter"] }, { kind: "component", type: i6.QuestionRadioButtonTemplateComponent, selector: "lib-question-radio-button-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i7.QuestionCheckBoxTemplateComponent, selector: "lib-question-check-box-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i8.QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i9.QuestionMatrixTemplateComponent, selector: "lib-question-matrix-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i10.QuestionBooleanTemplateComponent, selector: "lib-question-boolean-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "pipe", type: i11.FilterQuestionPipe, name: "filterQuestion" }] }); }
229
229
  }
230
230
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SurveryLibComponent, decorators: [{
231
231
  type: Component,
232
- args: [{ selector: 'lib-survery-lib', template: "<div class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-boolean-template>\r\n\r\n <lib-question-text-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-dropdown-template>\r\n\r\n <lib-question-check-box-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswers($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-matrix-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination\">\r\n <nav aria-label=\"Page navigation example\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item previous-page-item \">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingBack()\"\r\n [ngClass]=\"{'disable__btn':fCtrls.currentPageIndex.value == 0}\">\u0627\u0644\u0633\u0627\u0628\u0642</a>\r\n </li>\r\n <li class=\"page-item active\" *ngFor=\"let item of surveyData?.surveyPages;let i = index\"\r\n [ngClass]=\"{'active': i == fCtrls.currentPageIndex.value }\">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingChange(i)\"\r\n [ngClass]=\"{'disable__btn':(fCtrls.currentPageIndex.value +1 ) < i }\">{{i + 1}}</a>\r\n </li>\r\n <li class=\"page-item next-page-item\">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingNext()\"\r\n [ngClass]=\"{'disable__btn':fCtrls.currentPageIndex.value == (surveyData.surveyPages.length - 1)}\">\u0627\u0644\u062A\u0627\u0644\u064A</a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}\n"] }]
232
+ args: [{ selector: 'lib-survery-lib', template: "<div class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-boolean-template>\r\n\r\n <lib-question-text-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-dropdown-template>\r\n\r\n <lib-question-check-box-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswers($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-matrix-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\" >\r\n <span>{{fCtrls.currentPageIndex.value + 1}}</span>\r\n <span class=\"ms-2 me-2\">of</span>\r\n <span>{{surveyData.surveyPages.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}\n"] }]
233
233
  }], ctorParameters: function () { return [{ type: i1.SurveyLibService }, { type: i2.FormBuilder }, { type: i3.CheckRuleExpsUsecase }]; }, propDecorators: { surveyResultEmit: [{
234
234
  type: Output
235
235
  }] } });
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmVyeS1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zdXJ2ZXJ5LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3N1cnZleS1saWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBT3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVVwRSxNQUFNLE9BQU8sbUJBQW1CO0lBSzlCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUlELFlBQW9CLGlCQUFtQyxFQUMzQyxZQUF5QixFQUFVLHFCQUEyQztRQUR0RSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQzNDLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQUhoRixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUt0RSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUEw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LE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN4RCxhQUFhLENBQUMsVUFBVSxDQUFDOzRCQUN2QixNQUFNLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxjQUFjOzRCQUMxQyxVQUFVLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxrQkFBa0I7eUJBQ25ELENBQUMsQ0FBQTtvQkFDSixDQUFDLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXhPVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwwR0N0QmhDLG00SkEyRU07OzJGRHJETyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCO29LQXFCakIsZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdXJ2ZXlMaWJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3VydmV5RHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3Mvc3VydmV5LmR0byc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQG5nLXN0YWNrL2Zvcm1zJztcbmltcG9ydCB7IFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlLCBSdWxlUXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2UsIFN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9zdXJ2ZXJ5LWxpYi5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvZ2ljUHJvcGVydHlFbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL0xvZ2ljLVByb3BlcnR5LmVudW0nO1xuaW1wb3J0IHsgUnVsZUV4cER0byB9IGZyb20gJy4uL3NoYXJlZC9kdG9zL3J1bGUtZXhwLmR0byc7XG5pbXBvcnQgeyBPcGVyYXRvckVudW0gfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvb3BlcmF0b3IuZW51bSc7XG5pbXBvcnQgeyBMb2dpY0FjdGlvbkVudW0gfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvbG9naWMtYWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgQ2hlY2tSdWxlRXhwc1VzZWNhc2UgfSBmcm9tICcuL3VzZWNhc2VzL2NoZWNrLXJ1bGUtZXhwcy51c2VjYXNlJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy9zdXJ2ZXJ5LXF1ZXN0aW9uLXJlc3VsdC5tb2RlbCc7XG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdXJ2ZXJ5LWxpYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXktbGliLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3VydmV5LWxpYi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN1cnZlcnlMaWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHN1cnZleURhdGE6IFN1cnZleUR0bztcbiAgckZvcm06IEZvcm1Hcm91cDxTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgZ2V0IGlzTGFzdFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUgPT0gKHRoaXMuc3VydmV5RGF0YT8uc3VydmV5UGFnZXMubGVuZ3RoIC0gMSk7XG4gIH1cblxuICBAT3V0cHV0KCkgc3VydmV5UmVzdWx0RW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VydmV5UXVlc3Rpb25SZXN1bHRbXT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdXJ2ZXlMaWJTZXJ2aWNlOiBTdXJ2ZXlMaWJTZXJ2aWNlXG4gICAgLCBwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX2NoZWNrUnVsZUV4cHNVc2VjYXNlOiBDaGVja1J1bGVFeHBzVXNlY2FzZSkge1xuXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICBjdXJyZW50UGFnZUluZGV4OiBbMF0sXG4gICAgICBxdWVzdGlvbkFycmF5OiB0aGlzLl9mb3JtQnVpbGRlci5hcnJheTxRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oW10pLFxuICAgICAgcnVsZVF1ZXN0aW9uQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PFJ1bGVRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oW10pXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnN1cnZleURhdGFPYnNydi5zdWJzY3JpYmUoc3VydmV5ID0+IHtcbiAgICAgIHRoaXMuc3VydmV5RGF0YSA9IHN1cnZleTtcbiAgICAgIGlmIChzdXJ2ZXkgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoc3VydmV5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkuY2xlYXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9uUGFnZ2luZ05leHQoKSB7XG4gICAgdmFyIGlzSGF2ZUludmFsaWRSZWNvcmRzID0gdGhpcy5oYXZlSW5WYWxpZGF0ZVF1ZXN0aW9ucygpO1xuICAgIGlmIChpc0hhdmVJbnZhbGlkUmVjb3JkcyA9PSBmYWxzZSkge1xuXG4gICAgICB2YXIgY3VycmVudFBhZ2VJbmRleCA9IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWU7XG5cbiAgICAgIGlmIChjdXJyZW50UGFnZUluZGV4IDwgKHRoaXMuc3VydmV5RGF0YS5zdXJ2ZXlQYWdlcy5sZW5ndGggLSAxKSkge1xuICAgICAgICBjdXJyZW50UGFnZUluZGV4ID0gTnVtYmVyKGN1cnJlbnRQYWdlSW5kZXgpICsgMTtcbiAgICAgICAgdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC5zZXRWYWx1ZShjdXJyZW50UGFnZUluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBxdWVzdGlvbkFyciA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUuZmlsdGVyKHggPT4geC5pc01hdHJpeEdyb3VwICE9IHRydWUpLm1hcCh4ID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgU3VydmV5UGFnZUluZGV4OiB4LnN1cnZleVBhZ2VJbmRleCxcbiAgICAgICAgICAgIFF1ZXN0aW9uSWQ6IHgucXVlc3Rpb25JZCxcbiAgICAgICAgICAgIEFuc3dlcklkOiB4LmFuc3dlcklkLFxuICAgICAgICAgICAgQW5zd2VyVGV4dDogeC5hbnN3ZXJUZXh0LFxuICAgICAgICAgICAgQW5zd2VySWRBcnI6IHguYW5zd2VySWRBcnJcbiAgICAgICAgICB9IGFzIFN1cnZleVF1ZXN0aW9uUmVzdWx0XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1cnZleVJlc3VsdEVtaXQuZW1pdChxdWVzdGlvbkFycik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25QYWdnaW5nQ2hhbmdlKGluZGV4KSB7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICBpZiAoaW5kZXggPCBmb3JtVmFsdWUuY3VycmVudFBhZ2VJbmRleCkge1xuICAgICAgdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC5zZXRWYWx1ZShpbmRleCk7XG4gICAgfSBlbHNlIGlmIChpbmRleCA9PSAoZm9ybVZhbHVlLmN1cnJlbnRQYWdlSW5kZXggKyAxKSkge1xuICAgICAgdGhpcy5vblBhZ2dpbmdOZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgb25QYWdnaW5nQmFjaygpIHtcbiAgICB2YXIgY3VycmVudFBhZ2VJbmRleCA9IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWU7XG4gICAgaWYgKGN1cnJlbnRQYWdlSW5kZXggPiAwKSB7XG4gICAgICBjdXJyZW50UGFnZUluZGV4ID0gTnVtYmVyKGN1cnJlbnRQYWdlSW5kZXgpIC0gMTtcbiAgICAgIHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXguc2V0VmFsdWUoY3VycmVudFBhZ2VJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgb25VcGRhdGVBbnN3ZXJzKG1vZGVsOiBRdWVzdGlvbkFuc3dlck1vZGVsW10pIHtcbiAgICBtb2RlbC5mb3JFYWNoKGVsZW0gPT4ge1xuICAgICAgdGhpcy5vblVwZGF0ZUFuc3dlcihlbGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uVXBkYXRlQW5zd2VyKG1vZGVsOiBRdWVzdGlvbkFuc3dlck1vZGVsKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHgucXVlc3Rpb25JZCA9PSBtb2RlbC5RdWVzdGlvbklkKTtcbiAgICB2YXIgcXVlc3Rpb25Hcm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkuY29udHJvbHNbaW5kZXhdO1xuICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuaXNWYWxpZC5zZXRWYWx1ZShtb2RlbC5Jc1ZhbGlkKTtcblxuICAgIGlmIChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uVHlwZSA9PSB0aGlzLnF1ZXN0aW9uVHlwZUVudW0uVGV4dElucHV0KSB7XG4gICAgICBxdWVzdGlvbkdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICBhbnN3ZXJJZDogbW9kZWwuU3VydmV5QW5zd2VySWQsXG4gICAgICAgIGFuc3dlclRleHQ6IG1vZGVsLkFuc3dlclxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uVHlwZSA9PSB0aGlzLnF1ZXN0aW9uVHlwZUVudW0uQ2hlY2tCb3gpIHtcbiAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWRBcnIuc2V0VmFsdWUobW9kZWwuQW5zd2VyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXJJZC5zZXRWYWx1ZShtb2RlbC5BbnN3ZXIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZDdHJscy5ydWxlUXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gbW9kZWwuUXVlc3Rpb25JZCkgPiAtMSkge1xuICAgICAgdGhpcy5jaGVja1J1bGVzKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRRdWVzdGlvbnMoc3VydmV5OiBTdXJ2ZXlEdG8pIHtcbiAgICBzdXJ2ZXkuc3VydmV5UGFnZXMuZm9yRWFjaCgocGFnZSwgcGFnZUluZGV4KSA9PiB7XG4gICAgICBwYWdlLnN1cnZleVF1ZXN0aW9uR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuXG4gICAgICAgIGdyb3VwLnN1cnZleVF1ZXN0aW9ucy5mb3JFYWNoKHF1ZXN0aW9uID0+IHtcblxuICAgICAgICAgIGlmIChxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCAhPSA2KSB7XG4gICAgICAgICAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnB1c2godGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgICAgICAgc3VydmV5UGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IFtxdWVzdGlvbi5xdWVzdGlvbklkXSxcbiAgICAgICAgICAgICAgcXVlc3Rpb25UeXBlOiBbcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWRdLFxuICAgICAgICAgICAgICBpc01hdHJpeEdyb3VwOiBbZmFsc2VdLFxuICAgICAgICAgICAgICBhbnN3ZXJJZDogW251bGxdLFxuICAgICAgICAgICAgICBhbnN3ZXJJZEFycjogW251bGxdLFxuICAgICAgICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgICAgICAgIGlzUmVxdWlyZWQ6IFtxdWVzdGlvbi5pc1JlcXVpcmVkXSxcbiAgICAgICAgICAgICAgaXNWYWxpZDogW251bGxdLFxuICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBbcXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgICAgICAgIGlzU2hvdzogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogW3F1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3F1ZXN0aW9uLmlzVmlzYWJsZV1cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICAgICAgICAgIHN1cnZleVBhZ2VJbmRleDogcGFnZUluZGV4LFxuICAgICAgICAgICAgICBxdWVzdGlvbklkOiBbcXVlc3Rpb24ucXVlc3Rpb25JZF0sXG4gICAgICAgICAgICAgIHF1ZXN0aW9uVHlwZTogW3F1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkXSxcbiAgICAgICAgICAgICAgaXNNYXRyaXhHcm91cDogW3RydWVdLFxuICAgICAgICAgICAgICBhbnN3ZXJJZDogW251bGxdLFxuICAgICAgICAgICAgICBhbnN3ZXJJZEFycjogW251bGxdLFxuICAgICAgICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgICAgICAgIGlzUmVxdWlyZWQ6IFtxdWVzdGlvbi5pc1JlcXVpcmVkXSxcbiAgICAgICAgICAgICAgaXNWYWxpZDogW251bGxdLFxuICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBbcXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgICAgICAgIGlzU2hvdzogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogW3F1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICAgIHF1ZXN0aW9uLnN1cnZleVN1YlF1ZXN0aW9ucy5mb3JFYWNoKHN1YlF1ZXN0aW9uID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICAgICAgICAgICAgc3VydmV5UGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogW3N1YlF1ZXN0aW9uLnF1ZXN0aW9uSWRdLFxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uVHlwZTogW3N1YlF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkXSxcbiAgICAgICAgICAgICAgICBpc01hdHJpeEdyb3VwOiBbZmFsc2VdLFxuICAgICAgICAgICAgICAgIGFuc3dlcklkOiBbbnVsbF0sXG4gICAgICAgICAgICAgICAgYW5zd2VySWRBcnI6IFtudWxsXSxcbiAgICAgICAgICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgICAgICAgICAgaXNSZXF1aXJlZDogW3F1ZXN0aW9uLmlzUmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgIGlzVmFsaWQ6IFtudWxsXSxcbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBbc3ViUXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgICAgICAgICAgaXNTaG93OiBbc3ViUXVlc3Rpb24uaXNWaXNhYmxlXSxcbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkX2RlZmF1bHQ6IFtzdWJRdWVzdGlvbi5pc1JlYWRPbmx5XSxcbiAgICAgICAgICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3N1YlF1ZXN0aW9uLmlzVmlzYWJsZV1cbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHN1cnZleS5zdXJ2ZXlSdWxlcy5mb3JFYWNoKHJ1bGUgPT4ge1xuICAgICAgcnVsZS5ydWxlRXhwcy5mb3JFYWNoKHJ1bGVFeHAgPT4ge1xuICAgICAgICB0aGlzLmZDdHJscy5ydWxlUXVlc3Rpb25BcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFJ1bGVRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oe1xuICAgICAgICAgIHF1ZXN0aW9uSWQ6IHJ1bGVFeHAucXVlc3Rpb25JZFxuICAgICAgICB9KSk7XG4gICAgICB9KTtcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBoYXZlSW5WYWxpZGF0ZVF1ZXN0aW9ucygpIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZUluZGV4ID0gdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZTtcbiAgICB2YXIgaW52YWxpZFJlY29yZHMgPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmZpbHRlcih4ID0+IHguc3VydmV5UGFnZUluZGV4ID09IGN1cnJlbnRQYWdlSW5kZXhcbiAgICAgICAmJiB4LmlzUmVxdWlyZWQgPT0gdHJ1ZSAmJiB4LmlzVmFsaWQgIT0gdHJ1ZVxuICAgICAgJiYgeC5pc0Rpc2FibGVkID09IGZhbHNlICYmIHguaXNTaG93ID09IHRydWUgJiYgeC5pc01hdHJpeEdyb3VwICE9IHRydWUpO1xuICAgIGlmIChpbnZhbGlkUmVjb3Jkcy5sZW5ndGggPiAwKSB7XG4gICAgICAkKGAjc3VydmV5LXBhZ2VfJHtjdXJyZW50UGFnZUluZGV4fWApLmFkZENsYXNzKCdzdXJ2ZXktcGFnZV9zdWJtaXR0ZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW52YWxpZFJlY29yZHMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tSdWxlcygpIHtcblxuICAgIHRoaXMuc3VydmV5RGF0YS5zdXJ2ZXlSdWxlcy5mb3JFYWNoKHJ1bGUgPT4ge1xuICAgICAgdGhpcy5fY2hlY2tSdWxlRXhwc1VzZWNhc2UuZXhlY3V0ZSh7XG4gICAgICAgIHJ1bGVFeHBzOiBydWxlLnJ1bGVFeHBzLFxuICAgICAgICBxdWVzdGlvbnM6IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWVcbiAgICAgIH0pLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuXG4gICAgICAgIHZhciBpc1Bhc3NlZCA9IHJlc3VsdC5leHByZXN0aW9uUmVzdWx0QXJyLmZpbHRlcih4ID0+IHggPT0gZmFsc2UpLmxlbmd0aCA9PSAwO1xuICAgICAgICBpZiAoaXNQYXNzZWQpIHtcblxuICAgICAgICAgIHJ1bGUucnVsZVJlc3VsdFF1ZXN0aW9ucy5mb3JFYWNoKHJlc3VsdFF1ZXN0aW9uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCk7XG4gICAgICAgICAgICB2YXIgcXVlc3Rpb25Hcm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkuYXQoaW5kZXgpO1xuICAgICAgICAgICAgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uU2hvdykge1xuICAgICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzU2hvdy5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5IaWRlKSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuaXNTaG93LnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5FbmFibGUpIHtcbiAgICAgICAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5pc0Rpc2FibGVkLnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5EaXNhYmxlKSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuaXNEaXNhYmxlZC5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TZXRBbnN3ZXIpIHtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcnVsZS5ydWxlUmVzdWx0UXVlc3Rpb25zLmZvckVhY2gocmVzdWx0UXVlc3Rpb24gPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHgucXVlc3Rpb25JZCA9PSByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkKTtcbiAgICAgICAgICAgIHZhciBxdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5hdChpbmRleCk7XG4gICAgICAgICAgICBxdWVzdGlvbkdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICBpc1Nob3c6IHF1ZXN0aW9uR3JvdXAudmFsdWUuaXNTaG93X2RlZmF1bHQsXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IHF1ZXN0aW9uR3JvdXAudmFsdWUuaXNEaXNhYmxlZF9kZWZhdWx0XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIH0pO1xuICB9XG5cblxuXG59XG4iLCI8ZGl2IGNsYXNzPVwic3VydmF5LWNhcmRcIj5cclxuICA8ZGl2ICpuZ0Zvcj1cImxldCBzdXJ2ZXlQYWdlIG9mIHN1cnZleURhdGE/LnN1cnZleVBhZ2VzOyBsZXQgc3VydmV5UGFnZUluZGV4ID0gaW5kZXhcIlxyXG4gICAgW2F0dHIuaWRdPVwiJ3N1cnZleS1wYWdlXycrc3VydmV5UGFnZUluZGV4XCIgW25nQ2xhc3NdPVwieydkLW5vbmUnOiBzdXJ2ZXlQYWdlSW5kZXggIT0gZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWV9XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1cnZleVBhZ2Uuc3VydmV5UXVlc3Rpb25Hcm91cHNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkLWJvZHlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2YXktZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZ3JvdXAtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIHt7aXRlbS5xdWVzdGlvbkdyb3VwTmFtZX19XHJcbiAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdyb3VwLXN1Yi10aXRsZSBcIj5cclxuICAgICAgICAgICAgICAgIHt7aXRlbS5xdWVzdGlvbkdyb3VwRGVzY3JpcHRpb259fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIGl0ZW0uc3VydmV5UXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLkJvb2xlYW5cIlxyXG4gICAgICAgICAgICAgICAgW2lzU2hvd109XCIgKHF1ZXN0aW9ufGZpbHRlclF1ZXN0aW9uIDogZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUpLmlzU2hvd1wiXHJcbiAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCIocXVlc3Rpb258ZmlsdGVyUXVlc3Rpb24gOiBmQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZSkuaXNEaXNhYmxlZFwiPjwvbGliLXF1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIiAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5UZXh0SW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgW2lzU2hvd109XCIgKHF1ZXN0aW9ufGZpbHRlclF1ZXN0aW9uIDogZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUpLmlzU2hvd1wiXHJcbiAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCIocXVlc3Rpb258ZmlsdGVyUXVlc3Rpb24gOiBmQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZSkuaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBbaXNUZXh0QXJlYV09XCJxdWVzdGlvbi5pc0FkdmFuY2VUZXh0QXJlYVwiPjwvbGliLXF1ZXN0aW9uLXRleHQtdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLlJhZGlvQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFtpc1Nob3ddPVwiIChxdWVzdGlvbnxmaWx0ZXJRdWVzdGlvbiA6IGZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlKS5pc1Nob3dcIlxyXG4gICAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiKHF1ZXN0aW9ufGZpbHRlclF1ZXN0aW9uIDogZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUpLmlzRGlzYWJsZWRcIj48L2xpYi1xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uRHJvcERvd25cIlxyXG4gICAgICAgICAgICAgICAgW2lzU2hvd109XCIgKHF1ZXN0aW9ufGZpbHRlclF1ZXN0aW9uIDogZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUpLmlzU2hvd1wiXHJcbiAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCIocXVlc3Rpb258ZmlsdGVyUXVlc3Rpb24gOiBmQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZSkuaXNEaXNhYmxlZFwiPjwvbGliLXF1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIiAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5DaGVja0JveFwiXHJcbiAgICAgICAgICAgICAgICBbaXNTaG93XT1cIiAocXVlc3Rpb258ZmlsdGVyUXVlc3Rpb24gOiBmQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZSkuaXNTaG93XCJcclxuICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cIihxdWVzdGlvbnxmaWx0ZXJRdWVzdGlvbiA6IGZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlKS5pc0Rpc2FibGVkXCI+PC9saWItcXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIiAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uTWF0cml4XCJcclxuICAgICAgICAgICAgICAgIFtpc1Nob3ddPVwiIChxdWVzdGlvbnxmaWx0ZXJRdWVzdGlvbiA6IGZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlKS5pc1Nob3dcIlxyXG4gICAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiKHF1ZXN0aW9ufGZpbHRlclF1ZXN0aW9uIDogZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUpLmlzRGlzYWJsZWRcIj48L2xpYi1xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkLWZvb3RyXCIgKm5nSWY9XCJzdXJ2ZXlEYXRhICE9IG51bGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cIiBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3VydmF5LXBhZ2luYXRpb25cIj5cclxuICAgICAgICA8bmF2IGFyaWEtbGFiZWw9XCJQYWdlIG5hdmlnYXRpb24gZXhhbXBsZVwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzPVwicGFnaW5hdGlvblwiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW0gcHJldmlvdXMtcGFnZS1pdGVtIFwiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJvblBhZ2dpbmdCYWNrKClcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlX19idG4nOmZDdHJscy5jdXJyZW50UGFnZUluZGV4LnZhbHVlID09IDB9XCI+2KfZhNiz2KfYqNmCPC9hPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW0gYWN0aXZlXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3VydmV5RGF0YT8uc3VydmV5UGFnZXM7bGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpID09IGZDdHJscy5jdXJyZW50UGFnZUluZGV4LnZhbHVlIH1cIj5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAgKGNsaWNrKT1cIm9uUGFnZ2luZ0NoYW5nZShpKVwiXHJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZV9fYnRuJzooZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUgKzEgKSA8IGkgfVwiPnt7aSArIDF9fTwvYT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtIG5leHQtcGFnZS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cIm9uUGFnZ2luZ05leHQoKVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVfX2J0bic6ZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUgPT0gKHN1cnZleURhdGEuc3VydmV5UGFnZXMubGVuZ3RoIC0gMSl9XCI+2KfZhNiq2KfZhNmKPC9hPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L25hdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmVyeS1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zdXJ2ZXJ5LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3N1cnZleS1saWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBT3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVVwRSxNQUFNLE9BQU8sbUJBQW1CO0lBSzlCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUlELFlBQW9CLGlCQUFtQyxFQUMzQyxZQUF5QixFQUFVLHFCQUEyQztRQUR0RSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQzNDLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQUhoRixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUt0RSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUEw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LE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN4RCxhQUFhLENBQUMsVUFBVSxDQUFDOzRCQUN2QixNQUFNLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxjQUFjOzRCQUMxQyxVQUFVLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxrQkFBa0I7eUJBQ25ELENBQUMsQ0FBQTtvQkFDSixDQUFDLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXhPVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwwR0N0QmhDLHc1SEE2RE07OzJGRHZDTyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCO29LQXFCakIsZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdXJ2ZXlMaWJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3VydmV5RHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3Mvc3VydmV5LmR0byc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQG5nLXN0YWNrL2Zvcm1zJztcbmltcG9ydCB7IFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlLCBSdWxlUXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2UsIFN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9zdXJ2ZXJ5LWxpYi5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvZ2ljUHJvcGVydHlFbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL0xvZ2ljLVByb3BlcnR5LmVudW0nO1xuaW1wb3J0IHsgUnVsZUV4cER0byB9IGZyb20gJy4uL3NoYXJlZC9kdG9zL3J1bGUtZXhwLmR0byc7XG5pbXBvcnQgeyBPcGVyYXRvckVudW0gfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvb3BlcmF0b3IuZW51bSc7XG5pbXBvcnQgeyBMb2dpY0FjdGlvbkVudW0gfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvbG9naWMtYWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgQ2hlY2tSdWxlRXhwc1VzZWNhc2UgfSBmcm9tICcuL3VzZWNhc2VzL2NoZWNrLXJ1bGUtZXhwcy51c2VjYXNlJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy9zdXJ2ZXJ5LXF1ZXN0aW9uLXJlc3VsdC5tb2RlbCc7XG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdXJ2ZXJ5LWxpYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXktbGliLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3VydmV5LWxpYi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN1cnZlcnlMaWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHN1cnZleURhdGE6IFN1cnZleUR0bztcbiAgckZvcm06IEZvcm1Hcm91cDxTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgZ2V0IGlzTGFzdFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUgPT0gKHRoaXMuc3VydmV5RGF0YT8uc3VydmV5UGFnZXMubGVuZ3RoIC0gMSk7XG4gIH1cblxuICBAT3V0cHV0KCkgc3VydmV5UmVzdWx0RW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VydmV5UXVlc3Rpb25SZXN1bHRbXT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdXJ2ZXlMaWJTZXJ2aWNlOiBTdXJ2ZXlMaWJTZXJ2aWNlXG4gICAgLCBwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX2NoZWNrUnVsZUV4cHNVc2VjYXNlOiBDaGVja1J1bGVFeHBzVXNlY2FzZSkge1xuXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICBjdXJyZW50UGFnZUluZGV4OiBbMF0sXG4gICAgICBxdWVzdGlvbkFycmF5OiB0aGlzLl9mb3JtQnVpbGRlci5hcnJheTxRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oW10pLFxuICAgICAgcnVsZVF1ZXN0aW9uQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PFJ1bGVRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oW10pXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnN1cnZleURhdGFPYnNydi5zdWJzY3JpYmUoc3VydmV5ID0+IHtcbiAgICAgIHRoaXMuc3VydmV5RGF0YSA9IHN1cnZleTtcbiAgICAgIGlmIChzdXJ2ZXkgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoc3VydmV5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkuY2xlYXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9uUGFnZ2luZ05leHQoKSB7XG4gICAgdmFyIGlzSGF2ZUludmFsaWRSZWNvcmRzID0gdGhpcy5oYXZlSW5WYWxpZGF0ZVF1ZXN0aW9ucygpO1xuICAgIGlmIChpc0hhdmVJbnZhbGlkUmVjb3JkcyA9PSBmYWxzZSkge1xuXG4gICAgICB2YXIgY3VycmVudFBhZ2VJbmRleCA9IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWU7XG5cbiAgICAgIGlmIChjdXJyZW50UGFnZUluZGV4IDwgKHRoaXMuc3VydmV5RGF0YS5zdXJ2ZXlQYWdlcy5sZW5ndGggLSAxKSkge1xuICAgICAgICBjdXJyZW50UGFnZUluZGV4ID0gTnVtYmVyKGN1cnJlbnRQYWdlSW5kZXgpICsgMTtcbiAgICAgICAgdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC5zZXRWYWx1ZShjdXJyZW50UGFnZUluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBxdWVzdGlvbkFyciA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUuZmlsdGVyKHggPT4geC5pc01hdHJpeEdyb3VwICE9IHRydWUpLm1hcCh4ID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgU3VydmV5UGFnZUluZGV4OiB4LnN1cnZleVBhZ2VJbmRleCxcbiAgICAgICAgICAgIFF1ZXN0aW9uSWQ6IHgucXVlc3Rpb25JZCxcbiAgICAgICAgICAgIEFuc3dlcklkOiB4LmFuc3dlcklkLFxuICAgICAgICAgICAgQW5zd2VyVGV4dDogeC5hbnN3ZXJUZXh0LFxuICAgICAgICAgICAgQW5zd2VySWRBcnI6IHguYW5zd2VySWRBcnJcbiAgICAgICAgICB9IGFzIFN1cnZleVF1ZXN0aW9uUmVzdWx0XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1cnZleVJlc3VsdEVtaXQuZW1pdChxdWVzdGlvbkFycik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25QYWdnaW5nQ2hhbmdlKGluZGV4KSB7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICBpZiAoaW5kZXggPCBmb3JtVmFsdWUuY3VycmVudFBhZ2VJbmRleCkge1xuICAgICAgdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC5zZXRWYWx1ZShpbmRleCk7XG4gICAgfSBlbHNlIGlmIChpbmRleCA9PSAoZm9ybVZhbHVlLmN1cnJlbnRQYWdlSW5kZXggKyAxKSkge1xuICAgICAgdGhpcy5vblBhZ2dpbmdOZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgb25QYWdnaW5nQmFjaygpIHtcbiAgICB2YXIgY3VycmVudFBhZ2VJbmRleCA9IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWU7XG4gICAgaWYgKGN1cnJlbnRQYWdlSW5kZXggPiAwKSB7XG4gICAgICBjdXJyZW50UGFnZUluZGV4ID0gTnVtYmVyKGN1cnJlbnRQYWdlSW5kZXgpIC0gMTtcbiAgICAgIHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXguc2V0VmFsdWUoY3VycmVudFBhZ2VJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgb25VcGRhdGVBbnN3ZXJzKG1vZGVsOiBRdWVzdGlvbkFuc3dlck1vZGVsW10pIHtcbiAgICBtb2RlbC5mb3JFYWNoKGVsZW0gPT4ge1xuICAgICAgdGhpcy5vblVwZGF0ZUFuc3dlcihlbGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uVXBkYXRlQW5zd2VyKG1vZGVsOiBRdWVzdGlvbkFuc3dlck1vZGVsKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHgucXVlc3Rpb25JZCA9PSBtb2RlbC5RdWVzdGlvbklkKTtcbiAgICB2YXIgcXVlc3Rpb25Hcm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkuY29udHJvbHNbaW5kZXhdO1xuICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuaXNWYWxpZC5zZXRWYWx1ZShtb2RlbC5Jc1ZhbGlkKTtcblxuICAgIGlmIChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uVHlwZSA9PSB0aGlzLnF1ZXN0aW9uVHlwZUVudW0uVGV4dElucHV0KSB7XG4gICAgICBxdWVzdGlvbkdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICBhbnN3ZXJJZDogbW9kZWwuU3VydmV5QW5zd2VySWQsXG4gICAgICAgIGFuc3dlclRleHQ6IG1vZGVsLkFuc3dlclxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uVHlwZSA9PSB0aGlzLnF1ZXN0aW9uVHlwZUVudW0uQ2hlY2tCb3gpIHtcbiAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWRBcnIuc2V0VmFsdWUobW9kZWwuQW5zd2VyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXJJZC5zZXRWYWx1ZShtb2RlbC5BbnN3ZXIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZDdHJscy5ydWxlUXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gbW9kZWwuUXVlc3Rpb25JZCkgPiAtMSkge1xuICAgICAgdGhpcy5jaGVja1J1bGVzKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRRdWVzdGlvbnMoc3VydmV5OiBTdXJ2ZXlEdG8pIHtcbiAgICBzdXJ2ZXkuc3VydmV5UGFnZXMuZm9yRWFjaCgocGFnZSwgcGFnZUluZGV4KSA9PiB7XG4gICAgICBwYWdlLnN1cnZleVF1ZXN0aW9uR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuXG4gICAgICAgIGdyb3VwLnN1cnZleVF1ZXN0aW9ucy5mb3JFYWNoKHF1ZXN0aW9uID0+IHtcblxuICAgICAgICAgIGlmIChxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCAhPSA2KSB7XG4gICAgICAgICAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnB1c2godGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgICAgICAgc3VydmV5UGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IFtxdWVzdGlvbi5xdWVzdGlvbklkXSxcbiAgICAgICAgICAgICAgcXVlc3Rpb25UeXBlOiBbcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWRdLFxuICAgICAgICAgICAgICBpc01hdHJpeEdyb3VwOiBbZmFsc2VdLFxuICAgICAgICAgICAgICBhbnN3ZXJJZDogW251bGxdLFxuICAgICAgICAgICAgICBhbnN3ZXJJZEFycjogW251bGxdLFxuICAgICAgICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgICAgICAgIGlzUmVxdWlyZWQ6IFtxdWVzdGlvbi5pc1JlcXVpcmVkXSxcbiAgICAgICAgICAgICAgaXNWYWxpZDogW251bGxdLFxuICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBbcXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgICAgICAgIGlzU2hvdzogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogW3F1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3F1ZXN0aW9uLmlzVmlzYWJsZV1cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICAgICAgICAgIHN1cnZleVBhZ2VJbmRleDogcGFnZUluZGV4LFxuICAgICAgICAgICAgICBxdWVzdGlvbklkOiBbcXVlc3Rpb24ucXVlc3Rpb25JZF0sXG4gICAgICAgICAgICAgIHF1ZXN0aW9uVHlwZTogW3F1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkXSxcbiAgICAgICAgICAgICAgaXNNYXRyaXhHcm91cDogW3RydWVdLFxuICAgICAgICAgICAgICBhbnN3ZXJJZDogW251bGxdLFxuICAgICAgICAgICAgICBhbnN3ZXJJZEFycjogW251bGxdLFxuICAgICAgICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgICAgICAgIGlzUmVxdWlyZWQ6IFtxdWVzdGlvbi5pc1JlcXVpcmVkXSxcbiAgICAgICAgICAgICAgaXNWYWxpZDogW251bGxdLFxuICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBbcXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgICAgICAgIGlzU2hvdzogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogW3F1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICAgIHF1ZXN0aW9uLnN1cnZleVN1YlF1ZXN0aW9ucy5mb3JFYWNoKHN1YlF1ZXN0aW9uID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICAgICAgICAgICAgc3VydmV5UGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogW3N1YlF1ZXN0aW9uLnF1ZXN0aW9uSWRdLFxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uVHlwZTogW3N1YlF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkXSxcbiAgICAgICAgICAgICAgICBpc01hdHJpeEdyb3VwOiBbZmFsc2VdLFxuICAgICAgICAgICAgICAgIGFuc3dlcklkOiBbbnVsbF0sXG4gICAgICAgICAgICAgICAgYW5zd2VySWRBcnI6IFtudWxsXSxcbiAgICAgICAgICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgICAgICAgICAgaXNSZXF1aXJlZDogW3F1ZXN0aW9uLmlzUmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgIGlzVmFsaWQ6IFtudWxsXSxcbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBbc3ViUXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgICAgICAgICAgaXNTaG93OiBbc3ViUXVlc3Rpb24uaXNWaXNhYmxlXSxcbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkX2RlZmF1bHQ6IFtzdWJRdWVzdGlvbi5pc1JlYWRPbmx5XSxcbiAgICAgICAgICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3N1YlF1ZXN0aW9uLmlzVmlzYWJsZV1cbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHN1cnZleS5zdXJ2ZXlSdWxlcy5mb3JFYWNoKHJ1bGUgPT4ge1xuICAgICAgcnVsZS5ydWxlRXhwcy5mb3JFYWNoKHJ1bGVFeHAgPT4ge1xuICAgICAgICB0aGlzLmZDdHJscy5ydWxlUXVlc3Rpb25BcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFJ1bGVRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oe1xuICAgICAgICAgIHF1ZXN0aW9uSWQ6IHJ1bGVFeHAucXVlc3Rpb25JZFxuICAgICAgICB9KSk7XG4gICAgICB9KTtcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBoYXZlSW5WYWxpZGF0ZVF1ZXN0aW9ucygpIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZUluZGV4ID0gdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZTtcbiAgICB2YXIgaW52YWxpZFJlY29yZHMgPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmZpbHRlcih4ID0+IHguc3VydmV5UGFnZUluZGV4ID09IGN1cnJlbnRQYWdlSW5kZXhcbiAgICAgICAmJiB4LmlzUmVxdWlyZWQgPT0gdHJ1ZSAmJiB4LmlzVmFsaWQgIT0gdHJ1ZVxuICAgICAgJiYgeC5pc0Rpc2FibGVkID09IGZhbHNlICYmIHguaXNTaG93ID09IHRydWUgJiYgeC5pc01hdHJpeEdyb3VwICE9IHRydWUpO1xuICAgIGlmIChpbnZhbGlkUmVjb3Jkcy5sZW5ndGggPiAwKSB7XG4gICAgICAkKGAjc3VydmV5LXBhZ2VfJHtjdXJyZW50UGFnZUluZGV4fWApLmFkZENsYXNzKCdzdXJ2ZXktcGFnZV9zdWJtaXR0ZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW52YWxpZFJlY29yZHMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tSdWxlcygpIHtcblxuICAgIHRoaXMuc3VydmV5RGF0YS5zdXJ2ZXlSdWxlcy5mb3JFYWNoKHJ1bGUgPT4ge1xuICAgICAgdGhpcy5fY2hlY2tSdWxlRXhwc1VzZWNhc2UuZXhlY3V0ZSh7XG4gICAgICAgIHJ1bGVFeHBzOiBydWxlLnJ1bGVFeHBzLFxuICAgICAgICBxdWVzdGlvbnM6IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWVcbiAgICAgIH0pLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuXG4gICAgICAgIHZhciBpc1Bhc3NlZCA9IHJlc3VsdC5leHByZXN0aW9uUmVzdWx0QXJyLmZpbHRlcih4ID0+IHggPT0gZmFsc2UpLmxlbmd0aCA9PSAwO1xuICAgICAgICBpZiAoaXNQYXNzZWQpIHtcblxuICAgICAgICAgIHJ1bGUucnVsZVJlc3VsdFF1ZXN0aW9ucy5mb3JFYWNoKHJlc3VsdFF1ZXN0aW9uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCk7XG4gICAgICAgICAgICB2YXIgcXVlc3Rpb25Hcm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkuYXQoaW5kZXgpO1xuICAgICAgICAgICAgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uU2hvdykge1xuICAgICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzU2hvdy5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5IaWRlKSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuaXNTaG93LnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5FbmFibGUpIHtcbiAgICAgICAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5pc0Rpc2FibGVkLnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5EaXNhYmxlKSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuaXNEaXNhYmxlZC5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TZXRBbnN3ZXIpIHtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcnVsZS5ydWxlUmVzdWx0UXVlc3Rpb25zLmZvckVhY2gocmVzdWx0UXVlc3Rpb24gPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHgucXVlc3Rpb25JZCA9PSByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkKTtcbiAgICAgICAgICAgIHZhciBxdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5hdChpbmRleCk7XG4gICAgICAgICAgICBxdWVzdGlvbkdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICBpc1Nob3c6IHF1ZXN0aW9uR3JvdXAudmFsdWUuaXNTaG93X2RlZmF1bHQsXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IHF1ZXN0aW9uR3JvdXAudmFsdWUuaXNEaXNhYmxlZF9kZWZhdWx0XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIH0pO1xuICB9XG5cblxuXG59XG4iLCI8ZGl2IGNsYXNzPVwic3VydmF5LWNhcmRcIj5cclxuICA8ZGl2ICpuZ0Zvcj1cImxldCBzdXJ2ZXlQYWdlIG9mIHN1cnZleURhdGE/LnN1cnZleVBhZ2VzOyBsZXQgc3VydmV5UGFnZUluZGV4ID0gaW5kZXhcIlxyXG4gICAgW2F0dHIuaWRdPVwiJ3N1cnZleS1wYWdlXycrc3VydmV5UGFnZUluZGV4XCIgW25nQ2xhc3NdPVwieydkLW5vbmUnOiBzdXJ2ZXlQYWdlSW5kZXggIT0gZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWV9XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1cnZleVBhZ2Uuc3VydmV5UXVlc3Rpb25Hcm91cHNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkLWJvZHlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2YXktZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZ3JvdXAtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIHt7aXRlbS5xdWVzdGlvbkdyb3VwTmFtZX19XHJcbiAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdyb3VwLXN1Yi10aXRsZSBcIj5cclxuICAgICAgICAgICAgICAgIHt7aXRlbS5xdWVzdGlvbkdyb3VwRGVzY3JpcHRpb259fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIGl0ZW0uc3VydmV5UXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLkJvb2xlYW5cIlxyXG4gICAgICAgICAgICAgICAgW2lzU2hvd109XCIgKHF1ZXN0aW9ufGZpbHRlclF1ZXN0aW9uIDogZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUpLmlzU2hvd1wiXHJcbiAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCIocXVlc3Rpb258ZmlsdGVyUXVlc3Rpb24gOiBmQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZSkuaXNEaXNhYmxlZFwiPjwvbGliLXF1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIiAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5UZXh0SW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgW2lzU2hvd109XCIgKHF1ZXN0aW9ufGZpbHRlclF1ZXN0aW9uIDogZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUpLmlzU2hvd1wiXHJcbiAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCIocXVlc3Rpb258ZmlsdGVyUXVlc3Rpb24gOiBmQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZSkuaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBbaXNUZXh0QXJlYV09XCJxdWVzdGlvbi5pc0FkdmFuY2VUZXh0QXJlYVwiPjwvbGliLXF1ZXN0aW9uLXRleHQtdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLlJhZGlvQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFtpc1Nob3ddPVwiIChxdWVzdGlvbnxmaWx0ZXJRdWVzdGlvbiA6IGZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlKS5pc1Nob3dcIlxyXG4gICAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiKHF1ZXN0aW9ufGZpbHRlclF1ZXN0aW9uIDogZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUpLmlzRGlzYWJsZWRcIj48L2xpYi1xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uRHJvcERvd25cIlxyXG4gICAgICAgICAgICAgICAgW2lzU2hvd109XCIgKHF1ZXN0aW9ufGZpbHRlclF1ZXN0aW9uIDogZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUpLmlzU2hvd1wiXHJcbiAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCIocXVlc3Rpb258ZmlsdGVyUXVlc3Rpb24gOiBmQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZSkuaXNEaXNhYmxlZFwiPjwvbGliLXF1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIiAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5DaGVja0JveFwiXHJcbiAgICAgICAgICAgICAgICBbaXNTaG93XT1cIiAocXVlc3Rpb258ZmlsdGVyUXVlc3Rpb24gOiBmQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZSkuaXNTaG93XCJcclxuICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cIihxdWVzdGlvbnxmaWx0ZXJRdWVzdGlvbiA6IGZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlKS5pc0Rpc2FibGVkXCI+PC9saWItcXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIiAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uTWF0cml4XCJcclxuICAgICAgICAgICAgICAgIFtpc1Nob3ddPVwiIChxdWVzdGlvbnxmaWx0ZXJRdWVzdGlvbiA6IGZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlKS5pc1Nob3dcIlxyXG4gICAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiKHF1ZXN0aW9ufGZpbHRlclF1ZXN0aW9uIDogZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUpLmlzRGlzYWJsZWRcIj48L2xpYi1xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkLWZvb3RyXCIgKm5nSWY9XCJzdXJ2ZXlEYXRhICE9IG51bGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cIiBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3VydmF5LXBhZ2luYXRpb24gZnctYm9sZFwiID5cclxuICAgICAgICA8c3Bhbj57e2ZDdHJscy5jdXJyZW50UGFnZUluZGV4LnZhbHVlICsgMX19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtZS0yXCI+b2Y8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4+e3tzdXJ2ZXlEYXRhLnN1cnZleVBhZ2VzLmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -886,11 +886,11 @@ class SurveryLibComponent {
886
886
  });
887
887
  }
888
888
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SurveryLibComponent, deps: [{ token: SurveyLibService }, { token: i1.FormBuilder }, { token: CheckRuleExpsUsecase }], target: i0.ɵɵFactoryTarget.Component }); }
889
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SurveryLibComponent, selector: "lib-survery-lib", outputs: { surveyResultEmit: "surveyResultEmit" }, ngImport: i0, template: "<div class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-boolean-template>\r\n\r\n <lib-question-text-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-dropdown-template>\r\n\r\n <lib-question-check-box-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswers($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-matrix-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination\">\r\n <nav aria-label=\"Page navigation example\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item previous-page-item \">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingBack()\"\r\n [ngClass]=\"{'disable__btn':fCtrls.currentPageIndex.value == 0}\">\u0627\u0644\u0633\u0627\u0628\u0642</a>\r\n </li>\r\n <li class=\"page-item active\" *ngFor=\"let item of surveyData?.surveyPages;let i = index\"\r\n [ngClass]=\"{'active': i == fCtrls.currentPageIndex.value }\">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingChange(i)\"\r\n [ngClass]=\"{'disable__btn':(fCtrls.currentPageIndex.value +1 ) < i }\">{{i + 1}}</a>\r\n </li>\r\n <li class=\"page-item next-page-item\">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingNext()\"\r\n [ngClass]=\"{'disable__btn':fCtrls.currentPageIndex.value == (surveyData.surveyPages.length - 1)}\">\u0627\u0644\u062A\u0627\u0644\u064A</a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: ["isShow", "isTextArea", "setQuestion", "isDisabled"], outputs: ["emitter"] }, { kind: "component", type: QuestionRadioButtonTemplateComponent, selector: "lib-question-radio-button-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionCheckBoxTemplateComponent, selector: "lib-question-check-box-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionMatrixTemplateComponent, selector: "lib-question-matrix-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionBooleanTemplateComponent, selector: "lib-question-boolean-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "pipe", type: FilterQuestionPipe, name: "filterQuestion" }] }); }
889
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SurveryLibComponent, selector: "lib-survery-lib", outputs: { surveyResultEmit: "surveyResultEmit" }, ngImport: i0, template: "<div class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-boolean-template>\r\n\r\n <lib-question-text-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-dropdown-template>\r\n\r\n <lib-question-check-box-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswers($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-matrix-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\" >\r\n <span>{{fCtrls.currentPageIndex.value + 1}}</span>\r\n <span class=\"ms-2 me-2\">of</span>\r\n <span>{{surveyData.surveyPages.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: ["isShow", "isTextArea", "setQuestion", "isDisabled"], outputs: ["emitter"] }, { kind: "component", type: QuestionRadioButtonTemplateComponent, selector: "lib-question-radio-button-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionCheckBoxTemplateComponent, selector: "lib-question-check-box-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionMatrixTemplateComponent, selector: "lib-question-matrix-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionBooleanTemplateComponent, selector: "lib-question-boolean-template", inputs: ["isShow", "isDisabled", "setQuestion"], outputs: ["emitter"] }, { kind: "pipe", type: FilterQuestionPipe, name: "filterQuestion" }] }); }
890
890
  }
891
891
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SurveryLibComponent, decorators: [{
892
892
  type: Component,
893
- args: [{ selector: 'lib-survery-lib', template: "<div class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-boolean-template>\r\n\r\n <lib-question-text-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-dropdown-template>\r\n\r\n <lib-question-check-box-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswers($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-matrix-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination\">\r\n <nav aria-label=\"Page navigation example\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item previous-page-item \">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingBack()\"\r\n [ngClass]=\"{'disable__btn':fCtrls.currentPageIndex.value == 0}\">\u0627\u0644\u0633\u0627\u0628\u0642</a>\r\n </li>\r\n <li class=\"page-item active\" *ngFor=\"let item of surveyData?.surveyPages;let i = index\"\r\n [ngClass]=\"{'active': i == fCtrls.currentPageIndex.value }\">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingChange(i)\"\r\n [ngClass]=\"{'disable__btn':(fCtrls.currentPageIndex.value +1 ) < i }\">{{i + 1}}</a>\r\n </li>\r\n <li class=\"page-item next-page-item\">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingNext()\"\r\n [ngClass]=\"{'disable__btn':fCtrls.currentPageIndex.value == (surveyData.surveyPages.length - 1)}\">\u0627\u0644\u062A\u0627\u0644\u064A</a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}\n"] }]
893
+ args: [{ selector: 'lib-survery-lib', template: "<div class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-boolean-template>\r\n\r\n <lib-question-text-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-dropdown-template>\r\n\r\n <lib-question-check-box-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswers($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-matrix-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\" >\r\n <span>{{fCtrls.currentPageIndex.value + 1}}</span>\r\n <span class=\"ms-2 me-2\">of</span>\r\n <span>{{surveyData.surveyPages.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}\n"] }]
894
894
  }], ctorParameters: function () { return [{ type: SurveyLibService }, { type: i1.FormBuilder }, { type: CheckRuleExpsUsecase }]; }, propDecorators: { surveyResultEmit: [{
895
895
  type: Output
896
896
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"survery-lib.mjs","sources":["../../../projects/survery-lib/src/shared/enums/question-type.enum.ts","../../../projects/survery-lib/src/shared/enums/logic-action.enum.ts","../../../projects/survery-lib/src/lib/services/survey-lib.service.ts","../../../projects/survery-lib/src/shared/enums/Logic-Property.enum.ts","../../../projects/survery-lib/src/shared/enums/operator.enum.ts","../../../projects/survery-lib/src/lib/usecases/check-rule-exps.usecase.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.html","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.ts","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.html","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.ts","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.html","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.ts","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.html","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.ts","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.html","../../../projects/survery-lib/src/lib/pipes/filter-question.pipe.ts","../../../projects/survery-lib/src/lib/survery-lib.component.ts","../../../projects/survery-lib/src/lib/survey-lib.component.html","../../../projects/survery-lib/src/lib/survery-lib.module.ts","../../../projects/survery-lib/src/shared/models/survery-question-result.model.ts","../../../projects/survery-lib/src/public-api.ts","../../../projects/survery-lib/src/survery-lib.ts"],"sourcesContent":["export enum QuestionTypeEnum {\r\n RadioButton = 1,\r\n CheckBox = 2,\r\n DropDown = 3,\r\n Boolean = 4,\r\n TextInput = 5,\r\n Matrix = 6\r\n}","export enum LogicActionEnum {\r\n Show = 1,\r\n Hide = 2,\r\n Enable = 3,\r\n Disable = 4,\r\n SetAnswer = 5\r\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { SurveyDto } from '../../shared/dtos/survey.dto';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SurveyLibService {\n\n private surveyDataSubject: Subject<SurveyDto> = new Subject<SurveyDto>();\n\n get surveyDataObsrv() {\n return this.surveyDataSubject.asObservable();\n }\n\n constructor() { }\n\n setSurveyData(survey: SurveyDto) {\n this.surveyDataSubject.next(survey);\n }\n}\n","export enum LogicPropertyEnum{\r\n GreaterThan = 1 ,\r\n GreaterThanOrEqual = 2 ,\r\n LessThan = 3,\r\n LessThanOrEqual = 4 ,\r\n Equal = 5 ,\r\n NotEqual = 6,\r\n IsEmpty = 9 ,\r\n IsNotEmpty = 10 ,\r\n AnyOf =11,\r\n Then = 12\r\n}","export enum OperatorEnum {\r\n Or = 7,\r\n And =8\r\n}","import { Observable, of } from \"rxjs\";\r\nimport { UseCase } from \"./base/use-case\";\r\nimport { SurveyRuleDto } from \"../../shared/dtos/survey-rule.dto\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { QuestionChildOfSurveryLibFormInterface } from \"../../shared/form-interfaces/survery-lib.form-interface\";\r\nimport { RuleExpDto } from \"../../shared/dtos/rule-exp.dto\";\r\nimport { QuestionTypeEnum } from \"../../shared/enums/question-type.enum\";\r\nimport { LogicPropertyEnum } from \"../../shared/enums/Logic-Property.enum\";\r\nimport { OperatorEnum } from \"../../shared/enums/operator.enum\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckRuleExpsUsecase implements UseCase<CheckRulesUsecaseModel, CheckRulesUsecaseResult>{\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n execute(params: CheckRulesUsecaseModel): Observable<CheckRulesUsecaseResult> {\r\n\r\n var useCaseResult: CheckRulesUsecaseResult = {\r\n exprestionResultArr: []\r\n };\r\n\r\n params.ruleExps.forEach(ruleExp => {\r\n const index = params.questions.findIndex(x => x.questionId == ruleExp.questionId);\r\n var questionGroupValue = params.questions.at(index);\r\n\r\n var result: boolean;\r\n\r\n if (questionGroupValue.questionType == QuestionTypeEnum.TextInput) {\r\n result = this.checkRuleExpForAnswerText(ruleExp, questionGroupValue.answerText)\r\n } \r\n else if (questionGroupValue.questionType == QuestionTypeEnum.CheckBox) {\r\n result = this.checkRuleExpForAnswerIdArr(ruleExp, questionGroupValue.answerIdArr);\r\n } \r\n else {\r\n result = this.checkRuleExpForAnswerId(ruleExp, questionGroupValue.answerId);\r\n }\r\n\r\n var answers =ruleExp.ruleExpAnswers.map(x=>x.answerId+'-'+x.answerTitle);\r\n console.log(`Question ${questionGroupValue.questionId} type ${QuestionTypeEnum[questionGroupValue.questionType]} --- ${result == true ?'passed':'not passed'} ---`,\r\n ` answers (${answers.join(' , ')}) logic (${ LogicPropertyEnum[ruleExp.logicPropertyId]}) operator (${OperatorEnum [ruleExp.opporator]})`);\r\n\r\n useCaseResult.exprestionResultArr.push(result);\r\n });\r\n\r\n return of(useCaseResult);\r\n }\r\n\r\n private checkRuleExpForAnswerId(ruleExp: RuleExpDto, answerId: number) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId > answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId >= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId < answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId <= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Equal) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId == answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.NotEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId != answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answerId == null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answerId != null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.AnyOf) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) > -1\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Then) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) == -1\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerIdArr(ruleExp: RuleExpDto, answerIdArr: number[]) {\r\n var ruleExpResultArr: boolean[] = [];\r\n\r\n answerIdArr?.forEach(answer => {\r\n var isResult = this.checkRuleExpForAnswerId(ruleExp, answer);\r\n ruleExpResultArr.push(isResult);\r\n })\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerText(ruleExp: RuleExpDto, answer: string) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answer == null || answer == ''\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answer != null && answer != ''\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n\r\n if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class CheckRulesUsecaseModel {\r\n ruleExps: RuleExpDto[];\r\n questions: QuestionChildOfSurveryLibFormInterface[];\r\n}\r\n\r\nexport class CheckRulesUsecaseResult {\r\n exprestionResultArr: boolean[];\r\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup, FormControl as FormControlStack, ValidatorsModel } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\nimport { debounceTime, distinctUntilChanged } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\n\n@Component({\n selector: 'lib-question-text-template',\n templateUrl: './question-text-template.component.html',\n styleUrls: ['./question-text-template.component.scss']\n})\nexport class QuestionTextTemplateComponent implements OnInit {\n\n rForm: FormGroup<QuestionTextTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isShow: boolean = true;\n @Input() isTextArea: boolean;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription\n });\n\n if (value.surveyAnswers[0]?.answerId != null && value.surveyAnswers[0]?.answerId != undefined) {\n this.fCtrls.surveyAnswerId.setValue(value.surveyAnswers[0].answerId);\n }\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.isShow = value.isVisable;\n this.toggleEnableAnswer(value.isReadOnly);\n }\n @Input() set isDisabled(value: boolean) {\n this.toggleEnableAnswer(value);\n }\n\n\n constructor(private _formBuilder: FormBuilder) {\n this.rForm = this._formBuilder.group<QuestionTextTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n surveyAnswerId: [null],\n answer: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value ,\n SurveyAnswerId: formValue.surveyAnswerId\n })\n });\n\n this.fCtrls.answer.setValue(null);\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n\n private toggleEnableAnswer(isReadOnly: boolean) {\n if (isReadOnly == true) {\n this.fCtrls.answer.disable()\n } else {\n this.fCtrls.answer.enable()\n }\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n}\n","<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"text-quastion\">\n <input class=\"form-control\" type=\"text\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\" *ngIf=\"isTextArea == false else textAreaTemplate\">\n <ng-template #textAreaTemplate>\n <textarea class=\"form-control\" rows=\"5\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\" ></textarea>\n </ng-template>\n </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\nimport { debounceTime, distinctUntilChanged } from 'rxjs';\nimport { v4 as guidGenerator } from 'uuid';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\n\n@Component({\n selector: 'lib-question-radio-button-template',\n templateUrl: './question-radio-button-template.component.html',\n styleUrls: ['./question-radio-button-template.component.scss']\n})\nexport class QuestionRadioButtonTemplateComponent implements OnInit {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionRadioButtonTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isShow: boolean = true;\n @Input() isDisabled : boolean = false ;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.isShow = value.isVisable;\n this.isDisabled = value.isReadOnly;\n }\n\n constructor(private _formBuilder: FormBuilder) {\n this.rForm = this._formBuilder.group<QuestionRadioButtonTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value=>{\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n }\n\n onChangeAnswer(item: SurveyAnswerDto) {\n this.fCtrls.answer.setValue(item.answerId);\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':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 surveyQuestion?.surveyAnswers;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\" [disabled]=\"isDisabled\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" value=\"{{item.answerId}}\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionCheckBoxTemplateFormInterface } from '../../../shared/form-interfaces/question-check-box-template.form-interface';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { debounceTime, distinctUntilChanged } from 'rxjs';\nimport { v4 as guidGenerator } from 'uuid';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\n\n@Component({\n selector: 'lib-question-check-box-template',\n templateUrl: './question-check-box-template.component.html',\n styleUrls: ['./question-check-box-template.component.scss']\n})\nexport class QuestionCheckBoxTemplateComponent implements OnInit {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionCheckBoxTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isShow: boolean = true;\n @Input() isDisabled : boolean = false ;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.isShow = value.isVisable;\n this.isDisabled = value.isReadOnly;\n }\n\n constructor(private _formBuilder: FormBuilder ) {\n this.rForm = this._formBuilder.group<QuestionCheckBoxTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.subscribe(value=>{\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n }\n\n onChangeAnswer(item: SurveyAnswerDto, event: Event) {\n var answerArr: number[] = this.fCtrls.answer.value || [];\n\n if ((event.target as any).checked == true) {\n answerArr.push(item.answerId);\n } else {\n answerArr = answerArr.filter(x => x != item.answerId);\n }\n\n answerArr = answerArr.length == 0 ? [] :answerArr;\n this.fCtrls.answer.setValue(answerArr);\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n\n <div class=\"checkbox-button-quastion\">\n <div class=\"form-check check-box-form-check\" *ngFor=\"let item of surveyQuestion?.surveyAnswers;let i = index\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" [disabled]=\"isDisabled\"\n (change)=\"onChangeAnswer(item,$event)\">\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionDropdownTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-template.form-interface';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { debounceTime, distinctUntilChanged } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\n\n@Component({\n selector: 'lib-question-dropdown-template',\n templateUrl: './question-dropdown-template.component.html',\n styleUrls: ['./question-dropdown-template.component.scss']\n})\nexport class QuestionDropdownTemplateComponent implements OnInit {\n surveyQuestion:SurveyQuestionDto;\n rForm: FormGroup<QuestionDropdownTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isShow: boolean = true;\n @Input() isDisabled : boolean = false ;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.isShow = value.isVisable;\n this.isDisabled = value.isReadOnly;\n }\n\n constructor(private _formBuilder: FormBuilder) {\n this.rForm = this._formBuilder.group<QuestionDropdownTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer:[null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value=>{\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n }\n\n convertToFormControl(element: any){\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"text-quastion\">\n <select class=\"form-control\" [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"isDisabled\">\n <option *ngFor=\"let item of surveyQuestion?.surveyAnswers\" [value]=\"item.answerId\">{{item.answerTitle}}</option>\n </select>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\nimport { SurveyQuestionGroupDto } from '../../../shared/dtos/survey-question-group.dto';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { SurveySubQuestionDto } from '../../../shared/dtos/survey-sub-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionMatrixTemplateFormInterface, SubQuestionChildOfQuestionMatrixTemplateFormInterface } from '../../../shared/form-interfaces/question-matrix-template.form-interface';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { v4 as guidGenerator } from 'uuid';\n\n@Component({\n selector: 'lib-question-matrix-template',\n templateUrl: './question-matrix-template.component.html',\n styleUrls: ['./question-matrix-template.component.scss']\n})\nexport class QuestionMatrixTemplateComponent {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionMatrixTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel[]>();\n\n @Input() isShow: boolean = true;\n @Input() isDisabled : boolean = false ;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n typeId: value.questionTypeId\n });\n\n value.surveySubQuestions.forEach(x => {\n var group = this._formBuilder.group<SubQuestionChildOfQuestionMatrixTemplateFormInterface>({\n subQuestionId: [x.questionId],\n questionTitle: [x.questionTitle],\n answer: [null]\n });\n\n if (value.isRequired == true) {\n group.controls.answer.addValidators([Validators.required]);\n group.controls.answer.updateValueAndValidity();\n }\n\n this.fCtrls.subQuestionArray.push(group);\n });\n\n this.isShow = value.isVisable;\n this.isDisabled = value.isReadOnly;\n }\n\n constructor(private _formBuilder: FormBuilder) {\n this.rForm = this._formBuilder.group<QuestionMatrixTemplateFormInterface>({\n id: [null],\n typeId: [null],\n subQuestionArray: this._formBuilder.array<SubQuestionChildOfQuestionMatrixTemplateFormInterface>([])\n });\n }\n\n onChangeAnswer(question: SubQuestionChildOfQuestionMatrixTemplateFormInterface, answer: SurveyAnswerDto) {\n const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);\n this.fCtrls.subQuestionArray.controls[index].controls.answer.setValue(answer.answerId);\n\n var model = this.fCtrls.subQuestionArray.value.map(x => {\n return { \n QuestionId: x.subQuestionId,\n Answer: x.answer, \n IsValid: this.fCtrls.subQuestionArray.controls[index].controls.answer.valid \n } as QuestionAnswerModel;\n });\n this.emitter.emit(model);\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\"\n[ngClass]=\"{'d-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{surveyQuestion?.questionTitle}}\n </h3>\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\n <div class=\"matrix-head-row\">\n <div class=\"matrix-col\">\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\">\n {{answers.answerTitle}}\n </div>\n </div>\n\n <div class=\"matrix-row\"\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\n <div class=\"matrix-col matrix-sub-quastion\">\n {{questionGroup.value.questionTitle}}\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\n <div class=\"form-check form-check-radio form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup.value ,answer)\"\n value=\"{{answer.answerId}}\">\n <label class=\"form-check-label d-md-inline d-lg-none\"\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> {{answer.answerTitle}}</label>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Validators, FormControl } from '@angular/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { debounceTime, distinctUntilChanged } from 'rxjs';\nimport { QuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { v4 as guidGenerator } from 'uuid';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\n\n@Component({\n selector: 'lib-question-boolean-template',\n templateUrl: './question-boolean-template.component.html',\n styleUrls: ['./question-boolean-template.component.scss']\n})\nexport class QuestionBooleanTemplateComponent implements OnInit {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionBooleanTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isShow: boolean = true;\n @Input() isDisabled : boolean = false ;\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.isShow = value.isVisable;\n this.isDisabled = value.isReadOnly;\n }\n\n constructor(private _formBuilder: FormBuilder) {\n this.rForm = this._formBuilder.group<QuestionBooleanTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value=>{\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n }\n\n onChangeAnswer(answer: SurveyAnswerDto) {\n this.fCtrls.answer.setValue(answer);\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':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 surveyQuestion?.surveyAnswers;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\" [disabled]=\"isDisabled\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" value=\"{{item.answerId}}\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\nimport { QuestionChildOfSurveryLibFormInterface } from '../../shared/form-interfaces/survery-lib.form-interface';\n\n@Pipe({\n name: 'filterQuestion'\n})\nexport class FilterQuestionPipe implements PipeTransform {\n\n transform(value: SurveyQuestionDto, questionArr: QuestionChildOfSurveryLibFormInterface[]): QuestionChildOfSurveryLibFormInterface {\n return questionArr.find(x=>x.questionId == value.questionId);\n }\n\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { SurveyLibService } from './services/survey-lib.service';\nimport { SurveyDto } from '../shared/dtos/survey.dto';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { QuestionChildOfSurveryLibFormInterface, RuleQuestionChildOfSurveryLibFormInterface, SurveryLibFormInterface } from '../shared/form-interfaces/survery-lib.form-interface';\nimport { QuestionTypeEnum } from '../shared/enums/question-type.enum';\nimport { v4 as guidGenerator } from 'uuid';\nimport { QuestionAnswerModel } from '../shared/models/question-answer.model';\nimport { Observable, of } from 'rxjs';\nimport { LogicPropertyEnum } from '../shared/enums/Logic-Property.enum';\nimport { RuleExpDto } from '../shared/dtos/rule-exp.dto';\nimport { OperatorEnum } from '../shared/enums/operator.enum';\nimport { LogicActionEnum } from '../shared/enums/logic-action.enum';\nimport { CheckRuleExpsUsecase } from './usecases/check-rule-exps.usecase';\nimport { SurveyQuestionResult } from '../shared/models/survery-question-result.model';\ndeclare var $: any;\n\n@Component({\n selector: 'lib-survery-lib',\n templateUrl: './survey-lib.component.html',\n styleUrls: ['./survey-lib.component.scss']\n})\nexport class SurveryLibComponent implements OnInit {\n\n surveyData: SurveyDto;\n rForm: FormGroup<SurveryLibFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get isLastPage() {\n return this.fCtrls.currentPageIndex.value == (this.surveyData?.surveyPages.length - 1);\n }\n\n @Output() surveyResultEmit = new EventEmitter<SurveyQuestionResult[]>();\n\n constructor(private _surveyLibService: SurveyLibService\n , private _formBuilder: FormBuilder, private _checkRuleExpsUsecase: CheckRuleExpsUsecase) {\n\n this.rForm = this._formBuilder.group<SurveryLibFormInterface>({\n currentPageIndex: [0],\n questionArray: this._formBuilder.array<QuestionChildOfSurveryLibFormInterface>([]),\n ruleQuestionArray: this._formBuilder.array<RuleQuestionChildOfSurveryLibFormInterface>([])\n });\n }\n\n ngOnInit(): void {\n this._surveyLibService.surveyDataObsrv.subscribe(survey => {\n this.surveyData = survey;\n if (survey != null) {\n this.loadQuestions(survey);\n } else {\n this.fCtrls.questionArray.clear();\n }\n });\n }\n\n onPaggingNext() {\n var isHaveInvalidRecords = this.haveInValidateQuestions();\n if (isHaveInvalidRecords == false) {\n\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n\n if (currentPageIndex < (this.surveyData.surveyPages.length - 1)) {\n currentPageIndex = Number(currentPageIndex) + 1;\n this.fCtrls.currentPageIndex.setValue(currentPageIndex);\n } else {\n var questionArr = this.fCtrls.questionArray.value.filter(x => x.isMatrixGroup != true).map(x => {\n return {\n SurveyPageIndex: x.surveyPageIndex,\n QuestionId: x.questionId,\n AnswerId: x.answerId,\n AnswerText: x.answerText,\n AnswerIdArr: x.answerIdArr\n } as SurveyQuestionResult\n });\n this.surveyResultEmit.emit(questionArr);\n }\n }\n }\n\n onPaggingChange(index) {\n const formValue = this.rForm.value;\n if (index < formValue.currentPageIndex) {\n this.fCtrls.currentPageIndex.setValue(index);\n } else if (index == (formValue.currentPageIndex + 1)) {\n this.onPaggingNext();\n }\n }\n\n onPaggingBack() {\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n if (currentPageIndex > 0) {\n currentPageIndex = Number(currentPageIndex) - 1;\n this.fCtrls.currentPageIndex.setValue(currentPageIndex);\n }\n }\n\n onUpdateAnswers(model: QuestionAnswerModel[]) {\n model.forEach(elem => {\n this.onUpdateAnswer(elem);\n });\n }\n\n onUpdateAnswer(model: QuestionAnswerModel) {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == model.QuestionId);\n var questionGroup = this.fCtrls.questionArray.controls[index];\n questionGroup.controls.isValid.setValue(model.IsValid);\n\n if (questionGroup.value.questionType == this.questionTypeEnum.TextInput) {\n questionGroup.patchValue({\n answerId: model.SurveyAnswerId,\n answerText: model.Answer\n });\n } else if (questionGroup.value.questionType == this.questionTypeEnum.CheckBox) {\n questionGroup.controls.answerIdArr.setValue(model.Answer);\n } else {\n questionGroup.controls.answerId.setValue(model.Answer);\n }\n\n if (this.fCtrls.ruleQuestionArray.value.findIndex(x => x.questionId == model.QuestionId) > -1) {\n this.checkRules()\n }\n }\n\n private loadQuestions(survey: SurveyDto) {\n survey.surveyPages.forEach((page, pageIndex) => {\n page.surveyQuestionGroups.forEach(group => {\n\n group.surveyQuestions.forEach(question => {\n\n if (question.questionTypeId != 6) {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable]\n }));\n } else {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [true],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable],\n }));\n\n question.surveySubQuestions.forEach(subQuestion => {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [subQuestion.questionId],\n questionType: [subQuestion.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [subQuestion.isReadOnly],\n isShow: [subQuestion.isVisable],\n isDisabled_default: [subQuestion.isReadOnly],\n isShow_default: [subQuestion.isVisable]\n }));\n })\n }\n });\n\n });\n });\n\n survey.surveyRules.forEach(rule => {\n rule.ruleExps.forEach(ruleExp => {\n this.fCtrls.ruleQuestionArray.push(this._formBuilder.group<RuleQuestionChildOfSurveryLibFormInterface>({\n questionId: ruleExp.questionId\n }));\n });\n })\n }\n\n private haveInValidateQuestions() {\n const currentPageIndex = this.fCtrls.currentPageIndex.value;\n var invalidRecords = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == currentPageIndex\n && x.isRequired == true && x.isValid != true\n && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);\n if (invalidRecords.length > 0) {\n $(`#survey-page_${currentPageIndex}`).addClass('survey-page_submitted');\n }\n\n return invalidRecords.length > 0;\n }\n\n private checkRules() {\n\n this.surveyData.surveyRules.forEach(rule => {\n this._checkRuleExpsUsecase.execute({\n ruleExps: rule.ruleExps,\n questions: this.fCtrls.questionArray.value\n }).subscribe(result => {\n\n var isPassed = result.exprestionResultArr.filter(x => x == false).length == 0;\n if (isPassed) {\n\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n if (rule.logicActionId == LogicActionEnum.Show) {\n questionGroup.controls.isShow.setValue(true);\n } else if (rule.logicActionId == LogicActionEnum.Hide) {\n questionGroup.controls.isShow.setValue(false);\n } else if (rule.logicActionId == LogicActionEnum.Enable) {\n questionGroup.controls.isDisabled.setValue(false);\n } else if (rule.logicActionId == LogicActionEnum.Disable) {\n questionGroup.controls.isDisabled.setValue(true);\n } else if (rule.logicActionId == LogicActionEnum.SetAnswer) {\n\n }\n\n });\n }\n else {\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n questionGroup.patchValue({\n isShow: questionGroup.value.isShow_default,\n isDisabled: questionGroup.value.isDisabled_default\n })\n });\n }\n });\n\n });\n }\n\n\n\n}\n","<div class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-boolean-template>\r\n\r\n <lib-question-text-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-dropdown-template>\r\n\r\n <lib-question-check-box-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswers($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-matrix-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination\">\r\n <nav aria-label=\"Page navigation example\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item previous-page-item \">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingBack()\"\r\n [ngClass]=\"{'disable__btn':fCtrls.currentPageIndex.value == 0}\">السابق</a>\r\n </li>\r\n <li class=\"page-item active\" *ngFor=\"let item of surveyData?.surveyPages;let i = index\"\r\n [ngClass]=\"{'active': i == fCtrls.currentPageIndex.value }\">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingChange(i)\"\r\n [ngClass]=\"{'disable__btn':(fCtrls.currentPageIndex.value +1 ) < i }\">{{i + 1}}</a>\r\n </li>\r\n <li class=\"page-item next-page-item\">\r\n <a class=\"page-link\" href=\"javascript:void(0)\" (click)=\"onPaggingNext()\"\r\n [ngClass]=\"{'disable__btn':fCtrls.currentPageIndex.value == (surveyData.surveyPages.length - 1)}\">التالي</a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { SurveryLibComponent } from './survery-lib.component';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { NgsFormsModule } from '@ng-stack/forms';\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\nimport { FilterQuestionPipe } from './pipes/filter-question.pipe';\n\n\n@NgModule({\n declarations: [\n SurveryLibComponent,\n QuestionTextTemplateComponent,\n QuestionRadioButtonTemplateComponent,\n QuestionCheckBoxTemplateComponent,\n QuestionDropdownTemplateComponent,\n QuestionMatrixTemplateComponent,\n QuestionBooleanTemplateComponent,\n FilterQuestionPipe\n ],\n imports: [\n CommonModule, HttpClientModule, ReactiveFormsModule, FormsModule , NgsFormsModule\n ],\n exports: [\n SurveryLibComponent\n ]\n})\nexport class SurveryLibModule {\n public static forRoot(): ModuleWithProviders<SurveryLibModule> {\n return {\n ngModule: SurveryLibModule\n }\n }\n }\n","export class SurveyQuestionResult{\r\n SurveyPageIndex:number;\r\n QuestionId;\r\n AnswerId;\r\n AnswerIdArr;\r\n AnswerText;\r\n}","/*\n * Public API Surface of survery-lib\n */\n\nexport * from './lib/survery-lib.component';\nexport * from './lib/services/survey-lib.service';\nexport * from './lib/survery-lib.module';\nexport * from './shared/models/survery-question-result.model'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["guidGenerator","i1.SurveyLibService","i2","i3.CheckRuleExpsUsecase","i4","i5.QuestionTextTemplateComponent","i6.QuestionRadioButtonTemplateComponent","i7.QuestionCheckBoxTemplateComponent","i8.QuestionDropdownTemplateComponent","i9.QuestionMatrixTemplateComponent","i10.QuestionBooleanTemplateComponent","i11.FilterQuestionPipe"],"mappings":"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"}
1
+ {"version":3,"file":"survery-lib.mjs","sources":["../../../projects/survery-lib/src/shared/enums/question-type.enum.ts","../../../projects/survery-lib/src/shared/enums/logic-action.enum.ts","../../../projects/survery-lib/src/lib/services/survey-lib.service.ts","../../../projects/survery-lib/src/shared/enums/Logic-Property.enum.ts","../../../projects/survery-lib/src/shared/enums/operator.enum.ts","../../../projects/survery-lib/src/lib/usecases/check-rule-exps.usecase.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.html","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.ts","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.html","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.ts","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.html","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.ts","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.html","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.ts","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.html","../../../projects/survery-lib/src/lib/pipes/filter-question.pipe.ts","../../../projects/survery-lib/src/lib/survery-lib.component.ts","../../../projects/survery-lib/src/lib/survey-lib.component.html","../../../projects/survery-lib/src/lib/survery-lib.module.ts","../../../projects/survery-lib/src/shared/models/survery-question-result.model.ts","../../../projects/survery-lib/src/public-api.ts","../../../projects/survery-lib/src/survery-lib.ts"],"sourcesContent":["export enum QuestionTypeEnum {\r\n RadioButton = 1,\r\n CheckBox = 2,\r\n DropDown = 3,\r\n Boolean = 4,\r\n TextInput = 5,\r\n Matrix = 6\r\n}","export enum LogicActionEnum {\r\n Show = 1,\r\n Hide = 2,\r\n Enable = 3,\r\n Disable = 4,\r\n SetAnswer = 5\r\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { SurveyDto } from '../../shared/dtos/survey.dto';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SurveyLibService {\n\n private surveyDataSubject: Subject<SurveyDto> = new Subject<SurveyDto>();\n\n get surveyDataObsrv() {\n return this.surveyDataSubject.asObservable();\n }\n\n constructor() { }\n\n setSurveyData(survey: SurveyDto) {\n this.surveyDataSubject.next(survey);\n }\n}\n","export enum LogicPropertyEnum{\r\n GreaterThan = 1 ,\r\n GreaterThanOrEqual = 2 ,\r\n LessThan = 3,\r\n LessThanOrEqual = 4 ,\r\n Equal = 5 ,\r\n NotEqual = 6,\r\n IsEmpty = 9 ,\r\n IsNotEmpty = 10 ,\r\n AnyOf =11,\r\n Then = 12\r\n}","export enum OperatorEnum {\r\n Or = 7,\r\n And =8\r\n}","import { Observable, of } from \"rxjs\";\r\nimport { UseCase } from \"./base/use-case\";\r\nimport { SurveyRuleDto } from \"../../shared/dtos/survey-rule.dto\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { QuestionChildOfSurveryLibFormInterface } from \"../../shared/form-interfaces/survery-lib.form-interface\";\r\nimport { RuleExpDto } from \"../../shared/dtos/rule-exp.dto\";\r\nimport { QuestionTypeEnum } from \"../../shared/enums/question-type.enum\";\r\nimport { LogicPropertyEnum } from \"../../shared/enums/Logic-Property.enum\";\r\nimport { OperatorEnum } from \"../../shared/enums/operator.enum\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckRuleExpsUsecase implements UseCase<CheckRulesUsecaseModel, CheckRulesUsecaseResult>{\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n execute(params: CheckRulesUsecaseModel): Observable<CheckRulesUsecaseResult> {\r\n\r\n var useCaseResult: CheckRulesUsecaseResult = {\r\n exprestionResultArr: []\r\n };\r\n\r\n params.ruleExps.forEach(ruleExp => {\r\n const index = params.questions.findIndex(x => x.questionId == ruleExp.questionId);\r\n var questionGroupValue = params.questions.at(index);\r\n\r\n var result: boolean;\r\n\r\n if (questionGroupValue.questionType == QuestionTypeEnum.TextInput) {\r\n result = this.checkRuleExpForAnswerText(ruleExp, questionGroupValue.answerText)\r\n } \r\n else if (questionGroupValue.questionType == QuestionTypeEnum.CheckBox) {\r\n result = this.checkRuleExpForAnswerIdArr(ruleExp, questionGroupValue.answerIdArr);\r\n } \r\n else {\r\n result = this.checkRuleExpForAnswerId(ruleExp, questionGroupValue.answerId);\r\n }\r\n\r\n var answers =ruleExp.ruleExpAnswers.map(x=>x.answerId+'-'+x.answerTitle);\r\n console.log(`Question ${questionGroupValue.questionId} type ${QuestionTypeEnum[questionGroupValue.questionType]} --- ${result == true ?'passed':'not passed'} ---`,\r\n ` answers (${answers.join(' , ')}) logic (${ LogicPropertyEnum[ruleExp.logicPropertyId]}) operator (${OperatorEnum [ruleExp.opporator]})`);\r\n\r\n useCaseResult.exprestionResultArr.push(result);\r\n });\r\n\r\n return of(useCaseResult);\r\n }\r\n\r\n private checkRuleExpForAnswerId(ruleExp: RuleExpDto, answerId: number) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId > answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId >= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId < answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId <= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Equal) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId == answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.NotEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId != answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answerId == null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answerId != null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.AnyOf) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) > -1\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Then) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) == -1\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerIdArr(ruleExp: RuleExpDto, answerIdArr: number[]) {\r\n var ruleExpResultArr: boolean[] = [];\r\n\r\n answerIdArr?.forEach(answer => {\r\n var isResult = this.checkRuleExpForAnswerId(ruleExp, answer);\r\n ruleExpResultArr.push(isResult);\r\n })\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerText(ruleExp: RuleExpDto, answer: string) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answer == null || answer == ''\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answer != null && answer != ''\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n\r\n if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class CheckRulesUsecaseModel {\r\n ruleExps: RuleExpDto[];\r\n questions: QuestionChildOfSurveryLibFormInterface[];\r\n}\r\n\r\nexport class CheckRulesUsecaseResult {\r\n exprestionResultArr: boolean[];\r\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup, FormControl as FormControlStack, ValidatorsModel } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\nimport { debounceTime, distinctUntilChanged } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\n\n@Component({\n selector: 'lib-question-text-template',\n templateUrl: './question-text-template.component.html',\n styleUrls: ['./question-text-template.component.scss']\n})\nexport class QuestionTextTemplateComponent implements OnInit {\n\n rForm: FormGroup<QuestionTextTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isShow: boolean = true;\n @Input() isTextArea: boolean;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription\n });\n\n if (value.surveyAnswers[0]?.answerId != null && value.surveyAnswers[0]?.answerId != undefined) {\n this.fCtrls.surveyAnswerId.setValue(value.surveyAnswers[0].answerId);\n }\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.isShow = value.isVisable;\n this.toggleEnableAnswer(value.isReadOnly);\n }\n @Input() set isDisabled(value: boolean) {\n this.toggleEnableAnswer(value);\n }\n\n\n constructor(private _formBuilder: FormBuilder) {\n this.rForm = this._formBuilder.group<QuestionTextTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n surveyAnswerId: [null],\n answer: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value ,\n SurveyAnswerId: formValue.surveyAnswerId\n })\n });\n\n this.fCtrls.answer.setValue(null);\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n\n private toggleEnableAnswer(isReadOnly: boolean) {\n if (isReadOnly == true) {\n this.fCtrls.answer.disable()\n } else {\n this.fCtrls.answer.enable()\n }\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n}\n","<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"text-quastion\">\n <input class=\"form-control\" type=\"text\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\" *ngIf=\"isTextArea == false else textAreaTemplate\">\n <ng-template #textAreaTemplate>\n <textarea class=\"form-control\" rows=\"5\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\" ></textarea>\n </ng-template>\n </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\nimport { debounceTime, distinctUntilChanged } from 'rxjs';\nimport { v4 as guidGenerator } from 'uuid';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\n\n@Component({\n selector: 'lib-question-radio-button-template',\n templateUrl: './question-radio-button-template.component.html',\n styleUrls: ['./question-radio-button-template.component.scss']\n})\nexport class QuestionRadioButtonTemplateComponent implements OnInit {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionRadioButtonTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isShow: boolean = true;\n @Input() isDisabled : boolean = false ;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.isShow = value.isVisable;\n this.isDisabled = value.isReadOnly;\n }\n\n constructor(private _formBuilder: FormBuilder) {\n this.rForm = this._formBuilder.group<QuestionRadioButtonTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value=>{\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n }\n\n onChangeAnswer(item: SurveyAnswerDto) {\n this.fCtrls.answer.setValue(item.answerId);\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':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 surveyQuestion?.surveyAnswers;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\" [disabled]=\"isDisabled\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" value=\"{{item.answerId}}\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionCheckBoxTemplateFormInterface } from '../../../shared/form-interfaces/question-check-box-template.form-interface';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { debounceTime, distinctUntilChanged } from 'rxjs';\nimport { v4 as guidGenerator } from 'uuid';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\n\n@Component({\n selector: 'lib-question-check-box-template',\n templateUrl: './question-check-box-template.component.html',\n styleUrls: ['./question-check-box-template.component.scss']\n})\nexport class QuestionCheckBoxTemplateComponent implements OnInit {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionCheckBoxTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isShow: boolean = true;\n @Input() isDisabled : boolean = false ;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.isShow = value.isVisable;\n this.isDisabled = value.isReadOnly;\n }\n\n constructor(private _formBuilder: FormBuilder ) {\n this.rForm = this._formBuilder.group<QuestionCheckBoxTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.subscribe(value=>{\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n }\n\n onChangeAnswer(item: SurveyAnswerDto, event: Event) {\n var answerArr: number[] = this.fCtrls.answer.value || [];\n\n if ((event.target as any).checked == true) {\n answerArr.push(item.answerId);\n } else {\n answerArr = answerArr.filter(x => x != item.answerId);\n }\n\n answerArr = answerArr.length == 0 ? [] :answerArr;\n this.fCtrls.answer.setValue(answerArr);\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n\n <div class=\"checkbox-button-quastion\">\n <div class=\"form-check check-box-form-check\" *ngFor=\"let item of surveyQuestion?.surveyAnswers;let i = index\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" [disabled]=\"isDisabled\"\n (change)=\"onChangeAnswer(item,$event)\">\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionDropdownTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-template.form-interface';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { debounceTime, distinctUntilChanged } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\n\n@Component({\n selector: 'lib-question-dropdown-template',\n templateUrl: './question-dropdown-template.component.html',\n styleUrls: ['./question-dropdown-template.component.scss']\n})\nexport class QuestionDropdownTemplateComponent implements OnInit {\n surveyQuestion:SurveyQuestionDto;\n rForm: FormGroup<QuestionDropdownTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isShow: boolean = true;\n @Input() isDisabled : boolean = false ;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.isShow = value.isVisable;\n this.isDisabled = value.isReadOnly;\n }\n\n constructor(private _formBuilder: FormBuilder) {\n this.rForm = this._formBuilder.group<QuestionDropdownTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer:[null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value=>{\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n }\n\n convertToFormControl(element: any){\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"text-quastion\">\n <select class=\"form-control\" [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"isDisabled\">\n <option *ngFor=\"let item of surveyQuestion?.surveyAnswers\" [value]=\"item.answerId\">{{item.answerTitle}}</option>\n </select>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\nimport { SurveyQuestionGroupDto } from '../../../shared/dtos/survey-question-group.dto';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { SurveySubQuestionDto } from '../../../shared/dtos/survey-sub-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionMatrixTemplateFormInterface, SubQuestionChildOfQuestionMatrixTemplateFormInterface } from '../../../shared/form-interfaces/question-matrix-template.form-interface';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { v4 as guidGenerator } from 'uuid';\n\n@Component({\n selector: 'lib-question-matrix-template',\n templateUrl: './question-matrix-template.component.html',\n styleUrls: ['./question-matrix-template.component.scss']\n})\nexport class QuestionMatrixTemplateComponent {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionMatrixTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel[]>();\n\n @Input() isShow: boolean = true;\n @Input() isDisabled : boolean = false ;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n typeId: value.questionTypeId\n });\n\n value.surveySubQuestions.forEach(x => {\n var group = this._formBuilder.group<SubQuestionChildOfQuestionMatrixTemplateFormInterface>({\n subQuestionId: [x.questionId],\n questionTitle: [x.questionTitle],\n answer: [null]\n });\n\n if (value.isRequired == true) {\n group.controls.answer.addValidators([Validators.required]);\n group.controls.answer.updateValueAndValidity();\n }\n\n this.fCtrls.subQuestionArray.push(group);\n });\n\n this.isShow = value.isVisable;\n this.isDisabled = value.isReadOnly;\n }\n\n constructor(private _formBuilder: FormBuilder) {\n this.rForm = this._formBuilder.group<QuestionMatrixTemplateFormInterface>({\n id: [null],\n typeId: [null],\n subQuestionArray: this._formBuilder.array<SubQuestionChildOfQuestionMatrixTemplateFormInterface>([])\n });\n }\n\n onChangeAnswer(question: SubQuestionChildOfQuestionMatrixTemplateFormInterface, answer: SurveyAnswerDto) {\n const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);\n this.fCtrls.subQuestionArray.controls[index].controls.answer.setValue(answer.answerId);\n\n var model = this.fCtrls.subQuestionArray.value.map(x => {\n return { \n QuestionId: x.subQuestionId,\n Answer: x.answer, \n IsValid: this.fCtrls.subQuestionArray.controls[index].controls.answer.valid \n } as QuestionAnswerModel;\n });\n this.emitter.emit(model);\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\"\n[ngClass]=\"{'d-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{surveyQuestion?.questionTitle}}\n </h3>\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\n <div class=\"matrix-head-row\">\n <div class=\"matrix-col\">\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\">\n {{answers.answerTitle}}\n </div>\n </div>\n\n <div class=\"matrix-row\"\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\n <div class=\"matrix-col matrix-sub-quastion\">\n {{questionGroup.value.questionTitle}}\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\n <div class=\"form-check form-check-radio form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup.value ,answer)\"\n value=\"{{answer.answerId}}\">\n <label class=\"form-check-label d-md-inline d-lg-none\"\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> {{answer.answerTitle}}</label>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Validators, FormControl } from '@angular/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { debounceTime, distinctUntilChanged } from 'rxjs';\nimport { QuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { v4 as guidGenerator } from 'uuid';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\n\n@Component({\n selector: 'lib-question-boolean-template',\n templateUrl: './question-boolean-template.component.html',\n styleUrls: ['./question-boolean-template.component.scss']\n})\nexport class QuestionBooleanTemplateComponent implements OnInit {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionBooleanTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isShow: boolean = true;\n @Input() isDisabled : boolean = false ;\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.isShow = value.isVisable;\n this.isDisabled = value.isReadOnly;\n }\n\n constructor(private _formBuilder: FormBuilder) {\n this.rForm = this._formBuilder.group<QuestionBooleanTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value=>{\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n }\n\n onChangeAnswer(answer: SurveyAnswerDto) {\n this.fCtrls.answer.setValue(answer);\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':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 surveyQuestion?.surveyAnswers;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item)\" [disabled]=\"isDisabled\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" value=\"{{item.answerId}}\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.answerTitle}}</label>\n </div>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\nimport { QuestionChildOfSurveryLibFormInterface } from '../../shared/form-interfaces/survery-lib.form-interface';\n\n@Pipe({\n name: 'filterQuestion'\n})\nexport class FilterQuestionPipe implements PipeTransform {\n\n transform(value: SurveyQuestionDto, questionArr: QuestionChildOfSurveryLibFormInterface[]): QuestionChildOfSurveryLibFormInterface {\n return questionArr.find(x=>x.questionId == value.questionId);\n }\n\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { SurveyLibService } from './services/survey-lib.service';\nimport { SurveyDto } from '../shared/dtos/survey.dto';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { QuestionChildOfSurveryLibFormInterface, RuleQuestionChildOfSurveryLibFormInterface, SurveryLibFormInterface } from '../shared/form-interfaces/survery-lib.form-interface';\nimport { QuestionTypeEnum } from '../shared/enums/question-type.enum';\nimport { v4 as guidGenerator } from 'uuid';\nimport { QuestionAnswerModel } from '../shared/models/question-answer.model';\nimport { Observable, of } from 'rxjs';\nimport { LogicPropertyEnum } from '../shared/enums/Logic-Property.enum';\nimport { RuleExpDto } from '../shared/dtos/rule-exp.dto';\nimport { OperatorEnum } from '../shared/enums/operator.enum';\nimport { LogicActionEnum } from '../shared/enums/logic-action.enum';\nimport { CheckRuleExpsUsecase } from './usecases/check-rule-exps.usecase';\nimport { SurveyQuestionResult } from '../shared/models/survery-question-result.model';\ndeclare var $: any;\n\n@Component({\n selector: 'lib-survery-lib',\n templateUrl: './survey-lib.component.html',\n styleUrls: ['./survey-lib.component.scss']\n})\nexport class SurveryLibComponent implements OnInit {\n\n surveyData: SurveyDto;\n rForm: FormGroup<SurveryLibFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get isLastPage() {\n return this.fCtrls.currentPageIndex.value == (this.surveyData?.surveyPages.length - 1);\n }\n\n @Output() surveyResultEmit = new EventEmitter<SurveyQuestionResult[]>();\n\n constructor(private _surveyLibService: SurveyLibService\n , private _formBuilder: FormBuilder, private _checkRuleExpsUsecase: CheckRuleExpsUsecase) {\n\n this.rForm = this._formBuilder.group<SurveryLibFormInterface>({\n currentPageIndex: [0],\n questionArray: this._formBuilder.array<QuestionChildOfSurveryLibFormInterface>([]),\n ruleQuestionArray: this._formBuilder.array<RuleQuestionChildOfSurveryLibFormInterface>([])\n });\n }\n\n ngOnInit(): void {\n this._surveyLibService.surveyDataObsrv.subscribe(survey => {\n this.surveyData = survey;\n if (survey != null) {\n this.loadQuestions(survey);\n } else {\n this.fCtrls.questionArray.clear();\n }\n });\n }\n\n onPaggingNext() {\n var isHaveInvalidRecords = this.haveInValidateQuestions();\n if (isHaveInvalidRecords == false) {\n\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n\n if (currentPageIndex < (this.surveyData.surveyPages.length - 1)) {\n currentPageIndex = Number(currentPageIndex) + 1;\n this.fCtrls.currentPageIndex.setValue(currentPageIndex);\n } else {\n var questionArr = this.fCtrls.questionArray.value.filter(x => x.isMatrixGroup != true).map(x => {\n return {\n SurveyPageIndex: x.surveyPageIndex,\n QuestionId: x.questionId,\n AnswerId: x.answerId,\n AnswerText: x.answerText,\n AnswerIdArr: x.answerIdArr\n } as SurveyQuestionResult\n });\n this.surveyResultEmit.emit(questionArr);\n }\n }\n }\n\n onPaggingChange(index) {\n const formValue = this.rForm.value;\n if (index < formValue.currentPageIndex) {\n this.fCtrls.currentPageIndex.setValue(index);\n } else if (index == (formValue.currentPageIndex + 1)) {\n this.onPaggingNext();\n }\n }\n\n onPaggingBack() {\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n if (currentPageIndex > 0) {\n currentPageIndex = Number(currentPageIndex) - 1;\n this.fCtrls.currentPageIndex.setValue(currentPageIndex);\n }\n }\n\n onUpdateAnswers(model: QuestionAnswerModel[]) {\n model.forEach(elem => {\n this.onUpdateAnswer(elem);\n });\n }\n\n onUpdateAnswer(model: QuestionAnswerModel) {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == model.QuestionId);\n var questionGroup = this.fCtrls.questionArray.controls[index];\n questionGroup.controls.isValid.setValue(model.IsValid);\n\n if (questionGroup.value.questionType == this.questionTypeEnum.TextInput) {\n questionGroup.patchValue({\n answerId: model.SurveyAnswerId,\n answerText: model.Answer\n });\n } else if (questionGroup.value.questionType == this.questionTypeEnum.CheckBox) {\n questionGroup.controls.answerIdArr.setValue(model.Answer);\n } else {\n questionGroup.controls.answerId.setValue(model.Answer);\n }\n\n if (this.fCtrls.ruleQuestionArray.value.findIndex(x => x.questionId == model.QuestionId) > -1) {\n this.checkRules()\n }\n }\n\n private loadQuestions(survey: SurveyDto) {\n survey.surveyPages.forEach((page, pageIndex) => {\n page.surveyQuestionGroups.forEach(group => {\n\n group.surveyQuestions.forEach(question => {\n\n if (question.questionTypeId != 6) {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable]\n }));\n } else {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [true],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable],\n }));\n\n question.surveySubQuestions.forEach(subQuestion => {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [subQuestion.questionId],\n questionType: [subQuestion.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [subQuestion.isReadOnly],\n isShow: [subQuestion.isVisable],\n isDisabled_default: [subQuestion.isReadOnly],\n isShow_default: [subQuestion.isVisable]\n }));\n })\n }\n });\n\n });\n });\n\n survey.surveyRules.forEach(rule => {\n rule.ruleExps.forEach(ruleExp => {\n this.fCtrls.ruleQuestionArray.push(this._formBuilder.group<RuleQuestionChildOfSurveryLibFormInterface>({\n questionId: ruleExp.questionId\n }));\n });\n })\n }\n\n private haveInValidateQuestions() {\n const currentPageIndex = this.fCtrls.currentPageIndex.value;\n var invalidRecords = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == currentPageIndex\n && x.isRequired == true && x.isValid != true\n && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);\n if (invalidRecords.length > 0) {\n $(`#survey-page_${currentPageIndex}`).addClass('survey-page_submitted');\n }\n\n return invalidRecords.length > 0;\n }\n\n private checkRules() {\n\n this.surveyData.surveyRules.forEach(rule => {\n this._checkRuleExpsUsecase.execute({\n ruleExps: rule.ruleExps,\n questions: this.fCtrls.questionArray.value\n }).subscribe(result => {\n\n var isPassed = result.exprestionResultArr.filter(x => x == false).length == 0;\n if (isPassed) {\n\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n if (rule.logicActionId == LogicActionEnum.Show) {\n questionGroup.controls.isShow.setValue(true);\n } else if (rule.logicActionId == LogicActionEnum.Hide) {\n questionGroup.controls.isShow.setValue(false);\n } else if (rule.logicActionId == LogicActionEnum.Enable) {\n questionGroup.controls.isDisabled.setValue(false);\n } else if (rule.logicActionId == LogicActionEnum.Disable) {\n questionGroup.controls.isDisabled.setValue(true);\n } else if (rule.logicActionId == LogicActionEnum.SetAnswer) {\n\n }\n\n });\n }\n else {\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n questionGroup.patchValue({\n isShow: questionGroup.value.isShow_default,\n isDisabled: questionGroup.value.isDisabled_default\n })\n });\n }\n });\n\n });\n }\n\n\n\n}\n","<div class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-boolean-template>\r\n\r\n <lib-question-text-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-dropdown-template>\r\n\r\n <lib-question-check-box-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswers($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\"\r\n [isShow]=\" (question|filterQuestion : fCtrls.questionArray.value).isShow\"\r\n [isDisabled]=\"(question|filterQuestion : fCtrls.questionArray.value).isDisabled\"></lib-question-matrix-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\" >\r\n <span>{{fCtrls.currentPageIndex.value + 1}}</span>\r\n <span class=\"ms-2 me-2\">of</span>\r\n <span>{{surveyData.surveyPages.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { SurveryLibComponent } from './survery-lib.component';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { NgsFormsModule } from '@ng-stack/forms';\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\nimport { FilterQuestionPipe } from './pipes/filter-question.pipe';\n\n\n@NgModule({\n declarations: [\n SurveryLibComponent,\n QuestionTextTemplateComponent,\n QuestionRadioButtonTemplateComponent,\n QuestionCheckBoxTemplateComponent,\n QuestionDropdownTemplateComponent,\n QuestionMatrixTemplateComponent,\n QuestionBooleanTemplateComponent,\n FilterQuestionPipe\n ],\n imports: [\n CommonModule, HttpClientModule, ReactiveFormsModule, FormsModule , NgsFormsModule\n ],\n exports: [\n SurveryLibComponent\n ]\n})\nexport class SurveryLibModule {\n public static forRoot(): ModuleWithProviders<SurveryLibModule> {\n return {\n ngModule: SurveryLibModule\n }\n }\n }\n","export class SurveyQuestionResult{\r\n SurveyPageIndex:number;\r\n QuestionId;\r\n AnswerId;\r\n AnswerIdArr;\r\n AnswerText;\r\n}","/*\n * Public API Surface of survery-lib\n */\n\nexport * from './lib/survery-lib.component';\nexport * from './lib/services/survey-lib.service';\nexport * from './lib/survery-lib.module';\nexport * from './shared/models/survery-question-result.model'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["guidGenerator","i1.SurveyLibService","i2","i3.CheckRuleExpsUsecase","i4","i5.QuestionTextTemplateComponent","i6.QuestionRadioButtonTemplateComponent","i7.QuestionCheckBoxTemplateComponent","i8.QuestionDropdownTemplateComponent","i9.QuestionMatrixTemplateComponent","i10.QuestionBooleanTemplateComponent","i11.FilterQuestionPipe"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "survery-lib",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.1.0",
6
6
  "@angular/core": "^16.1.0"