@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.
- package/README.md +2 -2
- package/esm2022/lib/components/custom-date-picker/custom-date-picker.component.mjs +33 -33
- package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +94 -82
- package/esm2022/lib/components/custom-input/custom-input.component.mjs +76 -76
- package/esm2022/lib/components/custom-table/custom-table.component.mjs +53 -53
- package/esm2022/lib/components/custom-text-area/custom-text-area.component.mjs +34 -34
- package/esm2022/lib/components/dropdown-with-flag/dropdown-with-flag.component.mjs +34 -34
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +110 -159
- package/esm2022/lib/components/file-view/file-view.component.mjs +42 -0
- package/esm2022/lib/components/pick-location/pick-location.component.mjs +136 -136
- package/esm2022/lib/components/search-box/search-box.component.mjs +106 -84
- package/esm2022/lib/interfaces/actionMeta.mjs +2 -2
- package/esm2022/lib/interfaces/apimeta.mjs +2 -2
- package/esm2022/lib/interfaces/dependencyMeta.mjs +2 -2
- package/esm2022/lib/model/bookletWrapper.mjs +9 -9
- package/esm2022/lib/model/changeWrapper.mjs +8 -8
- package/esm2022/lib/model/errorWrapper.mjs +6 -6
- package/esm2022/lib/model/tableWrapper.mjs +16 -16
- package/esm2022/lib/nxt-app.component.mjs +22 -22
- package/esm2022/lib/nxt-app.module.mjs +276 -268
- package/esm2022/lib/nxt-app.service.mjs +14 -14
- package/esm2022/lib/pages/booklet/booklet.component.mjs +171 -159
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +102 -85
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +2066 -2066
- package/esm2022/lib/pages/summary-page/summary-page.component.mjs +70 -0
- package/esm2022/lib/sample.mjs +432 -432
- package/esm2022/lib/services/change.service.mjs +38 -33
- package/esm2022/lib/services/data.service.mjs +40 -40
- package/esm2022/lib/services/salesforce.service.mjs +46 -46
- package/esm2022/lib/services/shared.service.mjs +86 -0
- package/esm2022/lib/services/storage.service.mjs +41 -41
- package/esm2022/lib/wrapper.mjs +161 -161
- package/esm2022/public-api.mjs +11 -10
- package/esm2022/rangertechnologies-ngnxt.mjs +4 -4
- package/fesm2022/rangertechnologies-ngnxt.mjs +4105 -3899
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/components/custom-date-picker/custom-date-picker.component.d.ts +14 -14
- package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +29 -26
- package/lib/components/custom-input/custom-input.component.d.ts +26 -26
- package/lib/components/custom-table/custom-table.component.d.ts +20 -20
- package/lib/components/custom-text-area/custom-text-area.component.d.ts +14 -14
- package/lib/components/dropdown-with-flag/dropdown-with-flag.component.d.ts +14 -14
- package/lib/components/file-upload/file-upload.component.d.ts +24 -23
- package/lib/components/file-view/file-view.component.d.ts +14 -0
- package/lib/components/pick-location/pick-location.component.d.ts +35 -35
- package/lib/components/search-box/search-box.component.d.ts +40 -34
- package/lib/interfaces/actionMeta.d.ts +5 -5
- package/lib/interfaces/apimeta.d.ts +5 -5
- package/lib/interfaces/dependencyMeta.d.ts +5 -5
- package/lib/model/bookletWrapper.d.ts +5 -5
- package/lib/model/changeWrapper.d.ts +7 -7
- package/lib/model/errorWrapper.d.ts +5 -5
- package/lib/model/tableWrapper.d.ts +15 -15
- package/lib/nxt-app.component.d.ts +8 -8
- package/lib/nxt-app.module.d.ts +30 -28
- package/lib/nxt-app.service.d.ts +6 -6
- package/lib/pages/booklet/booklet.component.d.ts +45 -43
- package/lib/pages/questionbook/questionbook.component.d.ts +27 -26
- package/lib/pages/questionnaire/questionnaire.component.d.ts +206 -206
- package/lib/pages/summary-page/summary-page.component.d.ts +18 -0
- package/lib/sample.d.ts +10 -10
- package/lib/services/change.service.d.ts +16 -13
- package/lib/services/data.service.d.ts +9 -9
- package/lib/services/salesforce.service.d.ts +11 -11
- package/lib/services/shared.service.d.ts +11 -0
- package/lib/services/storage.service.d.ts +12 -12
- package/lib/wrapper.d.ts +161 -161
- package/package.json +1 -1
- package/public-api.d.ts +7 -6
- package/rangertechnologies-ngnxt-2.0.39.tgz +0 -0
- 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\">\
|
|
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\">\
|
|
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,
|
|
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 "
|
|
6
|
-
import * as i3 from "@angular/
|
|
7
|
-
import * as i4 from "@
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
this.
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
type: Input
|
|
75
|
-
}],
|
|
76
|
-
type: Input
|
|
77
|
-
}],
|
|
78
|
-
type: Input
|
|
79
|
-
}],
|
|
80
|
-
type:
|
|
81
|
-
}]
|
|
82
|
-
|
|
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\" \
|
|
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\" \
|
|
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,
|
|
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==
|