import Types from '../constants/CBRFormStepTypes'; import { GSmartSelect, GTextArea, GTextInput, GBaseStep } from './GenericFormSteps'; export type CBRFormStep = CBRFirstNameStep | CBRMiddleNameStep | CBRLastNameStep | CBRSecondLastNameStep | PostVentaStep | CBRProjectStep | CBRDocStep | CBRCelStep | CBRPhoneStep | CBRDocTypeStep | CBREmailStep | CBRRequesterTypeStep | CBRPropertyStep | CBRSpaceTypeStep | CBRElementStep | CBRCommentStep | CBRIncidentsStep; export interface PostVentaStep extends GBaseStep { type: Types.CBR_POSTVENTA; } export interface CBRProjectStep extends GSmartSelect { type: Types.CBR_PROYECTO | Types.CBR_MACRO_PROYECTO; steps: string[]; /** Only has maxSize if level === 0 */ maxSize?: number; } export interface CBRDocTypeStep extends Omit { type: Types.CBR_TIPO_DOC; } export interface CBRRequesterTypeStep extends GSmartSelect { type: Types.CBR_TIPO_SOLICITANTE; } export interface CBRPropertyStep extends GSmartSelect { type: Types.CBR_INMUEBLE; validation?: { maxDays: number; message: string; }; } export interface CBRSpaceTypeStep extends GSmartSelect { type: Types.CBR_TIPO_ESPACIO; } export interface CBRFirstNameStep extends GTextInput { type: Types.CBR_FIRST_NAME; } export interface CBRMiddleNameStep extends GTextInput { type: Types.CBR_MIDDLE_NAME; } export interface CBRLastNameStep extends GTextInput { type: Types.CBR_LAST_NAME; } export interface CBRSecondLastNameStep extends GTextInput { type: Types.CBR_SECOND_LAST_NAME; } export interface CBRDocStep extends GTextInput { type: Types.CBR_DOC; showIcon: boolean; } export interface CBRCelStep extends GTextInput { type: Types.CBR_CEL; } export interface CBRPhoneStep extends GTextInput { type: Types.CBR_PHONE; } export interface CBREmailStep extends GTextInput { type: Types.CBR_EMAIL; } export interface CBRElementStep extends GSmartSelect { type: Types.CBR_LOCATIVAS; subStep: string | null; } export interface CBRCommentStep extends Omit { type: Types.CBR_COMENTARIO; } export interface CBRIncidentsStep extends GBaseStep { type: Types.CBR_INCIDENCIAS; label: string; description: string | null; addBtnLabel: string; required: boolean; unitLabel: string; spaceStep: Omit; elementStep: IncidentElementStep; commentStep: Omit; } export interface IncidentElementStep extends Omit { subStep?: IncidentElementStep; }