File

src/ng-xform/form-control-layout/form-control-layout.component.ts

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

Index

Inputs
Accessors

Inputs

fieldComponent

Type: BaseDynamicFieldComponent<DynamicField>

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
Component
Html element with directive

results matching ""

    No results matching ""