@cnamts/form-builder
Version:
FormBuilder for the French Health Insurance
50 lines (44 loc) • 1.26 kB
text/typescript
import Vue from 'vue';
import Component from 'vue-class-component';
export interface IFieldMap {
[key: string]: string;
}
// We import them all because the form can use any of them
import DateField from '../fields/DateField.vue';
import NumberField from '../fields/NumberField.vue';
import FormPasswordField from '../fields/FormPasswordField.vue';
import ChoicePeriodField from '../fields/ChoicePeriodField.vue';
import ChoiceField from '../fields/ChoiceField.vue';
import FormRangeField from '../fields/FormRangeField.vue';
import TextareaField from '../fields/TextareaField.vue';
import TextField from '../fields/TextField.vue';
({
components: {
DateField,
NumberField,
FormPasswordField,
ChoicePeriodField,
ChoiceField,
FormRangeField,
TextareaField,
TextField
}
})
export class FieldMap extends Vue {
fieldMap: IFieldMap = {
date: 'DateField',
number: 'NumberField',
password: 'FormPasswordField',
period: 'ChoicePeriodField',
select: 'ChoiceField',
range: 'FormRangeField',
text: 'TextField',
textarea: 'TextareaField'
};
getField(fieldName: string): string {
return this.fieldMap[fieldName];
}
fieldExists(fieldName: string): boolean {
return Object.keys(this.fieldMap).includes(fieldName);
}
}