@rangertechnologies/ngnxt 2.0.37 → 2.0.39

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 (72) hide show
  1. package/README.md +2 -2
  2. package/esm2022/lib/components/custom-date-picker/custom-date-picker.component.mjs +33 -33
  3. package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +94 -82
  4. package/esm2022/lib/components/custom-input/custom-input.component.mjs +76 -76
  5. package/esm2022/lib/components/custom-table/custom-table.component.mjs +53 -53
  6. package/esm2022/lib/components/custom-text-area/custom-text-area.component.mjs +34 -34
  7. package/esm2022/lib/components/dropdown-with-flag/dropdown-with-flag.component.mjs +34 -34
  8. package/esm2022/lib/components/file-upload/file-upload.component.mjs +110 -159
  9. package/esm2022/lib/components/file-view/file-view.component.mjs +42 -0
  10. package/esm2022/lib/components/pick-location/pick-location.component.mjs +136 -136
  11. package/esm2022/lib/components/search-box/search-box.component.mjs +106 -84
  12. package/esm2022/lib/interfaces/actionMeta.mjs +2 -2
  13. package/esm2022/lib/interfaces/apimeta.mjs +2 -2
  14. package/esm2022/lib/interfaces/dependencyMeta.mjs +2 -2
  15. package/esm2022/lib/model/bookletWrapper.mjs +9 -9
  16. package/esm2022/lib/model/changeWrapper.mjs +8 -8
  17. package/esm2022/lib/model/errorWrapper.mjs +6 -6
  18. package/esm2022/lib/model/tableWrapper.mjs +16 -16
  19. package/esm2022/lib/nxt-app.component.mjs +22 -22
  20. package/esm2022/lib/nxt-app.module.mjs +276 -268
  21. package/esm2022/lib/nxt-app.service.mjs +14 -14
  22. package/esm2022/lib/pages/booklet/booklet.component.mjs +171 -159
  23. package/esm2022/lib/pages/questionbook/questionbook.component.mjs +102 -85
  24. package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +2066 -2066
  25. package/esm2022/lib/pages/summary-page/summary-page.component.mjs +70 -0
  26. package/esm2022/lib/sample.mjs +432 -432
  27. package/esm2022/lib/services/change.service.mjs +38 -33
  28. package/esm2022/lib/services/data.service.mjs +40 -40
  29. package/esm2022/lib/services/salesforce.service.mjs +46 -46
  30. package/esm2022/lib/services/shared.service.mjs +86 -0
  31. package/esm2022/lib/services/storage.service.mjs +41 -41
  32. package/esm2022/lib/wrapper.mjs +161 -161
  33. package/esm2022/public-api.mjs +11 -10
  34. package/esm2022/rangertechnologies-ngnxt.mjs +4 -4
  35. package/fesm2022/rangertechnologies-ngnxt.mjs +4105 -3899
  36. package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
  37. package/index.d.ts +5 -5
  38. package/lib/components/custom-date-picker/custom-date-picker.component.d.ts +14 -14
  39. package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +29 -26
  40. package/lib/components/custom-input/custom-input.component.d.ts +26 -26
  41. package/lib/components/custom-table/custom-table.component.d.ts +20 -20
  42. package/lib/components/custom-text-area/custom-text-area.component.d.ts +14 -14
  43. package/lib/components/dropdown-with-flag/dropdown-with-flag.component.d.ts +14 -14
  44. package/lib/components/file-upload/file-upload.component.d.ts +24 -23
  45. package/lib/components/file-view/file-view.component.d.ts +14 -0
  46. package/lib/components/pick-location/pick-location.component.d.ts +35 -35
  47. package/lib/components/search-box/search-box.component.d.ts +40 -34
  48. package/lib/interfaces/actionMeta.d.ts +5 -5
  49. package/lib/interfaces/apimeta.d.ts +5 -5
  50. package/lib/interfaces/dependencyMeta.d.ts +5 -5
  51. package/lib/model/bookletWrapper.d.ts +5 -5
  52. package/lib/model/changeWrapper.d.ts +7 -7
  53. package/lib/model/errorWrapper.d.ts +5 -5
  54. package/lib/model/tableWrapper.d.ts +15 -15
  55. package/lib/nxt-app.component.d.ts +8 -8
  56. package/lib/nxt-app.module.d.ts +30 -28
  57. package/lib/nxt-app.service.d.ts +6 -6
  58. package/lib/pages/booklet/booklet.component.d.ts +45 -43
  59. package/lib/pages/questionbook/questionbook.component.d.ts +27 -26
  60. package/lib/pages/questionnaire/questionnaire.component.d.ts +206 -206
  61. package/lib/pages/summary-page/summary-page.component.d.ts +18 -0
  62. package/lib/sample.d.ts +10 -10
  63. package/lib/services/change.service.d.ts +16 -13
  64. package/lib/services/data.service.d.ts +9 -9
  65. package/lib/services/salesforce.service.d.ts +11 -11
  66. package/lib/services/shared.service.d.ts +11 -0
  67. package/lib/services/storage.service.d.ts +12 -12
  68. package/lib/wrapper.d.ts +161 -161
  69. package/package.json +1 -1
  70. package/public-api.d.ts +7 -6
  71. package/rangertechnologies-ngnxt-2.0.39.tgz +0 -0
  72. package/rangertechnologies-ngnxt-2.0.37.tgz +0 -0
package/README.md CHANGED
@@ -1,2 +1,2 @@
1
- # NxtApp
2
- This need to be updated for better impact.
1
+ # NxtApp
2
+ This need to be updated for better impact.
@@ -1,33 +1,33 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/forms";
4
- import * as i2 from "ng-pick-datetime";
5
- export class CustomDatePickerComponent {
6
- date;
7
- minDate;
8
- maxDate;
9
- dateChange = new EventEmitter();
10
- dateSelected;
11
- constructor() { }
12
- ngOnInit() {
13
- this.dateSelected = new Date(this.date);
14
- }
15
- onDateChange(event) {
16
- this.dateChange.emit(event);
17
- }
18
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CustomDatePickerComponent, selector: "app-custom-date-picker", inputs: { date: "date", minDate: "minDate", maxDate: "maxDate" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<!-- <div class=\"date-picker-container\">\r\n <label>{{label}}</label>\r\n <input type=\"date\" [min]=\"minDate\" [max]=\"maxDate\" [required]=\"required\" (change)=\"onDateChanged($event)\">\r\n</div> -->\r\n<!-- <mat-form-field>\r\n <input matInput [matDatepicker]=\"picker\" [placeholder]=\"placeholder\" [min]=\"minDate\" [max]=\"maxDate\" [(ngModel)]=\"selectedDate\" (dateChange)=\"onDateChange($event)\">\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n</mat-form-field> -->\r\n\r\n<p>\r\n <input class=\"input-shengel\"\r\n [(ngModel)]=\"dateSelected\" \r\n [owlDateTimeTrigger]=\"dt\" \r\n [owlDateTime]=\"dt\" \r\n [min]=\"minDate\"\r\n placeholder=\"DD/MM/YYYY HH:MM\"\r\n style=\"width: 100%; height: 35px; border: none; box-shadow: none; border-bottom: 1px solid #ccc;\"\r\n (dateTimeChange)=\"onDateChange($event)\">\r\n <owl-date-time #dt></owl-date-time>\r\n</p>\r\n ", styles: [""], dependencies: [{ kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.OwlDateTimeTriggerDirective, selector: "[owlDateTimeTrigger]", inputs: ["disabled", "owlDateTimeTrigger"] }, { kind: "directive", type: i2.OwlDateTimeInputDirective, selector: "input[owlDateTime]", inputs: ["rangeSeparator", "owlDateTime", "owlDateTimeFilter", "min", "max", "selectMode", "value", "values", "_disabled"], outputs: ["dateTimeChange", "dateTimeInput"], exportAs: ["owlDateTimeInput"] }, { kind: "component", type: i2.OwlDateTimeComponent, selector: "owl-date-time", inputs: ["startAt", "pickerType", "pickerMode", "disabled", "opened", "backdropClass", "panelClass", "scrollStrategy"], outputs: ["afterPickerClosed", "afterPickerOpen", "yearSelected", "monthSelected"], exportAs: ["owlDateTime"] }] });
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomDatePickerComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'app-custom-date-picker', template: "<!-- <div class=\"date-picker-container\">\r\n <label>{{label}}</label>\r\n <input type=\"date\" [min]=\"minDate\" [max]=\"maxDate\" [required]=\"required\" (change)=\"onDateChanged($event)\">\r\n</div> -->\r\n<!-- <mat-form-field>\r\n <input matInput [matDatepicker]=\"picker\" [placeholder]=\"placeholder\" [min]=\"minDate\" [max]=\"maxDate\" [(ngModel)]=\"selectedDate\" (dateChange)=\"onDateChange($event)\">\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n</mat-form-field> -->\r\n\r\n<p>\r\n <input class=\"input-shengel\"\r\n [(ngModel)]=\"dateSelected\" \r\n [owlDateTimeTrigger]=\"dt\" \r\n [owlDateTime]=\"dt\" \r\n [min]=\"minDate\"\r\n placeholder=\"DD/MM/YYYY HH:MM\"\r\n style=\"width: 100%; height: 35px; border: none; box-shadow: none; border-bottom: 1px solid #ccc;\"\r\n (dateTimeChange)=\"onDateChange($event)\">\r\n <owl-date-time #dt></owl-date-time>\r\n</p>\r\n " }]
24
- }], ctorParameters: function () { return []; }, propDecorators: { date: [{
25
- type: Input
26
- }], minDate: [{
27
- type: Input
28
- }], maxDate: [{
29
- type: Input
30
- }], dateChange: [{
31
- type: Output
32
- }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRhdGUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1kYXRlLXBpY2tlci9jdXN0b20tZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWRhdGUtcGlja2VyL2N1c3RvbS1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLEtBQUssRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzNFLE1BQU0sT0FBTyx5QkFBeUI7SUFDM0IsSUFBSSxDQUFTO0lBQ2IsT0FBTyxDQUFLO0lBQ1osT0FBTyxDQUFLO0lBQ1gsVUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ2xFLFlBQVksQ0FBSTtJQUNoQixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ1AsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7d0dBZFUseUJBQXlCOzRGQUF6Qix5QkFBeUIsdUtDUHRDLG0vQkFxQkU7OzRGRGRXLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx3QkFBd0I7MEVBS3pCLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCxJbnB1dCxPdXRwdXQsRXZlbnRFbWl0dGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1kYXRlLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLWRhdGUtcGlja2VyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGF0ZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1pbkRhdGU6YW55O1xyXG4gIEBJbnB1dCgpIG1heERhdGU6YW55O1xyXG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIGRhdGVTZWxlY3RlZDphbnlcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgdGhpcy5kYXRlU2VsZWN0ZWQgPSBuZXcgRGF0ZSh0aGlzLmRhdGUpO1xyXG4gIH1cclxuXHJcbiAgb25EYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLWNvbnRhaW5lclwiPlxyXG4gICAgPGxhYmVsPnt7bGFiZWx9fTwvbGFiZWw+XHJcbiAgICA8aW5wdXQgdHlwZT1cImRhdGVcIiBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiAoY2hhbmdlKT1cIm9uRGF0ZUNoYW5nZWQoJGV2ZW50KVwiPlxyXG48L2Rpdj4gLS0+XHJcbjwhLS0gPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlXCIgKGRhdGVDaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudClcIj5cclxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxyXG48L21hdC1mb3JtLWZpZWxkPiAtLT5cclxuXHJcbjxwPlxyXG4gICAgPGlucHV0ICBjbGFzcz1cImlucHV0LXNoZW5nZWxcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJkYXRlU2VsZWN0ZWRcIiBcclxuICAgIFtvd2xEYXRlVGltZVRyaWdnZXJdPVwiZHRcIiBcclxuICAgIFtvd2xEYXRlVGltZV09XCJkdFwiICBcclxuICAgIFttaW5dPVwibWluRGF0ZVwiXHJcbiAgICBwbGFjZWhvbGRlcj1cIkREL01NL1lZWVkgSEg6TU1cIlxyXG4gICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAzNXB4OyBib3JkZXI6IG5vbmU7IGJveC1zaGFkb3c6IG5vbmU7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1wiXHJcbiAgICAoZGF0ZVRpbWVDaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudClcIj5cclxuICAgIDxvd2wtZGF0ZS10aW1lICNkdD48L293bC1kYXRlLXRpbWU+XHJcbjwvcD5cclxuICAiXX0=
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
4
+ import * as i2 from "ng-pick-datetime";
5
+ export class CustomDatePickerComponent {
6
+ date;
7
+ minDate;
8
+ maxDate;
9
+ dateChange = new EventEmitter();
10
+ dateSelected;
11
+ constructor() { }
12
+ ngOnInit() {
13
+ this.dateSelected = new Date(this.date);
14
+ }
15
+ onDateChange(event) {
16
+ this.dateChange.emit(event);
17
+ }
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CustomDatePickerComponent, selector: "app-custom-date-picker", inputs: { date: "date", minDate: "minDate", maxDate: "maxDate" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<!-- <div class=\"date-picker-container\">\n <label>{{label}}</label>\n <input type=\"date\" [min]=\"minDate\" [max]=\"maxDate\" [required]=\"required\" (change)=\"onDateChanged($event)\">\n</div> -->\n<!-- <mat-form-field>\n <input matInput [matDatepicker]=\"picker\" [placeholder]=\"placeholder\" [min]=\"minDate\" [max]=\"maxDate\" [(ngModel)]=\"selectedDate\" (dateChange)=\"onDateChange($event)\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field> -->\n\n<p>\n <input class=\"input-shengel\"\n [(ngModel)]=\"dateSelected\" \n [owlDateTimeTrigger]=\"dt\" \n [owlDateTime]=\"dt\" \n [min]=\"minDate\"\n placeholder=\"DD/MM/YYYY HH:MM\"\n style=\"width: 100%; height: 35px; border: none; box-shadow: none; border-bottom: 1px solid #ccc;\"\n (dateTimeChange)=\"onDateChange($event)\">\n <owl-date-time #dt></owl-date-time>\n</p>\n ", styles: ["input{border:1px solid #ccc!important;width:100%!important;padding-inline:15px!important;box-shadow:none!important;background-color:transparent!important;animation:animate-grey-border .5s linear forwards!important;border-radius:5px!important;font-weight:400!important;font-size:13px!important;height:42px!important;color:#212529!important}\n"], dependencies: [{ kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.OwlDateTimeTriggerDirective, selector: "[owlDateTimeTrigger]", inputs: ["disabled", "owlDateTimeTrigger"] }, { kind: "directive", type: i2.OwlDateTimeInputDirective, selector: "input[owlDateTime]", inputs: ["rangeSeparator", "owlDateTime", "owlDateTimeFilter", "min", "max", "selectMode", "value", "values", "_disabled"], outputs: ["dateTimeChange", "dateTimeInput"], exportAs: ["owlDateTimeInput"] }, { kind: "component", type: i2.OwlDateTimeComponent, selector: "owl-date-time", inputs: ["startAt", "pickerType", "pickerMode", "disabled", "opened", "backdropClass", "panelClass", "scrollStrategy"], outputs: ["afterPickerClosed", "afterPickerOpen", "yearSelected", "monthSelected"], exportAs: ["owlDateTime"] }] });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomDatePickerComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'app-custom-date-picker', template: "<!-- <div class=\"date-picker-container\">\n <label>{{label}}</label>\n <input type=\"date\" [min]=\"minDate\" [max]=\"maxDate\" [required]=\"required\" (change)=\"onDateChanged($event)\">\n</div> -->\n<!-- <mat-form-field>\n <input matInput [matDatepicker]=\"picker\" [placeholder]=\"placeholder\" [min]=\"minDate\" [max]=\"maxDate\" [(ngModel)]=\"selectedDate\" (dateChange)=\"onDateChange($event)\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field> -->\n\n<p>\n <input class=\"input-shengel\"\n [(ngModel)]=\"dateSelected\" \n [owlDateTimeTrigger]=\"dt\" \n [owlDateTime]=\"dt\" \n [min]=\"minDate\"\n placeholder=\"DD/MM/YYYY HH:MM\"\n style=\"width: 100%; height: 35px; border: none; box-shadow: none; border-bottom: 1px solid #ccc;\"\n (dateTimeChange)=\"onDateChange($event)\">\n <owl-date-time #dt></owl-date-time>\n</p>\n ", styles: ["input{border:1px solid #ccc!important;width:100%!important;padding-inline:15px!important;box-shadow:none!important;background-color:transparent!important;animation:animate-grey-border .5s linear forwards!important;border-radius:5px!important;font-weight:400!important;font-size:13px!important;height:42px!important;color:#212529!important}\n"] }]
24
+ }], ctorParameters: function () { return []; }, propDecorators: { date: [{
25
+ type: Input
26
+ }], minDate: [{
27
+ type: Input
28
+ }], maxDate: [{
29
+ type: Input
30
+ }], dateChange: [{
31
+ type: Output
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRhdGUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1kYXRlLXBpY2tlci9jdXN0b20tZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWRhdGUtcGlja2VyL2N1c3RvbS1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLEtBQUssRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzNFLE1BQU0sT0FBTyx5QkFBeUI7SUFDM0IsSUFBSSxDQUFTO0lBQ2IsT0FBTyxDQUFLO0lBQ1osT0FBTyxDQUFLO0lBQ1gsVUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ2xFLFlBQVksQ0FBSTtJQUNoQixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ1AsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7d0dBZFUseUJBQXlCOzRGQUF6Qix5QkFBeUIsdUtDUHRDLHk4QkFxQkU7OzRGRGRXLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx3QkFBd0I7MEVBS3pCLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCxJbnB1dCxPdXRwdXQsRXZlbnRFbWl0dGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1kYXRlLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tZGF0ZS1waWNrZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbURhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkYXRlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1pbkRhdGU6YW55O1xuICBASW5wdXQoKSBtYXhEYXRlOmFueTtcbiAgQE91dHB1dCgpIGRhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIGRhdGVTZWxlY3RlZDphbnlcbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgIHRoaXMuZGF0ZVNlbGVjdGVkID0gbmV3IERhdGUodGhpcy5kYXRlKTtcbiAgfVxuXG4gIG9uRGF0ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbn1cbiIsIjwhLS0gPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLWNvbnRhaW5lclwiPlxuICAgIDxsYWJlbD57e2xhYmVsfX08L2xhYmVsPlxuICAgIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIChjaGFuZ2UpPVwib25EYXRlQ2hhbmdlZCgkZXZlbnQpXCI+XG48L2Rpdj4gLS0+XG48IS0tIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW21pbl09XCJtaW5EYXRlXCIgW21heF09XCJtYXhEYXRlXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVcIiAoZGF0ZUNoYW5nZSk9XCJvbkRhdGVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbjwvbWF0LWZvcm0tZmllbGQ+IC0tPlxuXG48cD5cbiAgICA8aW5wdXQgIGNsYXNzPVwiaW5wdXQtc2hlbmdlbFwiXG4gICAgWyhuZ01vZGVsKV09XCJkYXRlU2VsZWN0ZWRcIiBcbiAgICBbb3dsRGF0ZVRpbWVUcmlnZ2VyXT1cImR0XCIgXG4gICAgW293bERhdGVUaW1lXT1cImR0XCIgIFxuICAgIFttaW5dPVwibWluRGF0ZVwiXG4gICAgcGxhY2Vob2xkZXI9XCJERC9NTS9ZWVlZIEhIOk1NXCJcbiAgICBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDM1cHg7IGJvcmRlcjogbm9uZTsgYm94LXNoYWRvdzogbm9uZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XCJcbiAgICAoZGF0ZVRpbWVDaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudClcIj5cbiAgICA8b3dsLWRhdGUtdGltZSAjZHQ+PC9vd2wtZGF0ZS10aW1lPlxuPC9wPlxuICAiXX0=
@@ -1,82 +1,94 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { ChangeWrapper } from '../../model/changeWrapper';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common/http";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/forms";
7
- import * as i4 from "@ng-select/ng-select";
8
- export class CustomDropdownComponent {
9
- http;
10
- options;
11
- placeholder;
12
- apiMeta;
13
- selectedValue;
14
- progressBar;
15
- id;
16
- errorMessage;
17
- error;
18
- fromShengel = false;
19
- valueChange = new EventEmitter();
20
- constructor(http) {
21
- this.http = http;
22
- }
23
- labelField;
24
- valueField;
25
- ngOnInit() {
26
- // console.log('inside oninit of custom-dropdown of ' + this.id);
27
- // console.log(this.apiMeta);
28
- if (this.apiMeta !== undefined) {
29
- this.options = [];
30
- let apiObj = JSON.parse(this.apiMeta);
31
- this.labelField = apiObj.field;
32
- this.apiResponse(apiObj.endpoint).subscribe((apiResponse) => {
33
- let responses = apiResponse[apiObj.variable];
34
- let results = [];
35
- for (let i = 0; i < responses.length; i++) {
36
- var resp = responses[i];
37
- results.push(resp);
38
- }
39
- // Reference https://www.npmjs.com/package/@ng-select/ng-select
40
- this.options = results;
41
- });
42
- }
43
- }
44
- apiResponse(endpoint) {
45
- return this.http.get(endpoint);
46
- }
47
- selectChange(event) {
48
- console.log('inside selectChange from ' + this.id);
49
- // console.log(event);
50
- let change = new ChangeWrapper(); // ChangeWrapper = JSON.parse('{}');
51
- change.fromQuestionId = this.id;
52
- change.valueObj = event;
53
- this.valueChange.emit(change);
54
- }
55
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomDropdownComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
56
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CustomDropdownComponent, selector: "app-custom-dropdown", inputs: { options: "options", placeholder: "placeholder", apiMeta: "apiMeta", selectedValue: "selectedValue", progressBar: "progressBar", id: "id", errorMessage: "errorMessage", error: "error", fromShengel: "fromShengel" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<select *ngIf=\"!fromShengel\"\r\n [ngClass]=\"{\r\n 'dt-line dpDown down myt-dropbox myt-border-r myt-font1': progressBar,\r\n 'custom-select': !progressBar\r\n }\" class=\"custom-select mr-sm-2 dd-height\" \r\n [id]=\"id\" \r\n [(ngModel)]=\"selectedValue\"\r\n (change)=\"selectChange($event.target.value);\" \r\n [style.borderColor]=\"error ? 'red' : '#858585'\"\r\n [style.color]=\"error ? 'red' : ''\">\r\n <option *ngFor=\"let option of options\" [value]=\"option.Value__c\" class=\"option\">{{ option.Value__c }}</option>\r\n <option *ngIf=\"errorMessage\" value=\"\" disabled hidden>{{ errorMessage }}</option>\r\n</select>\r\n\r\n<ng-select *ngIf=\"fromShengel\"\r\n class=\"shengel-custom-select\"\r\n [(ngModel)]=\"selectedValue\" \r\n [placeholder]=\"placeholder\"\r\n (change)=\"selectChange($event)\"\r\n [id]=\"id\">\r\n <ng-option *ngFor=\"let option of options\" [value]=\"option\">{{ option[labelField] }}</ng-option> \r\n <ng-option *ngIf=\"errorMessage\" value=\"\" disabled hidden>{{ errorMessage }}</ng-option>\r\n</ng-select>\r\n\r\n<span *ngIf=\"error && fromShengel\" class=\"error-msg\">Required*</span>", styles: [".ng-select{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i4.ɵr, selector: "ng-option", inputs: ["disabled", "value"] }] });
57
- }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomDropdownComponent, decorators: [{
59
- type: Component,
60
- args: [{ selector: 'app-custom-dropdown', template: "<select *ngIf=\"!fromShengel\"\r\n [ngClass]=\"{\r\n 'dt-line dpDown down myt-dropbox myt-border-r myt-font1': progressBar,\r\n 'custom-select': !progressBar\r\n }\" class=\"custom-select mr-sm-2 dd-height\" \r\n [id]=\"id\" \r\n [(ngModel)]=\"selectedValue\"\r\n (change)=\"selectChange($event.target.value);\" \r\n [style.borderColor]=\"error ? 'red' : '#858585'\"\r\n [style.color]=\"error ? 'red' : ''\">\r\n <option *ngFor=\"let option of options\" [value]=\"option.Value__c\" class=\"option\">{{ option.Value__c }}</option>\r\n <option *ngIf=\"errorMessage\" value=\"\" disabled hidden>{{ errorMessage }}</option>\r\n</select>\r\n\r\n<ng-select *ngIf=\"fromShengel\"\r\n class=\"shengel-custom-select\"\r\n [(ngModel)]=\"selectedValue\" \r\n [placeholder]=\"placeholder\"\r\n (change)=\"selectChange($event)\"\r\n [id]=\"id\">\r\n <ng-option *ngFor=\"let option of options\" [value]=\"option\">{{ option[labelField] }}</ng-option> \r\n <ng-option *ngIf=\"errorMessage\" value=\"\" disabled hidden>{{ errorMessage }}</ng-option>\r\n</ng-select>\r\n\r\n<span *ngIf=\"error && fromShengel\" class=\"error-msg\">Required*</span>", styles: [".ng-select{width:100%}\n"] }]
61
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; }, propDecorators: { options: [{
62
- type: Input
63
- }], placeholder: [{
64
- type: Input
65
- }], apiMeta: [{
66
- type: Input
67
- }], selectedValue: [{
68
- type: Input
69
- }], progressBar: [{
70
- type: Input
71
- }], id: [{
72
- type: Input
73
- }], errorMessage: [{
74
- type: Input
75
- }], error: [{
76
- type: Input
77
- }], fromShengel: [{
78
- type: Input
79
- }], valueChange: [{
80
- type: Output
81
- }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1kcm9wZG93bi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWRyb3Bkb3duL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLEtBQUssRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBTzFELE1BQU0sT0FBTyx1QkFBdUI7SUFZZDtJQVhYLE9BQU8sQ0FBVztJQUNsQixXQUFXLENBQVM7SUFDcEIsT0FBTyxDQUFTO0lBQ2hCLGFBQWEsQ0FBUztJQUN0QixXQUFXLENBQVU7SUFDckIsRUFBRSxDQUFRO0lBQ1YsWUFBWSxDQUFTO0lBQ3JCLEtBQUssQ0FBSztJQUNWLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDNUIsV0FBVyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUV2RixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3BDLENBQUM7SUFFTSxVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBRTFCLFFBQVE7UUFDTixpRUFBaUU7UUFDakUsNkJBQTZCO1FBQzdCLElBQUcsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsSUFBSSxNQUFNLEdBQVksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBRS9CLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUMxRCxJQUFJLFNBQVMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUN6QyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3BCO2dCQUNELCtEQUErRDtnQkFDL0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUE7U0FDSDtJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsUUFBZ0I7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVM7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkQsc0JBQXNCO1FBQ3RCLElBQUksTUFBTSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQyxvQ0FBb0M7UUFDdEUsTUFBTSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7d0dBbERVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLG9VQ1hwQywwckNBd0JxRTs7NEZEYnhELHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7aUdBS3RCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LElucHV0LE91dHB1dCxFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBUElNZXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hcGltZXRhJztcclxuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY3VzdG9tLWRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21Ecm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgb3B0aW9uczogc3RyaW5nW107XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBhcGlNZXRhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHByb2dyZXNzQmFyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlkOnN0cmluZztcclxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBlcnJvcjphbnk7XHJcbiAgQElucHV0KCkgZnJvbVNoZW5nZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDaGFuZ2VXcmFwcGVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hhbmdlV3JhcHBlcj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGxhYmVsRmllbGQ6IHN0cmluZztcclxuICBwdWJsaWMgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdpbnNpZGUgb25pbml0IG9mIGN1c3RvbS1kcm9wZG93biBvZiAnICsgdGhpcy5pZCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmFwaU1ldGEpO1xyXG4gICAgaWYodGhpcy5hcGlNZXRhICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5vcHRpb25zID0gW107XHJcbiAgICAgIGxldCBhcGlPYmo6IEFQSU1ldGEgPSBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XHJcbiAgICAgIHRoaXMubGFiZWxGaWVsZCA9IGFwaU9iai5maWVsZDtcclxuXHJcbiAgICAgIHRoaXMuYXBpUmVzcG9uc2UoYXBpT2JqLmVuZHBvaW50KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgbGV0IHJlc3BvbnNlcyA9IGFwaVJlc3BvbnNlW2FwaU9iai52YXJpYWJsZV07XHJcbiAgICAgICAgbGV0IHJlc3VsdHMgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdmFyIHJlc3AgPSByZXNwb25zZXNbaV07XHJcbiAgICAgICAgICByZXN1bHRzLnB1c2gocmVzcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFJlZmVyZW5jZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Abmctc2VsZWN0L25nLXNlbGVjdFxyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3VsdHM7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXBpUmVzcG9uc2UoZW5kcG9pbnQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChlbmRwb2ludCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RDaGFuZ2UoZXZlbnQ6YW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnaW5zaWRlIHNlbGVjdENoYW5nZSBmcm9tICcgKyB0aGlzLmlkKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGV2ZW50KTtcclxuICAgIGxldCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpOyAvLyBDaGFuZ2VXcmFwcGVyID0gSlNPTi5wYXJzZSgne30nKTtcclxuICAgIGNoYW5nZS5mcm9tUXVlc3Rpb25JZCA9IHRoaXMuaWQ7XHJcbiAgICBjaGFuZ2UudmFsdWVPYmogPSBldmVudDtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChjaGFuZ2UpO1xyXG4gIH1cclxufVxyXG4iLCI8c2VsZWN0ICpuZ0lmPVwiIWZyb21TaGVuZ2VsXCJcclxuICBbbmdDbGFzc109XCJ7XHJcbiAgICAnZHQtbGluZSBkcERvd24gZG93biBteXQtZHJvcGJveCBteXQtYm9yZGVyLXIgbXl0LWZvbnQxJzogcHJvZ3Jlc3NCYXIsXHJcbiAgICAnY3VzdG9tLXNlbGVjdCc6ICFwcm9ncmVzc0JhclxyXG4gIH1cIiBjbGFzcz1cImN1c3RvbS1zZWxlY3QgbXItc20tMiBkZC1oZWlnaHRcIiBcclxuICBbaWRdPVwiaWRcIiBcclxuICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVmFsdWVcIlxyXG4gIChjaGFuZ2UpPVwic2VsZWN0Q2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpO1wiIFxyXG4gIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJlcnJvciA/ICdyZWQnIDogJyM4NTg1ODUnXCJcclxuICBbc3R5bGUuY29sb3JdPVwiZXJyb3IgPyAncmVkJyA6ICcnXCI+XHJcbiAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb24uVmFsdWVfX2NcIiBjbGFzcz1cIm9wdGlvblwiPnt7IG9wdGlvbi5WYWx1ZV9fYyB9fTwvb3B0aW9uPlxyXG4gICAgPG9wdGlvbiAqbmdJZj1cImVycm9yTWVzc2FnZVwiIHZhbHVlPVwiXCIgZGlzYWJsZWQgaGlkZGVuPnt7IGVycm9yTWVzc2FnZSB9fTwvb3B0aW9uPlxyXG48L3NlbGVjdD5cclxuXHJcbjxuZy1zZWxlY3QgICpuZ0lmPVwiZnJvbVNoZW5nZWxcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInNoZW5nZWwtY3VzdG9tLXNlbGVjdFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRWYWx1ZVwiIFxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW2lkXT1cImlkXCI+XHJcbiAgPG5nLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+e3sgb3B0aW9uW2xhYmVsRmllbGRdIH19PC9uZy1vcHRpb24+IFxyXG4gIDxuZy1vcHRpb24gKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiAgdmFsdWU9XCJcIiBkaXNhYmxlZCBoaWRkZW4+e3sgZXJyb3JNZXNzYWdlIH19PC9uZy1vcHRpb24+XHJcbjwvbmctc2VsZWN0PlxyXG5cclxuPHNwYW4gKm5nSWY9XCJlcnJvciAmJiBmcm9tU2hlbmdlbFwiIGNsYXNzPVwiZXJyb3ItbXNnXCI+UmVxdWlyZWQqPC9zcGFuPiJdfQ==
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { ChangeWrapper } from '../../model/changeWrapper';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ import * as i2 from "../../services/change.service";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/forms";
8
+ import * as i5 from "@ng-select/ng-select";
9
+ export class CustomDropdownComponent {
10
+ http;
11
+ changeService;
12
+ options;
13
+ placeholder;
14
+ apiMeta;
15
+ selectedValue;
16
+ progressBar;
17
+ id;
18
+ errorMessage;
19
+ error;
20
+ fromShengel = false;
21
+ valueChange = new EventEmitter();
22
+ invalidFieldIds = [];
23
+ constructor(http, changeService) {
24
+ this.http = http;
25
+ this.changeService = changeService;
26
+ this.changeService.submitValidate$.subscribe((data) => {
27
+ // to get the error message's field id's
28
+ this.invalidFieldIds.push(data);
29
+ });
30
+ }
31
+ labelField;
32
+ valueField;
33
+ ngOnInit() {
34
+ // console.log('inside oninit of custom-dropdown of ' + this.id);
35
+ // console.log(this.apiMeta);
36
+ if (this.apiMeta !== undefined) {
37
+ this.options = [];
38
+ let apiObj = JSON.parse(this.apiMeta);
39
+ this.labelField = apiObj.field;
40
+ this.apiResponse(apiObj.endpoint).subscribe((apiResponse) => {
41
+ let responses = apiResponse[apiObj.variable];
42
+ let results = [];
43
+ for (let i = 0; i < responses.length; i++) {
44
+ var resp = responses[i];
45
+ results.push(resp);
46
+ }
47
+ // Reference https://www.npmjs.com/package/@ng-select/ng-select
48
+ this.options = results;
49
+ });
50
+ }
51
+ }
52
+ apiResponse(endpoint) {
53
+ return this.http.get(endpoint);
54
+ }
55
+ selectChange(event) {
56
+ console.log('inside selectChange from ' + this.id);
57
+ // console.log(event);
58
+ let change = new ChangeWrapper(); // ChangeWrapper = JSON.parse('{}');
59
+ change.fromQuestionId = this.id;
60
+ change.valueObj = event;
61
+ this.valueChange.emit(change);
62
+ // once got value in dropdown remove the error validation
63
+ if (event) {
64
+ this.invalidFieldIds = [];
65
+ }
66
+ }
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomDropdownComponent, deps: [{ token: i1.HttpClient }, { token: i2.ChangeService }], target: i0.ɵɵFactoryTarget.Component });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CustomDropdownComponent, selector: "app-custom-dropdown", inputs: { options: "options", placeholder: "placeholder", apiMeta: "apiMeta", selectedValue: "selectedValue", progressBar: "progressBar", id: "id", errorMessage: "errorMessage", error: "error", fromShengel: "fromShengel" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<select *ngIf=\"!fromShengel\"\n [ngClass]=\"{\n 'dt-line dpDown down myt-dropbox myt-border-r myt-font1': progressBar,\n 'custom-select': !progressBar\n }\" class=\"custom-select mr-sm-2 dd-height\" \n [id]=\"id\" \n [(ngModel)]=\"selectedValue\"\n (change)=\"selectChange($event.target.value);\" \n [style.borderColor]=\"error ? 'red' : '#858585'\"\n [style.color]=\"error ? 'red' : ''\">\n <option *ngFor=\"let option of options\" [value]=\"option.Value__c\" class=\"option\">{{ option.Value__c }}</option>\n <option *ngIf=\"errorMessage\" value=\"\" disabled hidden>{{ errorMessage }}</option>\n</select>\n\n<ng-select *ngIf=\"fromShengel\"\n [class]=\"invalidFieldIds.includes(id) ? 'shengel-custom-select invalid' : 'shengel-custom-select'\"\n [(ngModel)]=\"selectedValue\" \n [placeholder]=\"placeholder\"\n (change)=\"selectChange($event)\"\n [id]=\"id\">\n <ng-option *ngFor=\"let option of options\" [value]=\"option\">{{ this.apiMeta !== undefined ? option[labelField] : option.Value__c }}</ng-option> \n <!-- <ng-option *ngIf=\"errorMessage\" value=\"\" disabled hidden>{{ errorMessage }}</ng-option> -->\n</ng-select>\n<span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">Required*</span>", styles: [".ng-select{width:100%}.invalid{border:1px solid red!important}.ng-select.ng-select-single .ng-select-container{height:42px!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i5.ɵr, selector: "ng-option", inputs: ["disabled", "value"] }] });
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomDropdownComponent, decorators: [{
71
+ type: Component,
72
+ args: [{ selector: 'app-custom-dropdown', template: "<select *ngIf=\"!fromShengel\"\n [ngClass]=\"{\n 'dt-line dpDown down myt-dropbox myt-border-r myt-font1': progressBar,\n 'custom-select': !progressBar\n }\" class=\"custom-select mr-sm-2 dd-height\" \n [id]=\"id\" \n [(ngModel)]=\"selectedValue\"\n (change)=\"selectChange($event.target.value);\" \n [style.borderColor]=\"error ? 'red' : '#858585'\"\n [style.color]=\"error ? 'red' : ''\">\n <option *ngFor=\"let option of options\" [value]=\"option.Value__c\" class=\"option\">{{ option.Value__c }}</option>\n <option *ngIf=\"errorMessage\" value=\"\" disabled hidden>{{ errorMessage }}</option>\n</select>\n\n<ng-select *ngIf=\"fromShengel\"\n [class]=\"invalidFieldIds.includes(id) ? 'shengel-custom-select invalid' : 'shengel-custom-select'\"\n [(ngModel)]=\"selectedValue\" \n [placeholder]=\"placeholder\"\n (change)=\"selectChange($event)\"\n [id]=\"id\">\n <ng-option *ngFor=\"let option of options\" [value]=\"option\">{{ this.apiMeta !== undefined ? option[labelField] : option.Value__c }}</ng-option> \n <!-- <ng-option *ngIf=\"errorMessage\" value=\"\" disabled hidden>{{ errorMessage }}</ng-option> -->\n</ng-select>\n<span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">Required*</span>", styles: [".ng-select{width:100%}.invalid{border:1px solid red!important}.ng-select.ng-select-single .ng-select-container{height:42px!important}\n"] }]
73
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ChangeService }]; }, propDecorators: { options: [{
74
+ type: Input
75
+ }], placeholder: [{
76
+ type: Input
77
+ }], apiMeta: [{
78
+ type: Input
79
+ }], selectedValue: [{
80
+ type: Input
81
+ }], progressBar: [{
82
+ type: Input
83
+ }], id: [{
84
+ type: Input
85
+ }], errorMessage: [{
86
+ type: Input
87
+ }], error: [{
88
+ type: Input
89
+ }], fromShengel: [{
90
+ type: Input
91
+ }], valueChange: [{
92
+ type: Output
93
+ }] } });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1kcm9wZG93bi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWRyb3Bkb3duL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLEtBQUssRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7OztBQVExRCxNQUFNLE9BQU8sdUJBQXVCO0lBWWQ7SUFBeUI7SUFYcEMsT0FBTyxDQUFXO0lBQ2xCLFdBQVcsQ0FBUztJQUNwQixPQUFPLENBQVM7SUFDaEIsYUFBYSxDQUFTO0lBQ3RCLFdBQVcsQ0FBVTtJQUNyQixFQUFFLENBQVE7SUFDVixZQUFZLENBQVM7SUFDckIsS0FBSyxDQUFLO0lBQ1YsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM1QixXQUFXLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO0lBQ3ZGLGVBQWUsR0FBWSxFQUFFLENBQUM7SUFDOUIsWUFBb0IsSUFBZ0IsRUFBUyxhQUE0QjtRQUFyRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFDLEVBQUU7WUFDbkQsd0NBQXdDO1lBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVNLFVBQVUsQ0FBUztJQUNuQixVQUFVLENBQVM7SUFFMUIsUUFBUTtRQUNOLGlFQUFpRTtRQUNqRSw2QkFBNkI7UUFDN0IsSUFBRyxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLE1BQU0sR0FBWSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFFL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQzFELElBQUksU0FBUyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzdDLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3pDLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDcEI7Z0JBQ0QsK0RBQStEO2dCQUMvRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQztJQUVNLFdBQVcsQ0FBQyxRQUFnQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBUztRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRCxzQkFBc0I7UUFDdEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDLG9DQUFvQztRQUN0RSxNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIseURBQXlEO1FBQ3pELElBQUcsS0FBSyxFQUFDO1lBQ1AsSUFBSSxDQUFDLGVBQWUsR0FBRSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO3dHQTFEVSx1QkFBdUI7NEZBQXZCLHVCQUF1QixvVUNacEMsdXhDQXVCc0Y7OzRGRFh6RSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOzZIQUt0QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCxJbnB1dCxPdXRwdXQsRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVBJTWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBpbWV0YSc7XG5pbXBvcnQgeyBDaGFuZ2VXcmFwcGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvY2hhbmdlV3JhcHBlcic7XG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY3VzdG9tLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBvcHRpb25zOiBzdHJpbmdbXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgYXBpTWV0YTogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb2dyZXNzQmFyOiBib29sZWFuO1xuICBASW5wdXQoKSBpZDpzdHJpbmc7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKSBlcnJvcjphbnk7XG4gIEBJbnB1dCgpIGZyb21TaGVuZ2VsOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPENoYW5nZVdyYXBwZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGFuZ2VXcmFwcGVyPigpO1xuICBpbnZhbGlkRmllbGRJZHM6c3RyaW5nW10gPSBbXTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LHByaXZhdGUgY2hhbmdlU2VydmljZTogQ2hhbmdlU2VydmljZSkgeyBcbiAgICB0aGlzLmNoYW5nZVNlcnZpY2Uuc3VibWl0VmFsaWRhdGUkLnN1YnNjcmliZSgoZGF0YSk9PntcbiAgICAgIC8vIHRvIGdldCB0aGUgZXJyb3IgbWVzc2FnZSdzIGZpZWxkIGlkJ3NcbiAgICAgIHRoaXMuaW52YWxpZEZpZWxkSWRzLnB1c2goZGF0YSk7XG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBsYWJlbEZpZWxkOiBzdHJpbmc7XG4gIHB1YmxpYyB2YWx1ZUZpZWxkOiBzdHJpbmc7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gY29uc29sZS5sb2coJ2luc2lkZSBvbmluaXQgb2YgY3VzdG9tLWRyb3Bkb3duIG9mICcgKyB0aGlzLmlkKTtcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmFwaU1ldGEpO1xuICAgIGlmKHRoaXMuYXBpTWV0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBbXTtcbiAgICAgIGxldCBhcGlPYmo6IEFQSU1ldGEgPSBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG4gICAgICB0aGlzLmxhYmVsRmllbGQgPSBhcGlPYmouZmllbGQ7XG5cbiAgICAgIHRoaXMuYXBpUmVzcG9uc2UoYXBpT2JqLmVuZHBvaW50KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGxldCByZXNwb25zZXMgPSBhcGlSZXNwb25zZVthcGlPYmoudmFyaWFibGVdO1xuICAgICAgICBsZXQgcmVzdWx0cyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciByZXNwID0gcmVzcG9uc2VzW2ldO1xuICAgICAgICAgIHJlc3VsdHMucHVzaChyZXNwKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZWZlcmVuY2UgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQG5nLXNlbGVjdC9uZy1zZWxlY3RcbiAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzdWx0cztcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFwaVJlc3BvbnNlKGVuZHBvaW50OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGVuZHBvaW50KTtcbiAgfVxuXG4gIHNlbGVjdENoYW5nZShldmVudDphbnkpIHtcbiAgICBjb25zb2xlLmxvZygnaW5zaWRlIHNlbGVjdENoYW5nZSBmcm9tICcgKyB0aGlzLmlkKTtcbiAgICAvLyBjb25zb2xlLmxvZyhldmVudCk7XG4gICAgbGV0IGNoYW5nZSA9IG5ldyBDaGFuZ2VXcmFwcGVyKCk7IC8vIENoYW5nZVdyYXBwZXIgPSBKU09OLnBhcnNlKCd7fScpO1xuICAgIGNoYW5nZS5mcm9tUXVlc3Rpb25JZCA9IHRoaXMuaWQ7XG4gICAgY2hhbmdlLnZhbHVlT2JqID0gZXZlbnQ7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGNoYW5nZSk7XG4gICAgLy8gb25jZSBnb3QgdmFsdWUgaW4gZHJvcGRvd24gcmVtb3ZlIHRoZSBlcnJvciB2YWxpZGF0aW9uXG4gICAgaWYoZXZlbnQpe1xuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMgPVtdO1xuICAgIH1cbiAgfVxufVxuIiwiPHNlbGVjdCAqbmdJZj1cIiFmcm9tU2hlbmdlbFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnZHQtbGluZSBkcERvd24gZG93biBteXQtZHJvcGJveCBteXQtYm9yZGVyLXIgbXl0LWZvbnQxJzogcHJvZ3Jlc3NCYXIsXG4gICAgJ2N1c3RvbS1zZWxlY3QnOiAhcHJvZ3Jlc3NCYXJcbiAgfVwiIGNsYXNzPVwiY3VzdG9tLXNlbGVjdCBtci1zbS0yIGRkLWhlaWdodFwiIFxuICBbaWRdPVwiaWRcIiBcbiAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgKGNoYW5nZSk9XCJzZWxlY3RDaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSk7XCIgXG4gIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJlcnJvciA/ICdyZWQnIDogJyM4NTg1ODUnXCJcbiAgW3N0eWxlLmNvbG9yXT1cImVycm9yID8gJ3JlZCcgOiAnJ1wiPlxuICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbi5WYWx1ZV9fY1wiIGNsYXNzPVwib3B0aW9uXCI+e3sgb3B0aW9uLlZhbHVlX19jIH19PC9vcHRpb24+XG4gICAgPG9wdGlvbiAqbmdJZj1cImVycm9yTWVzc2FnZVwiIHZhbHVlPVwiXCIgZGlzYWJsZWQgaGlkZGVuPnt7IGVycm9yTWVzc2FnZSB9fTwvb3B0aW9uPlxuPC9zZWxlY3Q+XG5cbjxuZy1zZWxlY3QgICpuZ0lmPVwiZnJvbVNoZW5nZWxcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZCkgPyAnc2hlbmdlbC1jdXN0b20tc2VsZWN0IGludmFsaWQnIDogJ3NoZW5nZWwtY3VzdG9tLXNlbGVjdCdcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZhbHVlXCIgXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbaWRdPVwiaWRcIj5cbiAgPG5nLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+e3sgdGhpcy5hcGlNZXRhICE9PSB1bmRlZmluZWQgPyBvcHRpb25bbGFiZWxGaWVsZF0gOiBvcHRpb24uVmFsdWVfX2MgIH19PC9uZy1vcHRpb24+IFxuICA8IS0tIDxuZy1vcHRpb24gKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiAgdmFsdWU9XCJcIiBkaXNhYmxlZCBoaWRkZW4+e3sgZXJyb3JNZXNzYWdlIH19PC9uZy1vcHRpb24+IC0tPlxuPC9uZy1zZWxlY3Q+XG48c3BhbiAqbmdJZj1cImVycm9yIHx8IGludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZClcIiBjbGFzcz1cImVycm9yLW1zZ1wiPlJlcXVpcmVkKjwvc3Bhbj4iXX0=
@@ -1,76 +1,76 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../services/change.service";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "@angular/forms";
6
- export class CustomInputComponent {
7
- changeService;
8
- value; // input value
9
- question;
10
- disabled = false; // input disabled or not
11
- placeholder;
12
- error;
13
- fromShengel = false;
14
- ngClassValue;
15
- idValue;
16
- focusEvent;
17
- inputValue = new EventEmitter();
18
- subscription;
19
- constructor(changeService) {
20
- this.changeService = changeService;
21
- }
22
- ngOnInit() {
23
- // Since the idValue holds the Parent Question
24
- if (this.question.Sub_Text__c != undefined) {
25
- this.disabled = true;
26
- let dependencyObj = JSON.parse(this.question.Sub_Text__c);
27
- // Subscribe for the changes
28
- this.subscription = this.changeService.changeAnnounced$.subscribe((changeValue) => {
29
- if (changeValue != undefined) {
30
- // console.log('inside subscription for the change');
31
- if (changeValue != undefined && changeValue.fromQuestionId == dependencyObj.sourceQuestionId) {
32
- this.value = changeValue.valueObj[dependencyObj.valueField];
33
- this.inputValue.emit(this.value);
34
- }
35
- this.changeService.confirmChange(dependencyObj.sourceQuestionId);
36
- }
37
- });
38
- }
39
- }
40
- ngOnChange() {
41
- }
42
- ngOnDestroy() {
43
- // prevent memory leak when component destroyed
44
- this.subscription?.unsubscribe();
45
- }
46
- onInputChange(input) {
47
- this.inputValue.emit(input.target.value);
48
- }
49
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomInputComponent, deps: [{ token: i1.ChangeService }], target: i0.ɵɵFactoryTarget.Component });
50
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CustomInputComponent, selector: "app-custom-input", inputs: { value: "value", question: "question", disabled: "disabled", placeholder: "placeholder", error: "error", fromShengel: "fromShengel", ngClassValue: "ngClassValue", idValue: "idValue", focusEvent: "focusEvent" }, outputs: { inputValue: "inputValue" }, ngImport: i0, template: "<input *ngIf=\"!fromShengel\" type=\"text\" \r\n [(ngModel)]=\"value\"\r\n [ngClass]=\"ngClassValue\"\r\n [id]=\"idValue\"\r\n (focus)=\"focusEvent\"\r\n [style.border-color]=\"error ? 'red' : ''\"\r\n [placeholder]=\"placeholder\"\r\n (input)=\"onInputChange($event)\" />\r\n\r\n<input *ngIf=\"fromShengel\" class=\"input-shengel\"\r\n [(ngModel)]=\"value\"\r\n type=\"text\" \r\n class=\"she-line-input form-control\" \r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n (input)=\"onInputChange($event)\" />\r\n\r\n<span *ngIf=\"error\" class=\"error-msg\">Required*</span>\r\n", styles: [".form-control[disabled]{border-radius:5px;background-color:#e9ecef!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
51
- }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomInputComponent, decorators: [{
53
- type: Component,
54
- args: [{ selector: 'app-custom-input', template: "<input *ngIf=\"!fromShengel\" type=\"text\" \r\n [(ngModel)]=\"value\"\r\n [ngClass]=\"ngClassValue\"\r\n [id]=\"idValue\"\r\n (focus)=\"focusEvent\"\r\n [style.border-color]=\"error ? 'red' : ''\"\r\n [placeholder]=\"placeholder\"\r\n (input)=\"onInputChange($event)\" />\r\n\r\n<input *ngIf=\"fromShengel\" class=\"input-shengel\"\r\n [(ngModel)]=\"value\"\r\n type=\"text\" \r\n class=\"she-line-input form-control\" \r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n (input)=\"onInputChange($event)\" />\r\n\r\n<span *ngIf=\"error\" class=\"error-msg\">Required*</span>\r\n", styles: [".form-control[disabled]{border-radius:5px;background-color:#e9ecef!important}\n"] }]
55
- }], ctorParameters: function () { return [{ type: i1.ChangeService }]; }, propDecorators: { value: [{
56
- type: Input
57
- }], question: [{
58
- type: Input
59
- }], disabled: [{
60
- type: Input
61
- }], placeholder: [{
62
- type: Input
63
- }], error: [{
64
- type: Input
65
- }], fromShengel: [{
66
- type: Input
67
- }], ngClassValue: [{
68
- type: Input
69
- }], idValue: [{
70
- type: Input
71
- }], focusEvent: [{
72
- type: Input
73
- }], inputValue: [{
74
- type: Output
75
- }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1pbnB1dC9jdXN0b20taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQWEvRSxNQUFNLE9BQU8sb0JBQW9CO0lBZVg7SUFkWCxLQUFLLENBQWMsQ0FBQyxjQUFjO0lBQ2xDLFFBQVEsQ0FBVTtJQUNsQixRQUFRLEdBQVksS0FBSyxDQUFDLENBQUMsd0JBQXdCO0lBQ25ELFdBQVcsQ0FBUTtJQUNuQixLQUFLLENBQUs7SUFDVixXQUFXLEdBQVksS0FBSyxDQUFDO0lBRTdCLFlBQVksQ0FBSztJQUNqQixPQUFPLENBQUs7SUFDWixVQUFVLENBQU07SUFDZixVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUUvQyxZQUFZLENBQWU7SUFFM0IsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDaEQsQ0FBQztJQUVELFFBQVE7UUFDTiw4Q0FBOEM7UUFDOUMsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxTQUFTLEVBQUU7WUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxhQUFhLEdBQW1CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUUxRSw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FDL0QsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDZCxJQUFHLFdBQVcsSUFBSSxTQUFTLEVBQUU7b0JBQzNCLHFEQUFxRDtvQkFDckQsSUFBRyxXQUFXLElBQUksU0FBUyxJQUFJLFdBQVcsQ0FBQyxjQUFjLElBQUksYUFBYSxDQUFDLGdCQUFnQixFQUFFO3dCQUMzRixJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ2xDO29CQUNELElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2lCQUNsRTtZQUNILENBQUMsQ0FDRixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsVUFBVTtJQUNWLENBQUM7SUFFRCxXQUFXO1FBQ1QsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFTO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQzt3R0FsRFUsb0JBQW9COzRGQUFwQixvQkFBb0IsMlRDYmpDLGlxQkFrQkE7OzRGRExhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxrQkFBa0I7b0dBTW5CLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGFuZ2VXcmFwcGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvY2hhbmdlV3JhcHBlcic7XHJcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vd3JhcHBlcic7XHJcbmltcG9ydCB7IERlcGVuZGVuY3lNZXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kZXBlbmRlbmN5TWV0YSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20taW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1pbnB1dC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21JbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgdmFsdWU6IGFueSB8IGFueVtdOyAvLyBpbnB1dCB2YWx1ZVxyXG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBRdWVzdGlvblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7IC8vIGlucHV0IGRpc2FibGVkIG9yIG5vdFxyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOnN0cmluZztcclxuICBASW5wdXQoKSBlcnJvcjphbnk7XHJcbiAgQElucHV0KCkgZnJvbVNoZW5nZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgbmdDbGFzc1ZhbHVlOmFueTtcclxuICBASW5wdXQoKSBpZFZhbHVlOmFueTtcclxuICBASW5wdXQoKSBmb2N1c0V2ZW50OiBhbnk7XHJcbiAgQE91dHB1dCgpIGlucHV0VmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTsgXHJcblxyXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UpIHsgXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIFNpbmNlIHRoZSBpZFZhbHVlIGhvbGRzIHRoZSBQYXJlbnQgUXVlc3Rpb25cclxuICAgIGlmKHRoaXMucXVlc3Rpb24uU3ViX1RleHRfX2MgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICBsZXQgZGVwZW5kZW5jeU9iajogRGVwZW5kZW5jeU1ldGEgPSBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uU3ViX1RleHRfX2MpO1xyXG5cclxuICAgICAgLy8gU3Vic2NyaWJlIGZvciB0aGUgY2hhbmdlc1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY2hhbmdlU2VydmljZS5jaGFuZ2VBbm5vdW5jZWQkLnN1YnNjcmliZShcclxuICAgICAgICAoY2hhbmdlVmFsdWUpID0+IHtcclxuICAgICAgICAgIGlmKGNoYW5nZVZhbHVlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnaW5zaWRlIHN1YnNjcmlwdGlvbiBmb3IgdGhlIGNoYW5nZScpO1xyXG4gICAgICAgICAgICBpZihjaGFuZ2VWYWx1ZSAhPSB1bmRlZmluZWQgJiYgY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT0gZGVwZW5kZW5jeU9iai5zb3VyY2VRdWVzdGlvbklkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGNoYW5nZVZhbHVlLnZhbHVlT2JqW2RlcGVuZGVuY3lPYmoudmFsdWVGaWVsZF07XHJcbiAgICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLmNvbmZpcm1DaGFuZ2UoZGVwZW5kZW5jeU9iai5zb3VyY2VRdWVzdGlvbklkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlKCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBwcmV2ZW50IG1lbW9yeSBsZWFrIHdoZW4gY29tcG9uZW50IGRlc3Ryb3llZFxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG4gIFxyXG4gIG9uSW5wdXRDaGFuZ2UoaW5wdXQ6YW55KXtcclxuICAgIHRoaXMuaW5wdXRWYWx1ZS5lbWl0KGlucHV0LnRhcmdldC52YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxpbnB1dCAqbmdJZj1cIiFmcm9tU2hlbmdlbFwiIHR5cGU9XCJ0ZXh0XCIgXHJcbiAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgIFtuZ0NsYXNzXT1cIm5nQ2xhc3NWYWx1ZVwiXHJcbiAgICAgICBbaWRdPVwiaWRWYWx1ZVwiXHJcbiAgICAgICAoZm9jdXMpPVwiZm9jdXNFdmVudFwiXHJcbiAgICAgICBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cImVycm9yID8gJ3JlZCcgOiAnJ1wiXHJcbiAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIC8+XHJcblxyXG48aW5wdXQgKm5nSWY9XCJmcm9tU2hlbmdlbFwiIGNsYXNzPVwiaW5wdXQtc2hlbmdlbFwiXHJcbiAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgIHR5cGU9XCJ0ZXh0XCIgXHJcbiAgICAgICBjbGFzcz1cInNoZS1saW5lLWlucHV0IGZvcm0tY29udHJvbFwiIFxyXG4gICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCIgLz5cclxuXHJcbjxzcGFuICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1zZ1wiPlJlcXVpcmVkKjwvc3Bhbj5cclxuIl19
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/change.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
6
+ export class CustomInputComponent {
7
+ changeService;
8
+ value; // input value
9
+ question;
10
+ disabled = false; // input disabled or not
11
+ placeholder;
12
+ error;
13
+ fromShengel = false;
14
+ ngClassValue;
15
+ idValue;
16
+ focusEvent;
17
+ inputValue = new EventEmitter();
18
+ subscription;
19
+ constructor(changeService) {
20
+ this.changeService = changeService;
21
+ }
22
+ ngOnInit() {
23
+ // Since the idValue holds the Parent Question
24
+ if (this.question.Sub_Text__c != undefined) {
25
+ this.disabled = true;
26
+ let dependencyObj = JSON.parse(this.question.Sub_Text__c);
27
+ // Subscribe for the changes
28
+ this.subscription = this.changeService.changeAnnounced$.subscribe((changeValue) => {
29
+ if (changeValue != undefined) {
30
+ // console.log('inside subscription for the change');
31
+ if (changeValue.valueObj != undefined && changeValue.fromQuestionId == dependencyObj.sourceQuestionId) {
32
+ this.value = changeValue.valueObj[dependencyObj.valueField];
33
+ this.inputValue.emit(this.value);
34
+ }
35
+ this.changeService.confirmChange(dependencyObj.sourceQuestionId);
36
+ }
37
+ });
38
+ }
39
+ }
40
+ ngOnChange() {
41
+ }
42
+ ngOnDestroy() {
43
+ // prevent memory leak when component destroyed
44
+ this.subscription?.unsubscribe();
45
+ }
46
+ onInputChange(input) {
47
+ this.inputValue.emit(input.target.value);
48
+ }
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomInputComponent, deps: [{ token: i1.ChangeService }], target: i0.ɵɵFactoryTarget.Component });
50
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CustomInputComponent, selector: "app-custom-input", inputs: { value: "value", question: "question", disabled: "disabled", placeholder: "placeholder", error: "error", fromShengel: "fromShengel", ngClassValue: "ngClassValue", idValue: "idValue", focusEvent: "focusEvent" }, outputs: { inputValue: "inputValue" }, ngImport: i0, template: "<input *ngIf=\"!fromShengel\" type=\"text\" \n [(ngModel)]=\"value\"\n [ngClass]=\"ngClassValue\"\n [id]=\"idValue\"\n (focus)=\"focusEvent\"\n [style.border-color]=\"error ? 'red' : ''\"\n [placeholder]=\"placeholder\"\n (input)=\"onInputChange($event)\" />\n\n<input *ngIf=\"fromShengel\" \n [(ngModel)]=\"value\"\n type=\"text\" \n class=\"she-line-input form-control\" \n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange($event)\" />\n\n<span *ngIf=\"error\" class=\"error-msg\">Required*</span>\n", styles: [".form-control[disabled]{border-radius:5px;background-color:#e9ecef!important}.she-line-input.form-control{border:1px solid #ccc!important;width:100%!important;padding-inline:15px!important;box-shadow:none!important;background-color:transparent!important;animation:animate-grey-border .5s linear forwards!important;border-radius:5px!important;font-weight:400!important;font-size:13px!important;height:42px!important;color:#212529!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomInputComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'app-custom-input', template: "<input *ngIf=\"!fromShengel\" type=\"text\" \n [(ngModel)]=\"value\"\n [ngClass]=\"ngClassValue\"\n [id]=\"idValue\"\n (focus)=\"focusEvent\"\n [style.border-color]=\"error ? 'red' : ''\"\n [placeholder]=\"placeholder\"\n (input)=\"onInputChange($event)\" />\n\n<input *ngIf=\"fromShengel\" \n [(ngModel)]=\"value\"\n type=\"text\" \n class=\"she-line-input form-control\" \n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange($event)\" />\n\n<span *ngIf=\"error\" class=\"error-msg\">Required*</span>\n", styles: [".form-control[disabled]{border-radius:5px;background-color:#e9ecef!important}.she-line-input.form-control{border:1px solid #ccc!important;width:100%!important;padding-inline:15px!important;box-shadow:none!important;background-color:transparent!important;animation:animate-grey-border .5s linear forwards!important;border-radius:5px!important;font-weight:400!important;font-size:13px!important;height:42px!important;color:#212529!important}\n"] }]
55
+ }], ctorParameters: function () { return [{ type: i1.ChangeService }]; }, propDecorators: { value: [{
56
+ type: Input
57
+ }], question: [{
58
+ type: Input
59
+ }], disabled: [{
60
+ type: Input
61
+ }], placeholder: [{
62
+ type: Input
63
+ }], error: [{
64
+ type: Input
65
+ }], fromShengel: [{
66
+ type: Input
67
+ }], ngClassValue: [{
68
+ type: Input
69
+ }], idValue: [{
70
+ type: Input
71
+ }], focusEvent: [{
72
+ type: Input
73
+ }], inputValue: [{
74
+ type: Output
75
+ }] } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1pbnB1dC9jdXN0b20taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQWEvRSxNQUFNLE9BQU8sb0JBQW9CO0lBZVg7SUFkWCxLQUFLLENBQWMsQ0FBQyxjQUFjO0lBQ2xDLFFBQVEsQ0FBVTtJQUNsQixRQUFRLEdBQVksS0FBSyxDQUFDLENBQUMsd0JBQXdCO0lBQ25ELFdBQVcsQ0FBUTtJQUNuQixLQUFLLENBQUs7SUFDVixXQUFXLEdBQVksS0FBSyxDQUFDO0lBRTdCLFlBQVksQ0FBSztJQUNqQixPQUFPLENBQUs7SUFDWixVQUFVLENBQU07SUFDZixVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUUvQyxZQUFZLENBQWU7SUFFM0IsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDaEQsQ0FBQztJQUVELFFBQVE7UUFDTiw4Q0FBOEM7UUFDOUMsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxTQUFTLEVBQUU7WUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxhQUFhLEdBQW1CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUUxRSw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FDL0QsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDZCxJQUFHLFdBQVcsSUFBSSxTQUFTLEVBQUU7b0JBQzNCLHFEQUFxRDtvQkFDckQsSUFBRyxXQUFXLENBQUMsUUFBUSxJQUFJLFNBQVMsSUFBSSxXQUFXLENBQUMsY0FBYyxJQUFJLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRTt3QkFDcEcsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDNUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNsQztvQkFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztpQkFDbEU7WUFDSCxDQUFDLENBQ0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELFVBQVU7SUFDVixDQUFDO0lBRUQsV0FBVztRQUNULCtDQUErQztRQUMvQyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBUztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7d0dBbERVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLDJUQ2JqQyxzbUJBa0JBOzs0RkRMYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCO29HQU1uQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXInO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tICcuLi8uLi93cmFwcGVyJztcbmltcG9ydCB7IERlcGVuZGVuY3lNZXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kZXBlbmRlbmN5TWV0YSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20taW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLWlucHV0LmNvbXBvbmVudC5jc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIEN1c3RvbUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdmFsdWU6IGFueSB8IGFueVtdOyAvLyBpbnB1dCB2YWx1ZVxuICBASW5wdXQoKSBxdWVzdGlvbjogUXVlc3Rpb25cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTsgLy8gaW5wdXQgZGlzYWJsZWQgb3Igbm90XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOnN0cmluZztcbiAgQElucHV0KCkgZXJyb3I6YW55O1xuICBASW5wdXQoKSBmcm9tU2hlbmdlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIG5nQ2xhc3NWYWx1ZTphbnk7XG4gIEBJbnB1dCgpIGlkVmFsdWU6YW55O1xuICBASW5wdXQoKSBmb2N1c0V2ZW50OiBhbnk7XG4gIEBPdXRwdXQoKSBpbnB1dFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7IFxuXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlU2VydmljZTogQ2hhbmdlU2VydmljZSkgeyBcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFNpbmNlIHRoZSBpZFZhbHVlIGhvbGRzIHRoZSBQYXJlbnQgUXVlc3Rpb25cbiAgICBpZih0aGlzLnF1ZXN0aW9uLlN1Yl9UZXh0X19jICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICBsZXQgZGVwZW5kZW5jeU9iajogRGVwZW5kZW5jeU1ldGEgPSBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uU3ViX1RleHRfX2MpO1xuXG4gICAgICAvLyBTdWJzY3JpYmUgZm9yIHRoZSBjaGFuZ2VzXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY2hhbmdlU2VydmljZS5jaGFuZ2VBbm5vdW5jZWQkLnN1YnNjcmliZShcbiAgICAgICAgKGNoYW5nZVZhbHVlKSA9PiB7XG4gICAgICAgICAgaWYoY2hhbmdlVmFsdWUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnaW5zaWRlIHN1YnNjcmlwdGlvbiBmb3IgdGhlIGNoYW5nZScpO1xuICAgICAgICAgICAgaWYoY2hhbmdlVmFsdWUudmFsdWVPYmogIT0gdW5kZWZpbmVkICYmIGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkID09IGRlcGVuZGVuY3lPYmouc291cmNlUXVlc3Rpb25JZCkge1xuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gY2hhbmdlVmFsdWUudmFsdWVPYmpbZGVwZW5kZW5jeU9iai52YWx1ZUZpZWxkXTtcbiAgICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVNlcnZpY2UuY29uZmlybUNoYW5nZShkZXBlbmRlbmN5T2JqLnNvdXJjZVF1ZXN0aW9uSWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlKCk6IHZvaWQge1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gcHJldmVudCBtZW1vcnkgbGVhayB3aGVuIGNvbXBvbmVudCBkZXN0cm95ZWRcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuICBcbiAgb25JbnB1dENoYW5nZShpbnB1dDphbnkpe1xuICAgIHRoaXMuaW5wdXRWYWx1ZS5lbWl0KGlucHV0LnRhcmdldC52YWx1ZSk7XG4gIH1cbn1cbiIsIjxpbnB1dCAqbmdJZj1cIiFmcm9tU2hlbmdlbFwiIHR5cGU9XCJ0ZXh0XCIgXG4gICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgW25nQ2xhc3NdPVwibmdDbGFzc1ZhbHVlXCJcbiAgICAgICBbaWRdPVwiaWRWYWx1ZVwiXG4gICAgICAgKGZvY3VzKT1cImZvY3VzRXZlbnRcIlxuICAgICAgIFtzdHlsZS5ib3JkZXItY29sb3JdPVwiZXJyb3IgPyAncmVkJyA6ICcnXCJcbiAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIiAvPlxuXG48aW5wdXQgKm5nSWY9XCJmcm9tU2hlbmdlbFwiIFxuICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgIHR5cGU9XCJ0ZXh0XCIgXG4gICAgICAgY2xhc3M9XCJzaGUtbGluZS1pbnB1dCBmb3JtLWNvbnRyb2xcIiBcbiAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIC8+XG5cbjxzcGFuICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1zZ1wiPlJlcXVpcmVkKjwvc3Bhbj5cbiJdfQ==