analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
133 lines • 4.61 kB
TypeScript
import { z } from 'zod';
import { 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 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", "TRABALHO", "PROVA"]>;
title: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
notification: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
title: string;
subtype: "PROVA" | "TAREFA" | "TRABALHO";
notification?: string | undefined;
}, {
title: string;
subtype: "PROVA" | "TAREFA" | "TRABALHO";
notification?: string | undefined;
}>;
/**
* Zod schema for recipient step (Step 2)
*/
export declare const recipientStepSchema: z.ZodObject<{
students: z.ZodArray<z.ZodObject<{
studentId: z.ZodString;
userInstitutionId: z.ZodString;
}, "strip", z.ZodTypeAny, {
studentId: string;
userInstitutionId: string;
}, {
studentId: string;
userInstitutionId: string;
}>, "many">;
}, "strip", z.ZodTypeAny, {
students: {
studentId: string;
userInstitutionId: string;
}[];
}, {
students: {
studentId: string;
userInstitutionId: string;
}[];
}>;
/**
* Zod schema for deadline step with date comparison refinement
*/
export declare const deadlineStepSchema: z.ZodEffects<z.ZodObject<{
startDate: z.ZodString;
startTime: z.ZodDefault<z.ZodString>;
finalDate: z.ZodString;
finalTime: z.ZodDefault<z.ZodString>;
canRetry: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
startDate: string;
finalDate: string;
canRetry: boolean;
startTime: string;
finalTime: string;
}, {
startDate: string;
finalDate: string;
canRetry?: boolean | undefined;
startTime?: string | undefined;
finalTime?: string | undefined;
}>, {
startDate: string;
finalDate: string;
canRetry: boolean;
startTime: string;
finalTime: string;
}, {
startDate: string;
finalDate: string;
canRetry?: boolean | undefined;
startTime?: string | undefined;
finalTime?: string | undefined;
}>;
/**
* 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
* @returns StepErrors object with any validation errors
*/
export declare function validateActivityStep(data: Partial<SendActivityFormData>): 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
* @returns StepErrors object with any validation errors
*/
export declare function validateDeadlineStep(data: Partial<SendActivityFormData>): StepErrors;
/**
* Validates a specific step
* @param step - Step number (1, 2, or 3)
* @param data - Partial form data
* @returns StepErrors object with any validation errors
*/
export declare function validateStep(step: number, data: Partial<SendActivityFormData>): StepErrors;
/**
* Checks if a specific step is valid
* @param step - Step number (1, 2, or 3)
* @param data - Partial form data
* @returns true if the step is valid
*/
export declare function isStepValid(step: number, data: Partial<SendActivityFormData>): boolean;
/**
* Checks if all steps are valid (form can be submitted)
* @param data - Partial form data
* @returns true if all steps are valid
*/
export declare function isFormValid(data: Partial<SendActivityFormData>): boolean;
//# sourceMappingURL=validation.d.ts.map