argos/dmp-frontend/src/app/form/fields/field-base.ts

48 lines
1.4 KiB
TypeScript

import { Rule } from '../../entities/common/rule';
import { Attribute } from '../../entities/model/attribute';
export class FieldBase<T>{
value: T;
key: string;
label: string;
required:boolean;
order:number;
rules: Rule[];
visible: boolean | string;
controlType:string;
group:string;
description:string;
attributes: Attribute;
regex:string;
url: string;
constructor(options: {
value?: T,
key?: string,
label?: string,
required?:boolean,
order?: number,
rules?: Rule[],
visible?: boolean | string,
controlType?: string
group?: string
description?: string,
attributes?: Attribute,
regex?:string,
url?: string
} = {}) {
this.value = options.value;
this.key = options.key || '';
this.label = options.label || '';
this.required = !! options.required;
this.order = options.order === undefined ? 1 : options.order;
this.rules = options.rules;
this.visible = options.visible;
this.controlType = options.controlType || '';
this.group = options.group || '';
this.description = options.description || '';
this.attributes = options.attributes || new Attribute();
this.regex = options.regex || '';
this.url = options.url || "";
}
}