survery-lib 0.1.8 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/README.md +52 -52
  2. package/assets/style.css +58 -58
  3. package/esm2022/lib/components/question-boolean-template/question-boolean-template.component.mjs +21 -18
  4. package/esm2022/lib/components/question-check-box-template/question-check-box-template.component.mjs +24 -20
  5. package/esm2022/lib/components/question-dropdown-template/question-dropdown-template.component.mjs +18 -17
  6. package/esm2022/lib/components/question-matrix-template/question-matrix-template.component.mjs +25 -20
  7. package/esm2022/lib/components/question-radio-button-template/question-radio-button-template.component.mjs +21 -18
  8. package/esm2022/lib/components/question-text-template/question-text-template.component.mjs +20 -19
  9. package/esm2022/lib/pipes/default-question-answer.pipe.mjs +2 -2
  10. package/esm2022/lib/pipes/default-question-answers.pipe.mjs +2 -2
  11. package/esm2022/lib/pipes/filter-question.pipe.mjs +1 -1
  12. package/esm2022/lib/services/survey-lib.service.mjs +1 -1
  13. package/esm2022/lib/survery-lib.component.mjs +20 -11
  14. package/esm2022/lib/survery-lib.module.mjs +1 -1
  15. package/esm2022/public-api.mjs +1 -1
  16. package/fesm2022/survery-lib.mjs +158 -138
  17. package/fesm2022/survery-lib.mjs.map +1 -1
  18. package/lib/components/question-boolean-template/question-boolean-template.component.d.ts +4 -4
  19. package/lib/components/question-check-box-template/question-check-box-template.component.d.ts +4 -4
  20. package/lib/components/question-dropdown-template/question-dropdown-template.component.d.ts +4 -4
  21. package/lib/components/question-matrix-template/question-matrix-template.component.d.ts +7 -6
  22. package/lib/components/question-radio-button-template/question-radio-button-template.component.d.ts +4 -4
  23. package/lib/components/question-text-template/question-text-template.component.d.ts +4 -4
  24. package/lib/pipes/default-question-answer.pipe.d.ts +1 -1
  25. package/lib/pipes/default-question-answers.pipe.d.ts +1 -1
  26. package/lib/survery-lib.component.d.ts +2 -0
  27. package/package.json +1 -1
@@ -1,11 +1,12 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';
4
- import { debounceTime, distinctUntilChanged } from 'rxjs';
4
+ import { debounceTime, filter, map } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@ng-stack/forms";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "@angular/forms";
7
+ import * as i2 from "../../services/survey-lib.service";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@angular/forms";
9
10
  export class QuestionDropdownTemplateComponent {
10
11
  get fCtrls() {
11
12
  return this.rForm.controls;
@@ -29,13 +30,9 @@ export class QuestionDropdownTemplateComponent {
29
30
  this.isShow = value.isVisable;
30
31
  this.isDisabled = value.isReadOnly;
31
32
  }
32
- set setAnswer(defaultAnswer) {
33
- if (defaultAnswer != null) {
34
- this.fCtrls.answer.setValue(defaultAnswer.AnswerId);
35
- }
36
- }
37
- constructor(_formBuilder) {
33
+ constructor(_formBuilder, _surveyLibService) {
38
34
  this._formBuilder = _formBuilder;
35
+ this._surveyLibService = _surveyLibService;
39
36
  this.emitter = new EventEmitter();
40
37
  this.isShow = true;
41
38
  this.isDisabled = false;
@@ -49,7 +46,7 @@ export class QuestionDropdownTemplateComponent {
49
46
  });
50
47
  }
51
48
  ngOnInit() {
52
- this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value => {
49
+ this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {
53
50
  const formValue = this.rForm.value;
54
51
  this.emitter.emit({
55
52
  QuestionId: formValue.id,
@@ -58,17 +55,23 @@ export class QuestionDropdownTemplateComponent {
58
55
  });
59
56
  });
60
57
  this.fCtrls.answer.setValue(null);
58
+ this._surveyLibService.surveyAnswersObsrv
59
+ .pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))
60
+ .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))
61
+ .subscribe(answer => {
62
+ this.fCtrls.answer.setValue(answer.AnswerId);
63
+ });
61
64
  }
62
65
  convertToFormControl(element) {
63
66
  return element;
64
67
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionDropdownTemplateComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: { isShow: "isShow", isDisabled: "isDisabled", setQuestion: "setQuestion", setAnswer: "setAnswer" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"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", styles: [""], 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: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionDropdownTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SurveyLibService }], target: i0.ɵɵFactoryTarget.Component }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: { isShow: "isShow", isDisabled: "isDisabled", setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\r\n <h3 class=\"quastion-title \">\r\n {{fCtrls.title.value}}\r\n </h3>\r\n <div class=\"text-quastion\">\r\n <select class=\"form-control\" [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"isDisabled\">\r\n <option *ngFor=\"let item of surveyQuestion?.surveyAnswers\" [value]=\"item.answerId\">{{item.answerTitle}}</option>\r\n </select>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
67
70
  }
68
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionDropdownTemplateComponent, decorators: [{
69
72
  type: Component,
70
- args: [{ selector: 'lib-question-dropdown-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"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" }]
71
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { emitter: [{
73
+ args: [{ selector: 'lib-question-dropdown-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\r\n <h3 class=\"quastion-title \">\r\n {{fCtrls.title.value}}\r\n </h3>\r\n <div class=\"text-quastion\">\r\n <select class=\"form-control\" [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"isDisabled\">\r\n <option *ngFor=\"let item of surveyQuestion?.surveyAnswers\" [value]=\"item.answerId\">{{item.answerTitle}}</option>\r\n </select>\r\n </div>\r\n</div>\r\n" }]
74
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SurveyLibService }]; }, propDecorators: { emitter: [{
72
75
  type: Output
73
76
  }], isShow: [{
74
77
  type: Input
@@ -76,7 +79,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
76
79
  type: Input
77
80
  }], setQuestion: [{
78
81
  type: Input
79
- }], setAnswer: [{
80
- type: Input
81
82
  }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUc1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQVMxRCxNQUFNLE9BQU8saUNBQWlDO0lBSTVDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQU1ELElBQWEsV0FBVyxDQUFDLEtBQXdCO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ3BCLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUNwQixJQUFJLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDeEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQzFCLE1BQU0sRUFBRSxLQUFLLENBQUMsY0FBYztZQUM1QixXQUFXLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjtTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDN0M7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFhLFNBQVMsQ0FBQyxhQUF1QztRQUM1RCxJQUFJLGFBQWEsSUFBSSxJQUFJLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7SUFFRCxZQUFvQixZQUF5QjtRQUF6QixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQTdCbkMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRW5ELFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQTJCbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBd0M7WUFDMUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ1YsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ1osS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2IsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2QsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ25CLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2RyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDaEIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFO2dCQUN4QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDakMsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsT0FBWTtRQUMvQixPQUFPLE9BQXNCLENBQUM7SUFDaEMsQ0FBQzs4R0FuRVUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsbU5DaEI5QyxpakJBVUE7OzJGRE1hLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxnQ0FBZ0M7a0dBZ0JoQyxPQUFPO3NCQUFoQixNQUFNO2dCQUVFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBbUJPLFNBQVM7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IFF1ZXN0aW9uRHJvcGRvd25UZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlLmZvcm0taW50ZXJmYWNlJztcbmltcG9ydCB7IFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xuaW1wb3J0IHsgRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3MvZGVmYXVsdC1xdWVzdGlvbi1hbnN3ZXJzLmR0byc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Ecm9wZG93blRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc3VydmV5UXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvO1xuICByRm9ybTogRm9ybUdyb3VwPFF1ZXN0aW9uRHJvcGRvd25UZW1wbGF0ZUZvcm1JbnRlcmZhY2U+O1xuXG4gIGdldCBmQ3RybHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuckZvcm0uY29udHJvbHM7XG4gIH1cblxuICBnZXQgcXVlc3Rpb25UeXBlRW51bSgpIHtcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxRdWVzdGlvbkFuc3dlck1vZGVsPigpO1xuXG4gIEBJbnB1dCgpIGlzU2hvdzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xuICAgIHRoaXMuc3VydmV5UXVlc3Rpb24gPSB2YWx1ZTtcbiAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXG4gICAgICBuYW1lOiB2YWx1ZS5xdWVzdGlvbk5hbWUsXG4gICAgICB0aXRsZTogdmFsdWUucXVlc3Rpb25UaXRsZSxcbiAgICAgIHR5cGVJZDogdmFsdWUucXVlc3Rpb25UeXBlSWQsXG4gICAgICBkZXNjcmlwdGlvbjogdmFsdWUucXVlc3Rpb25EZXNjcmlwdGlvblxuICAgIH0pO1xuXG4gICAgaWYgKHZhbHVlLmlzUmVxdWlyZWQgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc1Nob3cgPSB2YWx1ZS5pc1Zpc2FibGU7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gdmFsdWUuaXNSZWFkT25seTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZXRBbnN3ZXIoZGVmYXVsdEFuc3dlcjogRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvKSB7XG4gICAgaWYgKGRlZmF1bHRBbnN3ZXIgIT0gbnVsbCkge1xuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGRlZmF1bHRBbnN3ZXIuQW5zd2VySWQpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuckZvcm0gPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxRdWVzdGlvbkRyb3Bkb3duVGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogW251bGxdLFxuICAgICAgbmFtZTogW251bGxdLFxuICAgICAgdGl0bGU6IFtudWxsXSxcbiAgICAgIHR5cGVJZDogW251bGxdLFxuICAgICAgZGVzY3JpcHRpb246IFtudWxsXSxcbiAgICAgIGFuc3dlcjogW251bGxdIFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XG4gICAgICB0aGlzLmVtaXR0ZXIuZW1pdCh7XG4gICAgICAgIFF1ZXN0aW9uSWQ6IGZvcm1WYWx1ZS5pZCxcbiAgICAgICAgSXNWYWxpZDogdGhpcy5mQ3RybHMuYW5zd2VyLnZhbGlkLFxuICAgICAgICBBbnN3ZXI6IHZhbHVlXG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKG51bGwpO1xuICB9XG5cbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2ZDdHJscy5pZC52YWx1ZVwiICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBmQ3RybHMuYW5zd2VyLmludmFsaWQgICwgJ2Qtbm9uZSc6aXNTaG93ICE9IHRydWV9XCI+XG4gICAgPGgzIGNsYXNzPVwicXVhc3Rpb24tdGl0bGUgXCI+XG4gICAgICAgIHt7ZkN0cmxzLnRpdGxlLnZhbHVlfX1cbiAgICA8L2gzPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXF1YXN0aW9uXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woZkN0cmxzLmFuc3dlcilcIiAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIj5cbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3VydmV5UXVlc3Rpb24/LnN1cnZleUFuc3dlcnNcIiBbdmFsdWVdPVwiaXRlbS5hbnN3ZXJJZFwiPnt7aXRlbS5hbnN3ZXJUaXRsZX19PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUc1RSxPQUFPLEVBQUUsWUFBWSxFQUF3QixNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFVdkUsTUFBTSxPQUFPLGlDQUFpQztJQUk1QyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFNRCxJQUFhLFdBQVcsQ0FBQyxLQUF3QjtRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNwQixFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDcEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ3hC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aEMsQ0FBQzs4R0FwRVUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsMkxDakI5Qyxxa0JBVUE7OzJGRE9hLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxnQ0FBZ0M7aUlBZ0JoQyxPQUFPO3NCQUFoQixNQUFNO2dCQUVFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNPLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQG5nLXN0YWNrL2Zvcm1zJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcclxuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkRyb3Bkb3duVGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XHJcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xyXG5pbXBvcnQgeyBTdXJ2ZXlMaWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3VydmV5LWxpYi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXF1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uRHJvcGRvd25UZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgc3VydmV5UXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvO1xyXG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25Ecm9wZG93blRlbXBsYXRlRm9ybUludGVyZmFjZT47XHJcblxyXG4gIGdldCBmQ3RybHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcclxuICB9XHJcblxyXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xyXG4gICAgcmV0dXJuIFF1ZXN0aW9uVHlwZUVudW07XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8UXVlc3Rpb25BbnN3ZXJNb2RlbD4oKTtcclxuXHJcbiAgQElucHV0KCkgaXNTaG93OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xyXG4gICAgdGhpcy5zdXJ2ZXlRdWVzdGlvbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXHJcbiAgICAgIG5hbWU6IHZhbHVlLnF1ZXN0aW9uTmFtZSxcclxuICAgICAgdGl0bGU6IHZhbHVlLnF1ZXN0aW9uVGl0bGUsXHJcbiAgICAgIHR5cGVJZDogdmFsdWUucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodmFsdWUuaXNSZXF1aXJlZCA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1Nob3cgPSB2YWx1ZS5pc1Zpc2FibGU7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSB2YWx1ZS5pc1JlYWRPbmx5O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyICxwcml2YXRlICBfc3VydmV5TGliU2VydmljZSA6U3VydmV5TGliU2VydmljZSkge1xyXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uRHJvcGRvd25UZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcclxuICAgICAgaWQ6IFtudWxsXSxcclxuICAgICAgbmFtZTogW251bGxdLFxyXG4gICAgICB0aXRsZTogW251bGxdLFxyXG4gICAgICB0eXBlSWQ6IFtudWxsXSxcclxuICAgICAgZGVzY3JpcHRpb246IFtudWxsXSxcclxuICAgICAgYW5zd2VyOiBbbnVsbF0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcclxuICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xyXG4gICAgICAgIFF1ZXN0aW9uSWQ6IGZvcm1WYWx1ZS5pZCxcclxuICAgICAgICBJc1ZhbGlkOiB0aGlzLmZDdHJscy5hbnN3ZXIudmFsaWQsXHJcbiAgICAgICAgQW5zd2VyOiB2YWx1ZVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKG51bGwpO1xyXG5cclxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc3VydmV5QW5zd2Vyc09ic3J2XHJcbiAgICAucGlwZShtYXAoeD0+IHguZGVmYXVsdEFuc3dlcnMuZmlsdGVyKHg9PnguUXVlc3Rpb25JZCA9PSB0aGlzLmZDdHJscy5pZC52YWx1ZSkpKVxyXG4gICAgLnBpcGUoZmlsdGVyKHg9PngubGVuZ3RoICA+IDApKS5waXBlKG1hcCh4PT4geC5hdCgwKSkpXHJcbiAgICAuc3Vic2NyaWJlKGFuc3dlcj0+e1xyXG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuc2V0VmFsdWUoYW5zd2VyLkFuc3dlcklkKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjb252ZXJ0VG9Gb3JtQ29udHJvbChlbGVtZW50OiBhbnkpIHtcclxuICAgIHJldHVybiBlbGVtZW50IGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicXVhc3Rpb25cIiBbYXR0ci5pZF09XCIncXVlc3Rpb25fJytmQ3RybHMuaWQudmFsdWVcIiAgW25nQ2xhc3NdPVwieydpbnZhbGlkLXF1ZXN0aW9uJzogZkN0cmxzLmFuc3dlci5pbnZhbGlkICAsICdkLW5vbmUnOmlzU2hvdyAhPSB0cnVlfVwiPlxyXG4gICAgPGgzIGNsYXNzPVwicXVhc3Rpb24tdGl0bGUgXCI+XHJcbiAgICAgICAge3tmQ3RybHMudGl0bGUudmFsdWV9fVxyXG4gICAgPC9oMz5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXF1YXN0aW9uXCI+XHJcbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtmb3JtQ29udHJvbF09XCJjb252ZXJ0VG9Gb3JtQ29udHJvbChmQ3RybHMuYW5zd2VyKVwiICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1cnZleVF1ZXN0aW9uPy5zdXJ2ZXlBbnN3ZXJzXCIgW3ZhbHVlXT1cIml0ZW0uYW5zd2VySWRcIj57e2l0ZW0uYW5zd2VyVGl0bGV9fTwvb3B0aW9uPlxyXG4gICAgICAgIDwvc2VsZWN0PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -2,11 +2,12 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';
4
4
  import { v4 as guidGenerator } from 'uuid';
5
- import { debounceTime, distinctUntilChanged } from 'rxjs';
5
+ import { debounceTime, filter, map } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ng-stack/forms";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "@angular/forms";
8
+ import * as i2 from "../../services/survey-lib.service";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "@angular/forms";
10
11
  export class QuestionMatrixTemplateComponent {
11
12
  get fCtrls() {
12
13
  return this.rForm.controls;
@@ -30,7 +31,7 @@ export class QuestionMatrixTemplateComponent {
30
31
  group.controls.answer.addValidators([Validators.required]);
31
32
  group.controls.answer.updateValueAndValidity();
32
33
  }
33
- group.controls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value => {
34
+ group.controls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {
34
35
  const formValue = this.rForm.value;
35
36
  this.emitter.emit({
36
37
  QuestionId: group.value.subQuestionId,
@@ -43,16 +44,9 @@ export class QuestionMatrixTemplateComponent {
43
44
  this.isShow = value.isVisable;
44
45
  this.isDisabled = value.isReadOnly;
45
46
  }
46
- set setAnswers(defaultAnswerArr) {
47
- this.fCtrls.subQuestionArray.controls.forEach(group => {
48
- var answer = defaultAnswerArr.find(x => x.QuestionId == group.value.subQuestionId);
49
- if (answer != null) {
50
- group.controls.answer.setValue(answer.AnswerId);
51
- }
52
- });
53
- }
54
- constructor(_formBuilder) {
47
+ constructor(_formBuilder, _surveyLibService) {
55
48
  this._formBuilder = _formBuilder;
49
+ this._surveyLibService = _surveyLibService;
56
50
  this.elemId = guidGenerator();
57
51
  this.emitter = new EventEmitter();
58
52
  this.isShow = true;
@@ -63,6 +57,19 @@ export class QuestionMatrixTemplateComponent {
63
57
  subQuestionArray: this._formBuilder.array([])
64
58
  });
65
59
  }
60
+ ngOnInit() {
61
+ this._surveyLibService.surveyAnswersObsrv
62
+ .pipe(map(x => x.defaultAnswers.filter(x => x.ParentQuestionId == this.fCtrls.id.value)))
63
+ .pipe(filter(x => x.length > 0))
64
+ .subscribe(answers => {
65
+ this.fCtrls.subQuestionArray.controls.forEach(group => {
66
+ var answer = answers.find(x => x.QuestionId == group.value.subQuestionId);
67
+ if (answer != null) {
68
+ group.controls.answer.setValue(answer.AnswerId);
69
+ }
70
+ });
71
+ });
72
+ }
66
73
  onChangeAnswer(question, answer) {
67
74
  const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);
68
75
  var subQuestionGroup = this.fCtrls.subQuestionArray.controls[index];
@@ -76,13 +83,13 @@ export class QuestionMatrixTemplateComponent {
76
83
  convertToFormControl(element) {
77
84
  return element;
78
85
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionMatrixTemplateComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionMatrixTemplateComponent, selector: "lib-question-matrix-template", inputs: { isShow: "isShow", isDisabled: "isDisabled", setQuestion: "setQuestion", setAnswers: "setAnswers" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<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}}\" [checked]=\"answer.answerId == questionGroup.value.answer\">\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>", styles: [""], 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: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }] }); }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionMatrixTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SurveyLibService }], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionMatrixTemplateComponent, selector: "lib-question-matrix-template", inputs: { isShow: "isShow", isDisabled: "isDisabled", setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\"\r\n[ngClass]=\"{'d-none':isShow != true}\">\r\n <h3 class=\"quastion-title \">\r\n {{surveyQuestion?.questionTitle}}\r\n </h3>\r\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\r\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\r\n <div class=\"matrix-head-row\">\r\n <div class=\"matrix-col\">\r\n </div>\r\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\">\r\n {{answers.answerTitle}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"matrix-row\"\r\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\r\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\r\n <div class=\"matrix-col matrix-sub-quastion\">\r\n {{questionGroup.value.questionTitle}}\r\n </div>\r\n <div class=\"matrix-col\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\r\n <div class=\"form-check form-check-radio form-check-inline\">\r\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\r\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup.value ,answer)\"\r\n value=\"{{answer.answerId}}\" [checked]=\"answer.answerId == questionGroup.value.answer\">\r\n <label class=\"form-check-label d-md-inline d-lg-none\"\r\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> {{answer.answerTitle}}</label>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }] }); }
81
88
  }
82
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionMatrixTemplateComponent, decorators: [{
83
90
  type: Component,
84
- args: [{ selector: 'lib-question-matrix-template', template: "<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}}\" [checked]=\"answer.answerId == questionGroup.value.answer\">\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>" }]
85
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { emitter: [{
91
+ args: [{ selector: 'lib-question-matrix-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\"\r\n[ngClass]=\"{'d-none':isShow != true}\">\r\n <h3 class=\"quastion-title \">\r\n {{surveyQuestion?.questionTitle}}\r\n </h3>\r\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\r\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\r\n <div class=\"matrix-head-row\">\r\n <div class=\"matrix-col\">\r\n </div>\r\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\">\r\n {{answers.answerTitle}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"matrix-row\"\r\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\r\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\r\n <div class=\"matrix-col matrix-sub-quastion\">\r\n {{questionGroup.value.questionTitle}}\r\n </div>\r\n <div class=\"matrix-col\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\r\n <div class=\"form-check form-check-radio form-check-inline\">\r\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\r\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup.value ,answer)\"\r\n value=\"{{answer.answerId}}\" [checked]=\"answer.answerId == questionGroup.value.answer\">\r\n <label class=\"form-check-label d-md-inline d-lg-none\"\r\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> {{answer.answerTitle}}</label>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n</div>" }]
92
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SurveyLibService }]; }, propDecorators: { emitter: [{
86
93
  type: Output
87
94
  }], isShow: [{
88
95
  type: Input
@@ -90,7 +97,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
90
97
  type: Input
91
98
  }], setQuestion: [{
92
99
  type: Input
93
- }], setAnswers: [{
94
- type: Input
95
100
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBTzFELE1BQU0sT0FBTywrQkFBK0I7SUFLMUMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBTUQsSUFBYSxXQUFXLENBQUMsS0FBd0I7UUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDcEIsRUFBRSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQ3BC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QUF1QjtRQUNyRyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRyxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixVQUFVLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGFBQWE7WUFDaEQsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUs7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQVk7UUFDL0IsT0FBTyxPQUFzQixDQUFDO0lBQ2hDLENBQUM7OEdBcEZVLCtCQUErQjtrR0FBL0IsK0JBQStCLG1OQ25CNUMsc3VEQW1DTTs7MkZEaEJPLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSw4QkFBOEI7a0dBaUI5QixPQUFPO3NCQUFoQixNQUFNO2dCQUVFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBbUNPLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQG5nLXN0YWNrL2Zvcm1zJztcbmltcG9ydCB7IFN1cnZleUFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1hbnN3ZXIuZHRvJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uR3JvdXBEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24tZ3JvdXAuZHRvJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XG5pbXBvcnQgeyBTdXJ2ZXlTdWJRdWVzdGlvbkR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1zdWItcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlLCBTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmZvcm0taW50ZXJmYWNlJztcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBEZWZhdWx0UXVlc3Rpb25BbnN3ZXJEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9kZWZhdWx0LXF1ZXN0aW9uLWFuc3dlcnMuZHRvJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXF1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbk1hdHJpeFRlbXBsYXRlQ29tcG9uZW50IHtcbiAgZWxlbUlkID0gZ3VpZEdlbmVyYXRvcigpIGFzIHN0cmluZztcbiAgc3VydmV5UXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvO1xuICByRm9ybTogRm9ybUdyb3VwPFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlPjtcblxuICBnZXQgZkN0cmxzKCkge1xuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xuICB9XG5cbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XG4gICAgcmV0dXJuIFF1ZXN0aW9uVHlwZUVudW07XG4gIH1cblxuICBAT3V0cHV0KCkgZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8UXVlc3Rpb25BbnN3ZXJNb2RlbD4oKTtcblxuICBASW5wdXQoKSBpc1Nob3c6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCBzZXRRdWVzdGlvbih2YWx1ZTogU3VydmV5UXVlc3Rpb25EdG8pIHtcbiAgICB0aGlzLnN1cnZleVF1ZXN0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIGlkOiB2YWx1ZS5xdWVzdGlvbklkLFxuICAgICAgdHlwZUlkOiB2YWx1ZS5xdWVzdGlvblR5cGVJZFxuICAgIH0pO1xuXG4gICAgdmFsdWUuc3VydmV5U3ViUXVlc3Rpb25zLmZvckVhY2goeCA9PiB7XG4gICAgICB2YXIgZ3JvdXAgPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xuICAgICAgICBzdWJRdWVzdGlvbklkOiBbeC5xdWVzdGlvbklkXSxcbiAgICAgICAgcXVlc3Rpb25UaXRsZTogW3gucXVlc3Rpb25UaXRsZV0sXG4gICAgICAgIGFuc3dlcjogW251bGxdLFxuICAgICAgfSk7XG5cbiAgICAgIGlmICh2YWx1ZS5pc1JlcXVpcmVkID09IHRydWUpIHtcbiAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH1cblxuICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xuICAgICAgICAgIFF1ZXN0aW9uSWQ6IGdyb3VwLnZhbHVlLnN1YlF1ZXN0aW9uSWQsXG4gICAgICAgICAgQW5zd2VyOiBncm91cC52YWx1ZS5hbnN3ZXIsXG4gICAgICAgICAgSXNWYWxpZDogZ3JvdXAuY29udHJvbHMuYW5zd2VyLnZhbGlkXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkucHVzaChncm91cCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmlzU2hvdyA9IHZhbHVlLmlzVmlzYWJsZTtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSB2YWx1ZS5pc1JlYWRPbmx5O1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNldEFuc3dlcnMoZGVmYXVsdEFuc3dlckFycjogRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvW10pIHtcbiAgICB0aGlzLmZDdHJscy5zdWJRdWVzdGlvbkFycmF5LmNvbnRyb2xzLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgdmFyIGFuc3dlciA9IGRlZmF1bHRBbnN3ZXJBcnIuZmluZCh4ID0+IHguUXVlc3Rpb25JZCA9PSBncm91cC52YWx1ZS5zdWJRdWVzdGlvbklkKTtcbiAgICAgIGlmIChhbnN3ZXIgIT0gbnVsbCkge1xuICAgICAgICBncm91cC5jb250cm9scy5hbnN3ZXIuc2V0VmFsdWUoYW5zd2VyLkFuc3dlcklkKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogW251bGxdLFxuICAgICAgdHlwZUlkOiBbbnVsbF0sXG4gICAgICBzdWJRdWVzdGlvbkFycmF5OiB0aGlzLl9mb3JtQnVpbGRlci5hcnJheTxTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZT4oW10pXG4gICAgfSk7ICBcbiAgfVxuXG4gIG9uQ2hhbmdlQW5zd2VyKHF1ZXN0aW9uOiBTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZSwgYW5zd2VyOiBTdXJ2ZXlBbnN3ZXJEdG8pIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkudmFsdWUuZmluZEluZGV4KHggPT4geC5zdWJRdWVzdGlvbklkID09IHF1ZXN0aW9uLnN1YlF1ZXN0aW9uSWQpO1xuICAgIHZhciBzdWJRdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMuc3ViUXVlc3Rpb25BcnJheS5jb250cm9sc1tpbmRleF07XG5cbiAgICBzdWJRdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlci5zZXRWYWx1ZShhbnN3ZXIuYW5zd2VySWQpO1xuXG4gICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xuICAgICAgUXVlc3Rpb25JZDogc3ViUXVlc3Rpb25Hcm91cC52YWx1ZS5zdWJRdWVzdGlvbklkLFxuICAgICAgQW5zd2VyOiBzdWJRdWVzdGlvbkdyb3VwLnZhbHVlLmFuc3dlcixcbiAgICAgIElzVmFsaWQ6IHN1YlF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VyLnZhbGlkXG4gICAgfSk7XG4gIH1cblxuICBjb252ZXJ0VG9Gb3JtQ29udHJvbChlbGVtZW50OiBhbnkpIHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBGb3JtQ29udHJvbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2F0dHIuaWRdPVwiJ3F1ZXN0aW9uXycrZkN0cmxzLmlkLnZhbHVlXCIgc3R5bGU9XCIgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcIlxuW25nQ2xhc3NdPVwieydkLW5vbmUnOmlzU2hvdyAhPSB0cnVlfVwiPlxuICA8aDMgY2xhc3M9XCJxdWFzdGlvbi10aXRsZSBcIj5cbiAgICB7e3N1cnZleVF1ZXN0aW9uPy5xdWVzdGlvblRpdGxlfX1cbiAgPC9oMz5cbiAgPGRpdiBjbGFzcz1cIm1hdHJpeC1xdWVzdGlvblwiIFtmb3JtR3JvdXBdPVwickZvcm1cIj5cbiAgICA8ZGl2IGNsYXNzPVwibWF0cml4LXRhYmxlXCIgZm9ybUFycmF5TmFtZT1cInN1YlF1ZXN0aW9uQXJyYXlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtaGVhZC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1jb2xcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtY29sXCIgKm5nRm9yPVwibGV0IGFuc3dlcnMgb2Ygc3VydmV5UXVlc3Rpb24/LnN1cnZleUFuc3dlcnNcIj5cbiAgICAgICAgICB7e2Fuc3dlcnMuYW5zd2VyVGl0bGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LXJvd1wiXG4gICAgICAgICpuZ0Zvcj1cImxldCBxdWVzdGlvbkdyb3VwIG9mIGZDdHJscy5zdWJRdWVzdGlvbkFycmF5LmNvbnRyb2xzIDtsZXQgc3ViUXVlc3Rpb25JbmRleCA9IGluZGV4XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydpbnZhbGlkLXF1ZXN0aW9uJzogcXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXIuaW52YWxpZH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1jb2wgbWF0cml4LXN1Yi1xdWFzdGlvblwiPlxuICAgICAgICAgIHt7cXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvblRpdGxlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtY29sXCIgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBzdXJ2ZXlRdWVzdGlvbj8uc3VydmV5QW5zd2VycztsZXQgYW5zd2VySW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2stcmFkaW8gZm9ybS1jaGVjay1pbmxpbmVcIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuLW9wdGlvbl97e3N1YlF1ZXN0aW9uSW5kZXh9fVwiXG4gICAgICAgICAgICAgIGlkPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuX3t7c3ViUXVlc3Rpb25JbmRleH19X3t7YW5zd2VySW5kZXh9fVwiIChjaGFuZ2UpPVwib25DaGFuZ2VBbnN3ZXIocXVlc3Rpb25Hcm91cC52YWx1ZSAsYW5zd2VyKVwiXG4gICAgICAgICAgICAgIHZhbHVlPVwie3thbnN3ZXIuYW5zd2VySWR9fVwiICBbY2hlY2tlZF09XCJhbnN3ZXIuYW5zd2VySWQgPT0gcXVlc3Rpb25Hcm91cC52YWx1ZS5hbnN3ZXJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgZC1tZC1pbmxpbmUgZC1sZy1ub25lXCJcbiAgICAgICAgICAgICAgZm9yPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuX3t7c3ViUXVlc3Rpb25JbmRleH19X3t7YW5zd2VySW5kZXh9fVwiPiB7e2Fuc3dlci5hbnN3ZXJUaXRsZX19PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuPC9kaXY+Il19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQXdCLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVF2RSxNQUFNLE9BQU8sK0JBQStCO0lBSzFDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQU1ELElBQWEsV0FBVyxDQUFDLEtBQXdCO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ3BCLEVBQUUsRUFBRSxLQUFLLENBQUMs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LENBQUM7OEdBeEZVLCtCQUErQjtrR0FBL0IsK0JBQStCLHlMQ3BCNUMsNHlEQW1DTTs7MkZEZk8sK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLDhCQUE4QjtpSUFpQjlCLE9BQU87c0JBQWhCLE1BQU07Z0JBRUUsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlBbnN3ZXJEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktYW5zd2VyLmR0byc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uR3JvdXBEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24tZ3JvdXAuZHRvJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcclxuaW1wb3J0IHsgU3VydmV5U3ViUXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktc3ViLXF1ZXN0aW9uLmR0byc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2UsIFN1YlF1ZXN0aW9uQ2hpbGRPZlF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlMaWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3VydmV5LWxpYi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXF1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGVsZW1JZCA9IGd1aWRHZW5lcmF0b3IoKSBhcyBzdHJpbmc7XHJcbiAgc3VydmV5UXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvO1xyXG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+O1xyXG5cclxuICBnZXQgZkN0cmxzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuckZvcm0uY29udHJvbHM7XHJcbiAgfVxyXG5cclxuICBnZXQgcXVlc3Rpb25UeXBlRW51bSgpIHtcclxuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXN0aW9uQW5zd2VyTW9kZWw+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGlzU2hvdzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCBzZXRRdWVzdGlvbih2YWx1ZTogU3VydmV5UXVlc3Rpb25EdG8pIHtcclxuICAgIHRoaXMuc3VydmV5UXVlc3Rpb24gPSB2YWx1ZTtcclxuICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIGlkOiB2YWx1ZS5xdWVzdGlvbklkLFxyXG4gICAgICB0eXBlSWQ6IHZhbHVlLnF1ZXN0aW9uVHlwZUlkXHJcbiAgICB9KTtcclxuXHJcbiAgICB2YWx1ZS5zdXJ2ZXlTdWJRdWVzdGlvbnMuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgdmFyIGdyb3VwID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8U3ViUXVlc3Rpb25DaGlsZE9mUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcclxuICAgICAgICBzdWJRdWVzdGlvbklkOiBbeC5xdWVzdGlvbklkXSxcclxuICAgICAgICBxdWVzdGlvblRpdGxlOiBbeC5xdWVzdGlvblRpdGxlXSxcclxuICAgICAgICBhbnN3ZXI6IFtudWxsXSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodmFsdWUuaXNSZXF1aXJlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgICAgICBncm91cC5jb250cm9scy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBncm91cC5jb250cm9scy5hbnN3ZXIudmFsdWVDaGFuZ2VzLnBpcGUoKS5waXBlKGRlYm91bmNlVGltZSgyMDApKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XHJcbiAgICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xyXG4gICAgICAgICAgUXVlc3Rpb25JZDogZ3JvdXAudmFsdWUuc3ViUXVlc3Rpb25JZCxcclxuICAgICAgICAgIEFuc3dlcjogZ3JvdXAudmFsdWUuYW5zd2VyLFxyXG4gICAgICAgICAgSXNWYWxpZDogZ3JvdXAuY29udHJvbHMuYW5zd2VyLnZhbGlkXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5mQ3RybHMuc3ViUXVlc3Rpb25BcnJheS5wdXNoKGdyb3VwKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaXNTaG93ID0gdmFsdWUuaXNWaXNhYmxlO1xyXG4gICAgdGhpcy5pc0Rpc2FibGVkID0gdmFsdWUuaXNSZWFkT25seTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciAsIHByaXZhdGUgX3N1cnZleUxpYlNlcnZpY2U6U3VydmV5TGliU2VydmljZSkge1xyXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XHJcbiAgICAgIGlkOiBbbnVsbF0sXHJcbiAgICAgIHR5cGVJZDogW251bGxdLFxyXG4gICAgICBzdWJRdWVzdGlvbkFycmF5OiB0aGlzLl9mb3JtQnVpbGRlci5hcnJheTxTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZT4oW10pXHJcbiAgICB9KTsgIFxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc3VydmV5QW5zd2Vyc09ic3J2XHJcbiAgICAucGlwZShtYXAoeD0+IHguZGVmYXVsdEFuc3dlcnMuZmlsdGVyKHg9PnguUGFyZW50UXVlc3Rpb25JZCA9PSB0aGlzLmZDdHJscy5pZC52YWx1ZSkpKVxyXG4gICAgLnBpcGUoZmlsdGVyKHg9PngubGVuZ3RoICA+IDApKVxyXG4gICAgLnN1YnNjcmliZShhbnN3ZXJzPT57XHJcbiAgICAgIHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkuY29udHJvbHMuZm9yRWFjaChncm91cCA9PiB7XHJcbiAgICAgICAgdmFyIGFuc3dlciA9IGFuc3dlcnMuZmluZCh4ID0+IHguUXVlc3Rpb25JZCA9PSBncm91cC52YWx1ZS5zdWJRdWVzdGlvbklkKTtcclxuICAgICAgICBpZiAoYW5zd2VyICE9IG51bGwpIHtcclxuICAgICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlci5zZXRWYWx1ZShhbnN3ZXIuQW5zd2VySWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUFuc3dlcihxdWVzdGlvbjogU3ViUXVlc3Rpb25DaGlsZE9mUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2UsIGFuc3dlcjogU3VydmV5QW5zd2VyRHRvKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkudmFsdWUuZmluZEluZGV4KHggPT4geC5zdWJRdWVzdGlvbklkID09IHF1ZXN0aW9uLnN1YlF1ZXN0aW9uSWQpO1xyXG4gICAgdmFyIHN1YlF1ZXN0aW9uR3JvdXAgPSB0aGlzLmZDdHJscy5zdWJRdWVzdGlvbkFycmF5LmNvbnRyb2xzW2luZGV4XTtcclxuXHJcbiAgICBzdWJRdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlci5zZXRWYWx1ZShhbnN3ZXIuYW5zd2VySWQpO1xyXG5cclxuICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcclxuICAgICAgUXVlc3Rpb25JZDogc3ViUXVlc3Rpb25Hcm91cC52YWx1ZS5zdWJRdWVzdGlvbklkLFxyXG4gICAgICBBbnN3ZXI6IHN1YlF1ZXN0aW9uR3JvdXAudmFsdWUuYW5zd2VyLFxyXG4gICAgICBJc1ZhbGlkOiBzdWJRdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlci52YWxpZFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb252ZXJ0VG9Gb3JtQ29udHJvbChlbGVtZW50OiBhbnkpIHtcclxuICAgIHJldHVybiBlbGVtZW50IGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicXVhc3Rpb25cIiBbYXR0ci5pZF09XCIncXVlc3Rpb25fJytmQ3RybHMuaWQudmFsdWVcIiBzdHlsZT1cIiBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1wiXHJcbltuZ0NsYXNzXT1cInsnZC1ub25lJzppc1Nob3cgIT0gdHJ1ZX1cIj5cclxuICA8aDMgY2xhc3M9XCJxdWFzdGlvbi10aXRsZSBcIj5cclxuICAgIHt7c3VydmV5UXVlc3Rpb24/LnF1ZXN0aW9uVGl0bGV9fVxyXG4gIDwvaDM+XHJcbiAgPGRpdiBjbGFzcz1cIm1hdHJpeC1xdWVzdGlvblwiIFtmb3JtR3JvdXBdPVwickZvcm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtdGFibGVcIiBmb3JtQXJyYXlOYW1lPVwic3ViUXVlc3Rpb25BcnJheVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWhlYWQtcm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1jb2xcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWNvbFwiICpuZ0Zvcj1cImxldCBhbnN3ZXJzIG9mIHN1cnZleVF1ZXN0aW9uPy5zdXJ2ZXlBbnN3ZXJzXCI+XHJcbiAgICAgICAgICB7e2Fuc3dlcnMuYW5zd2VyVGl0bGV9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtcm93XCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb25Hcm91cCBvZiBmQ3RybHMuc3ViUXVlc3Rpb25BcnJheS5jb250cm9scyA7bGV0IHN1YlF1ZXN0aW9uSW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydpbnZhbGlkLXF1ZXN0aW9uJzogcXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXIuaW52YWxpZH1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWNvbCBtYXRyaXgtc3ViLXF1YXN0aW9uXCI+XHJcbiAgICAgICAgICB7e3F1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25UaXRsZX19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1jb2xcIiAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIHN1cnZleVF1ZXN0aW9uPy5zdXJ2ZXlBbnN3ZXJzO2xldCBhbnN3ZXJJbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLXJhZGlvIGZvcm0tY2hlY2staW5saW5lXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuLW9wdGlvbl97e3N1YlF1ZXN0aW9uSW5kZXh9fVwiXHJcbiAgICAgICAgICAgICAgaWQ9XCJ7e2VsZW1JZH19X19yYWRpby1idG5fe3tzdWJRdWVzdGlvbkluZGV4fX1fe3thbnN3ZXJJbmRleH19XCIgKGNoYW5nZSk9XCJvbkNoYW5nZUFuc3dlcihxdWVzdGlvbkdyb3VwLnZhbHVlICxhbnN3ZXIpXCJcclxuICAgICAgICAgICAgICB2YWx1ZT1cInt7YW5zd2VyLmFuc3dlcklkfX1cIiAgW2NoZWNrZWRdPVwiYW5zd2VyLmFuc3dlcklkID09IHF1ZXN0aW9uR3JvdXAudmFsdWUuYW5zd2VyXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgZC1tZC1pbmxpbmUgZC1sZy1ub25lXCJcclxuICAgICAgICAgICAgICBmb3I9XCJ7e2VsZW1JZH19X19yYWRpby1idG5fe3tzdWJRdWVzdGlvbkluZGV4fX1fe3thbnN3ZXJJbmRleH19XCI+IHt7YW5zd2VyLmFuc3dlclRpdGxlfX08L2xhYmVsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -1,11 +1,12 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';
4
- import { debounceTime, distinctUntilChanged } from 'rxjs';
4
+ import { debounceTime, filter, map } from 'rxjs';
5
5
  import { v4 as guidGenerator } from 'uuid';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ng-stack/forms";
8
- import * as i2 from "@angular/common";
8
+ import * as i2 from "../../services/survey-lib.service";
9
+ import * as i3 from "@angular/common";
9
10
  export class QuestionRadioButtonTemplateComponent {
10
11
  get fCtrls() {
11
12
  return this.rForm.controls;
@@ -36,15 +37,9 @@ export class QuestionRadioButtonTemplateComponent {
36
37
  this.isShow = value.isVisable;
37
38
  this.isDisabled = value.isReadOnly;
38
39
  }
39
- set setAnswer(defaultAnswer) {
40
- if (defaultAnswer != null) {
41
- this.fCtrls.answer.setValue(defaultAnswer.AnswerId);
42
- const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == defaultAnswer.AnswerId);
43
- this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);
44
- }
45
- }
46
- constructor(_formBuilder) {
40
+ constructor(_formBuilder, _surveyLibService) {
47
41
  this._formBuilder = _formBuilder;
42
+ this._surveyLibService = _surveyLibService;
48
43
  this.elemId = guidGenerator();
49
44
  this.emitter = new EventEmitter();
50
45
  this.isShow = true;
@@ -60,7 +55,8 @@ export class QuestionRadioButtonTemplateComponent {
60
55
  });
61
56
  }
62
57
  ngOnInit() {
63
- this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value => {
58
+ this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {
59
+ console.log(value);
64
60
  const formValue = this.rForm.value;
65
61
  this.emitter.emit({
66
62
  QuestionId: formValue.id,
@@ -69,6 +65,15 @@ export class QuestionRadioButtonTemplateComponent {
69
65
  });
70
66
  });
71
67
  this.fCtrls.answer.setValue(null);
68
+ this._surveyLibService.surveyAnswersObsrv.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))
69
+ .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))
70
+ .subscribe(answer => {
71
+ this.fCtrls.answer.setValue(answer.AnswerId);
72
+ const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answer.AnswerId);
73
+ if (groupIndex > -1) {
74
+ this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);
75
+ }
76
+ });
72
77
  }
73
78
  onChangeAnswer(item) {
74
79
  this.fCtrls.answer.setValue(item.id);
@@ -76,13 +81,13 @@ export class QuestionRadioButtonTemplateComponent {
76
81
  convertToFormControl(element) {
77
82
  return element;
78
83
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionRadioButtonTemplateComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionRadioButtonTemplateComponent, selector: "lib-question-radio-button-template", inputs: { isShow: "isShow", isDisabled: "isDisabled", setQuestion: "setQuestion", setAnswer: "setAnswer" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of fCtrls.answerArray.controls;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"isDisabled\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionRadioButtonTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SurveyLibService }], target: i0.ɵɵFactoryTarget.Component }); }
85
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionRadioButtonTemplateComponent, selector: "lib-question-radio-button-template", inputs: { isShow: "isShow", isDisabled: "isDisabled", setQuestion: "setQuestion" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\r\n <h3 class=\"quastion-title \">\r\n {{fCtrls.title.value}}\r\n </h3>\r\n <div class=\"radio-button-quastion\">\r\n <div class=\"form-check form-check-radio form-check-inline\" \r\n *ngFor=\"let item of fCtrls.answerArray.controls;let i = index\">\r\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"isDisabled\"\r\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\r\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
81
86
  }
82
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionRadioButtonTemplateComponent, decorators: [{
83
88
  type: Component,
84
- args: [{ selector: 'lib-question-radio-button-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\n <h3 class=\"quastion-title \">\n {{fCtrls.title.value}}\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of fCtrls.answerArray.controls;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"isDisabled\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>\n" }]
85
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { emitter: [{
89
+ args: [{ selector: 'lib-question-radio-button-template', template: "<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\r\n <h3 class=\"quastion-title \">\r\n {{fCtrls.title.value}}\r\n </h3>\r\n <div class=\"radio-button-quastion\">\r\n <div class=\"form-check form-check-radio form-check-inline\" \r\n *ngFor=\"let item of fCtrls.answerArray.controls;let i = index\">\r\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"isDisabled\"\r\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\r\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
90
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SurveyLibService }]; }, propDecorators: { emitter: [{
86
91
  type: Output
87
92
  }], isShow: [{
88
93
  type: Input
@@ -90,7 +95,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
90
95
  type: Input
91
96
  }], setQuestion: [{
92
97
  type: Input
93
- }], setAnswer: [{
94
- type: Input
95
98
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUvcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUvcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBSTVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLEVBQUUsSUFBSSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFTM0MsTUFBTSxPQUFPLG9DQUFvQztJQUsvQyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFNRCxJQUFhLFdBQVcsQ0FBQyxLQUF3QjtRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNwQixF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QUssQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDaEIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFO2dCQUN4QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDakMsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQTJEO1FBQ3hFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQVk7UUFDL0IsT0FBTyxPQUFzQixDQUFDO0lBQ2hDLENBQUM7OEdBcEZVLG9DQUFvQztrR0FBcEMsb0NBQW9DLHVOQ25CakQsazFCQWFBOzsyRkRNYSxvQ0FBb0M7a0JBTGhELFNBQVM7K0JBQ0Usb0NBQW9DO2tHQWlCcEMsT0FBTztzQkFBaEIsTUFBTTtnQkFFRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDTyxXQUFXO3NCQUF2QixLQUFLO2dCQTJCTyxTQUFTO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQG5nLXN0YWNrL2Zvcm1zJztcbmltcG9ydCB7IFN1cnZleUFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1hbnN3ZXIuZHRvJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBBbnN3ZXJDaGlsZE9mUXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlRm9ybUludGVyZmFjZSxcbiAgIFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBRdWVzdGlvblRleHRUZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgYXMgZ3VpZEdlbmVyYXRvciB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGVsZW1JZCA9IGd1aWRHZW5lcmF0b3IoKSBhcyBzdHJpbmc7XG4gIHN1cnZleVF1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0bztcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlPjtcblxuICBnZXQgZkN0cmxzKCkge1xuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xuICB9XG5cbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XG4gICAgcmV0dXJuIFF1ZXN0aW9uVHlwZUVudW07XG4gIH1cblxuICBAT3V0cHV0KCkgZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8UXVlc3Rpb25BbnN3ZXJNb2RlbD4oKTtcblxuICBASW5wdXQoKSBpc1Nob3c6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCBzZXRRdWVzdGlvbih2YWx1ZTogU3VydmV5UXVlc3Rpb25EdG8pIHtcbiAgICB0aGlzLnN1cnZleVF1ZXN0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIGlkOiB2YWx1ZS5xdWVzdGlvbklkLFxuICAgICAgbmFtZTogdmFsdWUucXVlc3Rpb25OYW1lLFxuICAgICAgdGl0bGU6IHZhbHVlLnF1ZXN0aW9uVGl0bGUsXG4gICAgICB0eXBlSWQ6IHZhbHVlLnF1ZXN0aW9uVHlwZUlkLFxuICAgICAgZGVzY3JpcHRpb246IHZhbHVlLnF1ZXN0aW9uRGVzY3JpcHRpb25cbiAgICB9KTtcblxuICAgIHZhbHVlLnN1cnZleUFuc3dlcnMuZm9yRWFjaChzdXJ2ZXJ5QW5zd2VyID0+IHtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlckFycmF5LnB1c2godGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8QW5zd2VyQ2hpbGRPZlF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgaWQ6IFtzdXJ2ZXJ5QW5zd2VyLmFuc3dlcklkXSxcbiAgICAgICAgdGl0bGU6IFtzdXJ2ZXJ5QW5zd2VyLmFuc3dlclRpdGxlXSxcbiAgICAgICAgaXNTZWxlY3RlZDogW2ZhbHNlXVxuICAgICAgfSkpXG4gICAgfSlcblxuICAgIGlmICh2YWx1ZS5pc1JlcXVpcmVkID09IHRydWUpIHtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIHRoaXMuaXNTaG93ID0gdmFsdWUuaXNWaXNhYmxlO1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IHZhbHVlLmlzUmVhZE9ubHk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2V0QW5zd2VyKGRlZmF1bHRBbnN3ZXI6IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0bykge1xuICAgIGlmIChkZWZhdWx0QW5zd2VyICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShkZWZhdWx0QW5zd2VyLkFuc3dlcklkKTtcblxuICAgICAgY29uc3QgZ3JvdXBJbmRleCA9IHRoaXMuZkN0cmxzLmFuc3dlckFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHguaWQgPT0gZGVmYXVsdEFuc3dlci5BbnN3ZXJJZCk7XG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXJBcnJheS5hdChncm91cEluZGV4KS5jb250cm9scy5pc1NlbGVjdGVkLnNldFZhbHVlKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuckZvcm0gPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogW251bGxdLFxuICAgICAgbmFtZTogW251bGxdLFxuICAgICAgdGl0bGU6IFtudWxsXSxcbiAgICAgIHR5cGVJZDogW251bGxdLFxuICAgICAgZGVzY3JpcHRpb246IFtudWxsXSxcbiAgICAgIGFuc3dlcjogW251bGxdLFxuICAgICAgYW5zd2VyQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PEFuc3dlckNoaWxkT2ZRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlPihbXSlcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkN0cmxzLmFuc3dlci52YWx1ZUNoYW5nZXMucGlwZSgpLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnJGb3JtLnZhbHVlO1xuICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xuICAgICAgICBRdWVzdGlvbklkOiBmb3JtVmFsdWUuaWQsXG4gICAgICAgIElzVmFsaWQ6IHRoaXMuZkN0cmxzLmFuc3dlci52YWxpZCxcbiAgICAgICAgQW5zd2VyOiB2YWx1ZVxuICAgICAgfSlcbiAgICB9KTtcblxuICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShudWxsKTtcbiAgfVxuXG4gIG9uQ2hhbmdlQW5zd2VyKGl0ZW06IEFuc3dlckNoaWxkT2ZRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlKSB7XG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGl0ZW0uaWQpO1xuICB9XG5cbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2ZDdHJscy5pZC52YWx1ZVwiICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBmQ3RybHMuYW5zd2VyLmludmFsaWQgICwgJ2Qtbm9uZSc6aXNTaG93ICE9IHRydWV9XCI+XG4gICAgPGgzIGNsYXNzPVwicXVhc3Rpb24tdGl0bGUgXCI+XG4gICAgICAgIHt7ZkN0cmxzLnRpdGxlLnZhbHVlfX1cbiAgICA8L2gzPlxuICAgIDxkaXYgY2xhc3M9XCJyYWRpby1idXR0b24tcXVhc3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1yYWRpbyBmb3JtLWNoZWNrLWlubGluZVwiIFxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiAgZkN0cmxzLmFuc3dlckFycmF5LmNvbnRyb2xzO2xldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIiAoY2hhbmdlKT1cIm9uQ2hhbmdlQW5zd2VyKGl0ZW0udmFsdWUpXCIgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuLW9wdGlvblwiIGlkPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuX3t7aX19XCIgW2NoZWNrZWRdPVwiaXRlbS52YWx1ZS5pc1NlbGVjdGVkID09IHRydWU/IHRydWUgOiBudWxsXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuX3t7aX19XCI+e3tpdGVtLnZhbHVlLnRpdGxlfX08L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUvcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUvcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBTTVFLE9BQU8sRUFBRSxZQUFZLEVBQXdCLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLEVBQUUsSUFBSSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBVTNDLE1BQU0sT0FBTyxvQ0FBb0M7SUFLL0MsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBTUQsSUFBYSxXQUFXLENBQUMsS0FBd0I7UUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENB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QUFvQywrTEN0QmpELDQyQkFhQTs7MkZEU2Esb0NBQW9DO2tCQUxoRCxTQUFTOytCQUNFLG9DQUFvQztpSUFpQnBDLE9BQU87c0JBQWhCLE1BQU07Z0JBRUUsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlBbnN3ZXJEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktYW5zd2VyLmR0byc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHtcclxuICBBbnN3ZXJDaGlsZE9mUXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlRm9ybUludGVyZmFjZSxcclxuICBRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlXHJcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBRdWVzdGlvblRleHRUZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB2NCBhcyBndWlkR2VuZXJhdG9yIH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XHJcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xyXG5pbXBvcnQgeyBTdXJ2ZXlMaWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3VydmV5LWxpYi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXF1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZWxlbUlkID0gZ3VpZEdlbmVyYXRvcigpIGFzIHN0cmluZztcclxuICBzdXJ2ZXlRdWVzdGlvbjogU3VydmV5UXVlc3Rpb25EdG87XHJcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlPjtcclxuXHJcbiAgZ2V0IGZDdHJscygpIHtcclxuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XHJcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxRdWVzdGlvbkFuc3dlck1vZGVsPigpO1xyXG5cclxuICBASW5wdXQoKSBpc1Nob3c6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgc2V0UXVlc3Rpb24odmFsdWU6IFN1cnZleVF1ZXN0aW9uRHRvKSB7XHJcbiAgICB0aGlzLnN1cnZleVF1ZXN0aW9uID0gdmFsdWU7XHJcbiAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICBpZDogdmFsdWUucXVlc3Rpb25JZCxcclxuICAgICAgbmFtZTogdmFsdWUucXVlc3Rpb25OYW1lLFxyXG4gICAgICB0aXRsZTogdmFsdWUucXVlc3Rpb25UaXRsZSxcclxuICAgICAgdHlwZUlkOiB2YWx1ZS5xdWVzdGlvblR5cGVJZCxcclxuICAgICAgZGVzY3JpcHRpb246IHZhbHVlLnF1ZXN0aW9uRGVzY3JpcHRpb25cclxuICAgIH0pO1xyXG5cclxuICAgIHZhbHVlLnN1cnZleUFuc3dlcnMuZm9yRWFjaChzdXJ2ZXJ5QW5zd2VyID0+IHtcclxuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyQXJyYXkucHVzaCh0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxBbnN3ZXJDaGlsZE9mUXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xyXG4gICAgICAgIGlkOiBbc3VydmVyeUFuc3dlci5hbnN3ZXJJZF0sXHJcbiAgICAgICAgdGl0bGU6IFtzdXJ2ZXJ5QW5zd2VyLmFuc3dlclRpdGxlXSxcclxuICAgICAgICBpc1NlbGVjdGVkOiBbZmFsc2VdXHJcbiAgICAgIH0pKVxyXG4gICAgfSlcclxuXHJcbiAgICBpZiAodmFsdWUuaXNSZXF1aXJlZCA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1Nob3cgPSB2YWx1ZS5pc1Zpc2FibGU7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSB2YWx1ZS5pc1JlYWRPbmx5O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIF9zdXJ2ZXlMaWJTZXJ2aWNlOiBTdXJ2ZXlMaWJTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xyXG4gICAgICBpZDogW251bGxdLFxyXG4gICAgICBuYW1lOiBbbnVsbF0sXHJcbiAgICAgIHRpdGxlOiBbbnVsbF0sXHJcbiAgICAgIHR5cGVJZDogW251bGxdLFxyXG4gICAgICBkZXNjcmlwdGlvbjogW251bGxdLFxyXG4gICAgICBhbnN3ZXI6IFtudWxsXSxcclxuICAgICAgYW5zd2VyQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PEFuc3dlckNoaWxkT2ZRdWVzdGlvblJhZGlvQnV0dG9uVGVtcGxhdGVGb3JtSW50ZXJmYWNlPihbXSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZDdHJscy5hbnN3ZXIudmFsdWVDaGFuZ2VzLnBpcGUoKS5waXBlKGRlYm91bmNlVGltZSgyMDApKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyh2YWx1ZSk7XHJcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XHJcbiAgICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcclxuICAgICAgICBRdWVzdGlvbklkOiBmb3JtVmFsdWUuaWQsXHJcbiAgICAgICAgSXNWYWxpZDogdGhpcy5mQ3RybHMuYW5zd2VyLnZhbGlkLFxyXG4gICAgICAgIEFuc3dlcjogdmFsdWVcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShudWxsKTtcclxuXHJcbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnN1cnZleUFuc3dlcnNPYnNydi5waXBlKG1hcCh4ID0+IHguZGVmYXVsdEFuc3dlcnMuZmlsdGVyKHggPT4geC5RdWVzdGlvbklkID09IHRoaXMuZkN0cmxzLmlkLnZhbHVlKSkpXHJcbiAgICAgIC5waXBlKGZpbHRlcih4ID0+IHgubGVuZ3RoID4gMCkpLnBpcGUobWFwKHggPT4geC5hdCgwKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoYW5zd2VyID0+IHtcclxuICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuc2V0VmFsdWUoYW5zd2VyLkFuc3dlcklkKTtcclxuXHJcbiAgICAgICAgY29uc3QgZ3JvdXBJbmRleCA9IHRoaXMuZkN0cmxzLmFuc3dlckFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHguaWQgPT0gYW5zd2VyLkFuc3dlcklkKTtcclxuICAgICAgICBpZiAoZ3JvdXBJbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXJBcnJheS5hdChncm91cEluZGV4KS5jb250cm9scy5pc1NlbGVjdGVkLnNldFZhbHVlKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUFuc3dlcihpdGVtOiBBbnN3ZXJDaGlsZE9mUXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlRm9ybUludGVyZmFjZSkge1xyXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGl0ZW0uaWQpO1xyXG4gIH1cclxuXHJcbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XHJcbiAgICByZXR1cm4gZWxlbWVudCBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2F0dHIuaWRdPVwiJ3F1ZXN0aW9uXycrZkN0cmxzLmlkLnZhbHVlXCIgIFtuZ0NsYXNzXT1cInsnaW52YWxpZC1xdWVzdGlvbic6IGZDdHJscy5hbnN3ZXIuaW52YWxpZCAgLCAnZC1ub25lJzppc1Nob3cgIT0gdHJ1ZX1cIj5cclxuICAgIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIFwiPlxyXG4gICAgICAgIHt7ZkN0cmxzLnRpdGxlLnZhbHVlfX1cclxuICAgIDwvaDM+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmFkaW8tYnV0dG9uLXF1YXN0aW9uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1yYWRpbyBmb3JtLWNoZWNrLWlubGluZVwiIFxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mICBmQ3RybHMuYW5zd2VyQXJyYXkuY29udHJvbHM7bGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgKGNoYW5nZSk9XCJvbkNoYW5nZUFuc3dlcihpdGVtLnZhbHVlKVwiICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuLW9wdGlvblwiIGlkPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuX3t7aX19XCIgW2NoZWNrZWRdPVwiaXRlbS52YWx1ZS5pc1NlbGVjdGVkID09IHRydWU/IHRydWUgOiBudWxsXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJ7e2VsZW1JZH19X19yYWRpby1idG5fe3tpfX1cIj57e2l0ZW0udmFsdWUudGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,11 +1,12 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';
4
- import { debounceTime, distinctUntilChanged } from 'rxjs';
4
+ import { debounceTime, filter, map } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@ng-stack/forms";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "@angular/forms";
7
+ import * as i2 from "../../services/survey-lib.service";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@angular/forms";
9
10
  export class QuestionTextTemplateComponent {
10
11
  get fCtrls() {
11
12
  return this.rForm.controls;
@@ -34,13 +35,9 @@ export class QuestionTextTemplateComponent {
34
35
  set isDisabled(value) {
35
36
  this.toggleEnableAnswer(value);
36
37
  }
37
- set setAnswer(defaultAnswer) {
38
- if (defaultAnswer != null) {
39
- this.fCtrls.answer.setValue(defaultAnswer.AnswerText);
40
- }
41
- }
42
- constructor(_formBuilder) {
38
+ constructor(_formBuilder, _surveyLibService) {
43
39
  this._formBuilder = _formBuilder;
40
+ this._surveyLibService = _surveyLibService;
44
41
  this.emitter = new EventEmitter();
45
42
  this.isShow = true;
46
43
  this.rForm = this._formBuilder.group({
@@ -52,7 +49,9 @@ export class QuestionTextTemplateComponent {
52
49
  surveyAnswerId: [null],
53
50
  answer: [null]
54
51
  });
55
- this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(500), distinctUntilChanged()).subscribe(value => {
52
+ }
53
+ ngOnInit() {
54
+ this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {
56
55
  const formValue = this.rForm.value;
57
56
  this.emitter.emit({
58
57
  QuestionId: formValue.id,
@@ -61,8 +60,12 @@ export class QuestionTextTemplateComponent {
61
60
  SurveyAnswerId: formValue.surveyAnswerId
62
61
  });
63
62
  });
64
- }
65
- ngOnInit() {
63
+ this.fCtrls.answer.setValue(null);
64
+ this._surveyLibService.surveyAnswersObsrv.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))
65
+ .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))
66
+ .subscribe(answer => {
67
+ this.fCtrls.answer.setValue(answer.AnswerText);
68
+ });
66
69
  }
67
70
  convertToFormControl(element) {
68
71
  return element;
@@ -76,13 +79,13 @@ export class QuestionTextTemplateComponent {
76
79
  }
77
80
  this.fCtrls.answer.updateValueAndValidity();
78
81
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionTextTemplateComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: { isShow: "isShow", isTextArea: "isTextArea", setQuestion: "setQuestion", isDisabled: "isDisabled", setAnswer: "setAnswer" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<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>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionTextTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SurveyLibService }], target: i0.ɵɵFactoryTarget.Component }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: { isShow: "isShow", isTextArea: "isTextArea", setQuestion: "setQuestion", isDisabled: "isDisabled" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\r\n <h3 class=\"quastion-title \">\r\n {{fCtrls.title.value}}\r\n </h3>\r\n <div class=\"text-quastion\">\r\n <input class=\"form-control\" type=\"text\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\r\n [disabled]=\"isDisabled\" *ngIf=\"isTextArea == false else textAreaTemplate\">\r\n <ng-template #textAreaTemplate>\r\n <textarea class=\"form-control\" rows=\"5\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\r\n [disabled]=\"isDisabled\" ></textarea>\r\n </ng-template>\r\n </div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
81
84
  }
82
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionTextTemplateComponent, decorators: [{
83
86
  type: Component,
84
- args: [{ selector: 'lib-question-text-template', template: "<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>" }]
85
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { emitter: [{
87
+ args: [{ selector: 'lib-question-text-template', template: "<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\r\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':isShow != true}\">\r\n <h3 class=\"quastion-title \">\r\n {{fCtrls.title.value}}\r\n </h3>\r\n <div class=\"text-quastion\">\r\n <input class=\"form-control\" type=\"text\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\r\n [disabled]=\"isDisabled\" *ngIf=\"isTextArea == false else textAreaTemplate\">\r\n <ng-template #textAreaTemplate>\r\n <textarea class=\"form-control\" rows=\"5\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\r\n [disabled]=\"isDisabled\" ></textarea>\r\n </ng-template>\r\n </div>" }]
88
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SurveyLibService }]; }, propDecorators: { emitter: [{
86
89
  type: Output
87
90
  }], isShow: [{
88
91
  type: Input
@@ -92,7 +95,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
92
95
  type: Input
93
96
  }], isDisabled: [{
94
97
  type: Input
95
- }], setAnswer: [{
96
- type: Input
97
98
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFTMUQsTUFBTSxPQUFPLDZCQUE2QjtJQUl4QyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFNRCxJQUFhLFdBQVcsQ0FBQyxLQUF3QjtRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNwQixFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDcEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ3hCLEtBQUssRUFBRSxLQUFLLENBQUMsYUFBYTtZQUMxQixNQUFNLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDNUIsV0FB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LENBQUMsTUFBTSxFQUFFLENBQUE7U0FDNUI7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQzlDLENBQUM7OEdBckZVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHlPQ2YxQywydEJBWVU7OzJGREdHLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSw0QkFBNEI7a0dBZ0I1QixPQUFPO3NCQUFoQixNQUFNO2dCQUVFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBc0JPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wgYXMgRm9ybUNvbnRyb2xTdGFjaywgVmFsaWRhdG9yc01vZGVsIH0gZnJvbSAnQG5nLXN0YWNrL2Zvcm1zJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBRdWVzdGlvblRleHRUZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uVGV4dFRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICByRm9ybTogRm9ybUdyb3VwPFF1ZXN0aW9uVGV4dFRlbXBsYXRlRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgQE91dHB1dCgpIGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXN0aW9uQW5zd2VyTW9kZWw+KCk7XG5cbiAgQElucHV0KCkgaXNTaG93OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaXNUZXh0QXJlYTogYm9vbGVhbjtcbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xuICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBpZDogdmFsdWUucXVlc3Rpb25JZCxcbiAgICAgIG5hbWU6IHZhbHVlLnF1ZXN0aW9uTmFtZSxcbiAgICAgIHRpdGxlOiB2YWx1ZS5xdWVzdGlvblRpdGxlLFxuICAgICAgdHlwZUlkOiB2YWx1ZS5xdWVzdGlvblR5cGVJZCxcbiAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uXG4gICAgfSk7XG5cbiAgICBpZiAodmFsdWUuc3VydmV5QW5zd2Vyc1swXT8uYW5zd2VySWQgIT0gbnVsbCAmJiB2YWx1ZS5zdXJ2ZXlBbnN3ZXJzWzBdPy5hbnN3ZXJJZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZkN0cmxzLnN1cnZleUFuc3dlcklkLnNldFZhbHVlKHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uYW5zd2VySWQpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZS5pc1JlcXVpcmVkID09IHRydWUpIHtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIHRoaXMuaXNTaG93ID0gdmFsdWUuaXNWaXNhYmxlO1xuICAgIHRoaXMudG9nZ2xlRW5hYmxlQW5zd2VyKHZhbHVlLmlzUmVhZE9ubHkpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUVuYWJsZUFuc3dlcih2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2V0QW5zd2VyKGRlZmF1bHRBbnN3ZXI6IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0bykge1xuICAgIGlmIChkZWZhdWx0QW5zd2VyICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5zZXRWYWx1ZShkZWZhdWx0QW5zd2VyLkFuc3dlclRleHQpO1xuICAgIH1cbiAgfVxuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uVGV4dFRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xuICAgICAgaWQ6IFtudWxsXSxcbiAgICAgIG5hbWU6IFtudWxsXSxcbiAgICAgIHRpdGxlOiBbbnVsbF0sXG4gICAgICB0eXBlSWQ6IFtudWxsXSxcbiAgICAgIGRlc2NyaXB0aW9uOiBbbnVsbF0sXG4gICAgICBzdXJ2ZXlBbnN3ZXJJZDogW251bGxdLFxuICAgICAgYW5zd2VyOiBbbnVsbF1cbiAgICB9KTtcblxuICAgIHRoaXMuZkN0cmxzLmFuc3dlci52YWx1ZUNoYW5nZXMucGlwZSgpLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnJGb3JtLnZhbHVlO1xuICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xuICAgICAgICBRdWVzdGlvbklkOiBmb3JtVmFsdWUuaWQsXG4gICAgICAgIElzVmFsaWQ6IHRoaXMuZkN0cmxzLmFuc3dlci52YWxpZCxcbiAgICAgICAgQW5zd2VyOiB2YWx1ZSxcbiAgICAgICAgU3VydmV5QW5zd2VySWQ6IGZvcm1WYWx1ZS5zdXJ2ZXlBbnN3ZXJJZFxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUVuYWJsZUFuc3dlcihpc1JlYWRPbmx5OiBib29sZWFuKSB7XG4gICAgaWYgKGlzUmVhZE9ubHkgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmRpc2FibGUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuZW5hYmxlKClcbiAgICB9XG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicXVhc3Rpb25cIiBbZm9ybUdyb3VwXT1cInJGb3JtXCIgW2F0dHIuaWRdPVwiJ3F1ZXN0aW9uXycrZkN0cmxzLmlkLnZhbHVlXCJcbiAgICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBmQ3RybHMuYW5zd2VyLmludmFsaWQgLCAnZC1ub25lJzppc1Nob3cgIT0gdHJ1ZX1cIj5cbiAgICA8aDMgY2xhc3M9XCJxdWFzdGlvbi10aXRsZSBcIj5cbiAgICAgICAge3tmQ3RybHMudGl0bGUudmFsdWV9fVxuICAgIDwvaDM+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtcXVhc3Rpb25cIj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cInRleHRcIiBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woZkN0cmxzLmFuc3dlcilcIlxuICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiAgICpuZ0lmPVwiaXNUZXh0QXJlYSA9PSBmYWxzZSBlbHNlIHRleHRBcmVhVGVtcGxhdGVcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0QXJlYVRlbXBsYXRlPlxuICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcm93cz1cIjVcIiBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woZkN0cmxzLmFuc3dlcilcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiA+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBd0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBVXZFLE1BQU0sT0FBTyw2QkFBNkI7SUFJeEMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBTUQsSUFBYSxXQUFXLENBQUMsS0FBd0I7UUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDcEIsRUFBRSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQ3BCLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUN4QixLQUFLLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxjQUFj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QU0sR0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckQsU0FBUyxDQUFDLE1BQU0sQ0FBQSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsT0FBWTtRQUMvQixPQUFPLE9BQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFVBQW1CO1FBQzVDLElBQUksVUFBVSxJQUFJLElBQUksRUFBRTtZQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtTQUM3QjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUE7U0FDNUI7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQzlDLENBQUM7OEdBdEZVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLGlOQ2hCMUMsbXZCQVlVOzsyRkRJRyw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsNEJBQTRCO2lJQWdCNUIsT0FBTztzQkFBaEIsTUFBTTtnQkFFRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDTyxXQUFXO3NCQUF2QixLQUFLO2dCQXNCTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wgYXMgRm9ybUNvbnRyb2xTdGFjaywgVmFsaWRhdG9yc01vZGVsIH0gZnJvbSAnQG5nLXN0YWNrL2Zvcm1zJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcclxuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBRdWVzdGlvblRleHRUZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBEZWZhdWx0UXVlc3Rpb25BbnN3ZXJEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9kZWZhdWx0LXF1ZXN0aW9uLWFuc3dlcnMuZHRvJztcclxuaW1wb3J0IHsgU3VydmV5TGliU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N1cnZleS1saWIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi10ZXh0LXRlbXBsYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvblRleHRUZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25UZXh0VGVtcGxhdGVGb3JtSW50ZXJmYWNlPjtcclxuXHJcbiAgZ2V0IGZDdHJscygpIHtcclxuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XHJcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxRdWVzdGlvbkFuc3dlck1vZGVsPigpO1xyXG5cclxuICBASW5wdXQoKSBpc1Nob3c6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGlzVGV4dEFyZWE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xyXG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXHJcbiAgICAgIG5hbWU6IHZhbHVlLnF1ZXN0aW9uTmFtZSxcclxuICAgICAgdGl0bGU6IHZhbHVlLnF1ZXN0aW9uVGl0bGUsXHJcbiAgICAgIHR5cGVJZDogdmFsdWUucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodmFsdWUuc3VydmV5QW5zd2Vyc1swXT8uYW5zd2VySWQgIT0gbnVsbCAmJiB2YWx1ZS5zdXJ2ZXlBbnN3ZXJzWzBdPy5hbnN3ZXJJZCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5mQ3RybHMuc3VydmV5QW5zd2VySWQuc2V0VmFsdWUodmFsdWUuc3VydmV5QW5zd2Vyc1swXS5hbnN3ZXJJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbHVlLmlzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNTaG93ID0gdmFsdWUuaXNWaXNhYmxlO1xyXG4gICAgdGhpcy50b2dnbGVFbmFibGVBbnN3ZXIodmFsdWUuaXNSZWFkT25seSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgaXNEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy50b2dnbGVFbmFibGVBbnN3ZXIodmFsdWUpO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciAsIHByaXZhdGUgX3N1cnZleUxpYlNlcnZpY2U6U3VydmV5TGliU2VydmljZSkge1xyXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uVGV4dFRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xyXG4gICAgICBpZDogW251bGxdLFxyXG4gICAgICBuYW1lOiBbbnVsbF0sXHJcbiAgICAgIHRpdGxlOiBbbnVsbF0sXHJcbiAgICAgIHR5cGVJZDogW251bGxdLFxyXG4gICAgICBkZXNjcmlwdGlvbjogW251bGxdLFxyXG4gICAgICBzdXJ2ZXlBbnN3ZXJJZDogW251bGxdLFxyXG4gICAgICBhbnN3ZXI6IFtudWxsXVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZkN0cmxzLmFuc3dlci52YWx1ZUNoYW5nZXMucGlwZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XHJcbiAgICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcclxuICAgICAgICBRdWVzdGlvbklkOiBmb3JtVmFsdWUuaWQsXHJcbiAgICAgICAgSXNWYWxpZDogdGhpcy5mQ3RybHMuYW5zd2VyLnZhbGlkLFxyXG4gICAgICAgIEFuc3dlcjogdmFsdWUsXHJcbiAgICAgICAgU3VydmV5QW5zd2VySWQ6IGZvcm1WYWx1ZS5zdXJ2ZXlBbnN3ZXJJZFxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKG51bGwpO1xyXG5cclxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc3VydmV5QW5zd2Vyc09ic3J2LnBpcGUobWFwKHg9PiB4LmRlZmF1bHRBbnN3ZXJzLmZpbHRlcih4PT54LlF1ZXN0aW9uSWQgPT0gdGhpcy5mQ3RybHMuaWQudmFsdWUpKSlcclxuICAgIC5waXBlKGZpbHRlcih4PT54Lmxlbmd0aCAgPiAwKSkucGlwZShtYXAoeD0+IHguYXQoMCkpKVxyXG4gICAgLnN1YnNjcmliZShhbnN3ZXI9PntcclxuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGFuc3dlci5BbnN3ZXJUZXh0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XHJcbiAgICByZXR1cm4gZWxlbWVudCBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlRW5hYmxlQW5zd2VyKGlzUmVhZE9ubHk6IGJvb2xlYW4pIHtcclxuICAgIGlmIChpc1JlYWRPbmx5ID09IHRydWUpIHtcclxuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmRpc2FibGUoKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmVuYWJsZSgpXHJcbiAgICB9XHJcbiAgICB0aGlzLmZDdHJscy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2Zvcm1Hcm91cF09XCJyRm9ybVwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2ZDdHJscy5pZC52YWx1ZVwiXHJcbiAgICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBmQ3RybHMuYW5zd2VyLmludmFsaWQgLCAnZC1ub25lJzppc1Nob3cgIT0gdHJ1ZX1cIj5cclxuICAgIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIFwiPlxyXG4gICAgICAgIHt7ZkN0cmxzLnRpdGxlLnZhbHVlfX1cclxuICAgIDwvaDM+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1xdWFzdGlvblwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJ0ZXh0XCIgW2Zvcm1Db250cm9sXT1cImNvbnZlcnRUb0Zvcm1Db250cm9sKGZDdHJscy5hbnN3ZXIpXCJcclxuICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiAgICpuZ0lmPVwiaXNUZXh0QXJlYSA9PSBmYWxzZSBlbHNlIHRleHRBcmVhVGVtcGxhdGVcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3RleHRBcmVhVGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJvd3M9XCI1XCIgW2Zvcm1Db250cm9sXT1cImNvbnZlcnRUb0Zvcm1Db250cm9sKGZDdHJscy5hbnN3ZXIpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiA+PC90ZXh0YXJlYT5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+Il19