File
Description
Component to generate a Bootstrap form field and set up the component layout according to the form configuration.
Metadata
selector |
ng-xform-form-control-layout |
styleUrls |
form-control-layout.component.css |
templateUrl |
./form-control-layout.component.html |
Accessors
labelStyleClass
|
getlabelStyleClass()
|
|
fieldStyleClassCheckbox
|
getfieldStyleClassCheckbox()
|
|
fieldStyleClass
|
getfieldStyleClass()
|
|
import { Component, Input } from '@angular/core';
import { DynamicField } from '../..';
import { BaseDynamicFieldComponent } from '../field-components/base-dynamic-field.component';
/**
* Component to generate a Bootstrap form field and set up the component layout according to the form configuration.
*/
@Component({
selector: 'ng-xform-form-control-layout',
templateUrl: './form-control-layout.component.html',
styleUrls: [
'form-control-layout.component.css'
]
})
export class FormControlLayoutComponent {
@Input() fieldComponent: BaseDynamicFieldComponent<DynamicField>;
get labelStyleClass(): string {
if (!this.fieldComponent.isHorizontal) {
return '';
}
return `col-sm-${this.fieldComponent.labelWidth} control-label`;
}
get fieldStyleClassCheckbox(): string {
if (!this.fieldComponent.isHorizontal) {
return '';
}
if (this.fieldComponent.isHorizontal && this.fieldComponent.hideLabelOnEdit) {
return `${this.fieldStyleClass} col-sm-offset-${this.fieldComponent.labelWidth}`;
}
return this.fieldStyleClass;
}
get fieldStyleClass(): string {
if (!this.fieldComponent.isHorizontal) {
return '';
}
return `col-sm-${12 - this.fieldComponent.labelWidth}`;
}
}
<div [hidden]="!fieldComponent.visible"
id="{{fieldComponent.elementId}}-div"
class="form-group"
[formGroup]="fieldComponent.form">
<label *ngIf="!fieldComponent.hideLabelOnEdit || (!fieldComponent.isEditing && fieldComponent.visible)"
for="{{fieldComponent.isEditing ? fieldComponent.elementId : ''}}"
[ngClass]="labelStyleClass">
{{ fieldComponent.field.label }}
<ng-xform-required-field-tag
*ngIf="fieldComponent.isEditing"
[horizontal]='fieldComponent.isHorizontal'
[optional]="fieldComponent.isOptional"></ng-xform-required-field-tag>
</label>
<div [ngClass]="fieldStyleClassCheckbox"
[hidden]="!fieldComponent.isEditing && fieldComponent.visible && fieldComponent.useFormattedValueOnReadonly">
<ng-content></ng-content>
<ng-xform-field-error-message [control]="fieldComponent.control"></ng-xform-field-error-message>
</div>
<div [ngClass]="fieldStyleClass"
*ngIf="!fieldComponent.isEditing && fieldComponent.visible && fieldComponent.useFormattedValueOnReadonly"
[class.horizontal-readonly]="fieldComponent.isHorizontal"
[class.readonly]="!fieldComponent.isHorizontal"
class="text-muted class.readonly">
{{ fieldComponent.formattedValue }}
</div>
</div>
Legend
Html element with directive