@ng2-dynamic-forms/ui-foundation
Version:
Foundation UI package for ng2 Dynamic Forms
109 lines (87 loc) • 3.6 kB
text/typescript
import {
Component,
ContentChildren,
EventEmitter,
Input,
OnChanges,
Output,
QueryList,
SimpleChanges
} from "@angular/core";
import { FormGroup } from "@angular/forms";
import {
DynamicFormValidationService,
DynamicFormControlModel,
DynamicFormArrayGroupModel,
DynamicFormControlComponent,
DynamicFormControlEvent,
DynamicTemplateDirective,
DYNAMIC_FORM_CONTROL_TYPE_ARRAY,
DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX,
DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP,
DYNAMIC_FORM_CONTROL_TYPE_GROUP,
DYNAMIC_FORM_CONTROL_TYPE_INPUT,
DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP,
DYNAMIC_FORM_CONTROL_TYPE_SELECT,
DYNAMIC_FORM_CONTROL_TYPE_SWITCH,
DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA
} from "@ng2-dynamic-forms/core";
export const enum FoundationSitesFormControlType {
Array = 1, //"ARRAY",
Checkbox = 2, //"CHECKBOX",
Group = 3, //"GROUP",
Input = 4, //"INPUT",
RadioGroup = 5, //"RADIO_GROUP",
Select = 6, //"SELECT",
Switch = 7, //"SWITCH",
TextArea = 8, //"TEXTAREA"
}
export class DynamicFormFoundationSitesComponent extends DynamicFormControlComponent implements OnChanges {
bindId: boolean = true;
context: DynamicFormArrayGroupModel = null;
group: FormGroup;
hasErrorMessaging: boolean = false;
model: DynamicFormControlModel;
nestedTemplates: QueryList<DynamicTemplateDirective>;
blur: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>();
change: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>();
focus: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>();
contentTemplates: QueryList<DynamicTemplateDirective>;
type: FoundationSitesFormControlType | null;
constructor(protected validationService: DynamicFormValidationService) {
super(validationService);
}
ngOnChanges(changes: SimpleChanges) {
super.ngOnChanges(changes);
if (changes["model"]) {
this.type = DynamicFormFoundationSitesComponent.getFormControlType(this.model);
}
}
static getFormControlType(model: DynamicFormControlModel): FoundationSitesFormControlType | null {
switch (model.type) {
case DYNAMIC_FORM_CONTROL_TYPE_ARRAY:
return FoundationSitesFormControlType.Array;
case DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX:
return FoundationSitesFormControlType.Checkbox;
case DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP:
case DYNAMIC_FORM_CONTROL_TYPE_GROUP:
return FoundationSitesFormControlType.Group;
case DYNAMIC_FORM_CONTROL_TYPE_INPUT:
return FoundationSitesFormControlType.Input;
case DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP:
return FoundationSitesFormControlType.RadioGroup;
case DYNAMIC_FORM_CONTROL_TYPE_SELECT:
return FoundationSitesFormControlType.Select;
case DYNAMIC_FORM_CONTROL_TYPE_SWITCH:
return FoundationSitesFormControlType.Switch;
case DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA:
return FoundationSitesFormControlType.TextArea;
default:
return null;
}
}
}