@piserve-tech/form-submission 1.0.5 → 1.0.7

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 (58) hide show
  1. package/README.md +24 -24
  2. package/esm2022/form-fields/check-box-fields/check-box-fields.component.mjs +24 -3
  3. package/esm2022/form-fields/date-time-fields/date-time-fields.component.mjs +50 -5
  4. package/esm2022/form-fields/drop-down-fields/drop-down-fields.component.mjs +21 -3
  5. package/esm2022/form-fields/file-picker-fields/file-picker-fields.component.mjs +3 -3
  6. package/esm2022/form-fields/location-fields/location-fields.component.mjs +3 -3
  7. package/esm2022/form-fields/mail-fields/mail-fields.component.mjs +23 -5
  8. package/esm2022/form-fields/mobile-fields/mobile-fields.component.mjs +10 -3
  9. package/esm2022/form-fields/number-fields/number-fields.component.mjs +32 -5
  10. package/esm2022/form-fields/password-fields/password-fields.component.mjs +111 -5
  11. package/esm2022/form-fields/radio-button-fields/radio-button-fields.component.mjs +18 -3
  12. package/esm2022/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.mjs +30 -4
  13. package/esm2022/form-fields/selection-matrix-fields/selection-matrix-fields.component.mjs +3 -3
  14. package/esm2022/form-fields/signature-fields/signature-fields.component.mjs +3 -3
  15. package/esm2022/form-fields/slider-fields/slider-fields.component.mjs +3 -3
  16. package/esm2022/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.mjs +3 -3
  17. package/esm2022/form-fields/text-area-fields/text-area-fields.component.mjs +33 -5
  18. package/esm2022/form-fields/text-fields/text-fields.component.mjs +44 -5
  19. package/esm2022/form-fields/toggle-switch-fields/toggle-switch-fields.component.mjs +6 -7
  20. package/esm2022/form-fields/url-fields/url-fields.component.mjs +13 -11
  21. package/esm2022/form-submission/submit-form/submit-form.component.mjs +3 -3
  22. package/esm2022/lib/form-submission.component.mjs +1 -1
  23. package/esm2022/lib/form-submission.module.mjs +1 -1
  24. package/esm2022/lib/form-submission.service.mjs +1 -1
  25. package/esm2022/models/appearance.model.mjs +1 -1
  26. package/esm2022/models/elementOptionAPI.model.mjs +1 -1
  27. package/esm2022/models/elementOptionAPIData.model.mjs +1 -1
  28. package/esm2022/models/elementOptionDB.model.mjs +1 -1
  29. package/esm2022/models/elementOptionDBCriteria.model.mjs +1 -1
  30. package/esm2022/models/formConfiguration.model.mjs +1 -1
  31. package/esm2022/models/formElement.model.mjs +1 -1
  32. package/esm2022/models/grid.model.mjs +1 -1
  33. package/esm2022/models/option.model.mjs +1 -1
  34. package/esm2022/models/page.model.mjs +1 -1
  35. package/esm2022/models/publicForm.model.mjs +1 -1
  36. package/esm2022/models/question.model.mjs +1 -1
  37. package/esm2022/models/row.model.mjs +1 -1
  38. package/esm2022/models/section.model.mjs +1 -1
  39. package/esm2022/models/validation.model.mjs +1 -1
  40. package/esm2022/public-api.mjs +1 -1
  41. package/esm2022/services/data.service.mjs +1 -1
  42. package/esm2022/services/mapper.service.mjs +3 -1
  43. package/fesm2022/piserve-tech-form-submission.mjs +419 -72
  44. package/fesm2022/piserve-tech-form-submission.mjs.map +1 -1
  45. package/form-fields/check-box-fields/check-box-fields.component.d.ts +6 -2
  46. package/form-fields/date-time-fields/date-time-fields.component.d.ts +14 -1
  47. package/form-fields/drop-down-fields/drop-down-fields.component.d.ts +5 -0
  48. package/form-fields/mail-fields/mail-fields.component.d.ts +8 -0
  49. package/form-fields/mobile-fields/mobile-fields.component.d.ts +3 -0
  50. package/form-fields/number-fields/number-fields.component.d.ts +10 -0
  51. package/form-fields/password-fields/password-fields.component.d.ts +22 -0
  52. package/form-fields/radio-button-fields/radio-button-fields.component.d.ts +5 -0
  53. package/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.d.ts +6 -0
  54. package/form-fields/text-area-fields/text-area-fields.component.d.ts +9 -0
  55. package/form-fields/text-fields/text-fields.component.d.ts +13 -0
  56. package/form-fields/url-fields/url-fields.component.d.ts +3 -0
  57. package/models/validation.model.d.ts +2 -0
  58. package/package.json +3 -2
package/README.md CHANGED
@@ -1,24 +1,24 @@
1
- # FormSubmission
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.1.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project formSubmission` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project formSubmission`.
8
- > Note: Don't forget to add `--project formSubmission` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build formSubmission` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build formSubmission`, go to the dist folder `cd dist/form-submission` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test formSubmission` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ # FormSubmission
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.1.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project formSubmission` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project formSubmission`.
8
+ > Note: Don't forget to add `--project formSubmission` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build formSubmission` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build formSubmission`, go to the dist folder `cd dist/form-submission` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test formSubmission` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -18,9 +18,15 @@ export class CheckBoxFieldsComponent {
18
18
  this.api = {};
19
19
  this.apiOptions = []; // Assuming you have a property to store API options
20
20
  this.selectedOptions = [];
21
+ this.validationFailed = false;
22
+ this.validationMessage = '';
21
23
  }
22
24
  ngOnInit() {
25
+ this.valueAssigned();
26
+ }
27
+ valueAssigned() {
23
28
  this.question = this.grid.question;
29
+ console.log('checkbox', this.question);
24
30
  this.count = this.grid.count;
25
31
  this.required = this.question.required;
26
32
  this.hint = this.question.hint;
@@ -70,11 +76,13 @@ export class CheckBoxFieldsComponent {
70
76
  // Add the selected option if it's not already in the list
71
77
  if (!this.selectedOptions.includes(option)) {
72
78
  this.selectedOptions.push(option);
79
+ this.isMinimumSelectionValid();
73
80
  }
74
81
  }
75
82
  else {
76
83
  // Remove the selected option
77
84
  this.selectedOptions = this.selectedOptions.filter((item) => item !== option);
85
+ this.isMinimumSelectionValid();
78
86
  }
79
87
  // Check if the number of selected options exceeds the maximum allowed
80
88
  if (this.maximumSelection !== undefined &&
@@ -86,6 +94,19 @@ export class CheckBoxFieldsComponent {
86
94
  // You can add a message to inform the user about the maximum selection limit if needed
87
95
  }
88
96
  }
97
+ isMinimumSelectionValid() {
98
+ this.validationFailed = false;
99
+ if (this.selectedOptions.length == 0 && this.required) {
100
+ this.validationFailed = true;
101
+ this.validationMessage = 'This is a required question';
102
+ }
103
+ else if (this.minimumSelection !== undefined) {
104
+ if (this.selectedOptions.length < this.minimumSelection) {
105
+ this.validationFailed = true;
106
+ this.validationMessage = `Minimum ${this.minimumSelection} selection(s) required.`;
107
+ }
108
+ }
109
+ }
89
110
  getOptions() {
90
111
  if (this.optionType === 'OPTION') {
91
112
  return this.customOptions;
@@ -106,12 +127,12 @@ export class CheckBoxFieldsComponent {
106
127
  !this.selectedOptions.includes(option));
107
128
  }
108
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckBoxFieldsComponent, deps: [{ token: i1.FormService }], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: { grid: "grid" }, ngImport: i0, template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>\n <div class=\"form-check\" *ngFor=\"let option of getOptions()\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [id]=\"option.value + 'Checkbox'\"\n [name]=\"option.value + 'Checkbox'\"\n [value]=\"option.value\"\n (change)=\"onCheckboxChange(option, $event)\"\n [disabled]=\"isOptionDisabled(option)\"\n />\n <label class=\"form-check-label\" [for]=\"option.value + 'Checkbox'\">{{\n option.value\n }}</label>\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"] }] }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: { grid: "grid" }, ngImport: i0, template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div class=\"form-check\" *ngFor=\"let option of getOptions()\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [id]=\"option.value + 'Checkbox'\"\n [name]=\"option.value + 'Checkbox'\"\n [value]=\"option.value\"\n (change)=\"onCheckboxChange(option, $event)\"\n [disabled]=\"isOptionDisabled(option)\"\n />\n <label class=\"form-check-label\" [for]=\"option.value + 'Checkbox'\">{{\n option.value\n }}</label>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}\n </div>\n</div>\n", styles: [".form-check-input,.form-check-label{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
110
131
  }
111
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckBoxFieldsComponent, decorators: [{
112
133
  type: Component,
113
- args: [{ selector: 'lib-check-box-fields', template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>\n <div class=\"form-check\" *ngFor=\"let option of getOptions()\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [id]=\"option.value + 'Checkbox'\"\n [name]=\"option.value + 'Checkbox'\"\n [value]=\"option.value\"\n (change)=\"onCheckboxChange(option, $event)\"\n [disabled]=\"isOptionDisabled(option)\"\n />\n <label class=\"form-check-label\" [for]=\"option.value + 'Checkbox'\">{{\n option.value\n }}</label>\n </div>\n</div>\n" }]
134
+ args: [{ selector: 'lib-check-box-fields', template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div class=\"form-check\" *ngFor=\"let option of getOptions()\">\n <input\n class=\"form-check-input\"\n type=\"checkbox\"\n [id]=\"option.value + 'Checkbox'\"\n [name]=\"option.value + 'Checkbox'\"\n [value]=\"option.value\"\n (change)=\"onCheckboxChange(option, $event)\"\n [disabled]=\"isOptionDisabled(option)\"\n />\n <label class=\"form-check-label\" [for]=\"option.value + 'Checkbox'\">{{\n option.value\n }}</label>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}\n </div>\n</div>\n", styles: [".form-check-input,.form-check-label{cursor:pointer}\n"] }]
114
135
  }], ctorParameters: function () { return [{ type: i1.FormService }]; }, propDecorators: { grid: [{
115
136
  type: Input
116
137
  }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2NoZWNrLWJveC1maWVsZHMvY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2NoZWNrLWJveC1maWVsZHMvY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFqRCxNQUFNLE9BQU8sdUJBQXVCO0lBaUJsQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWhCbkMsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBRzNCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixRQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ2QsZUFBVSxHQUFVLEVBQUUsQ0FBQyxDQUFDLG9EQUFvRDtRQUM1RSxvQkFBZSxHQUFVLEVBQUUsQ0FBQztJQUVtQixDQUFDO0lBRWhELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxD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OzRGRFRhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0I7a0dBS3ZCLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNoZWNrLWJveC1maWVsZHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrLWJveC1maWVsZHMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tCb3hGaWVsZHNDb21wb25lbnQge1xuICBASW5wdXQoKSBncmlkOiBhbnkgPSB7fTtcbiAgcXVlc3Rpb246IGFueSA9IHt9O1xuICBjb3VudDogbnVtYmVyID0gMDtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIHNlbGVjdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBtaW5pbXVtU2VsZWN0aW9uOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIG1heGltdW1TZWxlY3Rpb246IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgb3B0aW9uVHlwZTogc3RyaW5nID0gJyc7XG4gIGxvb2t1cFRhYmxlOiBhbnkgPSB7fTtcbiAgY3VzdG9tT3B0aW9uczogYW55W10gPSBbXTtcbiAgZGF0YWJhc2U6IGFueSA9IHt9O1xuICBhcGk6IGFueSA9IHt9O1xuICBhcGlPcHRpb25zOiBhbnlbXSA9IFtdOyAvLyBBc3N1bWluZyB5b3UgaGF2ZSBhIHByb3BlcnR5IHRvIHN0b3JlIEFQSSBvcHRpb25zXG4gIHNlbGVjdGVkT3B0aW9uczogYW55W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnF1ZXN0aW9uID0gdGhpcy5ncmlkLnF1ZXN0aW9uO1xuICAgIHRoaXMuY291bnQgPSB0aGlzLmdyaWQuY291bnQ7XG4gICAgdGhpcy5yZXF1aXJlZCA9IHRoaXMucXVlc3Rpb24ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbi5oaW50O1xuICAgIHRoaXMuc2VsZWN0aW9uVHlwZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5zZWxlY3Rpb25UeXBlO1xuICAgIHRoaXMubWluaW11bVNlbGVjdGlvbiA9XG4gICAgICB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24ubWluaW11bVNlbGVjdGlvbjtcbiAgICB0aGlzLm1heGltdW1TZWxlY3Rpb24gPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLm1heGltdW1TZWxlY3Rpb247XG4gICAgdGhpcy5vcHRpb25UeXBlID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24ub3B0aW9uVHlwZTtcblxuICAgIC8vIFNldCBvcHRpb25zIGJhc2VkIG9uIG9wdGlvblR5cGVcbiAgICBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnT1BUSU9OJykge1xuICAgICAgdGhpcy5jdXN0b21PcHRpb25zID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24uY3VzdG9tT3B0aW9ucztcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uVHlwZSA9PT0gJ0xPT0tVUCcpIHtcbiAgICAgIHRoaXMubG9va3VwVGFibGUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5sb29rdXBUYWJsZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uVHlwZSA9PT0gJ0RBVEFCQVNFJykge1xuICAgICAgdGhpcy5kYXRhYmFzZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLmRhdGFiYXNlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnQVBJJykge1xuICAgICAgdGhpcy5hcGkgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5hcGk7XG4gICAgICAvLyBBc3N1bWluZyB5b3UgaGF2ZSBmZXRjaGVkIG9wdGlvbnMgYXN5bmNocm9ub3VzbHkgYW5kIHN0b3JlZCB0aGVtIGluIGFwaU9wdGlvbnNcbiAgICAgIC8vIEZvciBzaW1wbGljaXR5LCBsZXQncyBhc3N1bWUgYXBpT3B0aW9ucyBpcyBhbiBhcnJheSBvZiBvYmplY3RzIHdpdGggdmFsdWVGaWVsZCBhbmQgbGFiZWxGaWVsZCBwcm9wZXJ0aWVzXG4gICAgICAvLyBSZXBsYWNlIHRoaXMgd2l0aCBhY3R1YWwgZmV0Y2hpbmcgbG9naWNcbiAgICAgIC8vIEV4YW1wbGU6XG4gICAgICAvLyB0aGlzLmZvcm1TZXJ2aWNlLmdldE9wdGlvbnNGcm9tQVBJKHRoaXMuYXBpLnVybCkuc3Vic2NyaWJlKG9wdGlvbnMgPT4gdGhpcy5hcGlPcHRpb25zID0gb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gSWYgc2VsZWN0aW9uVHlwZSBpcyAnU0lOR0xFJywgc2V0IG1pbmltdW1TZWxlY3Rpb24gYW5kIG1heGltdW1TZWxlY3Rpb24gdG8gMVxuICAgIGlmICh0aGlzLnNlbGVjdGlvblR5cGUgPT09ICdTSU5HTEUnKSB7XG4gICAgICB0aGlzLm1pbmltdW1TZWxlY3Rpb24gPSAxO1xuICAgICAgdGhpcy5tYXhpbXVtU2VsZWN0aW9uID0gMTtcbiAgICB9XG5cbiAgICAvLyBJZiBzZWxlY3Rpb25UeXBlIGlzICdNVUxUSVBMRScgYW5kIG1pblNlbGVjdGlvbiBhbmQgbWF4U2VsZWN0aW9uIGFyZSBub3Qgc3BlY2lmaWVkLCBzZXQgdGhlbSB0byB1bmRlZmluZWRcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICdNVUxUSVBMRScgJiZcbiAgICAgICF0aGlzLm1pbmltdW1TZWxlY3Rpb24gJiZcbiAgICAgICF0aGlzLm1heGltdW1TZWxlY3Rpb25cbiAgICApIHtcbiAgICAgIHRoaXMubWluaW11bVNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMubWF4aW11bVNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBvbkNoZWNrYm94Q2hhbmdlKG9wdGlvbjogYW55LCBldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ1NJTkdMRScpIHtcbiAgICAgIC8vIENsZWFyIHByZXZpb3VzbHkgc2VsZWN0ZWQgb3B0aW9ucyBmb3Igc2luZ2xlIHNlbGVjdGlvbiB0eXBlXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IFtdO1xuICAgIH1cblxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgLy8gQWRkIHRoZSBzZWxlY3RlZCBvcHRpb24gaWYgaXQncyBub3QgYWxyZWFkeSBpbiB0aGUgbGlzdFxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkT3B0aW9ucy5pbmNsdWRlcyhvcHRpb24pKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVtb3ZlIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMuZmlsdGVyKFxuICAgICAgICAoaXRlbSkgPT4gaXRlbSAhPT0gb3B0aW9uXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgb3B0aW9ucyBleGNlZWRzIHRoZSBtYXhpbXVtIGFsbG93ZWRcbiAgICBpZiAoXG4gICAgICB0aGlzLm1heGltdW1TZWxlY3Rpb24gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gdGhpcy5tYXhpbXVtU2VsZWN0aW9uXG4gICAgKSB7XG4gICAgICAvLyBJZiBleGNlZWRlZCwgdW5jaGVjayB0aGUgbGFzdCBzZWxlY3RlZCBvcHRpb25cbiAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAvLyBSZW1vdmUgdGhlIHVuY2hlY2tlZCBvcHRpb24gZnJvbSB0aGUgc2VsZWN0ZWRPcHRpb25zIGFycmF5XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmZpbHRlcihcbiAgICAgICAgKGl0ZW0pID0+IGl0ZW0gIT09IG9wdGlvblxuICAgICAgKTtcbiAgICAgIC8vIFlvdSBjYW4gYWRkIGEgbWVzc2FnZSB0byBpbmZvcm0gdGhlIHVzZXIgYWJvdXQgdGhlIG1heGltdW0gc2VsZWN0aW9uIGxpbWl0IGlmIG5lZWRlZFxuICAgIH1cbiAgfVxuXG4gIGdldE9wdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMub3B0aW9uVHlwZSA9PT0gJ09QVElPTicpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1c3RvbU9wdGlvbnM7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvblR5cGUgPT09ICdMT09LVVAnKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmxvb2t1cFRhYmxlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uVHlwZSA9PT0gJ0FQSScpIHtcbiAgICAgIHJldHVybiB0aGlzLmFwaU9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZUZpZWxkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIGlzT3B0aW9uRGlzYWJsZWQob3B0aW9uOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5tYXhpbXVtU2VsZWN0aW9uICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+PSB0aGlzLm1heGltdW1TZWxlY3Rpb24gJiZcbiAgICAgICF0aGlzLnNlbGVjdGVkT3B0aW9ucy5pbmNsdWRlcyhvcHRpb24pXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCInY29sLScgKyBjb3VudFwiIGNsYXNzPVwibWItNSBweC00XCI+XG4gIDxsYWJlbD57eyBxdWVzdGlvbi5xdWVzdGlvbiB9fTwvbGFiZWw+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBnZXRPcHRpb25zKClcIj5cbiAgICA8aW5wdXRcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgW2lkXT1cIm9wdGlvbi52YWx1ZSArICdDaGVja2JveCdcIlxuICAgICAgW25hbWVdPVwib3B0aW9uLnZhbHVlICsgJ0NoZWNrYm94J1wiXG4gICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZShvcHRpb24sICRldmVudClcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzT3B0aW9uRGlzYWJsZWQob3B0aW9uKVwiXG4gICAgLz5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgW2Zvcl09XCJvcHRpb24udmFsdWUgKyAnQ2hlY2tib3gnXCI+e3tcbiAgICAgIG9wdGlvbi52YWx1ZVxuICAgIH19PC9sYWJlbD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2NoZWNrLWJveC1maWVsZHMvY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2NoZWNrLWJveC1maWVsZHMvY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFqRCxNQUFNLE9BQU8sdUJBQXVCO0lBbUJsQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWxCbkMsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBRzNCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixRQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ2QsZUFBVSxHQUFVLEVBQUUsQ0FBQyxDQUFDLG9EQUFvRDtRQUM1RSxvQkFBZSxHQUFVLEVBQUUsQ0FBQztRQUM1QixxQkFBZ0IsR0FBUyxLQUFLLENBQUM7UUFDL0Isc0JBQWlCLEdBQVEsRUFBRSxDQUFDO0lBRW1CLENBQUM7SUFFaEQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJ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QyxpQkFBaUIsR0FBQyxXQUFXLElBQUksQ0FBQyxnQkFBZ0IsMEJBQTBCLENBQUE7YUFFbEY7U0FDRjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDM0I7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO1lBQ3ZDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDeEM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssS0FBSyxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMzRDthQUFNO1lBQ0wsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFXO1FBQzFCLE9BQU8sQ0FDTCxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUztZQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3BELENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ3ZDLENBQUM7SUFDSixDQUFDOytHQTVJVSx1QkFBdUI7bUdBQXZCLHVCQUF1QixzRkNScEMsa2xEQTJCQTs7NEZEbkJhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0I7a0dBS3ZCLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNoZWNrLWJveC1maWVsZHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2stYm94LWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrLWJveC1maWVsZHMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tCb3hGaWVsZHNDb21wb25lbnQge1xuICBASW5wdXQoKSBncmlkOiBhbnkgPSB7fTtcbiAgcXVlc3Rpb246IGFueSA9IHt9O1xuICBjb3VudDogbnVtYmVyID0gMDtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIHNlbGVjdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBtaW5pbXVtU2VsZWN0aW9uPzogbnVtYmVyIDtcbiAgbWF4aW11bVNlbGVjdGlvbj86IG51bWJlcjtcbiAgb3B0aW9uVHlwZTogc3RyaW5nID0gJyc7XG4gIGxvb2t1cFRhYmxlOiBhbnkgPSB7fTtcbiAgY3VzdG9tT3B0aW9uczogYW55W10gPSBbXTtcbiAgZGF0YWJhc2U6IGFueSA9IHt9O1xuICBhcGk6IGFueSA9IHt9O1xuICBhcGlPcHRpb25zOiBhbnlbXSA9IFtdOyAvLyBBc3N1bWluZyB5b3UgaGF2ZSBhIHByb3BlcnR5IHRvIHN0b3JlIEFQSSBvcHRpb25zXG4gIHNlbGVjdGVkT3B0aW9uczogYW55W10gPSBbXTtcbiAgdmFsaWRhdGlvbkZhaWxlZDpib29sZWFuPWZhbHNlO1xuICB2YWxpZGF0aW9uTWVzc2FnZTpzdHJpbmc9Jyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52YWx1ZUFzc2lnbmVkKCk7XG4gIH1cblxuICB2YWx1ZUFzc2lnbmVkKCl7XG4gICAgdGhpcy5xdWVzdGlvbiA9IHRoaXMuZ3JpZC5xdWVzdGlvbjtcbiAgICBjb25zb2xlLmxvZygnY2hlY2tib3gnLHRoaXMucXVlc3Rpb24pO1xuICAgIFxuICAgIHRoaXMuY291bnQgPSB0aGlzLmdyaWQuY291bnQ7XG4gICAgdGhpcy5yZXF1aXJlZCA9IHRoaXMucXVlc3Rpb24ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbi5oaW50O1xuICAgIHRoaXMuc2VsZWN0aW9uVHlwZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5zZWxlY3Rpb25UeXBlO1xuICAgIHRoaXMubWluaW11bVNlbGVjdGlvbiA9XG4gICAgICB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24ubWluaW11bVNlbGVjdGlvbjtcbiAgICB0aGlzLm1heGltdW1TZWxlY3Rpb24gPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLm1heGltdW1TZWxlY3Rpb247XG4gICAgdGhpcy5vcHRpb25UeXBlID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24ub3B0aW9uVHlwZTtcblxuICAgIC8vIFNldCBvcHRpb25zIGJhc2VkIG9uIG9wdGlvblR5cGVcbiAgICBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnT1BUSU9OJykge1xuICAgICAgdGhpcy5jdXN0b21PcHRpb25zID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24uY3VzdG9tT3B0aW9ucztcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uVHlwZSA9PT0gJ0xPT0tVUCcpIHtcbiAgICAgIHRoaXMubG9va3VwVGFibGUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5sb29rdXBUYWJsZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uVHlwZSA9PT0gJ0RBVEFCQVNFJykge1xuICAgICAgdGhpcy5kYXRhYmFzZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLmRhdGFiYXNlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnQVBJJykge1xuICAgICAgdGhpcy5hcGkgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5hcGk7XG4gICAgICAvLyBBc3N1bWluZyB5b3UgaGF2ZSBmZXRjaGVkIG9wdGlvbnMgYXN5bmNocm9ub3VzbHkgYW5kIHN0b3JlZCB0aGVtIGluIGFwaU9wdGlvbnNcbiAgICAgIC8vIEZvciBzaW1wbGljaXR5LCBsZXQncyBhc3N1bWUgYXBpT3B0aW9ucyBpcyBhbiBhcnJheSBvZiBvYmplY3RzIHdpdGggdmFsdWVGaWVsZCBhbmQgbGFiZWxGaWVsZCBwcm9wZXJ0aWVzXG4gICAgICAvLyBSZXBsYWNlIHRoaXMgd2l0aCBhY3R1YWwgZmV0Y2hpbmcgbG9naWNcbiAgICAgIC8vIEV4YW1wbGU6XG4gICAgICAvLyB0aGlzLmZvcm1TZXJ2aWNlLmdldE9wdGlvbnNGcm9tQVBJKHRoaXMuYXBpLnVybCkuc3Vic2NyaWJlKG9wdGlvbnMgPT4gdGhpcy5hcGlPcHRpb25zID0gb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gSWYgc2VsZWN0aW9uVHlwZSBpcyAnU0lOR0xFJywgc2V0IG1pbmltdW1TZWxlY3Rpb24gYW5kIG1heGltdW1TZWxlY3Rpb24gdG8gMVxuICAgIGlmICh0aGlzLnNlbGVjdGlvblR5cGUgPT09ICdTSU5HTEUnKSB7XG4gICAgICB0aGlzLm1pbmltdW1TZWxlY3Rpb24gPSAxO1xuICAgICAgdGhpcy5tYXhpbXVtU2VsZWN0aW9uID0gMTtcbiAgICB9XG5cbiAgICAvLyBJZiBzZWxlY3Rpb25UeXBlIGlzICdNVUxUSVBMRScgYW5kIG1pblNlbGVjdGlvbiBhbmQgbWF4U2VsZWN0aW9uIGFyZSBub3Qgc3BlY2lmaWVkLCBzZXQgdGhlbSB0byB1bmRlZmluZWRcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICdNVUxUSVBMRScgJiZcbiAgICAgICF0aGlzLm1pbmltdW1TZWxlY3Rpb24gJiZcbiAgICAgICF0aGlzLm1heGltdW1TZWxlY3Rpb25cbiAgICApIHtcbiAgICAgIHRoaXMubWluaW11bVNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMubWF4aW11bVNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBvbkNoZWNrYm94Q2hhbmdlKG9wdGlvbjogYW55LCBldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ1NJTkdMRScpIHtcbiAgICAgIC8vIENsZWFyIHByZXZpb3VzbHkgc2VsZWN0ZWQgb3B0aW9ucyBmb3Igc2luZ2xlIHNlbGVjdGlvbiB0eXBlXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IFtdO1xuICAgIH1cblxuICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgLy8gQWRkIHRoZSBzZWxlY3RlZCBvcHRpb24gaWYgaXQncyBub3QgYWxyZWFkeSBpbiB0aGUgbGlzdFxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkT3B0aW9ucy5pbmNsdWRlcyhvcHRpb24pKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICAgICAgdGhpcy5pc01pbmltdW1TZWxlY3Rpb25WYWxpZCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZW1vdmUgdGhlIHNlbGVjdGVkIG9wdGlvblxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maWx0ZXIoXG4gICAgICAgIChpdGVtKSA9PiBpdGVtICE9PSBvcHRpb25cbiAgICAgICk7XG4gICAgICB0aGlzLmlzTWluaW11bVNlbGVjdGlvblZhbGlkKCk7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBvcHRpb25zIGV4Y2VlZHMgdGhlIG1heGltdW0gYWxsb3dlZFxuICAgIGlmIChcbiAgICAgIHRoaXMubWF4aW11bVNlbGVjdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiB0aGlzLm1heGltdW1TZWxlY3Rpb25cbiAgICApIHtcbiAgICAgIC8vIElmIGV4Y2VlZGVkLCB1bmNoZWNrIHRoZSBsYXN0IHNlbGVjdGVkIG9wdGlvblxuICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgIC8vIFJlbW92ZSB0aGUgdW5jaGVja2VkIG9wdGlvbiBmcm9tIHRoZSBzZWxlY3RlZE9wdGlvbnMgYXJyYXlcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMuZmlsdGVyKFxuICAgICAgICAoaXRlbSkgPT4gaXRlbSAhPT0gb3B0aW9uXG4gICAgICApO1xuICAgICAgLy8gWW91IGNhbiBhZGQgYSBtZXNzYWdlIHRvIGluZm9ybSB0aGUgdXNlciBhYm91dCB0aGUgbWF4aW11bSBzZWxlY3Rpb24gbGltaXQgaWYgbmVlZGVkXG4gICAgfVxuICB9XG5cbiAgaXNNaW5pbXVtU2VsZWN0aW9uVmFsaWQoKSB7XG4gICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkPWZhbHNlO1xuICAgIGlmKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aD09MCAmJiB0aGlzLnJlcXVpcmVkKXtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZD10cnVlO1xuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZT0nVGhpcyBpcyBhIHJlcXVpcmVkIHF1ZXN0aW9uJ1xuICAgIH1cbiAgICBlbHNlIGlmICh0aGlzLm1pbmltdW1TZWxlY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYodGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoIDwgdGhpcy5taW5pbXVtU2VsZWN0aW9uKXtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkPXRydWU7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YE1pbmltdW0gJHt0aGlzLm1pbmltdW1TZWxlY3Rpb259ICBzZWxlY3Rpb24ocykgcmVxdWlyZWQuYFxuXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0T3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnT1BUSU9OJykge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tT3B0aW9ucztcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uVHlwZSA9PT0gJ0xPT0tVUCcpIHtcbiAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMubG9va3VwVGFibGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnQVBJJykge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpT3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlRmllbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgaXNPcHRpb25EaXNhYmxlZChvcHRpb246IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLm1heGltdW1TZWxlY3Rpb24gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID49IHRoaXMubWF4aW11bVNlbGVjdGlvbiAmJlxuICAgICAgIXRoaXMuc2VsZWN0ZWRPcHRpb25zLmluY2x1ZGVzKG9wdGlvbilcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cIidjb2wtJyArIGNvdW50XCIgY2xhc3M9XCJtYi01IHB4LTRcIj5cbiAgPGxhYmVsPnt7IHF1ZXN0aW9uLnF1ZXN0aW9uIH19PC9sYWJlbD4mbmJzcDtcbiAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZ2V0T3B0aW9ucygpXCI+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgIFtpZF09XCJvcHRpb24udmFsdWUgKyAnQ2hlY2tib3gnXCJcbiAgICAgIFtuYW1lXT1cIm9wdGlvbi52YWx1ZSArICdDaGVja2JveCdcIlxuICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2Uob3B0aW9uLCAkZXZlbnQpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJpc09wdGlvbkRpc2FibGVkKG9wdGlvbilcIlxuICAgIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIFtmb3JdPVwib3B0aW9uLnZhbHVlICsgJ0NoZWNrYm94J1wiPnt7XG4gICAgICBvcHRpb24udmFsdWVcbiAgICB9fTwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwidmFsaWRhdGlvbkZhaWxlZFwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cbiAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTIuMDAxIDE2Ljc1QzEyLjEzOSAxNi43NSAxMi4yNTEgMTYuNjM4IDEyLjI1IDE2LjVDMTIuMjUgMTYuMzYyIDEyLjEzOCAxNi4yNSAxMiAxNi4yNUMxMS44NjIgMTYuMjUgMTEuNzUgMTYuMzYyIDExLjc1IDE2LjVDMTEuNzUgMTYuNjM4IDExLjg2MiAxNi43NSAxMi4wMDEgMTYuNzVcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMiAyMUM3LjAyOSAyMSAzIDE2Ljk3MSAzIDEyQzMgNy4wMjkgNy4wMjkgMyAxMiAzQzE2Ljk3MSAzIDIxIDcuMDI5IDIxIDEyQzIxIDE2Ljk3MSAxNi45NzEgMjEgMTIgMjFaXCIgZmlsbD1cIiNGRjAwMDBcIiBzdHJva2U9XCIjRkYwMDAwXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgPHBhdGggZD1cIk0xMiAxMi43NUwxMiA3Ljc1XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjE2XCIgcj1cIjFcIiBmaWxsPVwid2hpdGVcIi8+XG4gICAgICA8L3N2Zz5cbiAgICB7e3ZhbGlkYXRpb25NZXNzYWdlfX1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,7 +1,8 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
- import * as i2 from "ngx-bootstrap/datepicker";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "ngx-bootstrap/datepicker";
5
6
  export class DateTimeFieldsComponent {
6
7
  constructor() {
7
8
  this.bsConfig = {
@@ -17,9 +18,17 @@ export class DateTimeFieldsComponent {
17
18
  this.minDateOption = '';
18
19
  this.maxDateOption = '';
19
20
  this.todayDate = new Date(); // Current date
21
+ this.selectedDate = '';
22
+ this.selectedTime = '';
23
+ this.selectedDateRange = '';
24
+ this.validationMessage = '';
20
25
  }
21
26
  ngOnInit() {
27
+ this.valueAssigned();
28
+ }
29
+ valueAssigned() {
22
30
  this.question = this.grid.question;
31
+ console.log('date time', this.question);
23
32
  this.count = this.grid.count;
24
33
  this.required = this.question.required;
25
34
  this.hint = this.question.hint;
@@ -48,13 +57,49 @@ export class DateTimeFieldsComponent {
48
57
  }
49
58
  return undefined; // Return undefined if no valid option
50
59
  }
60
+ openDatePicker() {
61
+ this.datepicker.toggle();
62
+ }
63
+ openDateRangePicker() {
64
+ this.dateRangePicker.toggle();
65
+ }
66
+ validateDateOnly() {
67
+ this.validationFailed = false;
68
+ this.validationMessage = '';
69
+ if (this.required && !this.selectedDate) {
70
+ this.validationFailed = true;
71
+ this.validationMessage = 'This is a required question';
72
+ }
73
+ }
74
+ validateTimeOnly() {
75
+ this.validationFailed = false;
76
+ this.validationMessage = '';
77
+ if (this.required && !this.selectedTime) {
78
+ this.validationFailed = true;
79
+ this.validationMessage = 'This is a required question';
80
+ }
81
+ }
82
+ validateDateRange() {
83
+ this.validationFailed = false;
84
+ this.validationMessage = '';
85
+ if (this.required && !this.selectedDateRange) {
86
+ this.validationFailed = true;
87
+ this.validationMessage = 'This is a required question';
88
+ }
89
+ }
51
90
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimeFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateTimeFieldsComponent, selector: "lib-date-time-fields", inputs: { grid: "grid" }, ngImport: i0, template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>\n <ng-container *ngIf=\"dateType === 'DATE_ONLY'\">\n <!-- Date only picker -->\n <input\n class=\"form-control height\"\n #datepickerYMD=\"bsDatepicker\"\n bsDatepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{ dateInputFormat: format }\"\n />\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'TIME_ONLY'\">\n <!-- Time picker -->\n <input type=\"time\" class=\"form-control height\" />\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_AND_TIME'\">\n <!-- Date and time picker -->\n <input\n type=\"text\"\n class=\"form-control height\"\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n withTimepicker: true,\n keepDatepickerOpened: true,\n rangeInputFormat: format,\n dateInputFormat: format\n }\"\n bsDatepicker\n />\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_RANGE'\">\n <!-- Date range picker -->\n <input\n type=\"text\"\n class=\"form-control height\"\n #daterangepicker=\"bsDaterangepicker\"\n bsDaterangepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n rangeInputFormat: format,\n dateInputFormat: format,\n showWeekNumbers: false\n }\"\n />\n </ng-container>\n</div>\n", styles: [".height{height:44px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i2.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: i2.BsDaterangepickerDirective, selector: "[bsDaterangepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isOpen", "bsValue", "bsConfig", "isDisabled", "minDate", "maxDate", "dateCustomClasses", "daysDisabled", "datesDisabled", "datesEnabled"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDaterangepicker"] }, { kind: "directive", type: i2.BsDaterangepickerInputDirective, selector: "input[bsDaterangepicker]" }] }); }
91
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateTimeFieldsComponent, selector: "lib-date-time-fields", inputs: { grid: "grid" }, viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["datepickerYMD"], descendants: true }, { propertyName: "dateRangePicker", first: true, predicate: ["daterangepicker"], descendants: true }], ngImport: i0, template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <ng-container *ngIf=\"dateType === 'DATE_ONLY'\">\n <!-- Date only picker -->\n <div class=\"input-container\">\n <input\n class=\"form-control height\"\n #datepickerYMD=\"bsDatepicker\"\n bsDatepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{ dateInputFormat: format }\"\n [(ngModel)]=\"selectedDate\"\n (blur)=\"validateDateOnly()\"\n (ngModelChange)=\"validateDateOnly()\"\n />\n <i class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\" (click)=\"openDatePicker()\"></i>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}</div>\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'TIME_ONLY'\">\n <!-- Time picker -->\n <input type=\"time\" class=\"form-control height\"\n (blur)=\"validateTimeOnly()\" \n [(ngModel)]=\"selectedTime\"\n (ngModelChange)=\"validateTimeOnly()\"/>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}</div>\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_AND_TIME'\">\n <!-- Date and time picker -->\n <input\n type=\"text\"\n class=\"form-control height\"\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n withTimepicker: true,\n keepDatepickerOpened: true,\n rangeInputFormat: format,\n dateInputFormat: format\n }\"\n bsDatepicker\n />\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_RANGE'\">\n <!-- Date range picker -->\n <div class=\"input-container\">\n <input\n type=\"text\"\n class=\"form-control height\"\n #daterangepicker=\"bsDaterangepicker\"\n bsDaterangepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n rangeInputFormat: format,\n dateInputFormat: format,\n showWeekNumbers: false\n }\"\n [(ngModel)]=\"selectedDateRange\"\n (blur)=\"validateDateRange()\"\n (ngModelChange)=\"validateDateRange()\"\n />\n <i class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\" (click)=\"openDateRangePicker()\"></i>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}</div>\n </ng-container>\n</div>\n", styles: [".height{height:44px}.input-container{position:relative}.input-container .form-control{padding-right:30px}.input-container .calendar-icon{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i3.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: i3.BsDaterangepickerDirective, selector: "[bsDaterangepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isOpen", "bsValue", "bsConfig", "isDisabled", "minDate", "maxDate", "dateCustomClasses", "daysDisabled", "datesDisabled", "datesEnabled"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDaterangepicker"] }, { kind: "directive", type: i3.BsDaterangepickerInputDirective, selector: "input[bsDaterangepicker]" }] }); }
53
92
  }
54
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateTimeFieldsComponent, decorators: [{
55
94
  type: Component,
56
- args: [{ selector: 'lib-date-time-fields', template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>\n <ng-container *ngIf=\"dateType === 'DATE_ONLY'\">\n <!-- Date only picker -->\n <input\n class=\"form-control height\"\n #datepickerYMD=\"bsDatepicker\"\n bsDatepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{ dateInputFormat: format }\"\n />\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'TIME_ONLY'\">\n <!-- Time picker -->\n <input type=\"time\" class=\"form-control height\" />\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_AND_TIME'\">\n <!-- Date and time picker -->\n <input\n type=\"text\"\n class=\"form-control height\"\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n withTimepicker: true,\n keepDatepickerOpened: true,\n rangeInputFormat: format,\n dateInputFormat: format\n }\"\n bsDatepicker\n />\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_RANGE'\">\n <!-- Date range picker -->\n <input\n type=\"text\"\n class=\"form-control height\"\n #daterangepicker=\"bsDaterangepicker\"\n bsDaterangepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n rangeInputFormat: format,\n dateInputFormat: format,\n showWeekNumbers: false\n }\"\n />\n </ng-container>\n</div>\n", styles: [".height{height:44px}\n"] }]
95
+ args: [{ selector: 'lib-date-time-fields', template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <ng-container *ngIf=\"dateType === 'DATE_ONLY'\">\n <!-- Date only picker -->\n <div class=\"input-container\">\n <input\n class=\"form-control height\"\n #datepickerYMD=\"bsDatepicker\"\n bsDatepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{ dateInputFormat: format }\"\n [(ngModel)]=\"selectedDate\"\n (blur)=\"validateDateOnly()\"\n (ngModelChange)=\"validateDateOnly()\"\n />\n <i class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\" (click)=\"openDatePicker()\"></i>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}</div>\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'TIME_ONLY'\">\n <!-- Time picker -->\n <input type=\"time\" class=\"form-control height\"\n (blur)=\"validateTimeOnly()\" \n [(ngModel)]=\"selectedTime\"\n (ngModelChange)=\"validateTimeOnly()\"/>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}</div>\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_AND_TIME'\">\n <!-- Date and time picker -->\n <input\n type=\"text\"\n class=\"form-control height\"\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n withTimepicker: true,\n keepDatepickerOpened: true,\n rangeInputFormat: format,\n dateInputFormat: format\n }\"\n bsDatepicker\n />\n </ng-container>\n\n <ng-container *ngIf=\"dateType === 'DATE_RANGE'\">\n <!-- Date range picker -->\n <div class=\"input-container\">\n <input\n type=\"text\"\n class=\"form-control height\"\n #daterangepicker=\"bsDaterangepicker\"\n bsDaterangepicker\n [minDate]=\"minDate ? minDate : todayDate\"\n [maxDate]=\"maxDate ? maxDate : todayDate\"\n [bsConfig]=\"{\n rangeInputFormat: format,\n dateInputFormat: format,\n showWeekNumbers: false\n }\"\n [(ngModel)]=\"selectedDateRange\"\n (blur)=\"validateDateRange()\"\n (ngModelChange)=\"validateDateRange()\"\n />\n <i class=\"fa-solid fa-calendar-days calendar-icon text-primary fs-5\" (click)=\"openDateRangePicker()\"></i>\n </div>\n <div *ngIf=\"validationFailed\" class=\"text-danger mt-2\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}</div>\n </ng-container>\n</div>\n", styles: [".height{height:44px}.input-container{position:relative}.input-container .form-control{padding-right:30px}.input-container .calendar-icon{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}\n"] }]
57
96
  }], propDecorators: { grid: [{
58
97
  type: Input
98
+ }], datepicker: [{
99
+ type: ViewChild,
100
+ args: ['datepickerYMD']
101
+ }], dateRangePicker: [{
102
+ type: ViewChild,
103
+ args: ['daterangepicker']
59
104
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2RhdGUtdGltZS1maWVsZHMvZGF0ZS10aW1lLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2RhdGUtdGltZS1maWVsZHMvZGF0ZS10aW1lLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVVqRCxNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBTUUsYUFBUSxHQUFnQztZQUN0QyxjQUFjLEVBQUUsV0FBVyxFQUFFLGtEQUFrRDtTQUNoRixDQUFDO1FBRU8sU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsV0FBTSxHQUFXLFlBQVksQ0FBQztRQUM5QixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUUzQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUUzQixjQUFTLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLGVBQWU7S0FpQzlDO0lBL0JDLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRW5DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUM5RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDMUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUN4RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxPQUFPLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3ZCO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFFBQVEsRUFBRTtZQUMxQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvRDtRQUNELE9BQU8sU0FBUyxDQUFDLENBQUMsc0NBQXNDO0lBQzFELENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE9BQU8sRUFBRTtZQUNsQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDdkI7YUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQzFDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxTQUFTLENBQUMsQ0FBQyxzQ0FBc0M7SUFDMUQsQ0FBQzsrR0FoRFUsdUJBQXVCO21HQUF2Qix1QkFBdUIsc0ZDVnBDLDBxREFxREE7OzRGRDNDYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usc0JBQXNCOzhCQVN2QixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCc0RhdGVwaWNrZXJDb25maWcsXG59IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kYXRlLXRpbWUtZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtdGltZS1maWVsZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXRpbWUtZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVUaW1lRmllbGRzQ29tcG9uZW50IHtcbiAgYnNDb25maWc6IFBhcnRpYWw8QnNEYXRlcGlja2VyQ29uZmlnPiA9IHtcbiAgICBjb250YWluZXJDbGFzczogJ3RoZW1lLXJlZCcsIC8vIFNldCB0aGUgY29udGFpbmVyIGNsYXNzIHRvIGFwcGx5IHRoZSBncmV5IHRoZW1lXG4gIH07XG5cbiAgQElucHV0KCkgZ3JpZDogYW55ID0ge307XG4gIHF1ZXN0aW9uOiBhbnkgPSB7fTtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIGNvdW50OiBudW1iZXIgPSAwO1xuICBkYXRlVHlwZTogc3RyaW5nID0gJyc7XG4gIGZvcm1hdDogc3RyaW5nID0gJ0RELU1NLVlZWVknO1xuICBtaW5EYXRlT3B0aW9uOiBzdHJpbmcgPSAnJztcbiAgbWluRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDsgLy8gSW5pdGlhbGl6ZSBtaW5EYXRlIGFzIERhdGUgb3IgdW5kZWZpbmVkXG4gIG1heERhdGVPcHRpb246IHN0cmluZyA9ICcnO1xuICBtYXhEYXRlOiBEYXRlIHwgdW5kZWZpbmVkOyAvLyBJbml0aWFsaXplIG1heERhdGUgYXMgRGF0ZSBvciB1bmRlZmluZWRcbiAgdG9kYXlEYXRlOiBEYXRlID0gbmV3IERhdGUoKTsgLy8gQ3VycmVudCBkYXRlXG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5xdWVzdGlvbiA9IHRoaXMuZ3JpZC5xdWVzdGlvbjtcblxuICAgIHRoaXMuY291bnQgPSB0aGlzLmdyaWQuY291bnQ7XG4gICAgdGhpcy5yZXF1aXJlZCA9IHRoaXMucXVlc3Rpb24ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbi5oaW50O1xuICAgIHRoaXMuZGF0ZVR5cGUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UuZGF0ZVR5cGU7XG4gICAgdGhpcy5mb3JtYXQgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UuZm9ybWF0O1xuICAgIHRoaXMubWluRGF0ZU9wdGlvbiA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5taW5EYXRlT3B0aW9uO1xuICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZ2V0TWluRGF0ZSgpO1xuICAgIHRoaXMubWF4RGF0ZU9wdGlvbiA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5tYXhEYXRlT3B0aW9uO1xuICAgIHRoaXMubWF4RGF0ZSA9IHRoaXMuZ2V0TWF4RGF0ZSgpO1xuICB9XG5cbiAgZ2V0TWluRGF0ZSgpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5taW5EYXRlT3B0aW9uID09PSAnVE9EQVknKSB7XG4gICAgICByZXR1cm4gdGhpcy50b2RheURhdGU7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1pbkRhdGVPcHRpb24gPT09ICdDVVNUT00nKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUodGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLm1pbkRhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkOyAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vIHZhbGlkIG9wdGlvblxuICB9XG5cbiAgZ2V0TWF4RGF0ZSgpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5tYXhEYXRlT3B0aW9uID09PSAnVE9EQVknKSB7XG4gICAgICByZXR1cm4gdGhpcy50b2RheURhdGU7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1heERhdGVPcHRpb24gPT09ICdDVVNUT00nKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUodGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLm1heERhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkOyAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vIHZhbGlkIG9wdGlvblxuICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cIidjb2wtJyArIGNvdW50XCIgY2xhc3M9XCJtYi01IHB4LTRcIj5cbiAgPGxhYmVsPnt7IHF1ZXN0aW9uLnF1ZXN0aW9uIH19PC9sYWJlbD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0ZVR5cGUgPT09ICdEQVRFX09OTFknXCI+XG4gICAgICA8IS0tIERhdGUgb25seSBwaWNrZXIgLS0+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaGVpZ2h0XCJcbiAgICAgICAgI2RhdGVwaWNrZXJZTUQ9XCJic0RhdGVwaWNrZXJcIlxuICAgICAgICBic0RhdGVwaWNrZXJcbiAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZSA/IG1pbkRhdGUgOiB0b2RheURhdGVcIlxuICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlID8gbWF4RGF0ZSA6IHRvZGF5RGF0ZVwiXG4gICAgICAgIFtic0NvbmZpZ109XCJ7IGRhdGVJbnB1dEZvcm1hdDogZm9ybWF0IH1cIlxuICAgICAgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRlVHlwZSA9PT0gJ1RJTUVfT05MWSdcIj5cbiAgICAgIDwhLS0gVGltZSBwaWNrZXIgLS0+XG4gICAgICA8aW5wdXQgdHlwZT1cInRpbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbCBoZWlnaHRcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGVUeXBlID09PSAnREFURV9BTkRfVElNRSdcIj5cbiAgICAgIDwhLS0gRGF0ZSBhbmQgdGltZSBwaWNrZXIgLS0+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBoZWlnaHRcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlID8gbWluRGF0ZSA6IHRvZGF5RGF0ZVwiXG4gICAgICAgIFttYXhEYXRlXT1cIm1heERhdGUgPyBtYXhEYXRlIDogdG9kYXlEYXRlXCJcbiAgICAgICAgW2JzQ29uZmlnXT1cIntcbiAgICAgICAgICB3aXRoVGltZXBpY2tlcjogdHJ1ZSxcbiAgICAgICAgICBrZWVwRGF0ZXBpY2tlck9wZW5lZDogdHJ1ZSxcbiAgICAgICAgICByYW5nZUlucHV0Rm9ybWF0OiBmb3JtYXQsXG4gICAgICAgICAgZGF0ZUlucHV0Rm9ybWF0OiBmb3JtYXRcbiAgICAgICAgfVwiXG4gICAgICAgIGJzRGF0ZXBpY2tlclxuICAgICAgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRlVHlwZSA9PT0gJ0RBVEVfUkFOR0UnXCI+XG4gICAgICA8IS0tIERhdGUgcmFuZ2UgcGlja2VyIC0tPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaGVpZ2h0XCJcbiAgICAgICAgI2RhdGVyYW5nZXBpY2tlcj1cImJzRGF0ZXJhbmdlcGlja2VyXCJcbiAgICAgICAgYnNEYXRlcmFuZ2VwaWNrZXJcbiAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZSA/IG1pbkRhdGUgOiB0b2RheURhdGVcIlxuICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlID8gbWF4RGF0ZSA6IHRvZGF5RGF0ZVwiXG4gICAgICAgIFtic0NvbmZpZ109XCJ7XG4gICAgICAgICAgcmFuZ2VJbnB1dEZvcm1hdDogZm9ybWF0LFxuICAgICAgICAgIGRhdGVJbnB1dEZvcm1hdDogZm9ybWF0LFxuICAgICAgICAgIHNob3dXZWVrTnVtYmVyczogZmFsc2VcbiAgICAgICAgfVwiXG4gICAgICAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2RhdGUtdGltZS1maWVsZHMvZGF0ZS10aW1lLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2RhdGUtdGltZS1maWVsZHMvZGF0ZS10aW1lLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVTVELE1BQU0sT0FBTyx1QkFBdUI7SUFMcEM7UUFNRSxhQUFRLEdBQWdDO1lBQ3RDLGNBQWMsRUFBRSxXQUFXLEVBQUUsa0RBQWtEO1NBQ2hGLENBQUM7UUFFTyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixXQUFNLEdBQVcsWUFBWSxDQUFDO1FBQzlCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBRTNCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBRTNCLGNBQVMsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsZUFBZTtRQUM3QyxpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2QixzQkFBaUIsR0FBUSxFQUFFLENBQUM7UUFFNUIsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO0tBd0U3QjtJQXJFQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFB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QyxpQkFBaUIsR0FBQyw2QkFBNkIsQ0FBQTtTQUNyRDtJQUNILENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsZ0JBQWdCLEdBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBQyxFQUFFLENBQUM7UUFDMUIsSUFBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFDO1lBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBQyxJQUFJLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFDLDZCQUE2QixDQUFBO1NBQ3JEO0lBQ0gsQ0FBQzsrR0E1RlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsd1NDVnBDLHUyS0E2RkE7OzRGRG5GYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usc0JBQXNCOzhCQVN2QixJQUFJO3NCQUFaLEtBQUs7Z0JBaUJzQixVQUFVO3NCQUFyQyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ0ksZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJzRGF0ZXBpY2tlckNvbmZpZywgQnNEYXRlcGlja2VyRGlyZWN0aXZlLFxufSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZGF0ZS10aW1lLWZpZWxkcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXRpbWUtZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS10aW1lLWZpZWxkcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlVGltZUZpZWxkc0NvbXBvbmVudCB7XG4gIGJzQ29uZmlnOiBQYXJ0aWFsPEJzRGF0ZXBpY2tlckNvbmZpZz4gPSB7XG4gICAgY29udGFpbmVyQ2xhc3M6ICd0aGVtZS1yZWQnLCAvLyBTZXQgdGhlIGNvbnRhaW5lciBjbGFzcyB0byBhcHBseSB0aGUgZ3JleSB0aGVtZVxuICB9O1xuXG4gIEBJbnB1dCgpIGdyaWQ6IGFueSA9IHt9O1xuICBxdWVzdGlvbjogYW55ID0ge307XG4gIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIGhpbnQ6IHN0cmluZyA9ICcnO1xuICBjb3VudDogbnVtYmVyID0gMDtcbiAgZGF0ZVR5cGU6IHN0cmluZyA9ICcnO1xuICBmb3JtYXQ6IHN0cmluZyA9ICdERC1NTS1ZWVlZJztcbiAgbWluRGF0ZU9wdGlvbjogc3RyaW5nID0gJyc7XG4gIG1pbkRhdGU6IERhdGUgfCB1bmRlZmluZWQ7IC8vIEluaXRpYWxpemUgbWluRGF0ZSBhcyBEYXRlIG9yIHVuZGVmaW5lZFxuICBtYXhEYXRlT3B0aW9uOiBzdHJpbmcgPSAnJztcbiAgbWF4RGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDsgLy8gSW5pdGlhbGl6ZSBtYXhEYXRlIGFzIERhdGUgb3IgdW5kZWZpbmVkXG4gIHRvZGF5RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7IC8vIEN1cnJlbnQgZGF0ZVxuICBzZWxlY3RlZERhdGU6c3RyaW5nPScnO1xuICBzZWxlY3RlZFRpbWU6c3RyaW5nPScnO1xuICBzZWxlY3RlZERhdGVSYW5nZTpzdHJpbmc9Jyc7XG4gIHZhbGlkYXRpb25GYWlsZWQhOmJvb2xlYW47XG4gIHZhbGlkYXRpb25NZXNzYWdlOnN0cmluZz0nJztcbiAgQFZpZXdDaGlsZCgnZGF0ZXBpY2tlcllNRCcpIGRhdGVwaWNrZXIhOiBCc0RhdGVwaWNrZXJEaXJlY3RpdmU7XG4gIEBWaWV3Q2hpbGQoJ2RhdGVyYW5nZXBpY2tlcicpIGRhdGVSYW5nZVBpY2tlciE6IEJzRGF0ZXBpY2tlckRpcmVjdGl2ZTtcbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52YWx1ZUFzc2lnbmVkKCk7XG4gIH1cblxuICB2YWx1ZUFzc2lnbmVkKCl7XG5cbiAgICB0aGlzLnF1ZXN0aW9uID0gdGhpcy5ncmlkLnF1ZXN0aW9uO1xuICAgIGNvbnNvbGUubG9nKCdkYXRlIHRpbWUnLHRoaXMucXVlc3Rpb24pO1xuICAgIFxuICAgIHRoaXMuY291bnQgPSB0aGlzLmdyaWQuY291bnQ7XG4gICAgdGhpcy5yZXF1aXJlZCA9IHRoaXMucXVlc3Rpb24ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbi5oaW50O1xuICAgIHRoaXMuZGF0ZVR5cGUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UuZGF0ZVR5cGU7XG4gICAgdGhpcy5mb3JtYXQgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UuZm9ybWF0O1xuICAgIHRoaXMubWluRGF0ZU9wdGlvbiA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5taW5EYXRlT3B0aW9uO1xuICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZ2V0TWluRGF0ZSgpO1xuICAgIHRoaXMubWF4RGF0ZU9wdGlvbiA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5tYXhEYXRlT3B0aW9uO1xuICAgIHRoaXMubWF4RGF0ZSA9IHRoaXMuZ2V0TWF4RGF0ZSgpOyAgfVxuXG4gIGdldE1pbkRhdGUoKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMubWluRGF0ZU9wdGlvbiA9PT0gJ1RPREFZJykge1xuICAgICAgcmV0dXJuIHRoaXMudG9kYXlEYXRlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5taW5EYXRlT3B0aW9uID09PSAnQ1VTVE9NJykge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5taW5EYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gUmV0dXJuIHVuZGVmaW5lZCBpZiBubyB2YWxpZCBvcHRpb25cbiAgfVxuXG4gIGdldE1heERhdGUoKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMubWF4RGF0ZU9wdGlvbiA9PT0gJ1RPREFZJykge1xuICAgICAgcmV0dXJuIHRoaXMudG9kYXlEYXRlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5tYXhEYXRlT3B0aW9uID09PSAnQ1VTVE9NJykge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5tYXhEYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gUmV0dXJuIHVuZGVmaW5lZCBpZiBubyB2YWxpZCBvcHRpb25cbiAgfVxuXG4gIG9wZW5EYXRlUGlja2VyKCkge1xuICAgIHRoaXMuZGF0ZXBpY2tlci50b2dnbGUoKTtcbiAgfVxuXG4gIG9wZW5EYXRlUmFuZ2VQaWNrZXIoKXtcbiAgICB0aGlzLmRhdGVSYW5nZVBpY2tlci50b2dnbGUoKVxuICB9XG5cbiAgdmFsaWRhdGVEYXRlT25seSgpe1xuICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZD1mYWxzZTtcbiAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlPScnO1xuICAgIGlmKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuc2VsZWN0ZWREYXRlKXtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZD10cnVlO1xuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZT0nVGhpcyBpcyBhIHJlcXVpcmVkIHF1ZXN0aW9uJ1xuICAgIH1cbiAgfVxuICB2YWxpZGF0ZVRpbWVPbmx5KCl7XG4gICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkPWZhbHNlO1xuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9Jyc7XG4gICAgaWYodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5zZWxlY3RlZFRpbWUpe1xuICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkPXRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSdUaGlzIGlzIGEgcmVxdWlyZWQgcXVlc3Rpb24nXG4gICAgfVxuICB9XG4gIHZhbGlkYXRlRGF0ZVJhbmdlKCl7XG4gICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkPWZhbHNlO1xuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9Jyc7XG4gICAgaWYodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5zZWxlY3RlZERhdGVSYW5nZSl7XG4gICAgICB0aGlzLnZhbGlkYXRpb25GYWlsZWQ9dHJ1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9J1RoaXMgaXMgYSByZXF1aXJlZCBxdWVzdGlvbidcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiJ2NvbC0nICsgY291bnRcIiBjbGFzcz1cIm1iLTUgcHgtNFwiPlxuICA8bGFiZWw+e3sgcXVlc3Rpb24ucXVlc3Rpb24gfX08L2xhYmVsPiZuYnNwO1xuICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGVUeXBlID09PSAnREFURV9PTkxZJ1wiPlxuICAgICAgPCEtLSBEYXRlIG9ubHkgcGlja2VyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBoZWlnaHRcIlxuICAgICAgICAgICNkYXRlcGlja2VyWU1EPVwiYnNEYXRlcGlja2VyXCJcbiAgICAgICAgICBic0RhdGVwaWNrZXJcbiAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlID8gbWluRGF0ZSA6IHRvZGF5RGF0ZVwiXG4gICAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZSA/IG1heERhdGUgOiB0b2RheURhdGVcIlxuICAgICAgICAgIFtic0NvbmZpZ109XCJ7IGRhdGVJbnB1dEZvcm1hdDogZm9ybWF0IH1cIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlXCJcbiAgICAgICAgICAoYmx1cik9XCJ2YWxpZGF0ZURhdGVPbmx5KClcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbGlkYXRlRGF0ZU9ubHkoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2FsZW5kYXItZGF5cyBjYWxlbmRhci1pY29uIHRleHQtcHJpbWFyeSBmcy01XCIgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwidmFsaWRhdGlvbkZhaWxlZFwiIGNsYXNzPVwidGV4dC1kYW5nZXIgbXQtMlwiPlxuICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTEyLjAwMSAxNi43NUMxMi4xMzkgMTYuNzUgMTIuMjUxIDE2LjYzOCAxMi4yNSAxNi41QzEyLjI1IDE2LjM2MiAxMi4xMzggMTYuMjUgMTIgMTYuMjVDMTEuODYyIDE2LjI1IDExLjc1IDE2LjM2MiAxMS43NSAxNi41QzExLjc1IDE2LjYzOCAxMS44NjIgMTYuNzUgMTIuMDAxIDE2Ljc1XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEyIDIxQzcuMDI5IDIxIDMgMTYuOTcxIDMgMTJDMyA3LjAyOSA3LjAyOSAzIDEyIDNDMTYuOTcxIDMgMjEgNy4wMjkgMjEgMTJDMjEgMTYuOTcxIDE2Ljk3MSAyMSAxMiAyMVpcIiBmaWxsPVwiI0ZGMDAwMFwiIHN0cm9rZT1cIiNGRjAwMDBcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgPHBhdGggZD1cIk0xMiAxMi43NUwxMiA3Ljc1XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxNlwiIHI9XCIxXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIHt7dmFsaWRhdGlvbk1lc3NhZ2V9fTwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGVUeXBlID09PSAnVElNRV9PTkxZJ1wiPlxuICAgICAgPCEtLSBUaW1lIHBpY2tlciAtLT5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGltZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGhlaWdodFwiXG4gICAgICAoYmx1cik9XCJ2YWxpZGF0ZVRpbWVPbmx5KClcIiBcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUaW1lXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbGlkYXRlVGltZU9ubHkoKVwiLz5cbiAgICAgIDxkaXYgKm5nSWY9XCJ2YWxpZGF0aW9uRmFpbGVkXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtdC0yXCI+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuMDAxIDE2Ljc1QzEyLjEzOSAxNi43NSAxMi4yNTEgMTYuNjM4IDEyLjI1IDE2LjVDMTIuMjUgMTYuMzYyIDEyLjEzOCAxNi4yNSAxMiAxNi4yNUMxMS44NjIgMTYuMjUgMTEuNzUgMTYuMzYyIDExLjc1IDE2LjVDMTEuNzUgMTYuNjM4IDExLjg2MiAxNi43NSAxMi4wMDEgMTYuNzVcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIgMjFDNy4wMjkgMjEgMyAxNi45NzEgMyAxMkMzIDcuMDI5IDcuMDI5IDMgMTIgM0MxNi45NzEgMyAyMSA3LjAyOSAyMSAxMkMyMSAxNi45NzEgMTYuOTcxIDIxIDEyIDIxWlwiIGZpbGw9XCIjRkYwMDAwXCIgc3Ryb2tlPVwiI0ZGMDAwMFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTEyIDEyLjc1TDEyIDcuNzVcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjE2XCIgcj1cIjFcIiBmaWxsPVwid2hpdGVcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAge3t2YWxpZGF0aW9uTWVzc2FnZX19PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0ZVR5cGUgPT09ICdEQVRFX0FORF9USU1FJ1wiPlxuICAgICAgPCEtLSBEYXRlIGFuZCB0aW1lIHBpY2tlciAtLT5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGhlaWdodFwiXG4gICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGUgPyBtaW5EYXRlIDogdG9kYXlEYXRlXCJcbiAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZSA/IG1heERhdGUgOiB0b2RheURhdGVcIlxuICAgICAgICBbYnNDb25maWddPVwie1xuICAgICAgICAgIHdpdGhUaW1lcGlja2VyOiB0cnVlLFxuICAgICAgICAgIGtlZXBEYXRlcGlja2VyT3BlbmVkOiB0cnVlLFxuICAgICAgICAgIHJhbmdlSW5wdXRGb3JtYXQ6IGZvcm1hdCxcbiAgICAgICAgICBkYXRlSW5wdXRGb3JtYXQ6IGZvcm1hdFxuICAgICAgICB9XCJcbiAgICAgICAgYnNEYXRlcGlja2VyXG4gICAgICAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGVUeXBlID09PSAnREFURV9SQU5HRSdcIj5cbiAgICAgIDwhLS0gRGF0ZSByYW5nZSBwaWNrZXIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBoZWlnaHRcIlxuICAgICAgICAjZGF0ZXJhbmdlcGlja2VyPVwiYnNEYXRlcmFuZ2VwaWNrZXJcIlxuICAgICAgICBic0RhdGVyYW5nZXBpY2tlclxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlID8gbWluRGF0ZSA6IHRvZGF5RGF0ZVwiXG4gICAgICAgIFttYXhEYXRlXT1cIm1heERhdGUgPyBtYXhEYXRlIDogdG9kYXlEYXRlXCJcbiAgICAgICAgW2JzQ29uZmlnXT1cIntcbiAgICAgICAgICByYW5nZUlucHV0Rm9ybWF0OiBmb3JtYXQsXG4gICAgICAgICAgZGF0ZUlucHV0Rm9ybWF0OiBmb3JtYXQsXG4gICAgICAgICAgc2hvd1dlZWtOdW1iZXJzOiBmYWxzZVxuICAgICAgICB9XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiXG4gICAgICAgIChibHVyKT1cInZhbGlkYXRlRGF0ZVJhbmdlKClcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWxpZGF0ZURhdGVSYW5nZSgpXCJcbiAgICAgIC8+XG4gICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNhbGVuZGFyLWRheXMgY2FsZW5kYXItaWNvbiB0ZXh0LXByaW1hcnkgZnMtNVwiICAoY2xpY2spPVwib3BlbkRhdGVSYW5nZVBpY2tlcigpXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInZhbGlkYXRpb25GYWlsZWRcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG10LTJcIj5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk0xMi4wMDEgMTYuNzVDMTIuMTM5IDE2Ljc1IDEyLjI1MSAxNi42MzggMTIuMjUgMTYuNUMxMi4yNSAxNi4zNjIgMTIuMTM4IDE2LjI1IDEyIDE2LjI1QzExLjg2MiAxNi4yNSAxMS43NSAxNi4zNjIgMTEuNzUgMTYuNUMxMS43NSAxNi42MzggMTEuODYyIDE2Ljc1IDEyLjAwMSAxNi43NVwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMiAyMUM3LjAyOSAyMSAzIDE2Ljk3MSAzIDEyQzMgNy4wMjkgNy4wMjkgMyAxMiAzQzE2Ljk3MSAzIDIxIDcuMDI5IDIxIDEyQzIxIDE2Ljk3MSAxNi45NzEgMjEgMTIgMjFaXCIgZmlsbD1cIiNGRjAwMDBcIiBzdHJva2U9XCIjRkYwMDAwXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgMTIuNzVMMTIgNy43NVwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTZcIiByPVwiMVwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICB7e3ZhbGlkYXRpb25NZXNzYWdlfX08L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -19,9 +19,15 @@ export class DropDownFieldsComponent {
19
19
  this.customOptions = [];
20
20
  this.database = {};
21
21
  this.api = {};
22
+ this.selectedValue = [];
23
+ this.validationMessage = '';
22
24
  }
23
25
  ngOnInit() {
26
+ this.valueAssigned();
27
+ }
28
+ valueAssigned() {
24
29
  this.question = this.grid.question;
30
+ console.log('dropdown', this.question);
25
31
  this.count = this.grid.count;
26
32
  this.required = this.question.required;
27
33
  this.hint = this.question.hint;
@@ -45,13 +51,25 @@ export class DropDownFieldsComponent {
45
51
  this.api = this.question.formElement.option.api;
46
52
  }
47
53
  }
54
+ selectItems() {
55
+ this.validationFailed = false;
56
+ this.validationMessage = '';
57
+ if (this.selectedValue.length == 0 && this.required) {
58
+ this.validationFailed = true;
59
+ this.validationMessage = `This is a required question`;
60
+ }
61
+ else if (this.selectedValue.length < this.minimumSelection || this.selectedValue.length > this.maximumSelection) {
62
+ this.validationFailed = true;
63
+ this.validationMessage = `selected options must be between ${this.minimumSelection} & ${this.maximumSelection}`;
64
+ }
65
+ }
48
66
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownFieldsComponent, deps: [{ token: i1.FormService }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropDownFieldsComponent, selector: "lib-drop-down-fields", inputs: { grid: "grid" }, ngImport: i0, template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>\n <lib-dropdown\n [items]=\"customOptions\"\n [label]=\"'value'\"\n [multiple]=\"selectionType === 'SINGLE' ? false : true\"\n [borderThickness]=\"false\"\n ></lib-dropdown>\n</div>\n", styles: [".height{height:44px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.DropdownComponent, selector: "lib-dropdown", inputs: ["multiple", "scrollable", "selectedItems", "placeholder", "label", "items", "showCreateNew", "customButtons", "showBorder", "isCountryCode", "borderThickness"], outputs: ["buttonClick", "selectedItemsChange", "onScroll", "onCreateNew", "onSearch"] }] }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropDownFieldsComponent, selector: "lib-drop-down-fields", inputs: { grid: "grid" }, ngImport: i0, template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <lib-dropdown\n [items]=\"customOptions\"\n [label]=\"'value'\"\n [multiple]=\"selectionType === 'SINGLE' ? false : true\"\n [borderThickness]=\"false\"\n [(selectedItems)]=\"selectedValue\"\n (click)=\"selectItems()\"\n ></lib-dropdown>\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}</div>\n</div>\n", styles: [".height{height:44px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DropdownComponent, selector: "lib-dropdown", inputs: ["multiple", "scrollable", "selectedItems", "placeholder", "label", "items", "showCreateNew", "customButtons", "showBorder", "isCountryCode", "borderThickness"], outputs: ["buttonClick", "selectedItemsChange", "onScroll", "onCreateNew", "onSearch"] }] }); }
50
68
  }
51
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropDownFieldsComponent, decorators: [{
52
70
  type: Component,
53
- args: [{ selector: 'lib-drop-down-fields', template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>\n <lib-dropdown\n [items]=\"customOptions\"\n [label]=\"'value'\"\n [multiple]=\"selectionType === 'SINGLE' ? false : true\"\n [borderThickness]=\"false\"\n ></lib-dropdown>\n</div>\n", styles: [".height{height:44px}\n"] }]
71
+ args: [{ selector: 'lib-drop-down-fields', template: "<div [ngClass]=\"'col-' + count\" class=\"mb-5 px-4\">\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <lib-dropdown\n [items]=\"customOptions\"\n [label]=\"'value'\"\n [multiple]=\"selectionType === 'SINGLE' ? false : true\"\n [borderThickness]=\"false\"\n [(selectedItems)]=\"selectedValue\"\n (click)=\"selectItems()\"\n ></lib-dropdown>\n <div *ngIf=\"validationFailed\" class=\"text-danger mb-2\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\" fill=\"#FF0000\" stroke=\"#FF0000\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 12.75L12 7.75\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\"/>\n </svg>\n {{validationMessage}}</div>\n</div>\n", styles: [".height{height:44px}\n"] }]
54
72
  }], ctorParameters: function () { return [{ type: i1.FormService }]; }, propDecorators: { grid: [{
55
73
  type: Input
56
74
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2Ryb3AtZG93bi1maWVsZHMvZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2Ryb3AtZG93bi1maWVsZHMvZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRakQsTUFBTSxPQUFPLHVCQUF1QjtJQWVsQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWRuQyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM3QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsUUFBRyxHQUFRLEVBQUUsQ0FBQztJQUVpQyxDQUFDO0lBRWhELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUN4RSxJQUFJLENBQUMsZ0JBQWdCO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN4RCxJQUFJLENBQUMsZ0JBQWdCO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFFOUQsa0NBQWtDO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1NBQ3JFO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7U0FDakU7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUMzRDthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQzsrR0F2Q1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsc0ZDUnBDLG9UQVNBOzs0RkREYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usc0JBQXNCO2tHQUt2QixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kcm9wLWRvd24tZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3AtZG93bi1maWVsZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wLWRvd24tZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERyb3BEb3duRmllbGRzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZ3JpZDogYW55ID0ge307XG4gIHF1ZXN0aW9uOiBhbnkgPSB7fTtcbiAgY291bnQ6IG51bWJlciA9IDA7XG4gIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIGhpbnQ6IHN0cmluZyA9ICcnO1xuICBzZWxlY3Rpb25UeXBlOiBzdHJpbmcgPSAnJztcbiAgbWluaW11bVNlbGVjdGlvbjogbnVtYmVyID0gMDtcbiAgbWF4aW11bVNlbGVjdGlvbjogbnVtYmVyID0gMDtcbiAgb3B0aW9uVHlwZTogc3RyaW5nID0gJyc7XG4gIGxvb2t1cFRhYmxlOiBhbnkgPSB7fTtcbiAgY3VzdG9tT3B0aW9uczogYW55W10gPSBbXTtcbiAgZGF0YWJhc2U6IGFueSA9IHt9O1xuICBhcGk6IGFueSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucXVlc3Rpb24gPSB0aGlzLmdyaWQucXVlc3Rpb247XG4gICAgdGhpcy5jb3VudCA9IHRoaXMuZ3JpZC5jb3VudDtcbiAgICB0aGlzLnJlcXVpcmVkID0gdGhpcy5xdWVzdGlvbi5yZXF1aXJlZDtcbiAgICB0aGlzLmhpbnQgPSB0aGlzLnF1ZXN0aW9uLmhpbnQ7XG4gICAgdGhpcy5zZWxlY3Rpb25UeXBlID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5hcHBlYXJhbmNlLnNlbGVjdGlvblR5cGU7XG4gICAgdGhpcy5taW5pbXVtU2VsZWN0aW9uID1cbiAgICAgIHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5taW5pbXVtU2VsZWN0aW9uO1xuICAgIHRoaXMubWF4aW11bVNlbGVjdGlvbiA9XG4gICAgICB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24ubWF4aW11bVNlbGVjdGlvbjtcbiAgICB0aGlzLm9wdGlvblR5cGUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5vcHRpb25UeXBlO1xuXG4gICAgLy8gU2V0IG9wdGlvbnMgYmFzZWQgb24gb3B0aW9uVHlwZVxuICAgIGlmICh0aGlzLm9wdGlvblR5cGUgPT09ICdPUFRJT04nKSB7XG4gICAgICB0aGlzLmN1c3RvbU9wdGlvbnMgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5jdXN0b21PcHRpb25zO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnTE9PS1VQJykge1xuICAgICAgdGhpcy5sb29rdXBUYWJsZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLmxvb2t1cFRhYmxlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnREFUQUJBU0UnKSB7XG4gICAgICB0aGlzLmRhdGFiYXNlID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24uZGF0YWJhc2U7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvblR5cGUgPT09ICdBUEknKSB7XG4gICAgICB0aGlzLmFwaSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLmFwaTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiJ2NvbC0nICsgY291bnRcIiBjbGFzcz1cIm1iLTUgcHgtNFwiPlxuICA8bGFiZWw+e3sgcXVlc3Rpb24ucXVlc3Rpb24gfX08L2xhYmVsPlxuICAgIDxsaWItZHJvcGRvd25cbiAgICAgIFtpdGVtc109XCJjdXN0b21PcHRpb25zXCJcbiAgICAgIFtsYWJlbF09XCIndmFsdWUnXCJcbiAgICAgIFttdWx0aXBsZV09XCJzZWxlY3Rpb25UeXBlID09PSAnU0lOR0xFJyA/IGZhbHNlIDogdHJ1ZVwiXG4gICAgICBbYm9yZGVyVGhpY2tuZXNzXT1cImZhbHNlXCJcbiAgICA+PC9saWItZHJvcGRvd24+XG48L2Rpdj5cbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2Ryb3AtZG93bi1maWVsZHMvZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2Ryb3AtZG93bi1maWVsZHMvZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRakQsTUFBTSxPQUFPLHVCQUF1QjtJQWlCbEMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFoQm5DLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixxQkFBZ0IsR0FBVyxDQUFDLENBQUM7UUFDN0IscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixRQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ2Qsa0JBQWEsR0FBTyxFQUFFLENBQUM7UUFFdkIsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO0lBQ21CLENBQUM7SUFFaEQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUN4RSxJQUFJLENBQUMsZ0JBQWdCO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN4RCxJQUFJLENBQUMsZ0JBQWdCO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFFOUQsa0NBQWtDO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1NBQ3JFO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7U0FDakU7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUMzRDthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLEdBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBQyxFQUFFLENBQUM7UUFDMUIsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBQztZQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUMsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBQyw2QkFBNkIsQ0FBQztTQUN0RDthQUNJLElBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBQztZQUN6RyxJQUFJLENBQUMsZ0JBQWdCLEdBQUMsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBQyxvQ0FBb0MsSUFBSSxDQUFDLGdCQUFnQixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQy9HO0lBQ0gsQ0FBQzsrR0ExRFUsdUJBQXVCO21HQUF2Qix1QkFBdUIsc0ZDUnBDLGc1Q0FvQkE7OzRGRFphLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0I7a0dBS3ZCLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWRyb3AtZG93bi1maWVsZHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcC1kb3duLWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3AtZG93bi1maWVsZHMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcERvd25GaWVsZHNDb21wb25lbnQge1xuICBASW5wdXQoKSBncmlkOiBhbnkgPSB7fTtcbiAgcXVlc3Rpb246IGFueSA9IHt9O1xuICBjb3VudDogbnVtYmVyID0gMDtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIHNlbGVjdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBtaW5pbXVtU2VsZWN0aW9uOiBudW1iZXIgPSAwO1xuICBtYXhpbXVtU2VsZWN0aW9uOiBudW1iZXIgPSAwO1xuICBvcHRpb25UeXBlOiBzdHJpbmcgPSAnJztcbiAgbG9va3VwVGFibGU6IGFueSA9IHt9O1xuICBjdXN0b21PcHRpb25zOiBhbnlbXSA9IFtdO1xuICBkYXRhYmFzZTogYW55ID0ge307XG4gIGFwaTogYW55ID0ge307XG4gIHNlbGVjdGVkVmFsdWU6YW55W109W107XG4gIHZhbGlkYXRpb25GYWlsZWQhOmJvb2xlYW47XG4gIHZhbGlkYXRpb25NZXNzYWdlOnN0cmluZz0nJztcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52YWx1ZUFzc2lnbmVkKCk7XG4gIH1cblxuICB2YWx1ZUFzc2lnbmVkKCl7XG4gICAgdGhpcy5xdWVzdGlvbiA9IHRoaXMuZ3JpZC5xdWVzdGlvbjtcbiAgICBjb25zb2xlLmxvZygnZHJvcGRvd24nLHRoaXMucXVlc3Rpb24pO1xuICAgIHRoaXMuY291bnQgPSB0aGlzLmdyaWQuY291bnQ7XG4gICAgdGhpcy5yZXF1aXJlZCA9IHRoaXMucXVlc3Rpb24ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbi5oaW50O1xuICAgIHRoaXMuc2VsZWN0aW9uVHlwZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5zZWxlY3Rpb25UeXBlO1xuICAgIHRoaXMubWluaW11bVNlbGVjdGlvbiA9XG4gICAgICB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24ubWluaW11bVNlbGVjdGlvbjtcbiAgICB0aGlzLm1heGltdW1TZWxlY3Rpb24gPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLm1heGltdW1TZWxlY3Rpb247XG4gICAgdGhpcy5vcHRpb25UeXBlID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24ub3B0aW9uVHlwZTtcblxuICAgIC8vIFNldCBvcHRpb25zIGJhc2VkIG9uIG9wdGlvblR5cGVcbiAgICBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnT1BUSU9OJykge1xuICAgICAgdGhpcy5jdXN0b21PcHRpb25zID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5vcHRpb24uY3VzdG9tT3B0aW9ucztcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uVHlwZSA9PT0gJ0xPT0tVUCcpIHtcbiAgICAgIHRoaXMubG9va3VwVGFibGUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5sb29rdXBUYWJsZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uVHlwZSA9PT0gJ0RBVEFCQVNFJykge1xuICAgICAgdGhpcy5kYXRhYmFzZSA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQub3B0aW9uLmRhdGFiYXNlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25UeXBlID09PSAnQVBJJykge1xuICAgICAgdGhpcy5hcGkgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50Lm9wdGlvbi5hcGk7XG4gICAgfVxuICB9XG4gIHNlbGVjdEl0ZW1zKCl7XG4gICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkPWZhbHNlO1xuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9Jyc7XG4gICAgaWYodGhpcy5zZWxlY3RlZFZhbHVlLmxlbmd0aD09MCAmJiB0aGlzLnJlcXVpcmVkKXtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZD10cnVlO1xuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gVGhpcyBpcyBhIHJlcXVpcmVkIHF1ZXN0aW9uYDtcbiAgICB9XG4gICAgZWxzZSBpZih0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoPHRoaXMubWluaW11bVNlbGVjdGlvbiB8fCB0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoPnRoaXMubWF4aW11bVNlbGVjdGlvbil7XG4gICAgICB0aGlzLnZhbGlkYXRpb25GYWlsZWQ9dHJ1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YHNlbGVjdGVkIG9wdGlvbnMgbXVzdCBiZSBiZXR3ZWVuICR7dGhpcy5taW5pbXVtU2VsZWN0aW9ufSAmICR7dGhpcy5tYXhpbXVtU2VsZWN0aW9ufWA7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cIidjb2wtJyArIGNvdW50XCIgY2xhc3M9XCJtYi01IHB4LTRcIj5cbiAgPGxhYmVsPnt7IHF1ZXN0aW9uLnF1ZXN0aW9uIH19PC9sYWJlbD4mbmJzcDtcbiAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgIDxsaWItZHJvcGRvd25cbiAgICAgIFtpdGVtc109XCJjdXN0b21PcHRpb25zXCJcbiAgICAgIFtsYWJlbF09XCIndmFsdWUnXCJcbiAgICAgIFttdWx0aXBsZV09XCJzZWxlY3Rpb25UeXBlID09PSAnU0lOR0xFJyA/IGZhbHNlIDogdHJ1ZVwiXG4gICAgICBbYm9yZGVyVGhpY2tuZXNzXT1cImZhbHNlXCJcbiAgICAgIFsoc2VsZWN0ZWRJdGVtcyldPVwic2VsZWN0ZWRWYWx1ZVwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0SXRlbXMoKVwiXG4gICAgPjwvbGliLWRyb3Bkb3duPlxuICAgIDxkaXYgKm5nSWY9XCJ2YWxpZGF0aW9uRmFpbGVkXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtYi0yXCI+XG4gICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPHBhdGggZD1cIk0xMi4wMDEgMTYuNzVDMTIuMTM5IDE2Ljc1IDEyLjI1MSAxNi42MzggMTIuMjUgMTYuNUMxMi4yNSAxNi4zNjIgMTIuMTM4IDE2LjI1IDEyIDE2LjI1QzExLjg2MiAxNi4yNSAxMS43NSAxNi4zNjIgMTEuNzUgMTYuNUMxMS43NSAxNi42MzggMTEuODYyIDE2Ljc1IDEyLjAwMSAxNi43NVwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIgMjFDNy4wMjkgMjEgMyAxNi45NzEgMyAxMkMzIDcuMDI5IDcuMDI5IDMgMTIgM0MxNi45NzEgMyAyMSA3LjAyOSAyMSAxMkMyMSAxNi45NzEgMTYuOTcxIDIxIDEyIDIxWlwiIGZpbGw9XCIjRkYwMDAwXCIgc3Ryb2tlPVwiI0ZGMDAwMFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPHBhdGggZD1cIk0xMiAxMi43NUwxMiA3Ljc1XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTZcIiByPVwiMVwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIHt7dmFsaWRhdGlvbk1lc3NhZ2V9fTwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -29,12 +29,12 @@ export class FilePickerFieldsComponent {
29
29
  this.fileSizeUnit = this.question.formElement.validation.fileSizeUnit;
30
30
  }
31
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilePickerFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: { grid: "grid" }, ngImport: i0, template: "<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-4\">\n <label>{{ question.question }}</label>\n <lib-docUpload></lib-docUpload>\n</div>\n", styles: [".fileInput{position:relative;height:44px;width:111px;background:#d3d3d3;border-radius:6px;padding:0 16px;display:flex;align-items:center;justify-content:center;cursor:pointer}.fileInput input{opacity:0;position:absolute;left:0;top:0;width:100%;height:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DocUploadComponent, selector: "lib-docUpload", inputs: ["totalSize", "fileAllowed", "multiple"], outputs: ["fileTypeNotAllowed", "fileSizeAllowed", "finalArray"] }] }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: { grid: "grid" }, ngImport: i0, template: "<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-4\">\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <lib-docUpload></lib-docUpload>\n</div>\n", styles: [".fileInput{position:relative;height:44px;width:111px;background:#d3d3d3;border-radius:6px;padding:0 16px;display:flex;align-items:center;justify-content:center;cursor:pointer}.fileInput input{opacity:0;position:absolute;left:0;top:0;width:100%;height:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DocUploadComponent, selector: "lib-docUpload", inputs: ["totalSize", "fileAllowed", "multiple"], outputs: ["fileTypeNotAllowed", "fileSizeAllowed", "finalArray"] }] }); }
33
33
  }
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilePickerFieldsComponent, decorators: [{
35
35
  type: Component,
36
- args: [{ selector: 'lib-file-picker-fields', template: "<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-4\">\n <label>{{ question.question }}</label>\n <lib-docUpload></lib-docUpload>\n</div>\n", styles: [".fileInput{position:relative;height:44px;width:111px;background:#d3d3d3;border-radius:6px;padding:0 16px;display:flex;align-items:center;justify-content:center;cursor:pointer}.fileInput input{opacity:0;position:absolute;left:0;top:0;width:100%;height:inherit}\n"] }]
36
+ args: [{ selector: 'lib-file-picker-fields', template: "<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-4\">\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <lib-docUpload></lib-docUpload>\n</div>\n", styles: [".fileInput{position:relative;height:44px;width:111px;background:#d3d3d3;border-radius:6px;padding:0 16px;display:flex;align-items:center;justify-content:center;cursor:pointer}.fileInput input{opacity:0;position:absolute;left:0;top:0;width:100%;height:inherit}\n"] }]
37
37
  }], propDecorators: { grid: [{
38
38
  type: Input
39
39
  }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXItZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvZmlsZS1waWNrZXItZmllbGRzL2ZpbGUtcGlja2VyLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2ZpbGUtcGlja2VyLWZpZWxkcy9maWxlLXBpY2tlci1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPakQsTUFBTSxPQUFPLHlCQUF5QjtJQUx0QztRQU1XLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1Qix5QkFBb0IsR0FBWSxJQUFJLENBQUM7UUFDckMscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBQ2pDLGNBQVMsR0FBWSxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFVLENBQUMsQ0FBQztRQUNwQixpQkFBWSxHQUFVLEVBQUUsQ0FBQztLQWMxQjtJQVpDLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUNwRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDO1FBQ3RGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7UUFDOUUsSUFBSSxDQUFDLFNBQVMsR0FBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1FBQy9ELElBQUksQ0FBQyxRQUFRLEdBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUM3RCxJQUFJLENBQUMsWUFBWSxHQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFDdkUsQ0FBQzsrR0F4QlUseUJBQXlCO21HQUF6Qix5QkFBeUIsd0ZDUHRDLCtJQUlBOzs0RkRHYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQUt6QixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWxlLXBpY2tlci1maWVsZHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1waWNrZXItZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1waWNrZXItZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVQaWNrZXJGaWVsZHNDb21wb25lbnQge1xuICBASW5wdXQoKSBncmlkOiBhbnkgPSB7fTtcbiAgcXVlc3Rpb246IGFueSA9IHt9O1xuICBjb3VudDogbnVtYmVyID0gMDtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIGRyYWdBbmREcm9wOiBib29sZWFuID0gdHJ1ZTtcbiAgcHJldmlld1VwbG9hZGVkRmlsZXM6IGJvb2xlYW4gPSB0cnVlO1xuICBtdWx0aUZpbGVVcGxvYWRzOiBib29sZWFuID0gdHJ1ZTtcbiAgZmlsZVR5cGVzOnN0cmluZ1tdID0gW107XG4gIGZpbGVTaXplOm51bWJlciA9IDA7XG4gIGZpbGVTaXplVW5pdDpzdHJpbmcgPSAnJztcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnF1ZXN0aW9uID0gdGhpcy5ncmlkLnF1ZXN0aW9uO1xuICAgIHRoaXMuY291bnQgPSB0aGlzLmdyaWQuY291bnQ7XG4gICAgdGhpcy5yZXF1aXJlZCA9IHRoaXMucXVlc3Rpb24ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbi5oaW50O1xuICAgIHRoaXMuZHJhZ0FuZERyb3AgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UuZHJhZ0FuZERyb3A7XG4gICAgdGhpcy5wcmV2aWV3VXBsb2FkZWRGaWxlcyA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5wcmV2aWV3VXBsb2FkZWRGaWxlcztcbiAgICB0aGlzLm11bHRpRmlsZVVwbG9hZHMgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UubXVsdGlGaWxlVXBsb2FkcztcbiAgICB0aGlzLmZpbGVUeXBlcyA9dGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLmZpbGVUeXBlcztcbiAgICB0aGlzLmZpbGVTaXplID10aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24uZmlsZVNpemU7XG4gICAgdGhpcy5maWxlU2l6ZVVuaXQgPXRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5maWxlU2l6ZVVuaXQ7XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiJ2NvbC0nICsgY291bnRcIiBjbGFzcz1cIm1iLTQgcHgtNFwiPlxuICA8bGFiZWw+e3sgcXVlc3Rpb24ucXVlc3Rpb24gfX08L2xhYmVsPlxuICA8bGliLWRvY1VwbG9hZD48L2xpYi1kb2NVcGxvYWQ+XG48L2Rpdj5cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXItZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvZmlsZS1waWNrZXItZmllbGRzL2ZpbGUtcGlja2VyLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2ZpbGUtcGlja2VyLWZpZWxkcy9maWxlLXBpY2tlci1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPakQsTUFBTSxPQUFPLHlCQUF5QjtJQUx0QztRQU1XLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1Qix5QkFBb0IsR0FBWSxJQUFJLENBQUM7UUFDckMscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBQ2pDLGNBQVMsR0FBWSxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFVLENBQUMsQ0FBQztRQUNwQixpQkFBWSxHQUFVLEVBQUUsQ0FBQztLQWMxQjtJQVpDLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUNwRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDO1FBQ3RGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7UUFDOUUsSUFBSSxDQUFDLFNBQVMsR0FBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1FBQy9ELElBQUksQ0FBQyxRQUFRLEdBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUM3RCxJQUFJLENBQUMsWUFBWSxHQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFDdkUsQ0FBQzsrR0F4QlUseUJBQXlCO21HQUF6Qix5QkFBeUIsd0ZDUHRDLGdOQUtBOzs0RkRFYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQUt6QixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWxlLXBpY2tlci1maWVsZHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1waWNrZXItZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1waWNrZXItZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVQaWNrZXJGaWVsZHNDb21wb25lbnQge1xuICBASW5wdXQoKSBncmlkOiBhbnkgPSB7fTtcbiAgcXVlc3Rpb246IGFueSA9IHt9O1xuICBjb3VudDogbnVtYmVyID0gMDtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIGRyYWdBbmREcm9wOiBib29sZWFuID0gdHJ1ZTtcbiAgcHJldmlld1VwbG9hZGVkRmlsZXM6IGJvb2xlYW4gPSB0cnVlO1xuICBtdWx0aUZpbGVVcGxvYWRzOiBib29sZWFuID0gdHJ1ZTtcbiAgZmlsZVR5cGVzOnN0cmluZ1tdID0gW107XG4gIGZpbGVTaXplOm51bWJlciA9IDA7XG4gIGZpbGVTaXplVW5pdDpzdHJpbmcgPSAnJztcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnF1ZXN0aW9uID0gdGhpcy5ncmlkLnF1ZXN0aW9uO1xuICAgIHRoaXMuY291bnQgPSB0aGlzLmdyaWQuY291bnQ7XG4gICAgdGhpcy5yZXF1aXJlZCA9IHRoaXMucXVlc3Rpb24ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbi5oaW50O1xuICAgIHRoaXMuZHJhZ0FuZERyb3AgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UuZHJhZ0FuZERyb3A7XG4gICAgdGhpcy5wcmV2aWV3VXBsb2FkZWRGaWxlcyA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5wcmV2aWV3VXBsb2FkZWRGaWxlcztcbiAgICB0aGlzLm11bHRpRmlsZVVwbG9hZHMgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UubXVsdGlGaWxlVXBsb2FkcztcbiAgICB0aGlzLmZpbGVUeXBlcyA9dGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLmZpbGVUeXBlcztcbiAgICB0aGlzLmZpbGVTaXplID10aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24uZmlsZVNpemU7XG4gICAgdGhpcy5maWxlU2l6ZVVuaXQgPXRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5maWxlU2l6ZVVuaXQ7XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiJ2NvbC0nICsgY291bnRcIiBjbGFzcz1cIm1iLTQgcHgtNFwiPlxuICA8bGFiZWw+e3sgcXVlc3Rpb24ucXVlc3Rpb24gfX08L2xhYmVsPiZuYnNwO1xuICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gIDxsaWItZG9jVXBsb2FkPjwvbGliLWRvY1VwbG9hZD5cbjwvZGl2PlxuIl19
@@ -28,12 +28,12 @@ export class LocationFieldsComponent {
28
28
  this.region = this.question.formElement.validation.region;
29
29
  }
30
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocationFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LocationFieldsComponent, selector: "lib-location-fields", inputs: { grid: "grid" }, ngImport: i0, template: "<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-4\">\n <label>{{ question.question }}</label>\n</div>\n", styles: [".height{height:44px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LocationFieldsComponent, selector: "lib-location-fields", inputs: { grid: "grid" }, ngImport: i0, template: "<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-4\">\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n</div>\n", styles: [".height{height:44px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
32
32
  }
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocationFieldsComponent, decorators: [{
34
34
  type: Component,
35
- args: [{ selector: 'lib-location-fields', template: "<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-4\">\n <label>{{ question.question }}</label>\n</div>\n", styles: [".height{height:44px}\n"] }]
35
+ args: [{ selector: 'lib-location-fields', template: "<div [ngClass]=\"'col-' + count\" class=\"mb-4 px-4\">\n <label>{{ question.question }}</label>&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n</div>\n", styles: [".height{height:44px}\n"] }]
36
36
  }], propDecorators: { grid: [{
37
37
  type: Input
38
38
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvbG9jYXRpb24tZmllbGRzL2xvY2F0aW9uLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2xvY2F0aW9uLWZpZWxkcy9sb2NhdGlvbi1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9qRCxNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBTVcsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFTLEtBQUssQ0FBQztRQUN2QixTQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ2YsdUJBQWtCLEdBQVMsS0FBSyxDQUFDO1FBQ2pDLG9CQUFlLEdBQVMsS0FBSyxDQUFDO1FBQzlCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixtQkFBYyxHQUFTLEtBQUssQ0FBQztRQUM3QixXQUFNLEdBQVEsRUFBRSxDQUFDO0tBY2xCO0lBWkMsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQztRQUNoRixJQUFJLENBQUMsZUFBZSxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7UUFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUM5RCxJQUFJLENBQUMsY0FBYyxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUE7UUFDdkUsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQzFELENBQUM7K0dBeEJVLHVCQUF1QjttR0FBdkIsdUJBQXVCLHFGQ1BwQyw0R0FHQTs7NEZESWEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjs4QkFLdEIsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItbG9jYXRpb24tZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2F0aW9uLWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvY2F0aW9uLWZpZWxkcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMb2NhdGlvbkZpZWxkc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGdyaWQ6IGFueSA9IHt9O1xuICBxdWVzdGlvbjogYW55ID0ge307XG4gIGNvdW50OiBudW1iZXIgPSAwO1xuICByZXF1aXJlZDpib29sZWFuPWZhbHNlO1xuICBoaW50OnN0cmluZz0nJztcbiAgc2V0Q3VycmVudFBvc2l0aW9uOmJvb2xlYW49ZmFsc2U7XG4gIGFsbG93RnVsbFNjcmVlbjpib29sZWFuPWZhbHNlO1xuICBsYXRpdHVkZTpzdHJpbmc9Jyc7XG4gIGxvbmdpdHVkZTpzdHJpbmc9Jyc7XG4gIHJlZ2lvbkJvdW5kYXJ5OmJvb2xlYW49ZmFsc2U7XG4gIHJlZ2lvbjpzdHJpbmc9Jyc7IFxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucXVlc3Rpb24gPSB0aGlzLmdyaWQucXVlc3Rpb247XG4gICAgdGhpcy5jb3VudCA9IHRoaXMuZ3JpZC5jb3VudDtcbiAgICB0aGlzLnJlcXVpcmVkPXRoaXMucXVlc3Rpb24ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50PXRoaXMucXVlc3Rpb24uaGludDtcbiAgICB0aGlzLnNldEN1cnJlbnRQb3NpdGlvbj10aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2Uuc2V0Q3VycmVudFBvc2l0aW9uO1xuICAgIHRoaXMuYWxsb3dGdWxsU2NyZWVuPXRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5hbGxvd0Z1bGxTY3JlZW47XG4gICAgdGhpcy5sYXRpdHVkZT10aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UubGF0aXR1ZGU7XG4gICAgdGhpcy5sb25naXR1ZGU9dGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5hcHBlYXJhbmNlLmxvbmdpdHVkZTtcbiAgICB0aGlzLnJlZ2lvbkJvdW5kYXJ5PXRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5yZWdpb25Cb3VuZGFyeVxuICAgIHRoaXMucmVnaW9uPXRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5yZWdpb247XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiJ2NvbC0nICsgY291bnRcIiBjbGFzcz1cIm1iLTQgcHgtNFwiPlxuICA8bGFiZWw+e3sgcXVlc3Rpb24ucXVlc3Rpb24gfX08L2xhYmVsPlxuPC9kaXY+XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvbG9jYXRpb24tZmllbGRzL2xvY2F0aW9uLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2xvY2F0aW9uLWZpZWxkcy9sb2NhdGlvbi1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9qRCxNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBTVcsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFTLEtBQUssQ0FBQztRQUN2QixTQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ2YsdUJBQWtCLEdBQVMsS0FBSyxDQUFDO1FBQ2pDLG9CQUFlLEdBQVMsS0FBSyxDQUFDO1FBQzlCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixtQkFBYyxHQUFTLEtBQUssQ0FBQztRQUM3QixXQUFNLEdBQVEsRUFBRSxDQUFDO0tBY2xCO0lBWkMsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQztRQUNoRixJQUFJLENBQUMsZUFBZSxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7UUFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUM5RCxJQUFJLENBQUMsY0FBYyxHQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUE7UUFDdkUsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQzFELENBQUM7K0dBeEJVLHVCQUF1QjttR0FBdkIsdUJBQXVCLHFGQ1BwQyw2S0FJQTs7NEZER2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjs4QkFLdEIsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItbG9jYXRpb24tZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2F0aW9uLWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvY2F0aW9uLWZpZWxkcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMb2NhdGlvbkZpZWxkc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGdyaWQ6IGFueSA9IHt9O1xuICBxdWVzdGlvbjogYW55ID0ge307XG4gIGNvdW50OiBudW1iZXIgPSAwO1xuICByZXF1aXJlZDpib29sZWFuPWZhbHNlO1xuICBoaW50OnN0cmluZz0nJztcbiAgc2V0Q3VycmVudFBvc2l0aW9uOmJvb2xlYW49ZmFsc2U7XG4gIGFsbG93RnVsbFNjcmVlbjpib29sZWFuPWZhbHNlO1xuICBsYXRpdHVkZTpzdHJpbmc9Jyc7XG4gIGxvbmdpdHVkZTpzdHJpbmc9Jyc7XG4gIHJlZ2lvbkJvdW5kYXJ5OmJvb2xlYW49ZmFsc2U7XG4gIHJlZ2lvbjpzdHJpbmc9Jyc7IFxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucXVlc3Rpb24gPSB0aGlzLmdyaWQucXVlc3Rpb247XG4gICAgdGhpcy5jb3VudCA9IHRoaXMuZ3JpZC5jb3VudDtcbiAgICB0aGlzLnJlcXVpcmVkPXRoaXMucXVlc3Rpb24ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50PXRoaXMucXVlc3Rpb24uaGludDtcbiAgICB0aGlzLnNldEN1cnJlbnRQb3NpdGlvbj10aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2Uuc2V0Q3VycmVudFBvc2l0aW9uO1xuICAgIHRoaXMuYWxsb3dGdWxsU2NyZWVuPXRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5hbGxvd0Z1bGxTY3JlZW47XG4gICAgdGhpcy5sYXRpdHVkZT10aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UubGF0aXR1ZGU7XG4gICAgdGhpcy5sb25naXR1ZGU9dGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5hcHBlYXJhbmNlLmxvbmdpdHVkZTtcbiAgICB0aGlzLnJlZ2lvbkJvdW5kYXJ5PXRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5yZWdpb25Cb3VuZGFyeVxuICAgIHRoaXMucmVnaW9uPXRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5yZWdpb247XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiJ2NvbC0nICsgY291bnRcIiBjbGFzcz1cIm1iLTQgcHgtNFwiPlxuICA8bGFiZWw+e3sgcXVlc3Rpb24ucXVlc3Rpb24gfX08L2xhYmVsPiZuYnNwO1xuICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG48L2Rpdj5cbiJdfQ==