analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
107 lines • 4.28 kB
TypeScript
import { z } from 'zod';
import { ActivitySubtype, SendActivityFormData, StepErrors } from './types';
/**
* Error messages for validation
*/
export declare const ERROR_MESSAGES: {
readonly SUBTYPE_REQUIRED: "Campo obrigatório! Por favor, selecione uma opção para continuar.";
readonly MODE_REQUIRED: "Campo obrigatório! Por favor, selecione o modo de prova para continuar.";
readonly TITLE_REQUIRED: "Campo obrigatório! Por favor, preencha este campo para continuar.";
readonly STUDENTS_REQUIRED: "Campo obrigatório! Por favor, selecione pelo menos um aluno para continuar.";
readonly START_DATE_REQUIRED: "Campo obrigatório! Por favor, preencha este campo para continuar.";
readonly FINAL_DATE_REQUIRED: "Campo obrigatório! Por favor, preencha este campo para continuar.";
readonly FINAL_DATE_INVALID: "A data final deve ser maior ou igual à data inicial.";
};
/**
* Zod schema for activity step (Step 1)
*/
export declare const activityStepSchema: z.ZodObject<{
subtype: z.ZodEnum<{
TAREFA: ActivitySubtype.TAREFA;
TRABALHO: ActivitySubtype.TRABALHO;
PROVA: ActivitySubtype.PROVA;
}>;
title: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
notification: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
* Zod schema for recipient step (Step 2)
*/
export declare const recipientStepSchema: z.ZodObject<{
students: z.ZodArray<z.ZodObject<{
studentId: z.ZodString;
userInstitutionId: z.ZodString;
}, z.core.$strip>>;
}, z.core.$strip>;
/**
* Zod schema for deadline step with date comparison refinement
*/
export declare const deadlineStepSchema: z.ZodObject<{
startDate: z.ZodString;
startTime: z.ZodDefault<z.ZodString>;
finalDate: z.ZodString;
finalTime: z.ZodDefault<z.ZodString>;
canRetry: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
/**
* Type inference from Zod schemas
*/
export type ActivityStepData = z.infer<typeof activityStepSchema>;
export type RecipientStepData = z.infer<typeof recipientStepSchema>;
export type DeadlineStepData = z.infer<typeof deadlineStepSchema>;
/**
* Validates the activity step (Step 1) using Zod
* @param data - Partial form data
* @param options - Validation options
* @param options.enableExamMode - When true, only validates title (exam mode has simplified form)
* @returns StepErrors object with any validation errors
*/
export declare function validateActivityStep(data: Partial<SendActivityFormData>, options?: {
enableExamMode?: boolean;
}): StepErrors;
/**
* Validates the recipient step (Step 2) using Zod
* @param data - Partial form data
* @returns StepErrors object with any validation errors
*/
export declare function validateRecipientStep(data: Partial<SendActivityFormData>): StepErrors;
/**
* Validates the deadline step (Step 3) using Zod
* @param data - Partial form data
* @param options - Validation options
* @param options.enableExamMode - When true, only validates startDate (exam date)
* @returns StepErrors object with any validation errors
*/
export declare function validateDeadlineStep(data: Partial<SendActivityFormData>, options?: {
enableExamMode?: boolean;
}): StepErrors;
/**
* Validates a specific step
* @param step - Step number (1, 2, or 3)
* @param data - Partial form data
* @param options - Validation options passed to step validators
* @returns StepErrors object with any validation errors
*/
export declare function validateStep(step: number, data: Partial<SendActivityFormData>, options?: {
enableExamMode?: boolean;
}): StepErrors;
/**
* Checks if a specific step is valid
* @param step - Step number (1, 2, or 3)
* @param data - Partial form data
* @param options - Validation options
* @returns true if the step is valid
*/
export declare function isStepValid(step: number, data: Partial<SendActivityFormData>, options?: {
enableExamMode?: boolean;
}): boolean;
/**
* Checks if all steps are valid (form can be submitted)
* @param data - Partial form data
* @param options - Validation options
* @returns true if all steps are valid
*/
export declare function isFormValid(data: Partial<SendActivityFormData>, options?: {
enableExamMode?: boolean;
}): boolean;
//# sourceMappingURL=validation.d.ts.map