@ohioepa/oepa-ui-lib 2.0.20 → 2.0.21

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.
@@ -8,6 +8,7 @@ export class NumericInputComponent {
8
8
  smallService;
9
9
  elRef;
10
10
  componentId = 'NumericInputComponent';
11
+ tableIdName = '';
11
12
  group;
12
13
  field = '';
13
14
  tableIdx;
@@ -22,19 +23,21 @@ export class NumericInputComponent {
22
23
  ngOnInit() {
23
24
  this.small = this.smallService.isSmall(this.elRef.nativeElement);
24
25
  if (this.group) {
25
- this.componentId = this.idService.getComponentId(this.group) + (this.field || '') + (this.tableIdx || '');
26
+ this.componentId = (this.tableIdName ? this.tableIdName + '_' : '') + (this.field || 'numericInput') + (this.tableIdx || this.tableIdx === 0 ? this.tableIdx : '');
26
27
  this.group.get(this.field)?.valueChanges.subscribe(value => {
27
28
  this.onValueChange.emit(value);
28
29
  });
29
30
  }
30
31
  }
31
32
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumericInputComponent, deps: [{ token: i1.OepaComponentIdService }, { token: i1.OepaSmallService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
32
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NumericInputComponent, selector: "oepa-numeric-input", inputs: { group: "group", field: "field", tableIdx: "tableIdx", title: "title", small: "small" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" type=\"number\"\n [formControlName]=\"field\" [id]=\"componentId\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
33
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NumericInputComponent, selector: "oepa-numeric-input", inputs: { tableIdName: "tableIdName", group: "group", field: "field", tableIdx: "tableIdx", title: "title", small: "small" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n <label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" type=\"number\"\n [formControlName]=\"field\" [id]=\"componentId\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
33
34
  }
34
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumericInputComponent, decorators: [{
35
36
  type: Component,
36
- args: [{ selector: 'oepa-numeric-input', template: "<div [formGroup]=\"group\">\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" type=\"number\"\n [formControlName]=\"field\" [id]=\"componentId\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
37
- }], ctorParameters: () => [{ type: i1.OepaComponentIdService }, { type: i1.OepaSmallService }, { type: i0.ElementRef }], propDecorators: { group: [{
37
+ args: [{ selector: 'oepa-numeric-input', template: "<div [formGroup]=\"group\">\n <label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" type=\"number\"\n [formControlName]=\"field\" [id]=\"componentId\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
38
+ }], ctorParameters: () => [{ type: i1.OepaComponentIdService }, { type: i1.OepaSmallService }, { type: i0.ElementRef }], propDecorators: { tableIdName: [{
39
+ type: Input
40
+ }], group: [{
38
41
  type: Input
39
42
  }], field: [{
40
43
  type: Input
@@ -47,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
47
50
  }], onValueChange: [{
48
51
  type: Output
49
52
  }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL251bWVyaWMtaW5wdXQvbnVtZXJpYy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL251bWVyaWMtaW5wdXQvbnVtZXJpYy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDOzs7OztBQVMzRixNQUFNLE9BQU8scUJBQXFCO0lBVVo7SUFDVjtJQUNBO0lBWEgsV0FBVyxHQUFHLHVCQUF1QixDQUFDO0lBQ3BDLEtBQUssQ0FBYTtJQUNsQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsQ0FBcUI7SUFDN0IsS0FBSyxHQUFHLE9BQU8sQ0FBQztJQUNoQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWIsYUFBYSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBRTNFLFlBQW9CLFNBQWlDLEVBQzNDLFlBQThCLEVBQzlCLEtBQWlCO1FBRlAsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDM0MsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQVk7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO3dHQXZCVSxxQkFBcUI7NEZBQXJCLHFCQUFxQix5TUNUbEMscVZBSU07OzRGREtPLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxvQkFBb0I7bUpBTXJCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlLCBPZXBhU21hbGxTZXJ2aWNlIH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1udW1lcmljLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWVyaWMtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9udW1lcmljLWlucHV0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgY29tcG9uZW50SWQgPSAnTnVtZXJpY0lucHV0Q29tcG9uZW50JztcbiAgQElucHV0KCkgZ3JvdXAhOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGZpZWxkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdGFibGVJZHg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgdGl0bGUgPSAnSW5wdXQnO1xuICBASW5wdXQoKSBzbWFsbCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBvblZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaWRTZXJ2aWNlOiBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlLCBcbiAgICBwcml2YXRlIHNtYWxsU2VydmljZTogT2VwYVNtYWxsU2VydmljZSxcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7IFxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zbWFsbCA9IHRoaXMuc21hbGxTZXJ2aWNlLmlzU21hbGwodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICBpZiAodGhpcy5ncm91cCkge1xuICAgICAgdGhpcy5jb21wb25lbnRJZCA9IHRoaXMuaWRTZXJ2aWNlLmdldENvbXBvbmVudElkKHRoaXMuZ3JvdXApICsgKHRoaXMuZmllbGQgfHwgJycpICsgKHRoaXMudGFibGVJZHggfHwgJycpO1xuICAgICAgdGhpcy5ncm91cC5nZXQodGhpcy5maWVsZCk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpncm91cC5jb250cm9sc1tmaWVsZF0uaW52YWxpZCwgJ2Zvcm0tY29udHJvbC1zbSc6IHNtYWxsfVwiIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkXCIgW2lkXT1cImNvbXBvbmVudElkXCI+XG4gICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbZmllbGRdLmludmFsaWRcIj57e3RpdGxlfX0gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuPC9kaXY+Il19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL251bWVyaWMtaW5wdXQvbnVtZXJpYy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL251bWVyaWMtaW5wdXQvbnVtZXJpYy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDOzs7OztBQVMzRixNQUFNLE9BQU8scUJBQXFCO0lBV1o7SUFDVjtJQUNBO0lBWkgsV0FBVyxHQUFHLHVCQUF1QixDQUFDO0lBQ3BDLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsS0FBSyxDQUFhO0lBQ2xCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsUUFBUSxDQUFxQjtJQUM3QixLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ2hCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFYixhQUFhLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFFM0UsWUFBb0IsU0FBaUMsRUFDM0MsWUFBOEIsRUFDOUIsS0FBaUI7UUFGUCxjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQUMzQyxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDOUIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkssSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7d0dBeEJVLHFCQUFxQjs0RkFBckIscUJBQXFCLHFPQ1RsQyw0YUFLTTs7NEZESU8scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG9CQUFvQjttSkFNckIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2VwYUNvbXBvbmVudElkU2VydmljZSwgT2VwYVNtYWxsU2VydmljZSB9IGZyb20gJ0BvaGlvZXBhL29lcGEtY29tbW9uLWxpYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtbnVtZXJpYy1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1lcmljLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnVtZXJpYy1pbnB1dC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTnVtZXJpY0lucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGNvbXBvbmVudElkID0gJ051bWVyaWNJbnB1dENvbXBvbmVudCc7XG4gIEBJbnB1dCgpIHRhYmxlSWROYW1lOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZ3JvdXAhOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGZpZWxkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdGFibGVJZHg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgdGl0bGUgPSAnSW5wdXQnO1xuICBASW5wdXQoKSBzbWFsbCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBvblZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaWRTZXJ2aWNlOiBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlLCBcbiAgICBwcml2YXRlIHNtYWxsU2VydmljZTogT2VwYVNtYWxsU2VydmljZSxcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7IFxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zbWFsbCA9IHRoaXMuc21hbGxTZXJ2aWNlLmlzU21hbGwodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICBpZiAodGhpcy5ncm91cCkge1xuICAgICAgdGhpcy5jb21wb25lbnRJZCA9ICh0aGlzLnRhYmxlSWROYW1lID8gdGhpcy50YWJsZUlkTmFtZSArICdfJyA6ICcnKSArICh0aGlzLmZpZWxkIHx8ICdudW1lcmljSW5wdXQnKSArICh0aGlzLnRhYmxlSWR4IHx8IHRoaXMudGFibGVJZHggPT09IDAgPyB0aGlzLnRhYmxlSWR4IDogJycpO1xuICAgICAgdGhpcy5ncm91cC5nZXQodGhpcy5maWVsZCk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgPGxhYmVsIFtmb3JdPVwiY29tcG9uZW50SWRcIiBjbGFzcz1cImZvcm0tbGFiZWwgc3Itb25seVwiPnt7dGl0bGV9fSBJbnB1dDwvbGFiZWw+XG4gICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpncm91cC5jb250cm9sc1tmaWVsZF0uaW52YWxpZCwgJ2Zvcm0tY29udHJvbC1zbSc6IHNtYWxsfVwiIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkXCIgW2lkXT1cImNvbXBvbmVudElkXCI+XG4gICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbZmllbGRdLmludmFsaWRcIj57e3RpdGxlfX0gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuPC9kaXY+Il19
@@ -8,6 +8,7 @@ export class SelectInputComponent {
8
8
  smallService;
9
9
  elRef;
10
10
  componentId = 'SelectInputComponent';
11
+ tableIdName = '';
11
12
  group;
12
13
  field = '';
13
14
  tableIdx;
@@ -27,7 +28,7 @@ export class SelectInputComponent {
27
28
  ngOnInit() {
28
29
  this.small = this.smallService.isSmall(this.elRef.nativeElement);
29
30
  if (this.group) {
30
- this.componentId = (this.field || 'selectInput') + (this.tableIdx || this.tableIdx === 0 ? this.tableIdx : '');
31
+ this.componentId = (this.tableIdName ? this.tableIdName + '_' : '') + (this.field || 'selectInput') + (this.tableIdx || this.tableIdx === 0 ? this.tableIdx : '');
31
32
  this.group.get(this.field)?.valueChanges.subscribe(value => {
32
33
  this.onValueSelected.emit(value);
33
34
  });
@@ -67,12 +68,14 @@ export class SelectInputComponent {
67
68
  }
68
69
  }
69
70
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectInputComponent, deps: [{ token: i1.OepaComponentIdService }, { token: i1.OepaSmallService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
70
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SelectInputComponent, selector: "oepa-select-input", inputs: { group: "group", field: "field", tableIdx: "tableIdx", title: "title", pickList: "pickList", fullList: "fullList", valueField: "valueField", displayField: "displayField", small: "small" }, outputs: { onValueSelected: "onValueSelected" }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Selector</label>\n<select class=\"form-select\" [formControlName]=\"field\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" \n [id]=\"componentId\">\n<option *ngFor=\"let item of internalPickList\" [ngValue]=\"item[valueField]\">{{item[displayField]}}</option>\n</select>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
71
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SelectInputComponent, selector: "oepa-select-input", inputs: { tableIdName: "tableIdName", group: "group", field: "field", tableIdx: "tableIdx", title: "title", pickList: "pickList", fullList: "fullList", valueField: "valueField", displayField: "displayField", small: "small" }, outputs: { onValueSelected: "onValueSelected" }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Selector</label>\n<select class=\"form-select\" [formControlName]=\"field\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" \n [id]=\"componentId\">\n<option *ngFor=\"let item of internalPickList\" [ngValue]=\"item[valueField]\">{{item[displayField]}}</option>\n</select>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
71
72
  }
72
73
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectInputComponent, decorators: [{
73
74
  type: Component,
74
75
  args: [{ selector: 'oepa-select-input', template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Selector</label>\n<select class=\"form-select\" [formControlName]=\"field\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" \n [id]=\"componentId\">\n<option *ngFor=\"let item of internalPickList\" [ngValue]=\"item[valueField]\">{{item[displayField]}}</option>\n</select>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>\n" }]
75
- }], ctorParameters: () => [{ type: i1.OepaComponentIdService }, { type: i1.OepaSmallService }, { type: i0.ElementRef }], propDecorators: { group: [{
76
+ }], ctorParameters: () => [{ type: i1.OepaComponentIdService }, { type: i1.OepaSmallService }, { type: i0.ElementRef }], propDecorators: { tableIdName: [{
77
+ type: Input
78
+ }], group: [{
76
79
  type: Input
77
80
  }], field: [{
78
81
  type: Input
@@ -93,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
93
96
  }], onValueSelected: [{
94
97
  type: Output
95
98
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBd0MsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU3JILE1BQU0sT0FBTyxvQkFBb0I7SUFnQlg7SUFDVjtJQUNBO0lBakJILFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztJQUNuQyxLQUFLLENBQWE7SUFDbEIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixRQUFRLENBQXFCO0lBQzdCLEtBQUssR0FBRyxRQUFRLENBQUM7SUFDakIsUUFBUSxHQUFVLEVBQUUsQ0FBQztJQUNyQixRQUFRLEdBQVUsRUFBRSxDQUFDO0lBQ3JCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUMxQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWIsZUFBZSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXRFLGdCQUFnQixDQUFvQjtJQUUzQyxZQUFvQixTQUFpQyxFQUMzQyxZQUE4QixFQUM5QixLQUFpQjtRQUZQLGNBQVMsR0FBVCxTQUFTLENBQXdCO1FBQzNDLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFD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LG9CQUFvQjs0RkFBcEIsb0JBQW9CLHFVQ1RqQywwZ0JBUUE7OzRGRENhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxtQkFBbUI7bUpBTXBCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2VwYUNvbXBvbmVudElkU2VydmljZSwgT2VwYVNtYWxsU2VydmljZSB9IGZyb20gJ0BvaGlvZXBhL29lcGEtY29tbW9uLWxpYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtc2VsZWN0LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1pbnB1dC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0SW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHB1YmxpYyBjb21wb25lbnRJZCA9ICdTZWxlY3RJbnB1dENvbXBvbmVudCc7XG4gIEBJbnB1dCgpIGdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBmaWVsZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRhYmxlSWR4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHRpdGxlID0gJ1NlbGVjdCc7XG4gIEBJbnB1dCgpIHBpY2tMaXN0OiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBmdWxsTGlzdDogYW55W10gPSBbXTtcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHNtYWxsID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIG9uVmFsdWVTZWxlY3RlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwdWJsaWMgaW50ZXJuYWxQaWNrTGlzdDogYW55W10gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpZFNlcnZpY2U6IE9lcGFDb21wb25lbnRJZFNlcnZpY2UsIFxuICAgIHByaXZhdGUgc21hbGxTZXJ2aWNlOiBPZXBhU21hbGxTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHsgXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNtYWxsID0gdGhpcy5zbWFsbFNlcnZpY2UuaXNTbWFsbCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElkID0gKHRoaXMuZmllbGQgfHwgJ3NlbGVjdElucHV0JykgKyAodGhpcy50YWJsZUlkeCB8fCB0aGlzLnRhYmxlSWR4ID09PSAwID8gdGhpcy50YWJsZUlkeCA6ICcnKTtcbiAgICAgIHRoaXMuZ3JvdXAuZ2V0KHRoaXMuZmllbGQpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5vblZhbHVlU2VsZWN0ZWQuZW1pdCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkQ3VycmVudFZhbHVlVG9MaXN0SWZNaXNzaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xuICAgICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICAgIHN3aXRjaCAocHJvcE5hbWUpIHtcbiAgICAgICAgICBjYXNlICdwaWNrTGlzdCc6XG4gICAgICAgICAgY2FzZSAnZnVsbExpc3QnOlxuICAgICAgICAgICAgdGhpcy5hZGRDdXJyZW50VmFsdWVUb0xpc3RJZk1pc3NpbmcoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IFxuXG4gIHByaXZhdGUgYWRkQ3VycmVudFZhbHVlVG9MaXN0SWZNaXNzaW5nKCkge1xuICAgIGxldCBjdXJyVmFsdWUgPSB0aGlzLmdyb3VwLmdldCh0aGlzLmZpZWxkKT8udmFsdWU7XG4gICAgaWYgKCF0aGlzLmludGVybmFsUGlja0xpc3QgJiYgdGhpcy5waWNrTGlzdCAmJiB0aGlzLnBpY2tMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxQaWNrTGlzdCA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMucGlja0xpc3QpO1xuICAgIH1cbiAgICBpZiAoY3VyclZhbHVlICYmIHRoaXMucGlja0xpc3QgJiYgdGhpcy5waWNrTGlzdC5sZW5ndGggPiAwICYmIHRoaXMuZnVsbExpc3QgJiYgdGhpcy5mdWxsTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmludGVybmFsUGlja0xpc3QgPSBPYmplY3QuYXNzaWduKFtdLCB0aGlzLnBpY2tMaXN0KTtcbiAgICAgIGxldCBtYXRjaGVzID0gdGhpcy5waWNrTGlzdC5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICAgIHJldHVybiAoaXRlbVt0aGlzLnZhbHVlRmllbGRdID09PSBjdXJyVmFsdWUpO1xuICAgICAgfSk7XG4gICAgICBpZiAoIW1hdGNoZXMgfHwgbWF0Y2hlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5mdWxsTGlzdCkge1xuICAgICAgICBsZXQgaW5hY3RpdmVJdGVtcyA9IHRoaXMuZnVsbExpc3QuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICAgIHJldHVybiAoaXRlbVt0aGlzLnZhbHVlRmllbGRdID09PSBjdXJyVmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGluYWN0aXZlSXRlbXMgJiYgaW5hY3RpdmVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbFBpY2tMaXN0LnB1c2goaW5hY3RpdmVJdGVtc1swXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG48bGFiZWwgW2Zvcl09XCJjb21wb25lbnRJZFwiIGNsYXNzPVwiZm9ybS1sYWJlbCBzci1vbmx5XCI+e3t0aXRsZX19IFNlbGVjdG9yPC9sYWJlbD5cbjxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGRcIiBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOmdyb3VwLmNvbnRyb2xzW2ZpZWxkXS5pbnZhbGlkLCAnZm9ybS1jb250cm9sLXNtJzogc21hbGx9XCIgXG4gW2lkXT1cImNvbXBvbmVudElkXCI+XG48b3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGludGVybmFsUGlja0xpc3RcIiBbbmdWYWx1ZV09XCJpdGVtW3ZhbHVlRmllbGRdXCI+e3tpdGVtW2Rpc3BsYXlGaWVsZF19fTwvb3B0aW9uPlxuPC9zZWxlY3Q+XG48c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1tmaWVsZF0uaW52YWxpZFwiPnt7dGl0bGV9fSBpcyByZXF1aXJlZDwvc21hbGw+XG48L2Rpdj5cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBd0MsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU3JILE1BQU0sT0FBTyxvQkFBb0I7SUFpQlg7SUFDVjtJQUNBO0lBbEJILFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztJQUNuQyxXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLEtBQUssQ0FBYTtJQUNsQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsQ0FBcUI7SUFDN0IsS0FBSyxHQUFHLFFBQVEsQ0FBQztJQUNqQixRQUFRLEdBQVUsRUFBRSxDQUFDO0lBQ3JCLFFBQVEsR0FBVSxFQUFFLENBQUM7SUFDckIsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixZQUFZLEdBQVcsRUFBRSxDQUFDO0lBQzFCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFYixlQUFlLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFFdEUsZ0JBQWdCLENBQW9CO0lBRTNDLFlBQW9CLFNBQWlDLEVBQzNDLFlBQThCLEVBQzlCLEtBQWlCO1FBRlAsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDM0MsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQVk7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xLLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLEtBQUssTUFBTSxRQUFRLElBQUksT0FBTyxFQUFFLENBQUM7WUFDL0IsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLFFBQVEsUUFBUSxFQUFFLENBQUM7b0JBQ2pCLEtBQUssVUFBVSxDQUFDO29CQUNoQixLQUFLLFVBQVU7d0JBQ2IsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7d0JBQ3RDLE1BQU07Z0JBQ1YsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLDhCQUE4QjtRQUNwQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RELElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUM5QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzt3R0FqRVUsb0JBQW9COzRGQUFwQixvQkFBb0IsaVdDVGpDLDBnQkFRQTs7NEZEQ2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLG1CQUFtQjttSkFNcEIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9lcGFDb21wb25lbnRJZFNlcnZpY2UsIE9lcGFTbWFsbFNlcnZpY2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLXNlbGVjdC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtaW5wdXQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwdWJsaWMgY29tcG9uZW50SWQgPSAnU2VsZWN0SW5wdXRDb21wb25lbnQnO1xuICBASW5wdXQoKSB0YWJsZUlkTmFtZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBmaWVsZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRhYmxlSWR4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHRpdGxlID0gJ1NlbGVjdCc7XG4gIEBJbnB1dCgpIHBpY2tMaXN0OiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBmdWxsTGlzdDogYW55W10gPSBbXTtcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHNtYWxsID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIG9uVmFsdWVTZWxlY3RlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwdWJsaWMgaW50ZXJuYWxQaWNrTGlzdDogYW55W10gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpZFNlcnZpY2U6IE9lcGFDb21wb25lbnRJZFNlcnZpY2UsIFxuICAgIHByaXZhdGUgc21hbGxTZXJ2aWNlOiBPZXBhU21hbGxTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHsgXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNtYWxsID0gdGhpcy5zbWFsbFNlcnZpY2UuaXNTbWFsbCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElkID0gKHRoaXMudGFibGVJZE5hbWUgPyB0aGlzLnRhYmxlSWROYW1lICsgJ18nIDogJycpICsgKHRoaXMuZmllbGQgfHwgJ3NlbGVjdElucHV0JykgKyAodGhpcy50YWJsZUlkeCB8fCB0aGlzLnRhYmxlSWR4ID09PSAwID8gdGhpcy50YWJsZUlkeCA6ICcnKTtcbiAgICAgIHRoaXMuZ3JvdXAuZ2V0KHRoaXMuZmllbGQpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5vblZhbHVlU2VsZWN0ZWQuZW1pdCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkQ3VycmVudFZhbHVlVG9MaXN0SWZNaXNzaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xuICAgICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICAgIHN3aXRjaCAocHJvcE5hbWUpIHtcbiAgICAgICAgICBjYXNlICdwaWNrTGlzdCc6XG4gICAgICAgICAgY2FzZSAnZnVsbExpc3QnOlxuICAgICAgICAgICAgdGhpcy5hZGRDdXJyZW50VmFsdWVUb0xpc3RJZk1pc3NpbmcoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IFxuXG4gIHByaXZhdGUgYWRkQ3VycmVudFZhbHVlVG9MaXN0SWZNaXNzaW5nKCkge1xuICAgIGxldCBjdXJyVmFsdWUgPSB0aGlzLmdyb3VwLmdldCh0aGlzLmZpZWxkKT8udmFsdWU7XG4gICAgaWYgKCF0aGlzLmludGVybmFsUGlja0xpc3QgJiYgdGhpcy5waWNrTGlzdCAmJiB0aGlzLnBpY2tMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxQaWNrTGlzdCA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMucGlja0xpc3QpO1xuICAgIH1cbiAgICBpZiAoY3VyclZhbHVlICYmIHRoaXMucGlja0xpc3QgJiYgdGhpcy5waWNrTGlzdC5sZW5ndGggPiAwICYmIHRoaXMuZnVsbExpc3QgJiYgdGhpcy5mdWxsTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmludGVybmFsUGlja0xpc3QgPSBPYmplY3QuYXNzaWduKFtdLCB0aGlzLnBpY2tMaXN0KTtcbiAgICAgIGxldCBtYXRjaGVzID0gdGhpcy5waWNrTGlzdC5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICAgIHJldHVybiAoaXRlbVt0aGlzLnZhbHVlRmllbGRdID09PSBjdXJyVmFsdWUpO1xuICAgICAgfSk7XG4gICAgICBpZiAoIW1hdGNoZXMgfHwgbWF0Y2hlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5mdWxsTGlzdCkge1xuICAgICAgICBsZXQgaW5hY3RpdmVJdGVtcyA9IHRoaXMuZnVsbExpc3QuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICAgIHJldHVybiAoaXRlbVt0aGlzLnZhbHVlRmllbGRdID09PSBjdXJyVmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGluYWN0aXZlSXRlbXMgJiYgaW5hY3RpdmVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbFBpY2tMaXN0LnB1c2goaW5hY3RpdmVJdGVtc1swXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG48bGFiZWwgW2Zvcl09XCJjb21wb25lbnRJZFwiIGNsYXNzPVwiZm9ybS1sYWJlbCBzci1vbmx5XCI+e3t0aXRsZX19IFNlbGVjdG9yPC9sYWJlbD5cbjxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGRcIiBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOmdyb3VwLmNvbnRyb2xzW2ZpZWxkXS5pbnZhbGlkLCAnZm9ybS1jb250cm9sLXNtJzogc21hbGx9XCIgXG4gW2lkXT1cImNvbXBvbmVudElkXCI+XG48b3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGludGVybmFsUGlja0xpc3RcIiBbbmdWYWx1ZV09XCJpdGVtW3ZhbHVlRmllbGRdXCI+e3tpdGVtW2Rpc3BsYXlGaWVsZF19fTwvb3B0aW9uPlxuPC9zZWxlY3Q+XG48c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1tmaWVsZF0uaW52YWxpZFwiPnt7dGl0bGV9fSBpcyByZXF1aXJlZDwvc21hbGw+XG48L2Rpdj5cbiJdfQ==
@@ -6,6 +6,7 @@ import * as i3 from "@angular/forms";
6
6
  export class TextAreaInputComponent {
7
7
  idService;
8
8
  componentId = 'TextAreaInputComponent';
9
+ tableIdName = '';
9
10
  group;
10
11
  field = '';
11
12
  tableIdx = 0;
@@ -18,19 +19,21 @@ export class TextAreaInputComponent {
18
19
  }
19
20
  ngOnInit() {
20
21
  if (this.group) {
21
- this.componentId = this.idService.getComponentId(this.group) + (this.field || '') + (this.tableIdx || '');
22
+ this.componentId = (this.tableIdName ? this.tableIdName + '_' : '') + (this.field || 'textAreaInput') + (this.tableIdx || this.tableIdx === 0 ? this.tableIdx : '');
22
23
  this.group.get(this.field)?.valueChanges.subscribe(value => {
23
24
  this.onValueChange.emit(value);
24
25
  });
25
26
  }
26
27
  }
27
28
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextAreaInputComponent, deps: [{ token: i1.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextAreaInputComponent, selector: "oepa-text-area-input", inputs: { group: "group", field: "field", tableIdx: "tableIdx", title: "title", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n<textarea class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\"></textarea>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextAreaInputComponent, selector: "oepa-text-area-input", inputs: { tableIdName: "tableIdName", group: "group", field: "field", tableIdx: "tableIdx", title: "title", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n<textarea class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\"></textarea>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
29
30
  }
30
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextAreaInputComponent, decorators: [{
31
32
  type: Component,
32
- args: [{ selector: 'oepa-text-area-input', template: "<div [formGroup]=\"group\">\n<textarea class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\"></textarea>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
33
- }], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: { group: [{
33
+ args: [{ selector: 'oepa-text-area-input', template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n<textarea class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\"></textarea>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
34
+ }], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: { tableIdName: [{
35
+ type: Input
36
+ }], group: [{
34
37
  type: Input
35
38
  }], field: [{
36
39
  type: Input
@@ -45,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
45
48
  }], onValueChange: [{
46
49
  type: Output
47
50
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvdGV4dC1hcmVhLWlucHV0L3RleHQtYXJlYS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3RleHQtYXJlYS1pbnB1dC90ZXh0LWFyZWEtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTL0UsTUFBTSxPQUFPLHNCQUFzQjtJQVliO0lBWGIsV0FBVyxHQUFHLHdCQUF3QixDQUFDO0lBRXJDLEtBQUssQ0FBYTtJQUNsQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsR0FBVyxDQUFDLENBQUM7SUFDckIsS0FBSyxHQUFHLE9BQU8sQ0FBQztJQUNoQixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFFaEIsYUFBYSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBRTNFLFlBQW9CLFNBQWlDO1FBQWpDLGNBQVMsR0FBVCxTQUFTLENBQXdCO0lBQ3JELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO3dHQXRCVSxzQkFBc0I7NEZBQXRCLHNCQUFzQiwrT0NUbkMsaVhBS007OzRGRElPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxzQkFBc0I7MkZBT3ZCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlIH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS10ZXh0LWFyZWEtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1hcmVhLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1hcmVhLWlucHV0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0QXJlYUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGNvbXBvbmVudElkID0gJ1RleHRBcmVhSW5wdXRDb21wb25lbnQnO1xuXG4gIEBJbnB1dCgpIGdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBmaWVsZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRhYmxlSWR4OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSB0aXRsZSA9ICdJbnB1dCc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIG1heGxlbmd0aCA9IDQwMDA7XG5cbiAgQE91dHB1dCgpIG9uVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpZFNlcnZpY2U6IE9lcGFDb21wb25lbnRJZFNlcnZpY2UpIHsgXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5ncm91cCkge1xuICAgICAgdGhpcy5jb21wb25lbnRJZCA9IHRoaXMuaWRTZXJ2aWNlLmdldENvbXBvbmVudElkKHRoaXMuZ3JvdXApICsgKHRoaXMuZmllbGQgfHwgJycpICsgKHRoaXMudGFibGVJZHggfHwgJycpO1xuICAgICAgdGhpcy5ncm91cC5nZXQodGhpcy5maWVsZCk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpncm91cC5jb250cm9sc1tmaWVsZF0uaW52YWxpZH1cIiBcbnR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW21heGxlbmd0aF09XCJtYXhsZW5ndGhcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkXCJcbltpZF09XCJjb21wb25lbnRJZFwiPjwvdGV4dGFyZWE+XG48c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1tmaWVsZF0uaW52YWxpZFwiPnt7dGl0bGV9fSBpcyByZXF1aXJlZDwvc21hbGw+XG48L2Rpdj4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvdGV4dC1hcmVhLWlucHV0L3RleHQtYXJlYS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3RleHQtYXJlYS1pbnB1dC90ZXh0LWFyZWEtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTL0UsTUFBTSxPQUFPLHNCQUFzQjtJQWFiO0lBWmIsV0FBVyxHQUFHLHdCQUF3QixDQUFDO0lBRXJDLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsS0FBSyxDQUFhO0lBQ2xCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsUUFBUSxHQUFXLENBQUMsQ0FBQztJQUNyQixLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ2hCLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsU0FBUyxHQUFHLElBQUksQ0FBQztJQUVoQixhQUFhLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFFM0UsWUFBb0IsU0FBaUM7UUFBakMsY0FBUyxHQUFULFNBQVMsQ0FBd0I7SUFDckQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEssSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7d0dBdkJVLHNCQUFzQjs0RkFBdEIsc0JBQXNCLDJRQ1RuQyxvY0FNTTs7NEZER08sc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLHNCQUFzQjsyRkFPdkIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2VwYUNvbXBvbmVudElkU2VydmljZSB9IGZyb20gJ0BvaGlvZXBhL29lcGEtY29tbW9uLWxpYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtdGV4dC1hcmVhLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtYXJlYS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtYXJlYS1pbnB1dC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBjb21wb25lbnRJZCA9ICdUZXh0QXJlYUlucHV0Q29tcG9uZW50JztcblxuICBASW5wdXQoKSB0YWJsZUlkTmFtZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBmaWVsZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRhYmxlSWR4OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSB0aXRsZSA9ICdJbnB1dCc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIG1heGxlbmd0aCA9IDQwMDA7XG5cbiAgQE91dHB1dCgpIG9uVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpZFNlcnZpY2U6IE9lcGFDb21wb25lbnRJZFNlcnZpY2UpIHsgXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5ncm91cCkge1xuICAgICAgdGhpcy5jb21wb25lbnRJZCA9ICh0aGlzLnRhYmxlSWROYW1lID8gdGhpcy50YWJsZUlkTmFtZSArICdfJyA6ICcnKSArICh0aGlzLmZpZWxkIHx8ICd0ZXh0QXJlYUlucHV0JykgKyAodGhpcy50YWJsZUlkeCB8fCB0aGlzLnRhYmxlSWR4ID09PSAwID8gdGhpcy50YWJsZUlkeCA6ICcnKTtcbiAgICAgIHRoaXMuZ3JvdXAuZ2V0KHRoaXMuZmllbGQpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbjxsYWJlbCBbZm9yXT1cImNvbXBvbmVudElkXCIgY2xhc3M9XCJmb3JtLWxhYmVsIHNyLW9ubHlcIj57e3RpdGxlfX0gSW5wdXQ8L2xhYmVsPlxuPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpncm91cC5jb250cm9sc1tmaWVsZF0uaW52YWxpZH1cIiBcbnR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW21heGxlbmd0aF09XCJtYXhsZW5ndGhcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkXCJcbltpZF09XCJjb21wb25lbnRJZFwiPjwvdGV4dGFyZWE+XG48c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1tmaWVsZF0uaW52YWxpZFwiPnt7dGl0bGV9fSBpcyByZXF1aXJlZDwvc21hbGw+XG48L2Rpdj4iXX0=
@@ -6,6 +6,7 @@ import * as i3 from "@angular/forms";
6
6
  export class TextInputComponent {
7
7
  idService;
8
8
  componentId = 'TextInputComponent';
9
+ tableIdName = '';
9
10
  group;
10
11
  field = '';
11
12
  tableIdx;
@@ -18,19 +19,21 @@ export class TextInputComponent {
18
19
  }
19
20
  ngOnInit() {
20
21
  if (this.group) {
21
- this.componentId = this.idService.getComponentId(this.group) + (this.field || '') + (this.tableIdx || '');
22
+ this.componentId = (this.tableIdName ? this.tableIdName + '_' : '') + (this.field || 'textInput') + (this.tableIdx || this.tableIdx === 0 ? this.tableIdx : '');
22
23
  this.group.get(this.field)?.valueChanges.subscribe(value => {
23
24
  this.onValueChange.emit(value);
24
25
  });
25
26
  }
26
27
  }
27
28
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, deps: [{ token: i1.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextInputComponent, selector: "oepa-text-input", inputs: { group: "group", field: "field", tableIdx: "tableIdx", title: "title", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n<input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\">\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextInputComponent, selector: "oepa-text-input", inputs: { tableIdName: "tableIdName", group: "group", field: "field", tableIdx: "tableIdx", title: "title", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n<input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\">\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
29
30
  }
30
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, decorators: [{
31
32
  type: Component,
32
- args: [{ selector: 'oepa-text-input', template: "<div [formGroup]=\"group\">\n<input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\">\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
33
- }], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: { group: [{
33
+ args: [{ selector: 'oepa-text-input', template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n<input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\">\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
34
+ }], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: { tableIdName: [{
35
+ type: Input
36
+ }], group: [{
34
37
  type: Input
35
38
  }], field: [{
36
39
  type: Input
@@ -45,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
45
48
  }], onValueChange: [{
46
49
  type: Output
47
50
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVMvRSxNQUFNLE9BQU8sa0JBQWtCO0lBWVQ7SUFYYixXQUFXLEdBQUcsb0JBQW9CLENBQUM7SUFFakMsS0FBSyxDQUFhO0lBQ2xCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsUUFBUSxDQUFxQjtJQUM3QixLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ2hCLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsU0FBUyxHQUFHLElBQUksQ0FBQztJQUVoQixhQUFhLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFFM0UsWUFBb0IsU0FBaUM7UUFBakMsY0FBUyxHQUFULFNBQVMsQ0FBd0I7SUFDckQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7WUFDMUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7d0dBdEJVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLDBPQ1QvQixtV0FLTTs7NEZESU8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGlCQUFpQjsyRkFPbEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9lcGFDb21wb25lbnRJZFNlcnZpY2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLXRleHQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtaW5wdXQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRleHRJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBjb21wb25lbnRJZCA9ICdUZXh0SW5wdXRDb21wb25lbnQnO1xuXG4gIEBJbnB1dCgpIGdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBmaWVsZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRhYmxlSWR4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHRpdGxlID0gJ0lucHV0JztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgbWF4bGVuZ3RoID0gNDAwMDtcblxuICBAT3V0cHV0KCkgb25WYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlkU2VydmljZTogT2VwYUNvbXBvbmVudElkU2VydmljZSkgeyBcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElkID0gdGhpcy5pZFNlcnZpY2UuZ2V0Q29tcG9uZW50SWQodGhpcy5ncm91cCkgKyAodGhpcy5maWVsZCB8fCAnJykgKyAodGhpcy50YWJsZUlkeCB8fCAnJyk7XG4gICAgICB0aGlzLmdyb3VwLmdldCh0aGlzLmZpZWxkKT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG48aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOmdyb3VwLmNvbnRyb2xzW2ZpZWxkXS5pbnZhbGlkfVwiIFxudHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbbWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGRcIlxuW2lkXT1cImNvbXBvbmVudElkXCI+XG48c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1tmaWVsZF0uaW52YWxpZFwiPnt7dGl0bGV9fSBpcyByZXF1aXJlZDwvc21hbGw+XG48L2Rpdj4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVMvRSxNQUFNLE9BQU8sa0JBQWtCO0lBYVQ7SUFaYixXQUFXLEdBQUcsb0JBQW9CLENBQUM7SUFFakMsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUN6QixLQUFLLENBQWE7SUFDbEIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixRQUFRLENBQXFCO0lBQzdCLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEIsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNqQixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBRWhCLGFBQWEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUUzRSxZQUFvQixTQUFpQztRQUFqQyxjQUFTLEdBQVQsU0FBUyxDQUF3QjtJQUNyRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzt3R0F2QlUsa0JBQWtCOzRGQUFsQixrQkFBa0Isc1FDVC9CLHNiQU1NOzs0RkRHTyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsaUJBQWlCOzJGQU9sQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlIH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS10ZXh0LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LWlucHV0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0SW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgY29tcG9uZW50SWQgPSAnVGV4dElucHV0Q29tcG9uZW50JztcblxuICBASW5wdXQoKSB0YWJsZUlkTmFtZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBmaWVsZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRhYmxlSWR4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHRpdGxlID0gJ0lucHV0JztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgbWF4bGVuZ3RoID0gNDAwMDtcblxuICBAT3V0cHV0KCkgb25WYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlkU2VydmljZTogT2VwYUNvbXBvbmVudElkU2VydmljZSkgeyBcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElkID0gKHRoaXMudGFibGVJZE5hbWUgPyB0aGlzLnRhYmxlSWROYW1lICsgJ18nIDogJycpICsgKHRoaXMuZmllbGQgfHwgJ3RleHRJbnB1dCcpICsgKHRoaXMudGFibGVJZHggfHwgdGhpcy50YWJsZUlkeCA9PT0gMCA/IHRoaXMudGFibGVJZHggOiAnJyk7XG4gICAgICB0aGlzLmdyb3VwLmdldCh0aGlzLmZpZWxkKT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG48bGFiZWwgW2Zvcl09XCJjb21wb25lbnRJZFwiIGNsYXNzPVwiZm9ybS1sYWJlbCBzci1vbmx5XCI+e3t0aXRsZX19IElucHV0PC9sYWJlbD5cbjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6Z3JvdXAuY29udHJvbHNbZmllbGRdLmludmFsaWR9XCIgXG50eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZFwiXG5baWRdPVwiY29tcG9uZW50SWRcIj5cbjxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzW2ZpZWxkXS5pbnZhbGlkXCI+e3t0aXRsZX19IGlzIHJlcXVpcmVkPC9zbWFsbD5cbjwvZGl2PiJdfQ==
@@ -8461,6 +8461,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
8461
8461
  class TextAreaInputComponent {
8462
8462
  idService;
8463
8463
  componentId = 'TextAreaInputComponent';
8464
+ tableIdName = '';
8464
8465
  group;
8465
8466
  field = '';
8466
8467
  tableIdx = 0;
@@ -8473,19 +8474,21 @@ class TextAreaInputComponent {
8473
8474
  }
8474
8475
  ngOnInit() {
8475
8476
  if (this.group) {
8476
- this.componentId = this.idService.getComponentId(this.group) + (this.field || '') + (this.tableIdx || '');
8477
+ this.componentId = (this.tableIdName ? this.tableIdName + '_' : '') + (this.field || 'textAreaInput') + (this.tableIdx || this.tableIdx === 0 ? this.tableIdx : '');
8477
8478
  this.group.get(this.field)?.valueChanges.subscribe(value => {
8478
8479
  this.onValueChange.emit(value);
8479
8480
  });
8480
8481
  }
8481
8482
  }
8482
8483
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextAreaInputComponent, deps: [{ token: i1$1.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
8483
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextAreaInputComponent, selector: "oepa-text-area-input", inputs: { group: "group", field: "field", tableIdx: "tableIdx", title: "title", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n<textarea class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\"></textarea>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
8484
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextAreaInputComponent, selector: "oepa-text-area-input", inputs: { tableIdName: "tableIdName", group: "group", field: "field", tableIdx: "tableIdx", title: "title", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n<textarea class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\"></textarea>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
8484
8485
  }
8485
8486
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextAreaInputComponent, decorators: [{
8486
8487
  type: Component,
8487
- args: [{ selector: 'oepa-text-area-input', template: "<div [formGroup]=\"group\">\n<textarea class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\"></textarea>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
8488
- }], ctorParameters: () => [{ type: i1$1.OepaComponentIdService }], propDecorators: { group: [{
8488
+ args: [{ selector: 'oepa-text-area-input', template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n<textarea class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\"></textarea>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
8489
+ }], ctorParameters: () => [{ type: i1$1.OepaComponentIdService }], propDecorators: { tableIdName: [{
8490
+ type: Input
8491
+ }], group: [{
8489
8492
  type: Input
8490
8493
  }], field: [{
8491
8494
  type: Input
@@ -8615,6 +8618,7 @@ class SelectInputComponent {
8615
8618
  smallService;
8616
8619
  elRef;
8617
8620
  componentId = 'SelectInputComponent';
8621
+ tableIdName = '';
8618
8622
  group;
8619
8623
  field = '';
8620
8624
  tableIdx;
@@ -8634,7 +8638,7 @@ class SelectInputComponent {
8634
8638
  ngOnInit() {
8635
8639
  this.small = this.smallService.isSmall(this.elRef.nativeElement);
8636
8640
  if (this.group) {
8637
- this.componentId = (this.field || 'selectInput') + (this.tableIdx || this.tableIdx === 0 ? this.tableIdx : '');
8641
+ this.componentId = (this.tableIdName ? this.tableIdName + '_' : '') + (this.field || 'selectInput') + (this.tableIdx || this.tableIdx === 0 ? this.tableIdx : '');
8638
8642
  this.group.get(this.field)?.valueChanges.subscribe(value => {
8639
8643
  this.onValueSelected.emit(value);
8640
8644
  });
@@ -8674,12 +8678,14 @@ class SelectInputComponent {
8674
8678
  }
8675
8679
  }
8676
8680
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectInputComponent, deps: [{ token: i1$1.OepaComponentIdService }, { token: i1$1.OepaSmallService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
8677
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SelectInputComponent, selector: "oepa-select-input", inputs: { group: "group", field: "field", tableIdx: "tableIdx", title: "title", pickList: "pickList", fullList: "fullList", valueField: "valueField", displayField: "displayField", small: "small" }, outputs: { onValueSelected: "onValueSelected" }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Selector</label>\n<select class=\"form-select\" [formControlName]=\"field\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" \n [id]=\"componentId\">\n<option *ngFor=\"let item of internalPickList\" [ngValue]=\"item[valueField]\">{{item[displayField]}}</option>\n</select>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
8681
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SelectInputComponent, selector: "oepa-select-input", inputs: { tableIdName: "tableIdName", group: "group", field: "field", tableIdx: "tableIdx", title: "title", pickList: "pickList", fullList: "fullList", valueField: "valueField", displayField: "displayField", small: "small" }, outputs: { onValueSelected: "onValueSelected" }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Selector</label>\n<select class=\"form-select\" [formControlName]=\"field\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" \n [id]=\"componentId\">\n<option *ngFor=\"let item of internalPickList\" [ngValue]=\"item[valueField]\">{{item[displayField]}}</option>\n</select>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
8678
8682
  }
8679
8683
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectInputComponent, decorators: [{
8680
8684
  type: Component,
8681
8685
  args: [{ selector: 'oepa-select-input', template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Selector</label>\n<select class=\"form-select\" [formControlName]=\"field\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" \n [id]=\"componentId\">\n<option *ngFor=\"let item of internalPickList\" [ngValue]=\"item[valueField]\">{{item[displayField]}}</option>\n</select>\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>\n" }]
8682
- }], ctorParameters: () => [{ type: i1$1.OepaComponentIdService }, { type: i1$1.OepaSmallService }, { type: i0.ElementRef }], propDecorators: { group: [{
8686
+ }], ctorParameters: () => [{ type: i1$1.OepaComponentIdService }, { type: i1$1.OepaSmallService }, { type: i0.ElementRef }], propDecorators: { tableIdName: [{
8687
+ type: Input
8688
+ }], group: [{
8683
8689
  type: Input
8684
8690
  }], field: [{
8685
8691
  type: Input
@@ -8706,6 +8712,7 @@ class NumericInputComponent {
8706
8712
  smallService;
8707
8713
  elRef;
8708
8714
  componentId = 'NumericInputComponent';
8715
+ tableIdName = '';
8709
8716
  group;
8710
8717
  field = '';
8711
8718
  tableIdx;
@@ -8720,19 +8727,21 @@ class NumericInputComponent {
8720
8727
  ngOnInit() {
8721
8728
  this.small = this.smallService.isSmall(this.elRef.nativeElement);
8722
8729
  if (this.group) {
8723
- this.componentId = this.idService.getComponentId(this.group) + (this.field || '') + (this.tableIdx || '');
8730
+ this.componentId = (this.tableIdName ? this.tableIdName + '_' : '') + (this.field || 'numericInput') + (this.tableIdx || this.tableIdx === 0 ? this.tableIdx : '');
8724
8731
  this.group.get(this.field)?.valueChanges.subscribe(value => {
8725
8732
  this.onValueChange.emit(value);
8726
8733
  });
8727
8734
  }
8728
8735
  }
8729
8736
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumericInputComponent, deps: [{ token: i1$1.OepaComponentIdService }, { token: i1$1.OepaSmallService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
8730
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NumericInputComponent, selector: "oepa-numeric-input", inputs: { group: "group", field: "field", tableIdx: "tableIdx", title: "title", small: "small" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" type=\"number\"\n [formControlName]=\"field\" [id]=\"componentId\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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: i1$2.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$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
8737
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NumericInputComponent, selector: "oepa-numeric-input", inputs: { tableIdName: "tableIdName", group: "group", field: "field", tableIdx: "tableIdx", title: "title", small: "small" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n <label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" type=\"number\"\n [formControlName]=\"field\" [id]=\"componentId\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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: i1$2.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$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
8731
8738
  }
8732
8739
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumericInputComponent, decorators: [{
8733
8740
  type: Component,
8734
- args: [{ selector: 'oepa-numeric-input', template: "<div [formGroup]=\"group\">\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" type=\"number\"\n [formControlName]=\"field\" [id]=\"componentId\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
8735
- }], ctorParameters: () => [{ type: i1$1.OepaComponentIdService }, { type: i1$1.OepaSmallService }, { type: i0.ElementRef }], propDecorators: { group: [{
8741
+ args: [{ selector: 'oepa-numeric-input', template: "<div [formGroup]=\"group\">\n <label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid, 'form-control-sm': small}\" type=\"number\"\n [formControlName]=\"field\" [id]=\"componentId\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
8742
+ }], ctorParameters: () => [{ type: i1$1.OepaComponentIdService }, { type: i1$1.OepaSmallService }, { type: i0.ElementRef }], propDecorators: { tableIdName: [{
8743
+ type: Input
8744
+ }], group: [{
8736
8745
  type: Input
8737
8746
  }], field: [{
8738
8747
  type: Input
@@ -8834,6 +8843,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
8834
8843
  class TextInputComponent {
8835
8844
  idService;
8836
8845
  componentId = 'TextInputComponent';
8846
+ tableIdName = '';
8837
8847
  group;
8838
8848
  field = '';
8839
8849
  tableIdx;
@@ -8846,19 +8856,21 @@ class TextInputComponent {
8846
8856
  }
8847
8857
  ngOnInit() {
8848
8858
  if (this.group) {
8849
- this.componentId = this.idService.getComponentId(this.group) + (this.field || '') + (this.tableIdx || '');
8859
+ this.componentId = (this.tableIdName ? this.tableIdName + '_' : '') + (this.field || 'textInput') + (this.tableIdx || this.tableIdx === 0 ? this.tableIdx : '');
8850
8860
  this.group.get(this.field)?.valueChanges.subscribe(value => {
8851
8861
  this.onValueChange.emit(value);
8852
8862
  });
8853
8863
  }
8854
8864
  }
8855
8865
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, deps: [{ token: i1$1.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
8856
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextInputComponent, selector: "oepa-text-input", inputs: { group: "group", field: "field", tableIdx: "tableIdx", title: "title", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n<input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\">\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
8866
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextInputComponent, selector: "oepa-text-input", inputs: { tableIdName: "tableIdName", group: "group", field: "field", tableIdx: "tableIdx", title: "title", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n<input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\">\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>", styles: [""], 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: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
8857
8867
  }
8858
8868
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, decorators: [{
8859
8869
  type: Component,
8860
- args: [{ selector: 'oepa-text-input', template: "<div [formGroup]=\"group\">\n<input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\">\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
8861
- }], ctorParameters: () => [{ type: i1$1.OepaComponentIdService }], propDecorators: { group: [{
8870
+ args: [{ selector: 'oepa-text-input', template: "<div [formGroup]=\"group\">\n<label [for]=\"componentId\" class=\"form-label sr-only\">{{title}} Input</label>\n<input class=\"form-control\" [ngClass]=\"{'is-invalid':group.controls[field].invalid}\" \ntype=\"text\" [placeholder]=\"placeholder\" [maxlength]=\"maxlength\" [formControlName]=\"field\"\n[id]=\"componentId\">\n<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].invalid\">{{title}} is required</small>\n</div>" }]
8871
+ }], ctorParameters: () => [{ type: i1$1.OepaComponentIdService }], propDecorators: { tableIdName: [{
8872
+ type: Input
8873
+ }], group: [{
8862
8874
  type: Input
8863
8875
  }], field: [{
8864
8876
  type: Input