import EntityPropertyTypes from '../constants/EntityPropertyTypes'; import { FormSelector } from './FormStep'; import * as GSteps from './GenericFormSteps'; export interface Entity { _id: string; name: string; steps: Record; rootSteps: string[]; } export type EntityProperty = Name | CheckBox | TextArea | TextInput | EntitySelector | DatePicker | TimePicker; interface BaseProperty { required: boolean; } export interface Name extends Omit, BaseProperty { type: EntityPropertyTypes.NAME; label: string; } export interface CheckBox extends GSteps.GCheckBox, BaseProperty { type: EntityPropertyTypes.CHECKBOX; } export interface TextArea extends GSteps.GTextArea, BaseProperty { type: EntityPropertyTypes.TEXTAREA; } export interface TextInput extends GSteps.GTextInput, BaseProperty { type: EntityPropertyTypes.TEXTINPUT; } export interface DatePicker extends GSteps.GDatePicker, BaseProperty { type: EntityPropertyTypes.DATEPICKER; } export interface TimePicker extends GSteps.GTimePicker, BaseProperty { type: EntityPropertyTypes.TIMEPICKER; } export interface EntitySelector extends Omit, BaseProperty { type: EntityPropertyTypes.SELECTOR; } export {};