@rangertechnologies/ngnxt
Version:
This library was used for creating dymanic UI based on the input JSON/data
67 lines • 11.4 kB
JavaScript
import { Component, EventEmitter, Input, Output } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../../i18n.service";
import * as i2 from "../../services/change.service";
import * as i3 from "@angular/common";
import * as i4 from "@angular/forms";
export class CustomTextAreaComponent {
i18nService;
changeService;
value; // input value
placeholder;
rows; //The number of visible text lines for the control
error;
question;
readOnly = false; // VD 12Jun24 - readonly change
textareaValueChange = new EventEmitter();
subscription;
constructor(i18nService, changeService) {
this.i18nService = i18nService;
this.changeService = changeService;
}
// RS 09DEC24 Changed keys
ngOnInit() {
// AP-25MAR25 Parse subText if it's not already an object
this.question['subText'] = typeof this.question?.subText === 'object' ? this.question?.subText : JSON.parse(this.question['subText'] || {});
// 10MAY24 - VD Dependent update
if (this.question.subText) {
let dependencyObj = this.question.subText;
if (dependencyObj.sourceQuestionId) {
// Subscribe for the changes
this.subscription = this.changeService.changeAnnounced$.subscribe((changeValue) => {
if (changeValue != undefined) {
if (changeValue.valueObj != undefined && changeValue.fromQuestionId == dependencyObj.sourceQuestionId) {
this.value = changeValue.valueObj[dependencyObj.valueField];
this.textareaValueChange.emit(this.value);
}
this.changeService.confirmChange(dependencyObj.sourceQuestionId);
}
});
}
}
}
onTextareaChange(event) {
this.textareaValueChange.emit(event.target.value);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomTextAreaComponent, deps: [{ token: i1.I18nService }, { token: i2.ChangeService }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomTextAreaComponent, selector: "app-custom-text-area", inputs: { value: "value", placeholder: "placeholder", rows: "rows", error: "error", question: "question", readOnly: "readOnly" }, outputs: { textareaValueChange: "textareaValueChange" }, ngImport: i0, template: "<!-- // VD 12Jun24 - readonly change-->\n<!-- VD 01Aug24 - validation change-->\n<!-- RS 09DEC24 Changed keys--> \n<textarea \n [class]=\"error ? 'invalid' : ''\"\n [(ngModel)] =\"value\" \n [rows]=\"rows\" \n class=\"she-line-input form-control\" \n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly\"\n (input)=\"onTextareaChange($event)\"\n></textarea>\n<!-- HA 19DEC23 For translation -->\n<span *ngIf=\"error\" class=\"error-msg\">{{ question?.errorMessage }}</span>", styles: [".invalid{border:1px solid red!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomTextAreaComponent, decorators: [{
type: Component,
args: [{ selector: 'app-custom-text-area', template: "<!-- // VD 12Jun24 - readonly change-->\n<!-- VD 01Aug24 - validation change-->\n<!-- RS 09DEC24 Changed keys--> \n<textarea \n [class]=\"error ? 'invalid' : ''\"\n [(ngModel)] =\"value\" \n [rows]=\"rows\" \n class=\"she-line-input form-control\" \n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly\"\n (input)=\"onTextareaChange($event)\"\n></textarea>\n<!-- HA 19DEC23 For translation -->\n<span *ngIf=\"error\" class=\"error-msg\">{{ question?.errorMessage }}</span>", styles: [".invalid{border:1px solid red!important}\n"] }]
}], ctorParameters: () => [{ type: i1.I18nService }, { type: i2.ChangeService }], propDecorators: { value: [{
type: Input
}], placeholder: [{
type: Input
}], rows: [{
type: Input
}], error: [{
type: Input
}], question: [{
type: Input
}], readOnly: [{
type: Input
}], textareaValueChange: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRleHQtYXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b20tdGV4dC1hcmVhL2N1c3RvbS10ZXh0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXRleHQtYXJlYS9jdXN0b20tdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVkvRSxNQUFNLE9BQU8sdUJBQXVCO0lBVWY7SUFBaUM7SUFUM0MsS0FBSyxDQUFjLENBQUMsY0FBYztJQUNsQyxXQUFXLENBQVE7SUFDbkIsSUFBSSxDQUFRLENBQUMsa0RBQWtEO0lBQy9ELEtBQUssQ0FBSztJQUNWLFFBQVEsQ0FBSztJQUNiLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQywrQkFBK0I7SUFDaEQsbUJBQW1CLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFDakYsWUFBWSxDQUFlO0lBRTNCLFlBQW1CLFdBQXdCLEVBQVMsYUFBNEI7UUFBN0QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFJLENBQUM7SUFDckYsMEJBQTBCO0lBQzFCLFFBQVE7UUFDTix5REFBeUQ7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1SSxnQ0FBZ0M7UUFDOUIsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBQyxDQUFDO1lBQ3hCLElBQUksYUFBYSxHQUFtQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUMxRCxJQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBQyxDQUFDO2dCQUNqQyw0QkFBNEI7Z0JBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQy9ELENBQUMsV0FBVyxFQUFFLEVBQUU7b0JBQ2QsSUFBRyxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7d0JBQzVCLElBQUcsV0FBVyxDQUFDLFFBQVEsSUFBSSxTQUFTLElBQUksV0FBVyxDQUFDLGNBQWMsSUFBSSxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzs0QkFDckcsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQzs0QkFDNUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzVDLENBQUM7d0JBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7b0JBQ25FLENBQUM7Z0JBQ0gsQ0FBQyxDQUNGLENBQUM7WUFDTixDQUFDO1FBQ0gsQ0FBQztJQUVILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFTO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO3dHQXRDVSx1QkFBdUI7NEZBQXZCLHVCQUF1Qix1UENacEMsa2ZBYXlFOzs0RkRENUQsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjs0R0FLdkIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENoYW5nZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jaGFuZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEZXBlbmRlbmN5TWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGVwZW5kZW5jeU1ldGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY3VzdG9tLXRleHQtYXJlYScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLXRleHQtYXJlYS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tVGV4dEFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB2YWx1ZTogYW55IHwgYW55W107IC8vIGlucHV0IHZhbHVlXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOnN0cmluZztcbiAgQElucHV0KCkgcm93czpOdW1iZXI7IC8vVGhlIG51bWJlciBvZiB2aXNpYmxlIHRleHQgbGluZXMgZm9yIHRoZSBjb250cm9sXG4gIEBJbnB1dCgpIGVycm9yOmFueTtcbiAgQElucHV0KCkgcXVlc3Rpb246YW55O1xuICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlOyAvLyBWRCAxMkp1bjI0IC0gcmVhZG9ubHkgY2hhbmdlXG4gIEBPdXRwdXQoKSB0ZXh0YXJlYVZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpOyBcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSxwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UpIHsgfVxuICAvLyBSUyAwOURFQzI0IENoYW5nZWQga2V5c1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBBUC0yNU1BUjI1IFBhcnNlIHN1YlRleHQgaWYgaXQncyBub3QgYWxyZWFkeSBhbiBvYmplY3RcbiAgICB0aGlzLnF1ZXN0aW9uWydzdWJUZXh0J10gPSB0eXBlb2YgdGhpcy5xdWVzdGlvbj8uc3ViVGV4dCA9PT0gJ29iamVjdCcgPyB0aGlzLnF1ZXN0aW9uPy5zdWJUZXh0IDogSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uWydzdWJUZXh0J10gfHwge30pO1xuICAgIC8vIDEwTUFZMjQgLSBWRCBEZXBlbmRlbnQgdXBkYXRlXG4gICAgICBpZih0aGlzLnF1ZXN0aW9uLnN1YlRleHQpe1xuICAgICAgICBsZXQgZGVwZW5kZW5jeU9iajogRGVwZW5kZW5jeU1ldGEgPSB0aGlzLnF1ZXN0aW9uLnN1YlRleHQ7XG4gICAgICAgIGlmKGRlcGVuZGVuY3lPYmouc291cmNlUXVlc3Rpb25JZCl7XG4gICAgICAgICAgLy8gU3Vic2NyaWJlIGZvciB0aGUgY2hhbmdlc1xuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGNoYW5nZVZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIGlmKGNoYW5nZVZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmKGNoYW5nZVZhbHVlLnZhbHVlT2JqICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCA9PSBkZXBlbmRlbmN5T2JqLnNvdXJjZVF1ZXN0aW9uSWQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBjaGFuZ2VWYWx1ZS52YWx1ZU9ialtkZXBlbmRlbmN5T2JqLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0YXJlYVZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VydmljZS5jb25maXJtQ2hhbmdlKGRlcGVuZGVuY3lPYmouc291cmNlUXVlc3Rpb25JZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgfVxuXG4gIG9uVGV4dGFyZWFDaGFuZ2UoZXZlbnQ6YW55KTogdm9pZCB7XG4gICAgdGhpcy50ZXh0YXJlYVZhbHVlQ2hhbmdlLmVtaXQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgfVxuXG59XG4iLCI8IS0tIC8vIFZEIDEySnVuMjQgLSByZWFkb25seSBjaGFuZ2UtLT5cbjwhLS0gVkQgMDFBdWcyNCAtIHZhbGlkYXRpb24gY2hhbmdlLS0+XG48IS0tIFJTIDA5REVDMjQgQ2hhbmdlZCBrZXlzLS0+IFxuPHRleHRhcmVhIFxuICAgIFtjbGFzc109XCJlcnJvciA/ICdpbnZhbGlkJyA6ICcnXCJcbiAgICBbKG5nTW9kZWwpXSA9XCJ2YWx1ZVwiIFxuICAgIFtyb3dzXT1cInJvd3NcIiBcbiAgICBjbGFzcz1cInNoZS1saW5lLWlucHV0IGZvcm0tY29udHJvbFwiIFxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAoaW5wdXQpPVwib25UZXh0YXJlYUNoYW5nZSgkZXZlbnQpXCJcbj48L3RleHRhcmVhPlxuPCEtLSBIQSAxOURFQzIzIEZvciB0cmFuc2xhdGlvbiAtLT5cbjxzcGFuICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1zZ1wiPnt7IHF1ZXN0aW9uPy5lcnJvck1lc3NhZ2UgfX08L3NwYW4+Il19