@rangertechnologies/ngnxt 2.1.78 → 2.1.80
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 +27 -30
- package/esm2022/lib/ar.i18n.mjs +29 -29
- package/esm2022/lib/components/custom-button/custom-button.component.mjs +39 -39
- package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +366 -366
- package/esm2022/lib/components/custom-date/custom-date.component.mjs +47 -47
- package/esm2022/lib/components/custom-date-picker/custom-date-picker.component.mjs +48 -48
- package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +219 -219
- package/esm2022/lib/components/custom-image/custom-image.component.mjs +34 -34
- package/esm2022/lib/components/custom-input/custom-input.component.mjs +93 -93
- package/esm2022/lib/components/custom-label/custom-label.component.mjs +21 -21
- package/esm2022/lib/components/custom-model/custom-model.component.mjs +48 -48
- package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +115 -115
- package/esm2022/lib/components/custom-rich-text/custom-rich-text.component.mjs +156 -0
- package/esm2022/lib/components/custom-table/custom-table.component.mjs +169 -169
- package/esm2022/lib/components/custom-text-area/custom-text-area.component.mjs +65 -65
- package/esm2022/lib/components/custom-time/custom-time.component.mjs +61 -61
- package/esm2022/lib/components/dependent-table/dependent-table.component.mjs +42 -42
- package/esm2022/lib/components/dropdown-with-flag/dropdown-with-flag.component.mjs +39 -39
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +233 -233
- package/esm2022/lib/components/file-view/file-view.component.mjs +46 -46
- package/esm2022/lib/components/loader/loader.component.mjs +23 -23
- package/esm2022/lib/components/pick-location/pick-location.component.mjs +188 -188
- package/esm2022/lib/components/search-box/search-box.component.mjs +130 -130
- package/esm2022/lib/components/table-appendix/table-appendix.component.mjs +123 -123
- package/esm2022/lib/directives/componenthost/componenthost.directive.mjs +19 -19
- package/esm2022/lib/en.i18n.mjs +29 -29
- package/esm2022/lib/i18n-config.service.mjs +4 -4
- package/esm2022/lib/i18n.component.mjs +47 -47
- package/esm2022/lib/i18n.module.mjs +38 -38
- package/esm2022/lib/i18n.pipe.mjs +25 -25
- package/esm2022/lib/i18n.service.mjs +56 -56
- 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 +11 -11
- package/esm2022/lib/model/errorWrapper.mjs +6 -6
- package/esm2022/lib/model/tableWrapper.mjs +20 -20
- package/esm2022/lib/nxt-app.component.mjs +22 -22
- package/esm2022/lib/nxt-app.module.mjs +364 -352
- package/esm2022/lib/nxt-app.service.mjs +14 -14
- package/esm2022/lib/pages/booklet/booklet.component.mjs +540 -541
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +428 -407
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +2387 -2373
- package/esm2022/lib/pages/summary-page/summary-page.component.mjs +76 -76
- package/esm2022/lib/pipe/get-value.pipe.mjs +50 -50
- package/esm2022/lib/sample.mjs +3715 -3431
- package/esm2022/lib/services/change.service.mjs +53 -53
- package/esm2022/lib/services/data.service.mjs +80 -80
- package/esm2022/lib/services/salesforce.service.mjs +46 -46
- package/esm2022/lib/services/shared.service.mjs +100 -100
- package/esm2022/lib/services/storage.service.mjs +44 -44
- package/esm2022/lib/tam.i18n.mjs +29 -29
- package/esm2022/lib/wrapper.mjs +175 -175
- package/esm2022/public-api.mjs +15 -15
- package/esm2022/rangertechnologies-ngnxt.mjs +4 -4
- package/fesm2022/rangertechnologies-ngnxt.mjs +10306 -9830
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/ar.i18n.d.ts +24 -24
- package/lib/components/custom-button/custom-button.component.d.ts +16 -16
- package/lib/components/custom-calendar/custom-calendar.component.d.ts +65 -65
- package/lib/components/custom-date/custom-date.component.d.ts +18 -18
- package/lib/components/custom-date-picker/custom-date-picker.component.d.ts +19 -19
- package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +39 -39
- package/lib/components/custom-image/custom-image.component.d.ts +13 -13
- package/lib/components/custom-input/custom-input.component.d.ts +31 -31
- package/lib/components/custom-label/custom-label.component.d.ts +10 -10
- package/lib/components/custom-model/custom-model.component.d.ts +19 -19
- package/lib/components/custom-radio/custom-radio.component.d.ts +33 -33
- package/lib/components/custom-rich-text/custom-rich-text.component.d.ts +29 -0
- package/lib/components/custom-table/custom-table.component.d.ts +43 -43
- package/lib/components/custom-text-area/custom-text-area.component.d.ts +22 -22
- package/lib/components/custom-time/custom-time.component.d.ts +18 -18
- package/lib/components/dependent-table/dependent-table.component.d.ts +15 -15
- package/lib/components/dropdown-with-flag/dropdown-with-flag.component.d.ts +16 -16
- package/lib/components/file-upload/file-upload.component.d.ts +42 -42
- package/lib/components/file-view/file-view.component.d.ts +16 -16
- package/lib/components/loader/loader.component.d.ts +11 -11
- package/lib/components/pick-location/pick-location.component.d.ts +42 -42
- package/lib/components/search-box/search-box.component.d.ts +40 -40
- package/lib/components/table-appendix/table-appendix.component.d.ts +30 -30
- package/lib/directives/componenthost/componenthost.directive.d.ts +8 -8
- package/lib/en.i18n.d.ts +24 -24
- package/lib/i18n-config.service.d.ts +2 -2
- package/lib/i18n.component.d.ts +11 -11
- package/lib/i18n.module.d.ts +9 -9
- package/lib/i18n.pipe.d.ts +10 -10
- package/lib/i18n.service.d.ts +14 -14
- package/lib/interfaces/actionMeta.d.ts +5 -5
- package/lib/interfaces/apimeta.d.ts +14 -14
- package/lib/interfaces/dependencyMeta.d.ts +8 -8
- package/lib/model/bookletWrapper.d.ts +5 -5
- package/lib/model/changeWrapper.d.ts +10 -10
- package/lib/model/errorWrapper.d.ts +5 -5
- package/lib/model/tableWrapper.d.ts +18 -18
- package/lib/nxt-app.component.d.ts +8 -8
- package/lib/nxt-app.module.d.ts +47 -46
- package/lib/nxt-app.service.d.ts +6 -6
- package/lib/pages/booklet/booklet.component.d.ts +68 -68
- package/lib/pages/questionbook/questionbook.component.d.ts +66 -66
- package/lib/pages/questionnaire/questionnaire.component.d.ts +220 -218
- package/lib/pages/summary-page/summary-page.component.d.ts +20 -20
- package/lib/pipe/get-value.pipe.d.ts +7 -7
- package/lib/sample.d.ts +11 -10
- package/lib/services/change.service.d.ts +22 -22
- package/lib/services/data.service.d.ts +13 -13
- package/lib/services/salesforce.service.d.ts +11 -11
- package/lib/services/shared.service.d.ts +15 -15
- package/lib/services/storage.service.d.ts +13 -13
- package/lib/tam.i18n.d.ts +24 -24
- package/lib/wrapper.d.ts +203 -203
- package/package.json +3 -3
- package/public-api.d.ts +10 -10
- package/rangertechnologies-ngnxt-2.1.80.tgz +0 -0
- package/rangertechnologies-ngnxt-2.1.78.tgz +0 -0
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { ChangeWrapper } from '../../model/changeWrapper';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../services/change.service";
|
|
5
|
-
import * as i2 from "../../services/data.service";
|
|
6
|
-
import * as i3 from "../../i18n.service";
|
|
7
|
-
import * as i4 from "@angular/common";
|
|
8
|
-
export class CustomRadioComponent {
|
|
9
|
-
changeService;
|
|
10
|
-
dataService;
|
|
11
|
-
i18nService;
|
|
12
|
-
options = [];
|
|
13
|
-
apiMeta;
|
|
14
|
-
selectedValue;
|
|
15
|
-
progressBar;
|
|
16
|
-
id;
|
|
17
|
-
readOnly = false;
|
|
18
|
-
errorMessage;
|
|
19
|
-
error;
|
|
20
|
-
fromShengel = false;
|
|
21
|
-
referenceField;
|
|
22
|
-
token;
|
|
23
|
-
valueChange = new EventEmitter();
|
|
24
|
-
invalidFieldIds = [];
|
|
25
|
-
labelField;
|
|
26
|
-
valueField;
|
|
27
|
-
subscription;
|
|
28
|
-
constructor(changeService, dataService, i18nService) {
|
|
29
|
-
this.changeService = changeService;
|
|
30
|
-
this.dataService = dataService;
|
|
31
|
-
this.i18nService = i18nService;
|
|
32
|
-
this.changeService.submitValidate$.subscribe((data) => {
|
|
33
|
-
this.invalidFieldIds.push(data);
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
ngOnInit() {
|
|
37
|
-
// VD 31NOV24 null check
|
|
38
|
-
if (this.apiMeta) {
|
|
39
|
-
let apiObj = JSON.parse(this.apiMeta);
|
|
40
|
-
this.labelField = apiObj.field;
|
|
41
|
-
this.dataService.apiResponse(apiObj.endpoint)?.subscribe((apiResponse) => {
|
|
42
|
-
let responses;
|
|
43
|
-
if (apiObj.variable) {
|
|
44
|
-
responses = this.dataService.getValue(apiResponse, apiObj.variable);
|
|
45
|
-
let results = [];
|
|
46
|
-
for (let i = 0; i < responses?.length; i++) {
|
|
47
|
-
var resp = responses[i];
|
|
48
|
-
results.push(resp);
|
|
49
|
-
}
|
|
50
|
-
this.options = results;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
responses = apiResponse;
|
|
54
|
-
this.options = responses;
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
let sourceId = apiObj.sourceQuestionId;
|
|
58
|
-
if (sourceId) {
|
|
59
|
-
this.subscription = this.changeService.changeAnnounced$.subscribe((changeValue) => {
|
|
60
|
-
if (changeValue != undefined) {
|
|
61
|
-
if (changeValue.valueObj != undefined && changeValue.fromQuestionId == apiObj.sourceQuestionId) {
|
|
62
|
-
this.selectedValue = changeValue.valueObj[apiObj.valueField];
|
|
63
|
-
let value = {};
|
|
64
|
-
value['name'] = this.selectedValue;
|
|
65
|
-
this.radioChange(value);
|
|
66
|
-
}
|
|
67
|
-
this.changeService.confirmChange(apiObj.sourceQuestionId);
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
radioChange(event) {
|
|
74
|
-
let change = new ChangeWrapper();
|
|
75
|
-
change.fromQuestionId = this.id;
|
|
76
|
-
change.valueObj = event.target?.id ? event.target?.id : '';
|
|
77
|
-
change.referenceField = this.referenceField;
|
|
78
|
-
change.selectedObj = event ? event[this.labelField] : '';
|
|
79
|
-
this.valueChange.emit(change);
|
|
80
|
-
if (event) {
|
|
81
|
-
this.invalidFieldIds = [];
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
85
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
86
|
-
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
88
|
-
type: Component,
|
|
89
|
-
args: [{ selector: 'app-custom-radio', template: "<!-- RS 09DEC24 Changed keys--> \
|
|
90
|
-
}], ctorParameters:
|
|
91
|
-
type: Input
|
|
92
|
-
}], apiMeta: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], selectedValue: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], progressBar: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], id: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}], readOnly: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}], errorMessage: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], error: [{
|
|
105
|
-
type: Input
|
|
106
|
-
}], fromShengel: [{
|
|
107
|
-
type: Input
|
|
108
|
-
}], referenceField: [{
|
|
109
|
-
type: Input
|
|
110
|
-
}], token: [{
|
|
111
|
-
type: Input
|
|
112
|
-
}], valueChange: [{
|
|
113
|
-
type: Output
|
|
114
|
-
}] } });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1yYWRpby9jdXN0b20tcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJhZGlvL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBWTFELE1BQU0sT0FBTyxvQkFBb0I7SUFxQnJCO0lBQ0E7SUFDRDtJQXJCQSxPQUFPLEdBQVUsRUFBRSxDQUFDO0lBQ3BCLE9BQU8sQ0FBUztJQUNoQixhQUFhLENBQVM7SUFDdEIsV0FBVyxDQUFVO0lBQ3JCLEVBQUUsQ0FBUztJQUNYLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsWUFBWSxDQUFTO0lBQ3JCLEtBQUssQ0FBTTtJQUNYLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsY0FBYyxDQUFTO0lBQ3ZCLEtBQUssQ0FBUztJQUNiLFdBQVcsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDdkYsZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUV4QixVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQzFCLFlBQVksQ0FBZTtJQUUzQixZQUNVLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3pCLFdBQXdCO1FBRnZCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3pCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRS9CLElBQUksQ0FB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LENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzt1R0FqRlUsb0JBQW9COzJGQUFwQixvQkFBb0IsNldDYmpDLDQ0QkFtQkU7OzJGRE5XLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7d0pBTW5CLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXInO1xyXG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFQSU1ldGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2FwaW1ldGEnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY3VzdG9tLXJhZGlvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tcmFkaW8uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21SYWRpb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgYXBpTWV0YTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU6IHN0cmluZztcclxuICBASW5wdXQoKSBwcm9ncmVzc0JhcjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZXJyb3I6IGFueTtcclxuICBASW5wdXQoKSBmcm9tU2hlbmdlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlZmVyZW5jZUZpZWxkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdG9rZW46IHN0cmluZztcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDaGFuZ2VXcmFwcGVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hhbmdlV3JhcHBlcj4oKTtcclxuICBpbnZhbGlkRmllbGRJZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIHB1YmxpYyBsYWJlbEZpZWxkOiBzdHJpbmc7XHJcbiAgcHVibGljIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgIHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuY2hhbmdlU2VydmljZS5zdWJtaXRWYWxpZGF0ZSQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuaW52YWxpZEZpZWxkSWRzLnB1c2goZGF0YSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gVkQgMzFOT1YyNCBudWxsIGNoZWNrXHJcbiAgICBpZiAodGhpcy5hcGlNZXRhKSB7XHJcbiAgICAgIGxldCBhcGlPYmo6IEFQSU1ldGEgPSBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XHJcbiAgICAgIHRoaXMubGFiZWxGaWVsZCA9IGFwaU9iai5maWVsZDtcclxuXHJcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoYXBpT2JqLmVuZHBvaW50KT8uc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGxldCByZXNwb25zZXM7XHJcbiAgICAgICAgaWYgKGFwaU9iai52YXJpYWJsZSkge1xyXG4gICAgICAgICAgcmVzcG9uc2VzID0gdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShhcGlSZXNwb25zZSwgYXBpT2JqLnZhcmlhYmxlKTtcclxuICAgICAgICAgIGxldCByZXN1bHRzID0gW107XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcz8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgdmFyIHJlc3AgPSByZXNwb25zZXNbaV07XHJcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChyZXNwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3VsdHM7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlc3BvbnNlcyA9IGFwaVJlc3BvbnNlO1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzcG9uc2VzO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBsZXQgc291cmNlSWQgPSBhcGlPYmouc291cmNlUXVlc3Rpb25JZDtcclxuICAgICAgaWYgKHNvdXJjZUlkKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNoYW5nZVNlcnZpY2UuY2hhbmdlQW5ub3VuY2VkJC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAoY2hhbmdlVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIGlmIChjaGFuZ2VWYWx1ZS52YWx1ZU9iaiAhPSB1bmRlZmluZWQgJiYgY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT0gYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGNoYW5nZVZhbHVlLnZhbHVlT2JqW2FwaU9iai52YWx1ZUZpZWxkXTtcclxuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgdmFsdWVbJ25hbWUnXSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmFkaW9DaGFuZ2UodmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmNoYW5nZVNlcnZpY2UuY29uZmlybUNoYW5nZShhcGlPYmouc291cmNlUXVlc3Rpb25JZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByYWRpb0NoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTtcclxuICAgIGNoYW5nZS5mcm9tUXVlc3Rpb25JZCA9IHRoaXMuaWQ7XHJcbiAgICBjaGFuZ2UudmFsdWVPYmogPSBldmVudC50YXJnZXQ/LmlkID8gZXZlbnQudGFyZ2V0Py5pZCA6ICcnO1xyXG4gICAgY2hhbmdlLnJlZmVyZW5jZUZpZWxkID0gdGhpcy5yZWZlcmVuY2VGaWVsZDtcclxuICAgIGNoYW5nZS5zZWxlY3RlZE9iaiA9IGV2ZW50ID8gZXZlbnRbdGhpcy5sYWJlbEZpZWxkXSA6ICcnO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGNoYW5nZSk7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gUlMgMDlERUMyNCBDaGFuZ2VkIGtleXMtLT4gXHJcbjxkaXYgY2xhc3M9XCJjdXN0b20tcmFkaW8tY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXHJcbiAgICAgIFtjbGFzc109XCJpbnZhbGlkRmllbGRJZHMuaW5jbHVkZXMoaWQpIHx8IGVycm9yID8gJ2N1c3RvbS1yYWRpby1vcHRpb24gaW52YWxpZCcgOiAnY3VzdG9tLXJhZGlvLW9wdGlvbidcIlxyXG4gICAgPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgIFtpZF09XCJhcGlNZXRhICE9PSB1bmRlZmluZWQgPyBvcHRpb25bbGFiZWxGaWVsZF0gOiBvcHRpb24udmFsdWUgXCJcclxuICAgICAgICBbY2hlY2tlZF0gPSBcInNlbGVjdGVkVmFsdWUgPT0gb3B0aW9uLnZhbHVlIFwiXHJcbiAgICAgICAgW25hbWVdPVwiaWRcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZFZhbHVlXCJcclxuICAgICAgICAoY2hhbmdlKT1cInJhZGlvQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJyZWFkT25seVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cIm54dC1yYWRpby1sYWJlbFwiIFtmb3JdPVwiYXBpTWV0YSAhPT0gdW5kZWZpbmVkID8gb3B0aW9uW2xhYmVsRmllbGRdIDogb3B0aW9uLnZhbHVlXCI+e3sgYXBpTWV0YSAhPT0gdW5kZWZpbmVkID8gb3B0aW9uW2xhYmVsRmllbGRdIDogb3B0aW9uLnZhbHVlICB9fTwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzcGFuICpuZ0lmPVwiZXJyb3IgfHwgaW52YWxpZEZpZWxkSWRzLmluY2x1ZGVzKGlkKVwiIGNsYXNzPVwiZXJyb3ItbXNnXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gICJdfQ==
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { ChangeWrapper } from '../../model/changeWrapper';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../services/change.service";
|
|
5
|
+
import * as i2 from "../../services/data.service";
|
|
6
|
+
import * as i3 from "../../i18n.service";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
8
|
+
export class CustomRadioComponent {
|
|
9
|
+
changeService;
|
|
10
|
+
dataService;
|
|
11
|
+
i18nService;
|
|
12
|
+
options = [];
|
|
13
|
+
apiMeta;
|
|
14
|
+
selectedValue;
|
|
15
|
+
progressBar;
|
|
16
|
+
id;
|
|
17
|
+
readOnly = false;
|
|
18
|
+
errorMessage;
|
|
19
|
+
error;
|
|
20
|
+
fromShengel = false;
|
|
21
|
+
referenceField;
|
|
22
|
+
token;
|
|
23
|
+
valueChange = new EventEmitter();
|
|
24
|
+
invalidFieldIds = [];
|
|
25
|
+
labelField;
|
|
26
|
+
valueField;
|
|
27
|
+
subscription;
|
|
28
|
+
constructor(changeService, dataService, i18nService) {
|
|
29
|
+
this.changeService = changeService;
|
|
30
|
+
this.dataService = dataService;
|
|
31
|
+
this.i18nService = i18nService;
|
|
32
|
+
this.changeService.submitValidate$.subscribe((data) => {
|
|
33
|
+
this.invalidFieldIds.push(data);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
ngOnInit() {
|
|
37
|
+
// VD 31NOV24 null check
|
|
38
|
+
if (this.apiMeta) {
|
|
39
|
+
let apiObj = JSON.parse(this.apiMeta);
|
|
40
|
+
this.labelField = apiObj.field;
|
|
41
|
+
this.dataService.apiResponse(apiObj.endpoint)?.subscribe((apiResponse) => {
|
|
42
|
+
let responses;
|
|
43
|
+
if (apiObj.variable) {
|
|
44
|
+
responses = this.dataService.getValue(apiResponse, apiObj.variable);
|
|
45
|
+
let results = [];
|
|
46
|
+
for (let i = 0; i < responses?.length; i++) {
|
|
47
|
+
var resp = responses[i];
|
|
48
|
+
results.push(resp);
|
|
49
|
+
}
|
|
50
|
+
this.options = results;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
responses = apiResponse;
|
|
54
|
+
this.options = responses;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
let sourceId = apiObj.sourceQuestionId;
|
|
58
|
+
if (sourceId) {
|
|
59
|
+
this.subscription = this.changeService.changeAnnounced$.subscribe((changeValue) => {
|
|
60
|
+
if (changeValue != undefined) {
|
|
61
|
+
if (changeValue.valueObj != undefined && changeValue.fromQuestionId == apiObj.sourceQuestionId) {
|
|
62
|
+
this.selectedValue = changeValue.valueObj[apiObj.valueField];
|
|
63
|
+
let value = {};
|
|
64
|
+
value['name'] = this.selectedValue;
|
|
65
|
+
this.radioChange(value);
|
|
66
|
+
}
|
|
67
|
+
this.changeService.confirmChange(apiObj.sourceQuestionId);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
radioChange(event) {
|
|
74
|
+
let change = new ChangeWrapper();
|
|
75
|
+
change.fromQuestionId = this.id;
|
|
76
|
+
change.valueObj = event.target?.id ? event.target?.id : '';
|
|
77
|
+
change.referenceField = this.referenceField;
|
|
78
|
+
change.selectedObj = event ? event[this.labelField] : '';
|
|
79
|
+
this.valueChange.emit(change);
|
|
80
|
+
if (event) {
|
|
81
|
+
this.invalidFieldIds = [];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomRadioComponent, deps: [{ token: i1.ChangeService }, { token: i2.DataService }, { token: i3.I18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomRadioComponent, selector: "app-custom-radio", inputs: { options: "options", apiMeta: "apiMeta", selectedValue: "selectedValue", progressBar: "progressBar", id: "id", readOnly: "readOnly", errorMessage: "errorMessage", error: "error", fromShengel: "fromShengel", referenceField: "referenceField", token: "token" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<!-- RS 09DEC24 Changed keys--> \n<div class=\"custom-radio-container\">\n <div\n *ngFor=\"let option of options\"\n [class]=\"invalidFieldIds.includes(id) || error ? 'custom-radio-option invalid' : 'custom-radio-option'\"\n >\n <input\n type=\"radio\"\n [id]=\"apiMeta !== undefined ? option[labelField] : option.value \"\n [checked] = \"selectedValue == option.value \"\n [name]=\"id\"\n [value]=\"selectedValue\"\n (change)=\"radioChange($event)\"\n [disabled]=\"readOnly\"\n />\n <label class=\"nxt-radio-label\" [for]=\"apiMeta !== undefined ? option[labelField] : option.value\">{{ apiMeta !== undefined ? option[labelField] : option.value }}</label>\n </div>\n <span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">{{ errorMessage }}</span>\n </div>\n ", styles: [".custom-radio-option{display:flex;flex-direction:row;margin-bottom:5px}input[type=radio]{width:auto}.nxt-radio-label{margin-left:15px;margin-bottom:0}.custom-radio-option.invalid label{color:red}.error-msg{color:red;font-size:12px;margin-top:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
86
|
+
}
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomRadioComponent, decorators: [{
|
|
88
|
+
type: Component,
|
|
89
|
+
args: [{ selector: 'app-custom-radio', template: "<!-- RS 09DEC24 Changed keys--> \n<div class=\"custom-radio-container\">\n <div\n *ngFor=\"let option of options\"\n [class]=\"invalidFieldIds.includes(id) || error ? 'custom-radio-option invalid' : 'custom-radio-option'\"\n >\n <input\n type=\"radio\"\n [id]=\"apiMeta !== undefined ? option[labelField] : option.value \"\n [checked] = \"selectedValue == option.value \"\n [name]=\"id\"\n [value]=\"selectedValue\"\n (change)=\"radioChange($event)\"\n [disabled]=\"readOnly\"\n />\n <label class=\"nxt-radio-label\" [for]=\"apiMeta !== undefined ? option[labelField] : option.value\">{{ apiMeta !== undefined ? option[labelField] : option.value }}</label>\n </div>\n <span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">{{ errorMessage }}</span>\n </div>\n ", styles: [".custom-radio-option{display:flex;flex-direction:row;margin-bottom:5px}input[type=radio]{width:auto}.nxt-radio-label{margin-left:15px;margin-bottom:0}.custom-radio-option.invalid label{color:red}.error-msg{color:red;font-size:12px;margin-top:5px}\n"] }]
|
|
90
|
+
}], ctorParameters: () => [{ type: i1.ChangeService }, { type: i2.DataService }, { type: i3.I18nService }], propDecorators: { options: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], apiMeta: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], selectedValue: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], progressBar: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], id: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], readOnly: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], errorMessage: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], error: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], fromShengel: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}], referenceField: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], token: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}], valueChange: [{
|
|
113
|
+
type: Output
|
|
114
|
+
}] } });
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1yYWRpby9jdXN0b20tcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJhZGlvL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBWTFELE1BQU0sT0FBTyxvQkFBb0I7SUFxQnJCO0lBQ0E7SUFDRDtJQXJCQSxPQUFPLEdBQVUsRUFBRSxDQUFDO0lBQ3BCLE9BQU8sQ0FBUztJQUNoQixhQUFhLENBQVM7SUFDdEIsV0FBVyxDQUFVO0lBQ3JCLEVBQUUsQ0FBUztJQUNYLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsWUFBWSxDQUFTO0lBQ3JCLEtBQUssQ0FBTTtJQUNYLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsY0FBYyxDQUFTO0lBQ3ZCLEtBQUssQ0FBUztJQUNiLFdBQVcsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDdkYsZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUV4QixVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQzFCLFlBQVksQ0FBZTtJQUUzQixZQUNVLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3pCLFdBQXdCO1FBRnZCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3pCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRS9CLElBQUksQ0FB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LE1BQU0sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO3dHQWpGVSxvQkFBb0I7NEZBQXBCLG9CQUFvQiw2V0NiakMsczJCQW1CRTs7NEZETlcsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjtzSUFNbkIsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXInO1xuaW1wb3J0IHsgQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5nZS5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVBJTWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBpbWV0YSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20tcmFkaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21SYWRpb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgb3B0aW9uczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgYXBpTWV0YTogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb2dyZXNzQmFyOiBib29sZWFuO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3I6IGFueTtcbiAgQElucHV0KCkgZnJvbVNoZW5nZWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVmZXJlbmNlRmllbGQ6IHN0cmluZztcbiAgQElucHV0KCkgdG9rZW46IHN0cmluZztcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q2hhbmdlV3JhcHBlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPENoYW5nZVdyYXBwZXI+KCk7XG4gIGludmFsaWRGaWVsZElkczogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgbGFiZWxGaWVsZDogc3RyaW5nO1xuICBwdWJsaWMgdmFsdWVGaWVsZDogc3RyaW5nO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZVxuICApIHtcbiAgICB0aGlzLmNoYW5nZVNlcnZpY2Uuc3VibWl0VmFsaWRhdGUkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMucHVzaChkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFZEIDMxTk9WMjQgbnVsbCBjaGVja1xuICAgIGlmICh0aGlzLmFwaU1ldGEpIHtcbiAgICAgIGxldCBhcGlPYmo6IEFQSU1ldGEgPSBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG4gICAgICB0aGlzLmxhYmVsRmllbGQgPSBhcGlPYmouZmllbGQ7XG5cbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoYXBpT2JqLmVuZHBvaW50KT8uc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xuICAgICAgICBsZXQgcmVzcG9uc2VzO1xuICAgICAgICBpZiAoYXBpT2JqLnZhcmlhYmxlKSB7XG4gICAgICAgICAgcmVzcG9uc2VzID0gdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShhcGlSZXNwb25zZSwgYXBpT2JqLnZhcmlhYmxlKTtcbiAgICAgICAgICBsZXQgcmVzdWx0cyA9IFtdO1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzcG9uc2VzPy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIHJlc3AgPSByZXNwb25zZXNbaV07XG4gICAgICAgICAgICByZXN1bHRzLnB1c2gocmVzcCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3VsdHM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzcG9uc2VzID0gYXBpUmVzcG9uc2U7XG4gICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzcG9uc2VzO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbGV0IHNvdXJjZUlkID0gYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQ7XG4gICAgICBpZiAoc291cmNlSWQpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNoYW5nZVNlcnZpY2UuY2hhbmdlQW5ub3VuY2VkJC5zdWJzY3JpYmUoXG4gICAgICAgICAgKGNoYW5nZVZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGlmIChjaGFuZ2VWYWx1ZS52YWx1ZU9iaiAhPSB1bmRlZmluZWQgJiYgY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT0gYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBjaGFuZ2VWYWx1ZS52YWx1ZU9ialthcGlPYmoudmFsdWVGaWVsZF07XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgdmFsdWVbJ25hbWUnXSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJhZGlvQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLmNoYW5nZVNlcnZpY2UuY29uZmlybUNoYW5nZShhcGlPYmouc291cmNlUXVlc3Rpb25JZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJhZGlvQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTtcbiAgICBjaGFuZ2UuZnJvbVF1ZXN0aW9uSWQgPSB0aGlzLmlkO1xuICAgIGNoYW5nZS52YWx1ZU9iaiA9IGV2ZW50LnRhcmdldD8uaWQgPyBldmVudC50YXJnZXQ/LmlkIDogJyc7XG4gICAgY2hhbmdlLnJlZmVyZW5jZUZpZWxkID0gdGhpcy5yZWZlcmVuY2VGaWVsZDtcbiAgICBjaGFuZ2Uuc2VsZWN0ZWRPYmogPSBldmVudCA/IGV2ZW50W3RoaXMubGFiZWxGaWVsZF0gOiAnJztcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoY2hhbmdlKTtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuaW52YWxpZEZpZWxkSWRzID0gW107XG4gICAgfVxuICB9XG5cbn1cbiIsIjwhLS0gUlMgMDlERUMyNCBDaGFuZ2VkIGtleXMtLT4gXG48ZGl2IGNsYXNzPVwiY3VzdG9tLXJhZGlvLWNvbnRhaW5lclwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXG4gICAgICBbY2xhc3NdPVwiaW52YWxpZEZpZWxkSWRzLmluY2x1ZGVzKGlkKSB8fCBlcnJvciA/ICdjdXN0b20tcmFkaW8tb3B0aW9uIGludmFsaWQnIDogJ2N1c3RvbS1yYWRpby1vcHRpb24nXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgW2lkXT1cImFwaU1ldGEgIT09IHVuZGVmaW5lZCA/IG9wdGlvbltsYWJlbEZpZWxkXSA6IG9wdGlvbi52YWx1ZSBcIlxuICAgICAgICBbY2hlY2tlZF0gPSBcInNlbGVjdGVkVmFsdWUgPT0gb3B0aW9uLnZhbHVlIFwiXG4gICAgICAgIFtuYW1lXT1cImlkXCJcbiAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIlxuICAgICAgICAoY2hhbmdlKT1cInJhZGlvQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwicmVhZE9ubHlcIlxuICAgICAgLz5cbiAgICAgIDxsYWJlbCBjbGFzcz1cIm54dC1yYWRpby1sYWJlbFwiIFtmb3JdPVwiYXBpTWV0YSAhPT0gdW5kZWZpbmVkID8gb3B0aW9uW2xhYmVsRmllbGRdIDogb3B0aW9uLnZhbHVlXCI+e3sgYXBpTWV0YSAhPT0gdW5kZWZpbmVkID8gb3B0aW9uW2xhYmVsRmllbGRdIDogb3B0aW9uLnZhbHVlICB9fTwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gKm5nSWY9XCJlcnJvciB8fCBpbnZhbGlkRmllbGRJZHMuaW5jbHVkZXMoaWQpXCIgY2xhc3M9XCJlcnJvci1tc2dcIj57eyBlcnJvck1lc3NhZ2UgfX08L3NwYW4+XG4gIDwvZGl2PlxuICAiXX0=
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
// Changes commented out due to Angular version compatibility; will apply after upgrade.
|
|
2
|
+
// // RS 06JAN2025
|
|
3
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
4
|
+
import { QuillEditorComponent } from 'ngx-quill';
|
|
5
|
+
import { FormsModule } from '@angular/forms';
|
|
6
|
+
import Quill from 'quill';
|
|
7
|
+
import { Mention } from 'quill-mention';
|
|
8
|
+
import ImageResizor from 'quill-image-resizor';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "../../i18n.service";
|
|
11
|
+
import * as i2 from "../../services/change.service";
|
|
12
|
+
import * as i3 from "@angular/forms";
|
|
13
|
+
// Register Quill modules
|
|
14
|
+
Quill.register('modules/mention', Mention);
|
|
15
|
+
ImageResizor.Quill = Quill;
|
|
16
|
+
Quill.register('modules/imageResizor', ImageResizor);
|
|
17
|
+
export const QuillConfiguration = {
|
|
18
|
+
imageResizor: {},
|
|
19
|
+
toolbar: {
|
|
20
|
+
container: [
|
|
21
|
+
['bold', 'italic', 'underline', 'strike'],
|
|
22
|
+
['blockquote', 'code-block'],
|
|
23
|
+
[{ header: [1, 2, 3, 4, 5, 6, false] }],
|
|
24
|
+
[{ list: 'ordered' }, { list: 'bullet' }],
|
|
25
|
+
[{ color: [] }, { background: [] }],
|
|
26
|
+
[{ align: [] }],
|
|
27
|
+
['link', 'image', 'video'],
|
|
28
|
+
['formula'],
|
|
29
|
+
['clean'],
|
|
30
|
+
],
|
|
31
|
+
},
|
|
32
|
+
mention: {
|
|
33
|
+
allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
|
|
34
|
+
mentionDenotationChars: ['@', '#'],
|
|
35
|
+
source: function (searchTerm, renderList) {
|
|
36
|
+
const values = [
|
|
37
|
+
{ id: 1, value: 'User 1' },
|
|
38
|
+
{ id: 2, value: 'User 2' },
|
|
39
|
+
];
|
|
40
|
+
if (searchTerm.length === 0) {
|
|
41
|
+
renderList(values, searchTerm);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const matches = values.filter((item) => item.value.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
45
|
+
renderList(matches, searchTerm);
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
// resize: {
|
|
51
|
+
// displaySize: true,
|
|
52
|
+
// modules: ['Resize', 'DisplaySize', 'Toolbar'],
|
|
53
|
+
// toolbarStyles: {
|
|
54
|
+
// backgroundColor: 'black',
|
|
55
|
+
// border: 'none',
|
|
56
|
+
// color: 'white'
|
|
57
|
+
// },
|
|
58
|
+
// handleStyles: {
|
|
59
|
+
// backgroundColor: 'black',
|
|
60
|
+
// border: 'none',
|
|
61
|
+
// color: 'white'
|
|
62
|
+
// }
|
|
63
|
+
// },
|
|
64
|
+
export class CustomRichTextComponent {
|
|
65
|
+
i18nService;
|
|
66
|
+
changeService;
|
|
67
|
+
value = '';
|
|
68
|
+
placeholder;
|
|
69
|
+
error;
|
|
70
|
+
question;
|
|
71
|
+
rows; //The number of visible text lines for the control
|
|
72
|
+
readOnly = false;
|
|
73
|
+
textValueChange = new EventEmitter();
|
|
74
|
+
minLength;
|
|
75
|
+
maxLength;
|
|
76
|
+
// @Input() value: any = ''; // Set default value
|
|
77
|
+
quillConfiguration = QuillConfiguration;
|
|
78
|
+
subscription;
|
|
79
|
+
constructor(i18nService, changeService) {
|
|
80
|
+
this.i18nService = i18nService;
|
|
81
|
+
this.changeService = changeService;
|
|
82
|
+
}
|
|
83
|
+
ngOnInit() {
|
|
84
|
+
console.log('Rich Text Init:', {
|
|
85
|
+
value: this.value,
|
|
86
|
+
question: this.question
|
|
87
|
+
});
|
|
88
|
+
if (this.value === undefined || this.value === null) {
|
|
89
|
+
this.value = '';
|
|
90
|
+
this.textValueChange.emit('');
|
|
91
|
+
}
|
|
92
|
+
this.initializeDependency();
|
|
93
|
+
}
|
|
94
|
+
// Separated dependency initialization for better organization
|
|
95
|
+
initializeDependency() {
|
|
96
|
+
if (this.question?.subText) {
|
|
97
|
+
console.log('subText:', this.question.subText);
|
|
98
|
+
try {
|
|
99
|
+
const dependencyObj = JSON.parse(this.question.subText);
|
|
100
|
+
if (dependencyObj?.sourceQuestionId) {
|
|
101
|
+
this.subscription = this.changeService.changeAnnounced$.subscribe((changeValue) => {
|
|
102
|
+
console.log('Change Value:', changeValue);
|
|
103
|
+
if (changeValue && changeValue.valueObj &&
|
|
104
|
+
changeValue.fromQuestionId === dependencyObj.sourceQuestionId) {
|
|
105
|
+
this.value = changeValue.valueObj[dependencyObj.valueField];
|
|
106
|
+
this.textValueChange.emit(this.value);
|
|
107
|
+
}
|
|
108
|
+
this.changeService.confirmChange(dependencyObj.sourceQuestionId);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
console.error('Error parsing subText:', error);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
onEditorChange(event) {
|
|
118
|
+
if (event && event.html !== undefined) {
|
|
119
|
+
this.textValueChange.emit(event.html);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this.textValueChange.emit('');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Added ngOnDestroy to prevent memory leaks
|
|
126
|
+
ngOnDestroy() {
|
|
127
|
+
if (this.subscription) {
|
|
128
|
+
this.subscription.unsubscribe();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomRichTextComponent, deps: [{ token: i1.I18nService }, { token: i2.ChangeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
132
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomRichTextComponent, isStandalone: true, selector: "app-custom-rich-text", inputs: { value: "value", placeholder: "placeholder", error: "error", question: "question", rows: "rows", readOnly: "readOnly", minLength: "minLength", maxLength: "maxLength" }, outputs: { textValueChange: "textValueChange" }, ngImport: i0, template: "<!-- RS 06JAN25 -->\n<div class=\"rich-text-container\">\n <quill-editor\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n [modules]=\"quillConfiguration\"\n [readOnly]=\"readOnly\"\n (onContentChanged)=\"onEditorChange($event)\"\n [class.error]=\"error\">\n </quill-editor>\n <div *ngIf=\"error\" class=\"error-message\">\n {{ error }}\n </div>\n</div>", styles: [".rich-text-container{width:100%;margin:10px 0}.error{border:1px solid red}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}\n"], dependencies: [{ kind: "component", type: QuillEditorComponent, selector: "quill-editor" }, { kind: "ngmodule", type: FormsModule }, { 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"] }] });
|
|
133
|
+
}
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomRichTextComponent, decorators: [{
|
|
135
|
+
type: Component,
|
|
136
|
+
args: [{ imports: [QuillEditorComponent, FormsModule], selector: 'app-custom-rich-text', standalone: true, template: "<!-- RS 06JAN25 -->\n<div class=\"rich-text-container\">\n <quill-editor\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n [modules]=\"quillConfiguration\"\n [readOnly]=\"readOnly\"\n (onContentChanged)=\"onEditorChange($event)\"\n [class.error]=\"error\">\n </quill-editor>\n <div *ngIf=\"error\" class=\"error-message\">\n {{ error }}\n </div>\n</div>", styles: [".rich-text-container{width:100%;margin:10px 0}.error{border:1px solid red}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}\n"] }]
|
|
137
|
+
}], ctorParameters: () => [{ type: i1.I18nService }, { type: i2.ChangeService }], propDecorators: { value: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], placeholder: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}], error: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], question: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], rows: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], readOnly: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], textValueChange: [{
|
|
150
|
+
type: Output
|
|
151
|
+
}], minLength: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], maxLength: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}] } });
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJpY2gtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b20tcmljaC10ZXh0L2N1c3RvbS1yaWNoLXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJpY2gtdGV4dC9jdXN0b20tcmljaC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdGQUF3RjtBQUN4RixrQkFBa0I7QUFDbEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFLbEgsT0FBTyxFQUFFLG9CQUFvQixFQUFnQixNQUFNLFdBQVcsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxZQUFZLE1BQU0scUJBQXFCLENBQUE7Ozs7O0FBRTlDLHlCQUF5QjtBQUN6QixLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLFlBQVksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0FBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsWUFBWSxDQUFDLENBQUE7QUFFcEQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQWlCO0lBQzVDLFlBQVksRUFBRSxFQUFFO0lBQ2xCLE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRTtZQUNULENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDO1lBQ3pD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LHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUdELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFDQyw0Q0FBNEM7SUFDNUMsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7d0dBdkVVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLG1UQzVFcEMsb1lBYU0sNGNEd0RRLG9CQUFvQix3REFBRSxXQUFXOzs0RkFPbEMsdUJBQXVCO2tCQVJuQyxTQUFTOzhCQUNHLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxDQUFDLFlBQ2xDLHNCQUFzQixjQUNwQixJQUFJOzRHQU1ULEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0UsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ2hhbmdlcyBjb21tZW50ZWQgb3V0IGR1ZSB0byBBbmd1bGFyIHZlcnNpb24gY29tcGF0aWJpbGl0eTsgd2lsbCBhcHBseSBhZnRlciB1cGdyYWRlLlxuLy8gLy8gUlMgMDZKQU4yMDI1XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBPbkRlc3Ryb3ksIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5nZS5zZXJ2aWNlJztcbmltcG9ydCB7IERlcGVuZGVuY3lNZXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kZXBlbmRlbmN5TWV0YSc7XG5pbXBvcnQgeyBRdWlsbEVkaXRvckNvbXBvbmVudCwgUXVpbGxNb2R1bGVzIH0gZnJvbSAnbmd4LXF1aWxsJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgUXVpbGwgZnJvbSAncXVpbGwnO1xuaW1wb3J0IHsgTWVudGlvbiB9IGZyb20gJ3F1aWxsLW1lbnRpb24nO1xuaW1wb3J0IEltYWdlUmVzaXpvciBmcm9tICdxdWlsbC1pbWFnZS1yZXNpem9yJ1xuXG4vLyBSZWdpc3RlciBRdWlsbCBtb2R1bGVzXG5RdWlsbC5yZWdpc3RlcignbW9kdWxlcy9tZW50aW9uJywgTWVudGlvbik7XG5JbWFnZVJlc2l6b3IuUXVpbGwgPSBRdWlsbFxuUXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvaW1hZ2VSZXNpem9yJywgSW1hZ2VSZXNpem9yKVxuXG5leHBvcnQgY29uc3QgUXVpbGxDb25maWd1cmF0aW9uOiBRdWlsbE1vZHVsZXMgPSB7XG4gICAgaW1hZ2VSZXNpem9yOiB7fSxcbiAgdG9vbGJhcjoge1xuICAgIGNvbnRhaW5lcjogW1xuICAgICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnLCAnc3RyaWtlJ10sXG4gICAgICBbJ2Jsb2NrcXVvdGUnLCAnY29kZS1ibG9jayddLFxuICAgICAgW3sgaGVhZGVyOiBbMSwgMiwgMywgNCwgNSwgNiwgZmFsc2VdIH1dLFxuICAgICAgW3sgbGlzdDogJ29yZGVyZWQnIH0sIHsgbGlzdDogJ2J1bGxldCcgfV0sXG4gICAgICBbeyBjb2xvcjogW10gfSwgeyBiYWNrZ3JvdW5kOiBbXSB9XSxcbiAgICAgIFt7IGFsaWduOiBbXSB9XSxcbiAgICAgIFsnbGluaycsICdpbWFnZScsICd2aWRlbyddLFxuICAgICAgWydmb3JtdWxhJ10sXG4gICAgICBbJ2NsZWFuJ10sXG4gICAgXSxcbiAgfSxcbiAgbWVudGlvbjoge1xuICAgIGFsbG93ZWRDaGFyczogL15bQS1aYS16XFxzw4XDhMOWw6XDpMO2XSokLyxcbiAgICBtZW50aW9uRGVub3RhdGlvbkNoYXJzOiBbJ0AnLCAnIyddLFxuICAgIHNvdXJjZTogZnVuY3Rpb24gKHNlYXJjaFRlcm06IHN0cmluZywgcmVuZGVyTGlzdDogYW55KSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBbXG4gICAgICAgIHsgaWQ6IDEsIHZhbHVlOiAnVXNlciAxJyB9LFxuICAgICAgICB7IGlkOiAyLCB2YWx1ZTogJ1VzZXIgMicgfSxcbiAgICAgIF07XG5cbiAgICAgIGlmIChzZWFyY2hUZXJtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZW5kZXJMaXN0KHZhbHVlcywgc2VhcmNoVGVybSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBtYXRjaGVzID0gdmFsdWVzLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgICBpdGVtLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICApO1xuICAgICAgICByZW5kZXJMaXN0KG1hdGNoZXMsIHNlYXJjaFRlcm0pO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG59O1xuXG4vLyByZXNpemU6IHtcbi8vICAgICBkaXNwbGF5U2l6ZTogdHJ1ZSxcbi8vICAgICBtb2R1bGVzOiBbJ1Jlc2l6ZScsICdEaXNwbGF5U2l6ZScsICdUb29sYmFyJ10sXG4vLyAgICAgdG9vbGJhclN0eWxlczoge1xuLy8gICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdibGFjaycsXG4vLyAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxuLy8gICAgICAgICBjb2xvcjogJ3doaXRlJ1xuLy8gICAgIH0sXG4vLyAgICAgaGFuZGxlU3R5bGVzOiB7XG4vLyAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ2JsYWNrJyxcbi8vICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4vLyAgICAgICAgIGNvbG9yOiAnd2hpdGUnXG4vLyAgICAgfVxuLy8gfSxcbkBDb21wb25lbnQoe1xuICAgIGltcG9ydHM6IFtRdWlsbEVkaXRvckNvbXBvbmVudCwgRm9ybXNNb2R1bGVdLFxuICAgIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1yaWNoLXRleHQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1yaWNoLXRleHQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2N1c3RvbS1yaWNoLXRleHQuY29tcG9uZW50LmNzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmljaFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuICBASW5wdXQoKSB2YWx1ZTogYW55IHwgYW55W10gPSAnJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3I6IGFueTtcbiAgQElucHV0KCkgcXVlc3Rpb246IGFueTtcbiAgQElucHV0KCkgcm93czpOdW1iZXI7IC8vVGhlIG51bWJlciBvZiB2aXNpYmxlIHRleHQgbGluZXMgZm9yIHRoZSBjb250cm9sXG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XG4gIEBPdXRwdXQoKSB0ZXh0VmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBJbnB1dCgpIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAvLyBASW5wdXQoKSB2YWx1ZTogYW55ID0gJyc7IC8vIFNldCBkZWZhdWx0IHZhbHVlXG5cbiAgcXVpbGxDb25maWd1cmF0aW9uOiBRdWlsbE1vZHVsZXMgPSBRdWlsbENvbmZpZ3VyYXRpb247XG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uOyAgXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnUmljaCBUZXh0IEluaXQ6Jywge1xuICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICBxdWVzdGlvbjogdGhpcy5xdWVzdGlvblxuICAgIH0pO1xuICAgIGlmICh0aGlzLnZhbHVlID09PSB1bmRlZmluZWQgfHwgdGhpcy52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgICAgdGhpcy50ZXh0VmFsdWVDaGFuZ2UuZW1pdCgnJyk7XG5cbiAgICB9XG4gICAgdGhpcy5pbml0aWFsaXplRGVwZW5kZW5jeSgpO1xuICB9XG5cbiAgLy8gU2VwYXJhdGVkIGRlcGVuZGVuY3kgaW5pdGlhbGl6YXRpb24gZm9yIGJldHRlciBvcmdhbml6YXRpb25cbiAgcHJpdmF0ZSBpbml0aWFsaXplRGVwZW5kZW5jeSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbj8uc3ViVGV4dCkge1xuICAgICAgICBjb25zb2xlLmxvZygnc3ViVGV4dDonLCB0aGlzLnF1ZXN0aW9uLnN1YlRleHQpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGVwZW5kZW5jeU9iajogRGVwZW5kZW5jeU1ldGEgPSBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uc3ViVGV4dCk7XG4gICAgICAgICAgICBpZiAoZGVwZW5kZW5jeU9iaj8uc291cmNlUXVlc3Rpb25JZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlVmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDaGFuZ2UgVmFsdWU6JywgY2hhbmdlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlICYmIGNoYW5nZVZhbHVlLnZhbHVlT2JqICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT09IGRlcGVuZGVuY3lPYmouc291cmNlUXVlc3Rpb25JZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBjaGFuZ2VWYWx1ZS52YWx1ZU9ialtkZXBlbmRlbmN5T2JqLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dFZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVNlcnZpY2UuY29uZmlybUNoYW5nZShkZXBlbmRlbmN5T2JqLnNvdXJjZVF1ZXN0aW9uSWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgc3ViVGV4dDonLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxub25FZGl0b3JDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICBpZiAoZXZlbnQgJiYgZXZlbnQuaHRtbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy50ZXh0VmFsdWVDaGFuZ2UuZW1pdChldmVudC5odG1sKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnRleHRWYWx1ZUNoYW5nZS5lbWl0KCcnKTtcbiAgfVxufVxuICAvLyBBZGRlZCBuZ09uRGVzdHJveSB0byBwcmV2ZW50IG1lbW9yeSBsZWFrc1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG5cbiIsIjwhLS0gUlMgMDZKQU4yNSAtLT5cbjxkaXYgY2xhc3M9XCJyaWNoLXRleHQtY29udGFpbmVyXCI+XG4gIDxxdWlsbC1lZGl0b3JcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFttb2R1bGVzXT1cInF1aWxsQ29uZmlndXJhdGlvblwiXG4gICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAob25Db250ZW50Q2hhbmdlZCk9XCJvbkVkaXRvckNoYW5nZSgkZXZlbnQpXCJcbiAgICBbY2xhc3MuZXJyb3JdPVwiZXJyb3JcIj5cbiAgPC9xdWlsbC1lZGl0b3I+XG4gIDxkaXYgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgIHt7IGVycm9yIH19XG4gIDwvZGl2PlxuPC9kaXY+Il19
|