UNPKG

@ng2-dynamic-forms/ui-foundation

Version:

Foundation UI package for ng2 Dynamic Forms

109 lines (87 loc) 3.6 kB
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" } @Component({ selector: "dynamic-form-foundation-sites-control", templateUrl: "./dynamic-form-foundation-sites.component.html" }) export class DynamicFormFoundationSitesComponent extends DynamicFormControlComponent implements OnChanges { @Input() bindId: boolean = true; @Input() context: DynamicFormArrayGroupModel = null; @Input() group: FormGroup; @Input() hasErrorMessaging: boolean = false; @Input() model: DynamicFormControlModel; @Input() nestedTemplates: QueryList<DynamicTemplateDirective>; @Output() blur: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>(); @Output() change: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>(); @Output() focus: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>(); @ContentChildren(DynamicTemplateDirective) 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; } } }